Lucky Robots — A million trials. Zero broken robots.
is supplied by (react-helmet) and baked into each prerendered page. -->
Simulate · Train · DeployInfinite Data Generation<br>for Robotic AI
We created the world's first game engine purpose-built for robotics.<br>Lucky Engine spins up virtual worlds where your robot can try, fail and learn a million times then steps into reality already knowing the job. No hardware to break, no lab time to book, no waiting.
MuJoCo physicsC# ScriptingPython SDKgRPC API
WalkerDriver.cs<br>using Hazel;
public class WalkerDriver : Entity<br>private RobotControllerComponent? m_Rcc;<br>private RobotController m_Robot;
protected override void OnCreate()<br>m_Rcc = GetComponentRobotControllerComponent>();<br>if (m_Rcc is null)<br>return;<br>m_Robot = m_Rcc;
m_Robot.SetPolicyActive(PolicyIds.Walker, true);
protected override void OnUpdate(float ts)<br>if (m_Rcc is null)<br>return;
m_Robot.SetFloat(<br>PolicyIds.Walker, WalkerCommands.SetVx, 0.5f);<br>m_Robot.SetFloat(<br>PolicyIds.Walker, WalkerCommands.SetVy, 0.0f);<br>m_Robot.SetFloat(<br>PolicyIds.Walker, WalkerCommands.SetYawRate, 0.0f);
gRPC + Python
agent = rpc.AgentServiceStub(channel)<br>scene = rpc.SceneServiceStub(channel)
scene.SetSimulationMode(pb.SetSimulationModeRequest(<br>mode=pb.SIMULATION_MODE_DETERMINISTIC_REALTIME))<br>schema = agent.GetAgentSchema(pb.GetAgentSchemaRequest()).schema<br>agent.ResetAgent(pb.ResetAgentRequest())
for _ in range(1000):<br># Each Step signals one action and releases exactly one physics tick.<br>resp = agent.Step(pb.StepRequest(actions=[0.0] * schema.action_size))<br>observation = resp.observation.observations # repeated float<br>if resp.terminated or resp.truncated:<br>agent.ResetAgent(pb.ResetAgentRequest())
agent.ReportProgress(pb.ProgressReport(finished=True))
Works with the robots you already ownUnitree G1Hello Robot Stretch 3FrankaDronesany MuJoCo XML
Download Lucky Engine
01 — Lucky EngineA new game engine built from ground up by the Lucky Robots team
This is not Unity or Unreal, it's a game engine purpose-built for robotics. You can record 10,000hz, and millions of accurate episodes for robotics AI training. A unique engine with accurate time and real-world physics underneath.
marble_run.sim
MuJoCo physicsVulkan render1 armmarble run
train.py<br># connect to the running simulation<br>from luckyrobots import LuckyRobots
lr = LuckyRobots()<br>lr.connect(robot="unitree_g1", scene="living_room")
for ep in range(1_000_000):<br>obs = lr.reset(randomize=True)<br>while not obs.done:<br>action = policy(obs.camera, obs.joints)<br>obs = lr.step(action) # logs a labeled episode
/01<br>Physically accurate SIM-TO-REAL<br>Industry-standard MuJoCo contact, friction and dynamics run underneath — so a grasp learned in simulation holds on the real arm.
/02<br>Realistic rendering VULKAN<br>A Vulkan renderer drives camera feeds close to what the real sensors see — the difference between a vision model that works and one that doesn't.
/03<br>LeRobot 3.0 Data Output DATASETS<br>Every motion logs camera frames, joint states and sensor streams as labeled episodes — ready for imitation and robot learning. Directly compatible with LeRobot 3.0.
/04<br>Drive it from Python gRPC SDK<br>Connect with the Lucky Robots library, script the robot in code, and run thousands of experiments unattended overnight.
/05<br>Full Game Dev Experience LUCKY EDITOR<br>Build scenes, place robots and design environments by drag-and-drop and using C#. You can make any environment just like you are making a game, make your robots play basketball if you like.
Run Lucky Engine locallyv2026.1 · free for research & personal useOlder versions<br>LinuxWindowsmacOS
Generate a million episodes. Ship the robot that learned. Train in simulation, deploy in reality.
Any embodiment Coming soonFly a drone through the same engine<br>Aerial robots run on the same MuJoCo physics and Python SDK as the arms and humanoids — autonomous flight, captured as labeled episodes.
live render · autonomous drone in MuJoCo flight
Articulated props Coming soonScenes full of objects that open
Fridges, grills and cabinets are rigged to open and close — so a policy can learn to manipulate the room, not just look at it.
articulated · appliances rigged to hinge open
articulated · doors and drawers that actually open
lucky editor · author articulation in the engine
Train at scaleFrom one blue cup to a million grasps
live render · G1 lifts a cup to inspect
live render · close-up cup-to-hand reach
0%*<br>less time and budget than training on real hardware
labeled episodes your team can train on
robots dropped, bricked or broken getting here
02 — LuckyHubExtending Hugging Face for robotics<br>Projects, datasets, models and runs together in one workspace. Train in simulation, replay every episode, and roll the best policy straight to production. Your whole team, in sync.<br>AI creditssim minutestask episodeshobby → enterprise<br>Coming Soon
01Host<br>REPOS<br>One workspace for robot projects, datasets and models with orgs and teams so the whole crew ships...