illusio Request Access
Claude Built alongside Anthropic 's Claude

Meet illusio

Text-to-physics environments for robots.

illusio >

Interactive Demo

Describe a rare failure mode in plain English. illusio uses Claude to build the 3D scene, run the physics, and stream synthetic training data.

OpenUSD
600Hz XPBD
128-Beam LiDAR
RLDS
Reasoning Backend
Claude Opus 5 & Sonnet 5
Scene Export
OpenUSD · MJCF · RLDS
Sensor Output
RGB-D · 128-Beam LiDAR · 3D BBox
Prompt: "Forklift drops asymmetric pallet in wet aisle; compute collision bounce"
RUNNING
Drag to rotate · Scroll to zoom
Applications

Built for physical AI applications

Warehouse AMRs

Spill recovery & blind aisle collisions.

LiDAR · Slip 01

Autonomous Vehicles

Night rain & occluded pedestrian hazards.

Stereo · Radar 02

Dexterous Grasping

600Hz deformable cables, cloth & glass.

URDF · XPBD 03

Aerial Drones

GPS-denied wire & wind-field navigation.

Optical · IMU 04
Architecture

How Claude runs illusio

Instead of hallucinating video pixels, Anthropic's Claude writes structured 3D physics code executed by our deterministic engine.

01 / Scene Planning

Plain English to 3D coordinates

Claude Opus 5 parses crash reports or test prompts into exact object positions, speeds, and surface friction.

02 / Tool Execution

Physics & collision verification

Claude Sonnet 5 calls illusio's OpenUSD tool schemas to spawn robots, vehicles, and obstacles with valid collision bounds.

03 / Edge-Case Loop

Automatic failure mutation

When a robot fails a test, Claude inspects the replay in illusio and generates harder variations until the policy passes.

Developer API

Generate training data in 10 lines of code

Robotics engineers call the illusio Python SDK to stream thousands of labelled training episodes directly into PyTorch.

import illusio

client = illusio.Client(model="claude-opus-5")

dataset = client.simulate(
    prompt="Wet warehouse aisle, forklift drops pallet at t=1.4s",
    robot="unitree_g1.urdf",
    sensors=["rgbd", "lidar_128", "bbox_3d"],
    episodes=250
)

for batch in dataset.to_torch(batch_size=16):
    policy.train_step(batch)