What it is
Reinforcement learning (RL) trains a policy by trial and error against a reward, not from demonstrations. On Cyberwave, the world your policy learns in is a real Cyberwave environment exported to MuJoCo, so the scene, twins, joints, and sensors are identical from training to deployment. When the policy is ready, the same Python SDK code that drove it in simulation drives the physical robot.New to the idea? Train an RL policy in MuJoCo is a step-by-step walkthrough from an empty environment to a policy running on real hardware. This page is the orientation; the tutorial is the details.
When to reach for RL
Most robot learning here starts with imitation: teleoperate, record, and train a VLA. Reach for RL when a demonstration isn’t available or isn’t the point:- You have an objective you can score (keep the part centred, cover every viewpoint, minimise energy) but not the exact joint trajectory.
- The motion is too precise or too tedious to teleoperate: contact-rich insertion, dynamic balancing, full-coverage inspection.
- You need millions of cheap rollouts, which are free in simulation and impossible on real hardware.
Two ways to train
Bring your own RL stack
Export the environment to MuJoCo and train with any library you like (Gymnasium + Stable-Baselines3, CleanRL, etc.). You own the training loop; Cyberwave provides the scene export and the sim-to-real bridge. Start here if you already have RL code.
Platform-managed RL Tasks
Author actions, observations, and the reward network in the dashboard, then export a runnable
mjlab/skrl task built on the open-source cyberwave-rl framework. Start here if you want structure and less boilerplate.The core idea in code
Whichever path you take, the sim-to-real seam is the same one line. Train and validate against the digital twin:The five steps
Approaching RL with Cyberwave is always the same five moves. You build the scene once; everything after reuses it.1
Set up the environment
Build your world in Cyberwave: the robot twin, any parts it interacts with, and the sensors the policy observes (e.g. a wrist camera).
2
Export to MuJoCo
Download the environment as a self-contained MuJoCo scene (
mujoco_scene.xml + meshes) that runs on your laptop, cluster, or CI.3
Write & train locally
Define a reward, wrap the scene as a training environment, and train on your own machine with MuJoCo and a CPU. Millions of cheap rollouts, no hardware.
4
Mirror to Cyberwave with affect('simulation')
Run the trained policy and stream its joint commands to the digital twin. Nothing touches hardware, so you can watch and validate it safely in the dashboard.
5
Drop affect() → go live
Switch to
affect('live') and the same code drives the real robot through its paired Edge Core.Next steps
Train an RL policy
The full walkthrough: export, train, mirror, deploy.
RL Tasks
Dashboard-authored tasks and the export contract.
Uploading policies
Store a checkpoint on Cyberwave and serve it as a controller.
Simulation
How MuJoCo, Playground, and
affect() fit together.Python SDK
Twins, joints, cameras, and the full SDK surface.
Train a VLA
The imitation-learning counterpart.