Holds **static simulation data** in [[- MuJoCo -|MuJoCo]] (geometry, sensor definitions, ...). --- ```python print("=== MuJoCo Model Dimensions ===") print("nq (positions):", model.nq) print("nv (velocities):", model.nv) print("nu (actuators):", model.nu) print("na (activations):", model.na) print("nbody:", model.nbody) print("njnt:", model.njnt) print("ngeom:", model.ngeom) print("nsensor:", model.nsensor) print("nsite:", model.nsite) print("ncon (contacts):", data.ncon) print("===============================") ``` --- **Print Joint Names** ```python import mujoco model = mujoco.MjModel.from_xml_path("your_model.xml") for i in range(model.njnt): name = model.joint(i).name print(f"Joint {i}: {name}") ``` |Quantity|Attribute|Description| |---|---|---| |`nq`|`model.nq`|Number of position variables (`qpos`)| |`nv`|`model.nv`|Number of velocity variables (`qvel`)| |`nu`|`model.nu`|Number of actuators (`ctrl`, `actuator_force`)| |`na`|`model.na`|Number of activation states (for muscles, etc.)| |`nbody`|`model.nbody`|Number of bodies| |`njnt`|`model.njnt`|Number of joints| |`ngeom`|`model.ngeom`|Number of geoms| |`nsensor`|`model.nsensor`|Number of sensors| |`nsite`|`model.nsite`|Number of sites| |`nactuator`|`model.nu`|(Same as `nu`)| |`ncon`|`data.ncon`|Number of active contacts (from `data`)|