Skip to content

Phases

The building blocks of every PoseFlow movement. The trainer’s first move when authoring is “add phases.”

What a phase is

A phase represents one body configuration in the rep cycle:

  • A squat’s “down” phase = knees bent.
  • A push-up’s “up” phase = arms extended.
  • A burpee’s “plank” phase = arms straight + legs extended.

A rep is one full traversal of a phase sequence. Default: declared order (down → up → down counts a rep when you re-enter the first phase). Custom: pin one or more sequences via the sequences editor.

Phase tile UI

Each phase appears as a tile in the Phases panel:

┌────────────────────────────────────┐
│ ● Down │
│ 3 rules · hold 0–5000ms │
│ ⏱ ✏ │
└────────────────────────────────────┘
  • Coloured dot: the trainer-set phase colour. Used for the skeleton overlay tint when in that phase + the sequence stepper.
  • Name: display name. Tap the ✏ icon to rename.
  • Rule count + hold range: informational.
  • ⏱ icon: opens the duration editor.
  • Thick green border + soft glow: appears when the runtime tracker is currently in this phase.
  • Filled purple fill: appears when this is the SELECTED phase (what the Measurements + Conditions panels are editing).

The two highlights are independent on purpose, you can edit one phase while the user is physically in another.

Adding phases

Tap Add phase at the bottom of the Phases panel. The new phase appends to the end of the list with a default name (“Phase 3”, “Phase 4”, …) and the next colour from the palette.

Rename by tapping the ✏ icon. Pick a short, descriptive name , the runtime form feedback often quotes the phase name back to the user (“Down phase: go deeper”).

Reordering

Drag a phase tile up or down to reorder. The order defines the default cycle: declared sequence is the auto-cycle path.

If you’ve pinned explicit sequences (via the Sequences section below), reordering doesn’t change the sequences, they hold their phase ids verbatim.

Deleting

Tap the ⋮ menu on a phase tile → Delete. The Studio warns you if the phase is referenced by any pinned sequence, confirm to remove the phase + strip it from sequences.

Duration

Tap the ⏱ icon to set hold-time bounds for the phase:

  • Min: the phase must be active for at least this many ms before any transition can fire. Use for hold phases (plank, side bridge): “the user must hold this position for 5 seconds for it to count”.
  • Max: the phase auto-transitions to its next phase if held longer than this. Prevents the user from getting stuck mid-rep.

Defaults: min: 0, max: 5000. The default works for most strength movements where the user moves through phases naturally. Adjust for slow / hold-based movements.

Sequences section

Below the phase tiles, the Sequences section lets you pin explicit rep paths. See phase sequences.

Sequence progress stepper

When you have at least one pinned sequence, a horizontal stepper appears below the Sequences section showing where the user is in each sequence:

1. ● Up → ● Down → ● Up
passed ACTIVE pending
  • ✓ tick + green tint = phase already passed in this rep.
  • Filled green = the live-detected phase (the active step).
  • Outline = upcoming phase.

Multiple authored sequences each get their own row, numbered. Gives the trainer real-time visibility into “did the user actually traverse this sequence” while testing.

What phases produce

When you save, each phase becomes a PhaseConfig entry in the .pose file’s phaseConfigs array. The transitions between phases are auto-generated from the conditions you’ve dropped on each phase (the Conditions editor → outgoing transition mapping is handled by the controller).

Authoring 3 phases with 2 conditions each → 3 PhaseConfig entries with 2 outgoing PhaseTransitions each.