Skip to content

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 .pose files to see what an authoring session changed.

Import .pose

Two ways:

  1. Pick file, opens a file picker. Pick a .pose or .json file 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).
  2. 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:

  1. Pick a video file (mp4 / mov / webm). The Studio runs the pose engine over every frame, extracting poses into an in-memory buffer.
  2. A scrub bar appears below the video. Drag through the clip.
  3. Drop a marker at any frame that represents a phase position.
  4. 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).