ALCHEMIST REVIEW

Everyone on the same frame. Even the one who stopped.

A live session streams the editor's Program and its whole timeline to a browser, an Apple TV, a phone and a tablet at once. When someone needs to write a note, their device freezes the frame — and nobody else's screening pauses.

Browser · Apple TV · iPhone · iPad — guests join with a link or a six-digit code, no account required

JOIN SESSION

LIVE
4
8
3
9
2
1

Read the code out, or let the TV find the session on your LAN over Bonjour.

The host

native-editor

Publishes Program video and audio, the full OTIO snapshot, the media bin, thumbnail atlases and waveforms. Folds accepted comments back into the project's Annotations track and publishes the next snapshot generation.

The browser seat

web

Editorially read-only. Answers the host's WebRTC offer and presents Program with Opus audio, joins the all-participant voice mesh, and ducks Program under speech. An invite opens a lobby that waits for an explicit Join, so the microphone starts from a real user gesture.

The ten-foot seat

apple-tv

Program full screen with no chrome. Press down for a read-only timeline strip; Menu shrinks Program and raises the roster. Hardware H.264 through VideoToolbox and Opus at 48 kHz stereo, over libdatachannel rather than a 300 MB WebRTC binary.

The notepad

apple-second-screen

Where notes actually get written. Holds a frame locally, converts PencilKit strokes into open ORI annotation commands, keeps a draft through a disconnect, and retries its commit idempotently.

Apple TV

PLAYING

01:04:22:11apple-tv

Receiving Program and the live snapshot. Audio unaffected.

Jeff's iPad

HELD

01:03:58:04apple-second-screen

“The eyeline feels late here.”

2 strokes · draft private

24 s behind live

Back to Live

Browser

PLAYING

01:04:22:11web

Receiving Program and the live snapshot. Audio unaffected.

01

Resolve

The live sequence frame resolves to the visible OTIO clip instance and its source-media time — before the keyboard or the drawing UI appears. If no video clip resolves, it fails visibly rather than making a note that cannot survive an edit.

02

Freeze

That frame holds on this device alone. The Apple TV, the browser and the shared screening keep playing at full speed.

03

Compose

Write and draw locally while live state keeps reducing into a buffer behind the held image. Program audio mutes on this device only, so a stale picture never plays against live sound.

04

Commit

The note and the drawing commit together as one idempotent mutation. Retrying after a dropped connection creates exactly one comment, never two.

05

Catch up

On acknowledgement the device jumps straight to the newest live frame. It never replays the missed interval, and never issues a pause, play or seek to anyone else.

ReviewAnchor
clipGUIDsequence-guid/clip-37
sourceTime1042 @ 24
capturedSequenceTime812 @ 24
capturedGeneration18
mediaFingerprintdiagnostic only

The top two are the identity. Sequence position is captured for audit and context only — it changes the moment somebody trims upstream. Rational time keeps its value and its rate; nothing collapses it to floating-point seconds.

WHAT THE EDITOR DOES

WHAT THE COMMENT DOES

Moves the clip

Resolves at the clip's new sequence position. Nothing to reconcile.

Trims the frame out

Kept, and marked off-cut until that source frame is visible again.

Duplicates the clip

The original instance keeps the comment. It is never copied or retargeted automatically.

Relinks the media

The anchor survives as long as the clip GUID does; only the diagnostic fingerprint updates.

Replaces or deletes the clip

Marked unplaced. A frame digest may suggest a rebind, but nothing applies one silently.

Edits during composition

The frozen anchor does not move. It resolves against the newest timeline only after commit.

IDENTITY

LIFETIME

OWNS

userId

An account, or a session-scoped guest

Display identity, role, comments, annotations and permissions

deviceId

An app install, or a trusted browser install

Device name, form factor and remembered preferences

presenceId

One connected session endpoint

The socket, WebRTC signalling, mute, liveness and playback leadership

Leadership is handed to a presence, never inherited by a person. A guest keeps a reconnect credential that restores the same identity, device and pending mutations — without handing back leadership.

ROSTER

3 people · 6 presences

J

Jeff Hodges

Apple TV

leader

iPad

reviewing

Browser

listening

Editor

host

M

Mara R.

Browser

listening

J

Jonas T.

iPhone

listening

Built on an open interchange, not our own

The drawing payload is ORI Annotations, pinned to a specific upstream commit and Apache-2.0 licensed. Alchemist implements compatible schemas and codecs in Swift, TypeScript, Go and Zig rather than adopting ORI's own transport, so the markup is portable even though the session is ours.

PaintStart.1
PaintPoints.1
PaintVertices.1
PaintEnd.1
TextAnnotation.1
EllipseAnnotation.1
RectangleAnnotation.1
ArrowAnnotation.1

Aspect-independent coordinates

Height-normalized, Y-up and centred on the image, so y always spans −0.5 to +0.5. A 16:9, portrait or anamorphic frame round-trips identically.

Stable command UUIDs

Every stroke, shape and positioned text keeps an identity, so editing one person's note regenerates the aggregate without disturbing anyone else's work.

Attribution without exposure

The participant hash is an opaque derivative of the user id — never a presence id, never a display name.

NOT IN THE FIRST RELEASE

Live co-editing of an unfinished prose comment

Automatically rebinding a comment when its clip is replaced

Replaying missed Program media during catch-up

Conference video — camera preview stays local only

Still landing

Durable folding of committed comments into the saved project, cross-client rendering of other people's annotations, and account-backed identity across installs are the next milestones rather than shipped behaviour.