play (or autoplay) reaches a built clip, its frames run on
the track. Each clip normally opens from text alone; you can also pass starting_frame (an uploaded
still) or continue_from_clip_id (the last frame of another clip) so the two chain into a
continuing scene.
The FastH3 reference is split across four pages: this overview, the complete
command and event schema, the
prompt guide for writing clips the model renders best,
and a tutorial that drives a session end to end.
The base wire protocol is the same as every other Reactor model: open a session with the
Reactor class, send named commands, and receive events. The model
name is reactor/fast-h3. The
@reactor-models/fast-h3 typed package adds named methods and
React hooks for this protocol.
At a glance
Pass
reactor/fast-h3 to the SDK. Pass fast-h3 to create-reactor-app as the template name.
“FastH3” is the display name. Usage is billed per second of session time; see
Billing for how billing maps to rates.Key features
Native audio in the same pass
Pictures and sound generate together, so speech, ambience, and effects are born synchronized
with the frame.
Your scheduler, not the model's
enqueue, move, pop, play, stop, set_autoplay give a client full order control.Image opens and scene chains
starting_frame opens a clip from an uploaded still; continue_from_clip_id chains any clip
off another’s last frame into a continuing scene.Quick start
The fastest path to a working FastH3 app is thecreate-reactor-app CLI.
- npm
- pnpm
pip install reactor-sdk and follow the Python example below (see the quickstart for
the full walkthrough):
@reactor-models/fast-h3 is on npm with named methods and React hooks; the
tutorial uses it throughout against the open-source
episodes example. See
Typed Model SDKs for what the typed layer adds.
How it works
On connect FastH3 is idle with a black output; nothing plays until a built clip exists and aplay
asks for it. To get your first stream:
- Connect to the model. The connection moves
disconnected → connecting → waiting → ready, and the firststate_update/queue_updateland on connect. - Optionally set session defaults with
set_clip_seconds,set_seed, andset_canvas. Everyenqueuesnapshots these, so set them before the clips they should apply to. enqueueone or more clips. Each gets a UUID and joins the back of the row; builds run down the row behind the scenes, turning each into a finished clip and announcing every one withclip_generatedandqueue_update.playa built clip. Playback is explicit:playwith no argument plays the next built clip in the row, or name aclip_id. Frames stream until the clip ends, then the row highlights the next built clip and waits for the nextplay.set_autoplaystarts the next built clip on its own as each one finishes, so a steadily fed row plays through hands-free.