Rendered by LavenderSim

See the tasks before you train them.

Every image below is produced by LavenderSim’s native RGB sensor from the same Python scene used by the RL environment. Pick a task, run its smoke controller, then replace it with a learned policy.

About these imagesThe native sensor renders at 160×120 and the documentation generator scales it 4× without inventing detail. Regenerate all images with .venv/bin/python docs-site/scripts/render_scenes.py.
Native RGB camera render of Cart-pole balance
CartPoleBalance-v0

Cart-pole balance

One effort actuator learns to center the cart while keeping the passive pole upright.

terminal
python examples/envs/cartpole_balance.py --steps 600 --web
Native RGB camera render of Tilt maze
TiltMaze-v0

Tilt maze

Two board axes steer a low-friction ball; success requires reaching the goal and settling.

terminal
python examples/envs/tilt_maze.py --steps 600 --web
Native RGB camera render of Rover waypoint
RoverWaypoint-v0

Rover waypoint

Differential wheel velocity commands use a nine-ray lidar fan to reach randomized goals.

terminal
python examples/envs/rover_waypoint.py --steps 600 --web
Native RGB camera render of Quadruped terrain
QuadrupedTerrain-v0

Quadruped terrain

Twelve joint targets track body-relative direction and speed commands over terrain.

terminal
python examples/envs/quadruped_terrain.py --steps 600 --web
Native RGB camera render of Tactile gripper
TactileGripperLift-v0

Tactile gripper

Coupled jaws combine tactile contact, wrist wrench sensing, lifting, and stable holding.

terminal
python examples/envs/tactile_gripper_lift.py --steps 600 --web
Native RGB camera render of Peg insertion
PegInsertion-v0

Peg insertion

Named sites measure alignment while filtered force and torque penalize destructive contact.

terminal
python examples/envs/peg_insertion.py --steps 600 --web
Live browser mode

What changes when you add --web?

The native simulation stays in Python. A small server publishes body poses and telemetry to the WebGL page. Browser buttons, speed sliders, and clicked floor targets travel back to Python as commands.

Python simulation and browser visualization architecture
Try a trained controller

Run the policy-specific viewers.

Quadruped commands

terminal
python -m experiment.serve_quadruped \
  --checkpoint experiment/runs/quadruped_ppo/checkpoint.pt

Use direction buttons and the speed slider; Python updates the policy input.

Manipulator targets

terminal
python -m experiment.serve_manipulator \
  --checkpoint experiment/runs/manipulator_ppo/checkpoint.pt

Click the floor to place the target marker and send its X/Z location to Python.