Import / export
The top bar’s Save button has a chevron dropdown with import + export actions:
- Save & Publish: save with
status: PUBLISHED. - Export .pose: download / share the current draft.
- Import .pose file: load a previously-exported file into the editor.
- Import video for measurements: recorded-clip marker flow.
- Import image for measurements: single-frame marker flow.
Export .pose
Captures the current draft as JSON and surfaces it for the trainer to copy / save.
- Web: triggers a browser file download
(
{movement_name}.pose). - Native: opens the platform share sheet (AirDrop on iOS, share intent on Android).
The exported file is a complete Movement JSON document ,
identical to what Save writes to your catalog. Use it for:
- Hand-off to a partner integrating PoseFlow with a different storage backend.
- Source control / versioning outside your catalog.
- Sharing a movement across environments (export from dev / staging, import into prod).
- Debugging, diff two
.posefiles to see what an authoring session changed.
Import .pose
Two ways:
- Pick file, opens a file picker. Pick a
.poseor.jsonfile from disk. The Studio reads + parses + loads into the current editor (replacing the in-memory draft, save before importing if you don’t want to lose unsaved work). - Paste JSON, for quick test / clipboard flows. Paste the JSON into the dialog’s text area, hit Import.
Both paths route through PoseFlowStudioController.loadFromJson()
which calls Movement.fromJsonString(raw) and hydrates
the controller state, phases, conditions, bucket bands, the lot.
The imported draft is loaded into the editor but NOT written to your catalog. Hit Save afterward to persist.
Import video for measurements
The “recorded clip” authoring flow:
- Pick a video file (mp4 / mov / webm). The Studio runs the pose engine over every frame, extracting poses into an in-memory buffer.
- A scrub bar appears below the video. Drag through the clip.
- Drop a marker at any frame that represents a phase position.
- Apply the marker → the conditions at that frame snapshot to the selected phase (every channel’s value at that frame becomes the phase’s snap-to range).
Useful for authoring against a reference video instead of performing the movement live. Web-only today; native shows a “web build only” banner.
Import image for measurements
Same flow as video import, but for a single still image. Useful for one-shot phase snapshots when you have a perfect static reference photo of a position.
The Studio runs the pose engine on the image, extracts the single pose, applies it as a marker to the selected phase. Web-only.
Versioning
Every Save also writes a studio_versions/{timestamp} snapshot
to your StudioPersistence.versions repository. This is
storage-agnostic, your host decides how to surface version
history. A typical pattern is a “previous versions” panel that
lists snapshots and lets the trainer roll back.
Export .pose doesn’t tap into snapshots, it always exports the CURRENT draft. To export a previous version, the host needs to hydrate that version into the editor first (not yet exposed in the Studio UI; planned).
Read next
- Persistence, the storage ports the Studio reads + writes through.
- Authoring workflow, the broader flow.
- .pose .pose file spec , the on-disk format Export produces + Import consumes.