Skip to main content
MuJoCo is a high-performance physics engine favored in robotics research and reinforcement learning. Gizmo exports assets directly to MuJoCo’s native MJCF (MuJoCo XML) format, complete with bodies, joints, geoms, and inertial properties — so you can focus on building your simulation, not on manual model authoring.

Prerequisites

  • MuJoCo installed on your system. See mujoco.org for download and installation instructions.
  • A Python environment (recommended: Python 3.9+) with the mujoco Python bindings, or the MuJoCo standalone viewer.
  • A Gizmo account with alpha access. Contact viswajit@antimlabs.com if you need access.
  • At least one asset generated in Gizmo (see Generate Your First 3D Asset).

Steps

1

Generate an asset in Gizmo

Sign in at gizmo.antimlabs.com and generate the asset you want to use in your MuJoCo simulation.Write a descriptive prompt that captures the object’s materials, dimensions, and functional purpose. For example:
Standard metal wire grocery shopping cart with red plastic handle
See the Generate Assets guide for detailed prompt-writing tips.
2

Export as MuJoCo XML / MJCF

In the asset panel, click Export and select MuJoCo (MJCF/XML) as the target format.Gizmo will compile the asset’s geometry, articulation graph, and physics properties into a single MJCF-compliant XML file (and any associated mesh assets).
3

Download the exported file

Click Download to save the exported package to your local machine. The archive typically contains:
  • model.xml — the top-level MJCF file
  • meshes/ — STL or OBJ mesh files referenced by the MJCF
  • textures/ — texture maps, if applicable
Extract the archive and keep all files in the same directory structure, as the MJCF references mesh files by relative path.
Do not move mesh or texture files out of the folder structure produced by Gizmo. MuJoCo resolves asset paths relative to the XML file’s location.
4

Load in MuJoCo viewer or Python

You can inspect the model interactively in the MuJoCo viewer or load it programmatically in Python.
Use the mujoco Python package to load and step through the model:
import mujoco
import mujoco.viewer

# Load the model from the exported MJCF file
model = mujoco.MjModel.from_xml_path("path/to/model.xml")
data = mujoco.MjData(model)

# Launch the interactive viewer
with mujoco.viewer.launch_passive(model, data) as viewer:
    while viewer.is_running():
        mujoco.mj_step(model, data)
        viewer.sync()
Replace "path/to/model.xml" with the actual path to your downloaded MJCF file.
5

Verify joints and geometry

Once the model is loaded, inspect the following:
  • Bodies and geoms — Confirm the kinematic tree matches the expected structure (links, sub-links, end-effectors).
  • Joints — Check joint types (hinge, slide, ball, free), axes, and range limits in the viewer’s Joints panel.
  • Collision geometry — Toggle contact visualization to see collision shapes overlaid on the visual mesh.
  • Inertial properties — If you need to verify mass and inertia, inspect the <inertial> elements in the MJCF or query them via Python:
    for i in range(model.nbody):
        print(model.body(i).name, "mass:", model.body_mass[i])
    
Use MuJoCo’s built-in Contacts and Joints overlays (keyboard shortcuts C and J in the viewer) to quickly validate physics setup without editing the XML.

About MJCF

MJCF (MuJoCo Modeling Format) is MuJoCo’s native XML-based model description language. A single MJCF file describes the complete physics model of an object or robot:
MJCF elementWhat it defines
<worldbody>The root of the kinematic tree
<body>A rigid link with pose, inertia, and child elements
<geom>Collision and/or visual geometry (box, sphere, mesh, etc.)
<joint>A degree of freedom between a body and its parent
<actuator>Motors, position servos, or general actuators
<asset>Meshes, textures, and materials referenced in the model
Gizmo generates all of these elements automatically from your text description, so you receive a fully-specified, simulation-ready MJCF without writing a single line of XML by hand.

Physics fidelity and articulation

Gizmo exports include pre-configured articulation for all moving parts inferred from your description. Joint types, axes, and range limits are set automatically — for example, a Rolling Stool will have caster joints on its wheels, and a Wall Cabinet will have hinge joints on its doors.Mass and inertia values are estimated from geometry and material density. For high-precision dynamics research, you may want to override these values in the MJCF after export.
MuJoCo’s constraint-based solver handles the articulated dynamics at simulation time. Because Gizmo provides well-formed inertial properties and collision geometries, you should see stable, realistic behavior out of the box for most robotics manipulation and navigation tasks.