Skip to main content

Dream Labs Dream-1

Dream-1 is Dream Labs' World Action Model (WAM): a hosted policy that maps camera frames + robot state to short action chunks (~1.6 seconds). It targets bimanual parallel-gripper arms and is meant for zero-shot control of unseen embodiments (research beta — not safety-validated).

OpenTryOn exposes it on the robot-act service (API only). There is no local Dream-1 policy checkpoint to run on your GPU; inference is through Dream Labs' gateway (POST /v1/get_action).

Registry idCheckpointNotes
dream-1dreamlabs/dream-1Full model (~$3/hr on Dream Labs pricing)
dream-1-flashdreamlabs/dream-1-flashFaster tier (~$2/hr)

Video world models (DreamDojo / GR-1) use a separate dream-engine SDK — not wired here.

Prerequisites​

pip install dreamlabs-client   # import dream

export DREAM_API_KEY=dl_live_... # platform / Dream Labs setup

Optional credentials file (~/.dreamlabs/credentials):

DREAM_GATEWAY_URL=https://api.dreamlabs.ai
DREAM_API_URL=https://platform.dreamlabs.ai
DREAM_DATA_URL=https://data.dreamlabs.ai
DREAM_API_KEY=dl_live_...

One policy step (CLI)​

Each CLI call performs policy → set_observation → get_action → close (one action chunk). Production loops call set_observation every camera tick and get_action on a worker thread — see the dreamlabs-client README.

opentryon robot-act --model dream-1 \
--frames frames.json \
--observation obs.json \
--policy-config yam_policy.json

opentryon robot-act --model dream-1-flash --frames frames.json --observation obs.json --dry-run

frames.json (example)​

{
"video.overhead": "<base64 JPEG, no data: prefix>",
"video.wrist_l": "<base64 JPEG>",
"video.wrist_r": "<base64 JPEG>"
}

obs.json (example)​

{
"state.right_arm": [0, 0, 0, 0, 0, 0],
"state.right_gripper": [0.5],
"state.left_arm": [0, 0, 0, 0, 0, 0],
"state.left_gripper": [0.5],
"prompt": "fold the towel"
}

Use float arrays compatible with your embodiment; YAM examples and ik / embodiment blocks are in the official client docs.

Python​

from tryon.api.dream_labs import Dream1Adapter

adapter = Dream1Adapter(checkpoint="dreamlabs/dream-1")
out = adapter.get_action(
frames="frames.json",
observation="obs.json",
policy_config={"strict": True, "ik": {"arm": "yam", "head": "joint"}},
)
print(out["action"])

MCP​

Tools: robot_act_dream_1, robot_act_dream_1_flash (generated from the registry). Key: DREAM_API_KEY.

Local weights​

Not available for Dream-1 policy inference. Dream Labs serves the model; you integrate via dreamlabs-client. For open-weight decision models (fashion QA / routing), see vLLM-SR d3 or Liquid d1.