Native physics · Python control · Web visualization

Robotics worlds,
authored in Python.

Define bodies, joints, sensors, rewards, and interaction loops in regular Python. Run the same compact C++ physics core on macOS, Linux, and WebAssembly.

$ pip install lavendersim

from lavendersim.env import make

env = make("RoverWaypoint-v0", seed=7)
obs, info = env.reset(seed=7)

obs, reward, terminated, truncated, info = \
    env.step(env.action_space.sample())

print(obs.shape, reward)
# (28,) 0.294...
Lavender storybook cat reading a robotics book

Chapter one: make a tiny world, then teach it something curious.

13registered RL tasks
32×default CPU rollout workers
3native targets: Linux, macOS, WASM
0XML required
Actual native camera output

Small scenes. Real control problems.

These are not concept art. They are deterministic RGB frames rendered by LavenderSim’s C++ camera sensor from registered Python environments.

Native camera render of the quadruped environment
QuadrupedTerrain-v012 actions · command tracking
Native camera render of the tilt maze environment
TiltMaze-v0arrive and settle
A small, practical stack

From scene definition to trained policy.

LavenderSim keeps task logic visible and hackable while moving physics into a compact native engine.

01 / AUTHOR

Python-first scenes

Create geometry, articulated actors, sensors, actuators, terrain, and task logic through a validated Python DSL.

02 / SENSE

Robotics observations

IMUs, tactile grids, range fans, cameras, named sites, contact force/torque, noise, filtering, and delay.

03 / ACT

Useful actuation

Position, velocity, effort, impedance, gear and force limits, activation dynamics, and fixed tendon coupling.

04 / TRAIN

CPU PPO included

Flat policy observations, seeded randomization, process-vectorized rollouts, checkpoints, and evaluation tools.

05 / BRANCH

Deterministic snapshots

Save simulation, sensor, actuator, time, and RNG state. Restore it to compare alternate action sequences.

06 / SEE

Python-owned web UI

Stream authoritative native poses to the browser and send motion commands or clicked targets back to Python.

The full loop

Policy training and visualization share one source of truth.

Python defines what the task means. The native engine advances physics and sensors. The browser displays authoritative poses instead of running a second, drifting simulation.

LavenderSim Python, native engine, policy, and browser architecture
Benchmarks included

Learn balance, locomotion, sensing, and manipulation.

LOCOMOTION

Quadruped terrain

Track randomized body-relative direction and speed using 12 joints, an IMU, and terrain probes.

MANIPULATION

Peg insertion

Align named frames while using filtered contact force and torque to control insertion.

NAVIGATION

Rover waypoint

Drive over a heightfield toward randomized goals with differential wheels and ray-fan lidar.

Experimental and AI-generated. Almost the entire project was generated by GPT-5.6 Sol under human direction. LavenderSim is alpha research software—not a validated MuJoCo replacement or a safety-certified robotics system.