Skip to main content
When models are born inside of labs, they are treated as pipelines. You run a script, it produces a result, and you visualize or benchmark it at the end. This makes sense during research: scripts are predictable, deterministic, easy to debug, and most importantly, are what gets used for benchmarks.
How models are developed as they come out of labs
But turning a pipeline into a demo means building infrastructure: servers, WebRTC, session management. Researchers spend weeks on networking instead of research. Amazing work stays locked in papers because deployment is too hard.
Reactor Runtime handles all the infrastructure for you. Define your model, mark methods with @command to create your input schema, and your model becomes a real-time API that anyone can interact with. We handle the networking, streaming, and session management. You focus on your ML code.
Runtime state machine: load model, wait for user, run inference, cleanup, repeat
When a user connects, Reactor calls your start_session() method. Your model generates frames continuously while accepting real-time commands. When the user disconnects, cleanup runs and the model waits for the next user. Weights stay loaded.
Bidirectional communication: client sends commands matching the schema, model emits video in real time
Your @command decorators define the schema. Clients send inputs that match this schema. The model reacts to those inputs and emits video. All in real time.
Schema as single source of truth enables endless client possibilities
Because the schema comes from your model, any frontend can connect: web apps, game engines, mobile apps, or custom tools. You define the API once. Clients build whatever UI makes sense for them.

The Guide

This guide walks you through the model lifecycle:
1

Model Instancing

How models are loaded and instantiated, with weights staying in memory across sessions.
2

Accepting User Input

How to mark methods as commands that users can call in real time.
3

Writing a Pipeline

How to structure your generation loop for continuous, real-time output.
4

Emitting Frames

How frames flow from your model to the user’s screen.
5

Model Cleanup

How to reset state between sessions so one user does not affect the next.
6

Local Setup

How to run your model locally and connect to it from a frontend.
By the end, you will understand how to take any video generation model and make it interactive.

Start the Guide

Begin with Model Instancing to learn how your model’s lifecycle starts.