The Three Products
Studio — Authentication and Dashboard
The web app at bedrockdynamics.studio. Handles user accounts (via Clerk OAuth), API key management, task monitoring, session history, and billing. When a user signs up, Studio provisions their tenant in Roz automatically. Studio is the auth hub — Substrate and roz CLI both authenticate through it.Substrate — Native IDE for Robotics
A Rust-native desktop IDE (not Electron) built for robotics engineers. Combines a code editor, physics simulation viewer, 3D visualization, telemetry analysis, and MCAP recording in one application. Substrate connects to:- Gazebo/MuJoCo — via
gz-transport-rs, a pure Rust implementation of the Gazebo transport protocol - Roz Cloud — via gRPC bidirectional streaming for AI agent sessions
- Hardware — via MAVLink, ROS 2, and direct serial connections
roz — AI Agent Platform
The core orchestration engine. Available as:- CLI (
roz) — interactive REPL or headless--non-interactivemode - Cloud (
roz-server) — REST + gRPC API on Fly.io - Edge (
roz-worker) — runs on robots (Jetson, Pi, any Linux ARM/x86)
How They Connect
All three products authenticate via Clerk and hit the same Roz API. Studio is the auth hub, Substrate is the robotics IDE, roz is the execution engine.
Data Flow
Provider Modes
roz works with any LLM provider. Cloud is optional — everything except fleet management works without it.| Mode | Auth | How it works |
|---|---|---|
| Roz Cloud | roz auth login | Managed gateway, proxies to any model backend |
| OpenAI | roz auth login openai | OAuth with ChatGPT subscription (flat rate) |
| Anthropic | ANTHROPIC_API_KEY | Direct API, pay-per-token |
| Ollama | None needed | Local models, fully offline |
The Agent Pipeline
When a user says “wave the arm,” here’s what actually happens:Agent receives context
System prompt includes the robot’s capabilities (from
robot.toml), safety limits, and project instructions (from AGENTS.md).Agent writes code
The model generates WebAssembly Text (WAT) code implementing a
process(tick) function — the control loop that runs on each robot tick.Code compiles to WASM
The
execute_code tool compiles WAT to WASM via wasmtime. No unsafe code — the sandbox is capability-scoped.Verified in simulation
The WASM module runs 10 ticks in a Copper-rs sandbox. If any tick traps or violates safety bounds, the code is rejected and the agent retries.
cargo test -p roz-agent --test e2e_code_execution
Safety Architecture
Safety is enforced at every layer — the agent cannot override its own safety guards.| Layer | What it does | Can agent override? |
|---|---|---|
| Constitution (Tier 1) | Physical harm prevention, e-stop, workspace bounds | Never |
| SafetyStack | Runtime guards: velocity limits, geofence, battery | Never |
| roz-safety daemon | Separate process: heartbeat watchdog, e-stop issuer | No (out-of-process) |
| Hardware interlocks | Motor controller limits, endstops, brakes on power loss | No (hardware) |
Edge Deployment
On a robot, the stack looks like:Multi-Agent Teams
An orchestrator agent can spawn specialist workers on different robots:- Orchestrator calls
spawn_workertool with a task prompt and target host - Roz server creates a child task, dispatches via NATS to the target worker
- Child worker runs independently, publishes
TeamEvents to JetStream - Orchestrator calls
watch_teamto monitor progress - Workers can run different phases (React for planning, OodaReAct for physical execution)
Technology Stack
| Component | Technology | Why |
|---|---|---|
| Language | Rust (edition 2024) | Safety-critical, no GC pauses, ARM cross-compilation |
| On-robot runtime | Copper-rs | Sub-microsecond task scheduling, deterministic replay |
| WASM sandbox | wasmtime | Safe code execution, runs on any architecture |
| Local comms | Eclipse Zenoh | Peer-to-peer, zero-copy SHM, ROS 2 Tier 1 middleware |
| Cloud comms | NATS | Task dispatch, team events, JetStream persistence |
| Simulation | Gazebo via gz-transport-rs | Physics simulation, pure Rust transport (no C++ deps) |
| Workflows | Restate | Durable execution for task lifecycle |
| Database | PostgreSQL + sqlx | RLS on every table for tenant isolation |
| Auth | Clerk | OAuth, JWT, webhook-based tenant provisioning |
| Deployment | Fly.io | Edge-close hosting, multiplexed REST+gRPC |