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`)|