> ## Documentation Index
> Fetch the complete documentation index at: https://docs.reactor.inc/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> To build and serve your own model, start at /deploy/development/quickstart and /deploy/development/overview. Deploying is the default path: reactor init scaffolds a workspace, reactor auth login authenticates, and reactor model deploy registers the model, publishes the release with the weights/ folder, and activates it on Reactor's GPUs, in one command from that workspace. Docker must be running, because the publish step builds the image locally. Bump model.version in reactor.yaml before redeploying a change, because a release that already has an image is reactivated as it is. Deployment access is granted per account, so contact team@reactor.inc if a deploy is refused. Every key in reactor.yaml is documented at /deploy/platform/reactor-yaml. Model code imports reactor_runtime; Python client code imports reactor_sdk. The runtime overview explains the model interface. Running the model on your own machine with reactor run is optional and needs a GPU you attach with --gpus; /deploy/development/local-testing covers that loop and pairs a complete brightness model with a Python client test in a separate brightness-test workspace.
> Reactor hosts multiple models, each with its own connect slug (modelName) and command/event schema. The video model catalog — slug, typed SDK package, and links to its schema — is at /model-api-reference/overview. Robotics policy documentation starts at /robotics/overview; X-WAM observations, actions, and client integration are under /robotics/xwam/; Cosmos3 Nano Policy DROID is under /robotics/cosmos/nano-policy-droid/. Some models expose one slug per experience (e.g. HappyOyster); always take the slug from the model's own pages, never guess it.
> Fastest path to a working app: `npx create-reactor-app my-app --model=<slug>` scaffolds a complete app with secure auth wired up. Typed TypeScript SDKs are published as @reactor-models/<model>; Python uses the base reactor-sdk package.
> Auth: exchange an API key (rk_...) for a JWT via POST https://api.reactor.inc/tokens from your server. Never put the API key in client-side code.
> Append .md to any docs URL for clean Markdown. Search these docs via the MCP server at https://docs.reactor.inc/mcp.

# Run DreamZero DROID in simulation

> Connect the DreamZero gateway to NVIDIA RoboLab.

The public
[reference examples](https://github.com/reactor-team/reactor-cookbook/tree/main/robotics/sim/dreamzero)
include a gateway for NVIDIA RoboLab's DreamZero client. The gateway exposes an OpenPI-compatible
WebSocket endpoint; RoboLab runs the simulator and scores episodes, while Reactor runs inference.
The client code is public. Contact [Reactor](mailto:team@reactor.inc) if you need hosted model
access.

## Prepare the gateway

After [client setup](/robotics/dreamzero/droid/quickstart#install-the-reference-client), move from
`robotics/sim/notebooks/` to `robotics/sim/dreamzero/`:

```bash theme={"theme":{"light":"github-light","dark":"github-dark-high-contrast"}}
cd ../dreamzero
uv sync --frozen --python 3.12
uv run --frozen python check_wiring.py
uv run --frozen python -m dreamzero_sim.main --model reactor/dreamzero --host 127.0.0.1 --port 5000
```

`check_wiring.py` runs without an API key or simulator and checks the protocol, camera mapping,
state handling, and reset behavior. The gateway command requires `REACTOR_API_KEY`. The example
binds to localhost; choose an appropriate `--host` address if the simulator runs on a separate
machine.

## Run RoboLab

Install [RoboLab](https://github.com/NVlabs/RoboLab/tree/ad45d4f974725d020f82c2b0d77d78533aeba2b3)
and its supported Isaac Sim environment separately. The simulator needs graphics-capable hardware;
the gateway itself needs no GPU. From RoboLab's root in that environment, run:

```bash theme={"theme":{"light":"github-light","dark":"github-dark-high-contrast"}}
python policies/dreamzero/run.py \
  --task BananaInBowlTask --headless \
  --num-envs 1 --num-runs 1 --open-loop-horizon 24 \
  --remote-host 127.0.0.1 --remote-port 5000
```

Use the gateway machine's address for a remote simulator. Follow RoboLab's own installation and
container launcher instructions for its Python interpreter and assets.

The reference configuration executes a full 24-row chunk at 15 Hz. Keep `--num-envs 1`: one Reactor
session holds one episode's causal history. Multiple environments require separate sessions.
RoboLab's default black second exterior view maps to `exterior_2`; `exterior_1` remains the real
primary camera.

The gateway connects lazily on the first observation, after simulator startup. Its queue-fed tracks
send one frame per view per request rather than repeating held images between requests. It discards
already-seen `obs_seq` values; this is a freshness filter, not a client observation ID guarantee.

Expect a gateway listener, a connection on the first simulation request, `episode_started`, then
`(24, 8)` chunks. RoboLab writes evaluation output under its own `output/` directory. A passing
wiring check verifies transport behavior; task success must be measured in the simulator.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.