Dream Engine
Dream Engine is the inference fabric for video world models. Give it a starting frame and a sequence of conditioning inputs (robot actions today; broader modalities as the catalog grows); it returns an mp4 of the predicted rollout — fast and cheap enough to live inside a real-time MPC loop or a high-throughput data-augmentation pipeline.
The engine's contract is model-agnostic: every spec exposes the same
predict / predict_batch surface, the same retry + error semantics,
and the same per-frame metered billing. Each spec is benchmarked and
validated end-to-end before it lands in the catalog.
Today's catalog: one active spec — DreamDojo 2B · GR-1, an action-conditioned video world model running in ~2.6 s on H100 SXM 80GB at $0.0005 per frame. More specs across other embodiments and model classes (block-diffusion, causal-video) are queued in the roadmap; they'll surface here as they validate.
Where to start
- Quickstart —
pip install dream-engine, mint an API key, run your first rollout in five lines. - DreamDojo worked example — end-to-end with a real GR-1 teleop fixture, side-by-side with the reference output.
- Bulk inference — predict over a whole dataset with one SDK call.
- Python SDK reference — every class, every argument.
- Concepts — what a rollout is, why action conditioning matters, why we ship 48-frame canonical.
What ships today
- Two SDK surfaces: sync
dream.Clientand asyncdream.AsyncClient. - Two rollout shapes: single (
predict) and K-candidate batch (predict_batch) for visual MPC. - Per-frame metered billing through Stripe, no warm-pool minimum.
- Typed errors + automatic retries on transient failures.
- One active spec in the catalog — see
/docs/reference/modelsfor the live list. - Bulk inference helpers (
dream.io) — iterate any Hugging Face / S3 / local dataset of starting frames + actions; predict every row in one call. See Bulk inference.
More specs are queued in the model roadmap. The SDK contract is model-agnostic — when a new spec graduates, it surfaces on the catalog endpoint and existing client code keeps working unchanged.