Dream Engines

DreamDojo 2B · AGIBOT

VariantsAGIBOTGR-1G1YAM

2B-parameter action-conditioned video world model for the AgiBot G1 humanoid.

Example usage

DreamDojo 2B · AGIBOT runs on the Dream Engine inference stack and is accessible via the typed Python SDK. Generate an API key, set it as DREAM_API_KEY in your shell, and you’re ready to roll out.

Input
PYTHON
1# Install: pip install dream-engine
2import dream
3import numpy as np
4from PIL import Image
5
6client = dream.Client() # reads DREAM_API_KEY
7
8# Roll out 49 frames of 480x640 video. ~$0.0245 per call.
9img = Image.open("start.png")
10acts = np.load("actions_agibot.npy") # shape (48, 384)
11
12rollout = client.models.get("dreamdojo-2b-agibot").predict(
13 start_frame=img,
14 actions=acts,
15 seed=0,
16)
17
18print("frames:", rollout.frames, "cost:", rollout.cost_usd)
19print(rollout.to_json()) # full server-side envelope
20rollout.save("out.mp4")
JSON output
JSON
1{
2 "id": "rollout_8456fe51db3548789f199cfb8c8efd35",
3 "object": "rollout",
4 "model": "dreamdojo-2b-agibot",
5 "created": 1735236968,
6 "frames": 49,
7 "resolution": [480, 640],
8 "engine_wall_ms": 2616,
9 "cost_usd": 0.0245,
10 "video_url": "https://cdn.dreamengine.com/r/8456fe51.mp4",
11 "video_url_expires_at": 1735323368,
12 "seed": 0
13}

Real-time streaming sessions

For interactive use cases — game-engine inference loops, MPC controllers, agent rollouts where each step’s action depends on the previous frame — open a long-lived session. Frames stream back as they decode (low time-to-first-frame); submit a new action sequence and the last frame threads forward automatically. Read the protocol reference.

Streaming session
PYTHON
1# Install: pip install 'dream-engine[sessions]'
2import dream
3import numpy as np
4from PIL import Image
5
6client = dream.Client() # reads DREAM_API_KEY
7
8# Open a streaming session — frames arrive as they decode (low TTF).
9session = client.sessions.create(
10 model="dreamdojo-2b-gr1",
11 initial_frame=Image.open("start.png"),
12 seed=0,
13)
14try:
15 actions = np.zeros((48, 384), dtype=np.float32)
16 for frame in session.submit_actions(actions):
17 # frame is np.ndarray (H, W, 3) uint8 — display, decode, plan...
18 ...
19 # Submit another action sequence — last frame threads forward
20 # automatically; no re-upload.
21finally:
22 session.close() # idempotent; refunds unused prebudget