Skip to content

Unitree G1 is a humanoid with 29 joints, made by Unitree Robotics. This model comes from MuJoCo Menagerie by Google DeepMind, under the BSD-3-Clause licence. Not made by Lucen Robotics. Listed as a reference model for simulation.

humanoid29 joints33.3 kg in simulation50 Hz

Use with your AI

Add this to your AI’s MCP settings (.mcp.json for Claude Code). A read-only key is enough to browse. Nothing here starts a robot. Use the hub from your AI.

{
  "mcpServers": {
    "lucen": {
      "command": "lucen-mcp",
      "env": {
        "LUCEN_API_KEY": "lucen_sk_...",
        "LUCEN_API_URL": "https://api.mousemouse.ai"
      }
    }
  }
}

Or give your AI the task in words. The prompt names the tools and the exact commands.

You have the MouseMouse MCP server (lucen-mcp) configured against https://api.mousemouse.ai.
Work with the robot repo lucen/unitree-g1 on that hub.
1. Read its card with get_robot_card(owner, repo) and its policies with search_repos(kind="model", robot="lucen/unitree-g1").
2. To train for it, submit a run with submit_training using template ppo_mujoco and robot "lucen/unitree-g1" (the CLI equivalent is: lucen runs create --template ppo_mujoco --robot lucen/unitree-g1 --executor worker).
3. Never start, stop or steer a robot: a handoff is request_deploy, and a person approves it in the Inbox.
Unitree G1, standing in its home pose

Move its joints, or let it fall under gravity, in your browser. About 10 MB the first time. Open the full simulator

README

README.md

Unitree G1

Unitree G1 is a humanoid with 29 joints, made by Unitree Robotics. This model comes from MuJoCo Menagerie by Google DeepMind, under the BSD-3-Clause licence. The licence text is in LICENSE.

Not made by Lucen Robotics. Listed as a reference model for simulation.

The source's own README is kept unchanged as SOURCE_README.md.

How it was set up

The files come from unitree_g1 in MuJoCo Menagerie, at commit 822c2d8. The robot card was drafted from the model by lucen robot init, as in Add your robot.

The model file does not state the values below. Each one comes from the source beside it.

SettingValueWhere it comes from
Control rate50 HzPlayground g1/joystick.py ctrl_dt=0.02
Actionoffset from the default posePlayground g1/joystick.py: motor_targets = default_pose + action * action_scale
Action scale0.5Playground g1/joystick.py action_scale=0.5
What a policy sensesjoint positions, joint velocities, base angular velocity, gravity directionthe G1's joint encoders and IMU
Commandforward, sideways and turning speedPlayground's joystick command (vx, vy, yaw)
Everything elseread from the model filejoint order, the stand keyframe, ranges, and kp 500 with per-joint kv and force limits from the MJCF's own <position> actuators (Menagerie's README calls them "needs tuning").

The configs cited above, at the commits read:

  • Playground: MuJoCo Playground, commit 4057c14. Each robot's task file, under locomotion or manipulation, in its default_config().

No file from the source was changed. This README, the robot card and the robot's pictures are new.