MuJoCo Warp API#

Public API for MJWarp.

step(m: Model, d: Data)[source]#

Advance simulation.

class Model[source]#

Model definition and parameters.

nq#

number of generalized coordinates

Type:

int

nv#

number of degrees of freedom

Type:

int

nu#

number of actuators/controls

Type:

int

na#

number of activation states

Type:

int

nbody#

number of bodies

Type:

int

noct#

number of total octree cells in all meshes

Type:

int

njnt#

number of joints

Type:

int

ntree#

number of kinematic trees

Type:

int

nM#

number of non-zeros in sparse inertia matrix

Type:

int

nC#

number of non-zeros in sparse body-dof matrix

Type:

int

ngeom#

number of geoms

Type:

int

nsite#

number of sites

Type:

int

ncam#

number of cameras

Type:

int

nlight#

number of lights

Type:

int

nflex#

number of flexes

Type:

int

nflexvert#

number of vertices in all flexes

Type:

int

nflexedge#

number of edges in all flexes

Type:

int

nflexelem#

number of elements in all flexes

Type:

int

nflexelemdata#

number of element vertex ids in all flexes

Type:

int

nflexelemedge#

number of element edge ids in all flexes

Type:

int

nmesh#

number of meshes

Type:

int

nmeshvert#

number of vertices for all meshes

Type:

int

nmeshnormal#

number of normals in all meshes

Type:

int

nmeshface#

number of faces for all meshes

Type:

int

nmeshgraph#

number of ints in mesh auxiliary data

Type:

int

nmeshpoly#

number of polygons in all meshes

Type:

int

nmeshpolyvert#

number of vertices in all polygons

Type:

int

nmeshpolymap#

number of polygons in vertex map

Type:

int

nhfield#

number of heightfields

Type:

int

nhfielddata#

size of elevation data

Type:

int

nmat#

number of materials

Type:

int

npair#

number of predefined geom pairs

Type:

int

nexclude#

number of excluded geom pairs

Type:

int

neq#

number of equality constraints

Type:

int

ntendon#

number of tendons

Type:

int

nwrap#

number of wrap objects in all tendon paths

Type:

int

nsensor#

number of sensors

Type:

int

nmocap#

number of mocap bodies

Type:

int

nplugin#

number of plugin instances

Type:

int

ngravcomp#

number of bodies with nonzero gravcomp

Type:

int

nsensordata#

number of elements in sensor data vector

Type:

int

opt#

physics options

Type:

mujoco_warp._src.types.Option

stat#

model statistics

Type:

mujoco_warp._src.types.Statistic

qpos0#

qpos values at default pose (*, nq)

Type:

array(ndim=2, dtype=float32)

qpos_spring#

reference pose for springs (*, nq)

Type:

array(ndim=2, dtype=float32)

body_parentid#

id of body’s parent (nbody,)

Type:

array(ndim=1, dtype=int32)

body_rootid#

id of root above body (nbody,)

Type:

array(ndim=1, dtype=int32)

body_weldid#

id of body that this body is welded to (nbody,)

Type:

array(ndim=1, dtype=int32)

body_mocapid#

id of mocap data; -1: none (nbody,)

Type:

array(ndim=1, dtype=int32)

body_jntnum#

number of joints for this body (nbody,)

Type:

array(ndim=1, dtype=int32)

body_jntadr#

start addr of joints; -1: no joints (nbody,)

Type:

array(ndim=1, dtype=int32)

body_dofnum#

number of motion degrees of freedom (nbody,)

Type:

array(ndim=1, dtype=int32)

body_dofadr#

start addr of dofs; -1: no dofs (nbody,)

Type:

array(ndim=1, dtype=int32)

body_treeid#

id of body’s tree; -1: static (nbody,)

Type:

array(ndim=1, dtype=int32)

body_geomnum#

number of geoms (nbody,)

Type:

array(ndim=1, dtype=int32)

body_geomadr#

start addr of geoms; -1: no geoms (nbody,)

Type:

array(ndim=1, dtype=int32)

body_pos#

position offset rel. to parent body (*, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

body_quat#

orientation offset rel. to parent body (*, nbody, 4)

Type:

array(ndim=2, dtype=quatf)

body_ipos#

local position of center of mass (*, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

body_iquat#

local orientation of inertia ellipsoid (*, nbody, 4)

Type:

array(ndim=2, dtype=quatf)

body_mass#

mass (*, nbody,)

Type:

array(ndim=2, dtype=float32)

body_subtreemass#

mass of subtree starting at this body (*, nbody,)

Type:

array(ndim=2, dtype=float32)

body_inertia#

diagonal inertia in ipos/iquat frame (*, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

body_invweight0#

mean inv inert in qpos0 (trn, rot) (*, nbody, 2)

Type:

array(ndim=2, dtype=vec2f)

body_gravcomp#

antigravity force, units of body weight (*, nbody)

Type:

array(ndim=2, dtype=float32)

body_contype#

OR over all geom contypes (nbody,)

Type:

array(ndim=1, dtype=int32)

body_conaffinity#

OR over all geom conaffinities (nbody,)

Type:

array(ndim=1, dtype=int32)

oct_child#

octree children (noct, 8)

Type:

array(ndim=1, dtype=vector(length=8, dtype=int32))

oct_aabb#

octree axis-aligned bounding boxes (noct, 2, 3)

Type:

array(ndim=2, dtype=vec3f)

oct_coeff#

octree interpolation coefficients (noct, 8)

Type:

array(ndim=1, dtype=vector(length=8, dtype=float32))

jnt_type#

type of joint (JointType) (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_qposadr#

start addr in ‘qpos’ for joint’s data (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_dofadr#

start addr in ‘qvel’ for joint’s data (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_bodyid#

id of joint’s body (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_limited#

does joint have limits (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_actfrclimited#

does joint have actuator force limits (njnt,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

jnt_actgravcomp#

is gravcomp force applied via actuators (njnt,)

Type:

array(ndim=1, dtype=int32)

jnt_solref#

constraint solver reference: limit (*, njnt, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

jnt_solimp#

constraint solver impedance: limit (*, njnt, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

jnt_pos#

local anchor position (*, njnt, 3)

Type:

array(ndim=2, dtype=vec3f)

jnt_axis#

local joint axis (*, njnt, 3)

Type:

array(ndim=2, dtype=vec3f)

jnt_stiffness#

stiffness coefficient (*, njnt)

Type:

array(ndim=2, dtype=float32)

jnt_range#

joint limits (*, njnt, 2)

Type:

array(ndim=2, dtype=vec2f)

jnt_actfrcrange#

range of total actuator force (*, njnt, 2)

Type:

array(ndim=2, dtype=vec2f)

jnt_margin#

min distance for limit detection (*, njnt)

Type:

array(ndim=2, dtype=float32)

dof_bodyid#

id of dof’s body (nv,)

Type:

array(ndim=1, dtype=int32)

dof_jntid#

id of dof’s joint (nv,)

Type:

array(ndim=1, dtype=int32)

dof_parentid#

id of dof’s parent; -1: none (nv,)

Type:

array(ndim=1, dtype=int32)

dof_treeid#

id of dof’s tree (nv,)

Type:

array(ndim=1, dtype=int32)

dof_Madr#

dof address in M-diagonal (nv,)

Type:

array(ndim=1, dtype=int32)

dof_solref#

constraint solver reference: frictionloss (*, nv, NREF)

Type:

array(ndim=2, dtype=vec2f)

dof_solimp#

constraint solver impedance: frictionloss (*, nv, NIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

dof_frictionloss#

dof friction loss (*, nv)

Type:

array(ndim=2, dtype=float32)

dof_armature#

dof armature inertia/mass (*, nv)

Type:

array(ndim=2, dtype=float32)

dof_damping#

damping coefficient (*, nv)

Type:

array(ndim=2, dtype=float32)

dof_invweight0#

diag. inverse inertia in qpos0 (*, nv)

Type:

array(ndim=2, dtype=float32)

tree_bodynum#

number of bodies in tree (incl. root) (ntree,)

Type:

array(ndim=1, dtype=int32)

tree_dofadr#

start address of tree’s dofs (ntree,)

Type:

array(ndim=1, dtype=int32)

tree_dofnum#

number of dofs in tree (ntree,)

Type:

array(ndim=1, dtype=int32)

geom_type#

geometric type (GeomType) (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_contype#

geom contact type (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_conaffinity#

geom contact affinity (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_condim#

contact dimensionality (1, 3, 4, 6) (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_bodyid#

id of geom’s body (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_dataid#

id of geom’s mesh/hfield; -1: none (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_matid#

material id for rendering (*, ngeom,)

Type:

array(ndim=2, dtype=int32)

geom_group#

geom group inclusion/exclusion mask (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_priority#

geom contact priority (ngeom,)

Type:

array(ndim=1, dtype=int32)

geom_solmix#

mixing coef for solref/imp in geom pair (*, ngeom,)

Type:

array(ndim=2, dtype=float32)

geom_solref#

constraint solver reference: contact (*, ngeom, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

geom_solimp#

constraint solver impedance: contact (*, ngeom, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

geom_size#

geom-specific size parameters (*, ngeom, 3)

Type:

array(ndim=2, dtype=vec3f)

geom_aabb#

bounding box, (center, size) (*, ngeom, 2, 3)

Type:

array(ndim=3, dtype=vec3f)

geom_rbound#

radius of bounding sphere (*, ngeom,)

Type:

array(ndim=2, dtype=float32)

geom_pos#

local position offset rel. to body (*, ngeom, 3)

Type:

array(ndim=2, dtype=vec3f)

geom_quat#

local orientation offset rel. to body (*, ngeom, 4)

Type:

array(ndim=2, dtype=quatf)

geom_friction#

friction for (slide, spin, roll) (*, ngeom, 3)

Type:

array(ndim=2, dtype=vec3f)

geom_margin#

detect contact if dist<margin (*, ngeom,)

Type:

array(ndim=2, dtype=float32)

geom_gap#

include in solver if dist<margin-gap (*, ngeom,)

Type:

array(ndim=2, dtype=float32)

geom_fluid#

fluid interaction parameters (ngeom, mjNFLUID)

Type:

array(ndim=2, dtype=float32)

geom_rgba#

rgba when material is omitted (*, ngeom, 4)

Type:

array(ndim=2, dtype=vec4f)

site_type#

geom type for rendering (GeomType) (nsite,)

Type:

array(ndim=1, dtype=int32)

site_bodyid#

id of site’s body (nsite,)

Type:

array(ndim=1, dtype=int32)

site_size#

geom size for rendering (nsite, 3)

Type:

array(ndim=1, dtype=vec3f)

site_pos#

local position offset rel. to body (*, nsite, 3)

Type:

array(ndim=2, dtype=vec3f)

site_quat#

local orientation offset rel. to body (*, nsite, 4)

Type:

array(ndim=2, dtype=quatf)

cam_mode#

camera tracking mode (CamLightType) (ncam,)

Type:

array(ndim=1, dtype=int32)

cam_bodyid#

id of camera’s body (ncam,)

Type:

array(ndim=1, dtype=int32)

cam_targetbodyid#

id of targeted body; -1: none (ncam,)

Type:

array(ndim=1, dtype=int32)

cam_pos#

position rel. to body frame (*, ncam, 3)

Type:

array(ndim=2, dtype=vec3f)

cam_quat#

orientation rel. to body frame (*, ncam, 4)

Type:

array(ndim=2, dtype=quatf)

cam_poscom0#

global position rel. to sub-com in qpos0 (*, ncam, 3)

Type:

array(ndim=2, dtype=vec3f)

cam_pos0#

global position rel. to body in qpos0 (*, ncam, 3)

Type:

array(ndim=2, dtype=vec3f)

cam_mat0#

global orientation in qpos0 (*, ncam, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

cam_projection#

projection type (ProjectionType) (ncam,)

Type:

array(ndim=1, dtype=int32)

cam_fovy#

y field-of-view (ortho ? len : deg) (*, ncam)

Type:

array(ndim=2, dtype=float32)

cam_resolution#

resolution: pixels [width, height] (ncam, 2)

Type:

array(ndim=1, dtype=vec2i)

cam_sensorsize#

sensor size: length [width, height] (ncam, 2)

Type:

array(ndim=1, dtype=vec2f)

cam_intrinsic#

[focal length; principal point] (*, ncam, 4)

Type:

array(ndim=2, dtype=vec4f)

light_mode#

light tracking mode (CamLightType) (nlight,)

Type:

array(ndim=1, dtype=int32)

light_bodyid#

id of light’s body (nlight,)

Type:

array(ndim=1, dtype=int32)

light_targetbodyid#

id of targeted body; -1: none (nlight,)

Type:

array(ndim=1, dtype=int32)

light_type#

spot, directional, etc. (mjtLightType) (*, nlight)

Type:

array(ndim=2, dtype=int32)

light_castshadow#

does light cast shadows (*, nlight)

Type:

array(ndim=2, dtype=warp._src.types.bool)

light_active#

is light active (*, nlight)

Type:

array(ndim=2, dtype=warp._src.types.bool)

light_pos#

position rel. to body frame (*, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

light_dir#

direction rel. to body frame (*, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

light_poscom0#

global position rel. to sub-com in qpos0 (*, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

light_pos0#

global position rel. to body in qpos0 (*, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

light_dir0#

global direction in qpos0 (*, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

flex_dim#

1: lines, 2: triangles, 3: tetrahedra (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_vertadr#

first vertex address (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_vertnum#

number of vertices (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_edgeadr#

first edge address (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_edgenum#

number of edges (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_elemadr#

first element address (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_elemnum#

number of elements (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_elemedgeadr#

first element address (nflex,)

Type:

array(ndim=1, dtype=int32)

flex_vertbodyid#

vertex body ids (nflexvert,)

Type:

array(ndim=1, dtype=int32)

flex_edge#

edge vertex ids (2 per edge) (nflexedge, 2)

Type:

array(ndim=1, dtype=vec2i)

flex_edgeflap#

adjacent vertex ids (dim=2 only) (nflexedge, 2)

Type:

array(ndim=1, dtype=vec2i)

flex_elem#

element vertex ids (dim+1 per elem) (nflexelemdata,)

Type:

array(ndim=1, dtype=int32)

flex_elemedge#

element edge ids (nflexelemedge,)

Type:

array(ndim=1, dtype=int32)

flexedge_length0#

edge lengths in qpos0 (nflexedge,)

Type:

array(ndim=1, dtype=float32)

flexedge_invweight0#

inv. inertia for the edge (nflexedge,)

Type:

array(ndim=1, dtype=float32)

flex_stiffness#

finite element stiffness matrix (nflexelem, 21)

Type:

array(ndim=2, dtype=float32)

flex_bending#

bending stiffness (nflexedge, 17)

Type:

array(ndim=2, dtype=float32)

flex_damping#

Rayleigh’s damping coefficient (nflex,)

Type:

array(ndim=1, dtype=float32)

flexedge_J_rownnz#

number of nonzeros in Jacobian row (nflexedge,)

Type:

array(ndim=1, dtype=int32)

flexedge_J_rowadr#

row start address in colind array (nflexedge,)

Type:

array(ndim=1, dtype=int32)

flexedge_J_colind#

column indices in sparse Jacobian (nJfe,)

Type:

array(ndim=1, dtype=int32)

mesh_vertadr#

first vertex address (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_vertnum#

number of vertices (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_faceadr#

first face address (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_normaladr#

first normal address (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_graphadr#

graph data address; -1: no graph (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_vert#

vertex positions for all meshes (nmeshvert, 3)

Type:

array(ndim=1, dtype=vec3f)

mesh_normal#

normals for all meshes (nmeshnormal, 3)

Type:

array(ndim=1, dtype=vec3f)

mesh_face#

face indices for all meshes (nface, 3)

Type:

array(ndim=1, dtype=vec3i)

mesh_graph#

convex graph data (nmeshgraph,)

Type:

array(ndim=1, dtype=int32)

mesh_quat#

rotation applied to asset vertices (nmesh, 4)

Type:

array(ndim=1, dtype=quatf)

mesh_polynum#

number of polygons per mesh (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_polyadr#

first polygon address per mesh (nmesh,)

Type:

array(ndim=1, dtype=int32)

mesh_polynormal#

all polygon normals (nmeshpoly, 3)

Type:

array(ndim=1, dtype=vec3f)

mesh_polyvertadr#

polygon vertex start address (nmeshpoly,)

Type:

array(ndim=1, dtype=int32)

mesh_polyvertnum#

number of vertices per polygon (nmeshpoly,)

Type:

array(ndim=1, dtype=int32)

mesh_polyvert#

all polygon vertices (nmeshpolyvert,)

Type:

array(ndim=1, dtype=int32)

mesh_polymapadr#

first polygon address per vertex (nmeshvert,)

Type:

array(ndim=1, dtype=int32)

mesh_polymapnum#

number of polygons per vertex (nmeshvert,)

Type:

array(ndim=1, dtype=int32)

mesh_polymap#

vertex to polygon map (nmeshpolymap,)

Type:

array(ndim=1, dtype=int32)

hfield_size#

(x, y, z_top, z_bottom) (nhfield, 4)

Type:

array(ndim=1, dtype=vec4f)

hfield_nrow#

number of rows in grid (nhfield,)

Type:

array(ndim=1, dtype=int32)

hfield_ncol#

number of columns in grid (nhfield,)

Type:

array(ndim=1, dtype=int32)

hfield_adr#

start address in hfield_data (nhfield,)

Type:

array(ndim=1, dtype=int32)

hfield_data#

elevation data (nhfielddata,)

Type:

array(ndim=1, dtype=float32)

mat_texid#

texture id for rendering (*, nmat, mjNTEXROLE)

Type:

array(ndim=3, dtype=int32)

mat_texrepeat#

texture repeat for rendering (*, nmat, 2)

Type:

array(ndim=2, dtype=vec2f)

mat_rgba#

rgba (*, nmat, 4)

Type:

array(ndim=2, dtype=vec4f)

pair_dim#

contact dimensionality (npair,)

Type:

array(ndim=1, dtype=int32)

pair_geom1#

id of geom1 (npair,)

Type:

array(ndim=1, dtype=int32)

pair_geom2#

id of geom2 (npair,)

Type:

array(ndim=1, dtype=int32)

pair_solref#

solver reference: contact normal (*, npair, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

pair_solreffriction#

solver reference: contact friction (*, npair, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

pair_solimp#

solver impedance: contact (*, npair, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

pair_margin#

detect contact if dist<margin (*, npair,)

Type:

array(ndim=2, dtype=float32)

pair_gap#

include in solver if dist<margin-gap (*, npair,)

Type:

array(ndim=2, dtype=float32)

pair_friction#

tangent1, 2, spin, roll1, 2 (*, npair, 5)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

exclude_signature#

body1 << 16 + body2 (nexclude,)

Type:

array(ndim=1, dtype=int32)

eq_type#

constraint type (EqType) (neq,)

Type:

array(ndim=1, dtype=int32)

eq_obj1id#

id of object 1 (neq,)

Type:

array(ndim=1, dtype=int32)

eq_obj2id#

id of object 2 (neq,)

Type:

array(ndim=1, dtype=int32)

eq_objtype#

type of both objects (ObjType) (neq,)

Type:

array(ndim=1, dtype=int32)

eq_active0#

initial enable/disable constraint state (neq,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

eq_solref#

constraint solver reference (*, neq, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

eq_solimp#

constraint solver impedance (*, neq, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

eq_data#

numeric data for constraint (*, neq, mjNEQDATA)

Type:

array(ndim=2, dtype=vector(length=11, dtype=float32))

tendon_adr#

address of first object in tendon’s path (ntendon,)

Type:

array(ndim=1, dtype=int32)

tendon_num#

number of objects in tendon’s path (ntendon,)

Type:

array(ndim=1, dtype=int32)

tendon_limited#

does tendon have length limits (ntendon,)

Type:

array(ndim=1, dtype=int32)

tendon_actfrclimited#

does ten have actuator force limit (ntendon,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

tendon_solref_lim#

constraint solver reference: limit (*, ntendon, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

tendon_solimp_lim#

constraint solver impedance: limit (*, ntendon, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

tendon_solref_fri#

constraint solver reference: friction (*, ntendon, mjNREF)

Type:

array(ndim=2, dtype=vec2f)

tendon_solimp_fri#

constraint solver impedance: friction (*, ntendon, mjNIMP)

Type:

array(ndim=2, dtype=vector(length=5, dtype=float32))

tendon_range#

tendon length limits (*, ntendon, 2)

Type:

array(ndim=2, dtype=vec2f)

tendon_actfrcrange#

range of total actuator force (*, ntendon, 2)

Type:

array(ndim=2, dtype=vec2f)

tendon_margin#

min distance for limit detection (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_stiffness#

stiffness coefficient (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_damping#

damping coefficient (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_armature#

inertia associated with tendon velocity (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_frictionloss#

loss due to friction (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_lengthspring#

spring resting length range (*, ntendon, 2)

Type:

array(ndim=2, dtype=vec2f)

tendon_length0#

tendon length in qpos0 (*, ntendon)

Type:

array(ndim=2, dtype=float32)

tendon_invweight0#

inv. weight in qpos0 (*, ntendon)

Type:

array(ndim=2, dtype=float32)

wrap_type#

wrap object type (WrapType) (nwrap,)

Type:

array(ndim=1, dtype=int32)

wrap_objid#

object id: geom, site, joint (nwrap,)

Type:

array(ndim=1, dtype=int32)

wrap_prm#

divisor, joint coef, or site id (nwrap,)

Type:

array(ndim=1, dtype=float32)

actuator_trntype#

transmission type (TrnType) (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_dyntype#

dynamics type (DynType) (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_gaintype#

gain type (GainType) (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_biastype#

bias type (BiasType) (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_trnid#

transmission id: joint, tendon, site (nu, 2)

Type:

array(ndim=1, dtype=vec2i)

actuator_actadr#

first activation address; -1: stateless (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_actnum#

number of activation variables (nu,)

Type:

array(ndim=1, dtype=int32)

actuator_ctrllimited#

is control limited (nu,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

actuator_forcelimited#

is force limited (nu,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

actuator_actlimited#

is activation limited (nu,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

actuator_dynprm#

dynamics parameters (*, nu, mjNDYN)

Type:

array(ndim=2, dtype=vector(length=10, dtype=float32))

actuator_gainprm#

gain parameters (*, nu, mjNGAIN)

Type:

array(ndim=2, dtype=vector(length=10, dtype=float32))

actuator_biasprm#

bias parameters (*, nu, mjNBIAS)

Type:

array(ndim=2, dtype=vector(length=10, dtype=float32))

actuator_actearly#

step activation before force (nu,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

actuator_ctrlrange#

range of controls (*, nu, 2)

Type:

array(ndim=2, dtype=vec2f)

actuator_forcerange#

range of forces (*, nu, 2)

Type:

array(ndim=2, dtype=vec2f)

actuator_actrange#

range of activations (*, nu, 2)

Type:

array(ndim=2, dtype=vec2f)

actuator_gear#

scale length and transmitted force (*, nu, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

actuator_cranklength#

crank length for slider-crank (nu,)

Type:

array(ndim=1, dtype=float32)

actuator_acc0#

acceleration from unit force in qpos0 (nu,)

Type:

array(ndim=1, dtype=float32)

actuator_lengthrange#

feasible actuator length range (nu, 2)

Type:

array(ndim=1, dtype=vec2f)

sensor_type#

sensor type (SensorType) (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_datatype#

numeric data type (DataType) (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_objtype#

type of sensorized object (ObjType) (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_objid#

id of sensorized object (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_reftype#

type of reference frame (ObjType) (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_refid#

id of reference frame; -1: global frame (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_intprm#

sensor parameters (nsensor, mjNSENS)

Type:

array(ndim=2, dtype=int32)

sensor_dim#

number of scalar outputs (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_adr#

address in sensor array (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_cutoff#

cutoff for real and positive; 0: ignore (nsensor,)

Type:

array(ndim=1, dtype=float32)

plugin#

globally registered plugin slot number (nplugin,)

Type:

array(ndim=1, dtype=int32)

plugin_attr#

config attributes of geom plugin (nplugin, 3)

Type:

array(ndim=1, dtype=vec3f)

M_rownnz#

number of non-zeros in each row of qM (nv,)

Type:

array(ndim=1, dtype=int32)

M_rowadr#

index of each row in qM (nv,)

Type:

array(ndim=1, dtype=int32)

M_colind#

column indices of non-zeros in qM (nM,)

Type:

array(ndim=1, dtype=int32)

mapM2M#

index mapping from M (legacy) to M (CSR) (nC)

Type:

array(ndim=1, dtype=int32)

nbranch#

number of branches (leaf-to-root paths)

Type:

int

nv_pad#

number of degrees of freedom + padding

Type:

int

nacttrnbody#

number of actuators with body transmission

Type:

int

nsensorcollision#

number of unique collisions for geom distance sensors

Type:

int

nsensortaxel#

number of taxels in all tactile sensors

Type:

int

nsensorcontact#

number of contact sensors

Type:

int

nrangefinder#

number of rangefinder sensors

Type:

int

nmaxcondim#

maximum condim for geoms

Type:

int

nmaxpyramid#

maximum number of pyramid directions

Type:

int

nmaxpolygon#

maximum number of verts per polygon

Type:

int

nmaxmeshdeg#

maximum number of polygons per vert

Type:

int

is_sparse#

whether to use sparse representations

Type:

bool

has_fluid#

True if wind, density, or viscosity are non-zero at put_model time

Type:

bool

has_sdf_geom#

whether the model contains SDF geoms

Type:

bool

block_dim#

block dim options

Type:

mujoco_warp._src.types.BlockDim

body_tree#

list of body ids by tree level

Type:

tuple[array(ndim=1, dtype=int32), …]

body_branches#

flattened body ids for all branches

Type:

array(ndim=1, dtype=int32)

body_branch_start#

start index in body_branches for each branch (nbranch + 1,)

Type:

array(ndim=1, dtype=int32)

mocap_bodyid#

id of body for mocap (nmocap,)

Type:

array(ndim=1, dtype=int32)

body_fluid_ellipsoid#

does body use ellipsoid fluid (nbody,)

Type:

array(ndim=1, dtype=warp._src.types.bool)

jnt_limited_slide_hinge_adr#

limited/slide/hinge jntadr

Type:

array(ndim=1, dtype=int32)

jnt_limited_ball_adr#

limited/ball jntadr

Type:

array(ndim=1, dtype=int32)

dof_tri_row#

dof lower triangle row (used in solver)

Type:

array(ndim=1, dtype=int32)

dof_tri_col#

dof lower triangle col (used in solver)

Type:

array(ndim=1, dtype=int32)

nxn_geom_pair#

collision pair geom ids [-2, ngeom-1]

Type:

array(ndim=1, dtype=vec2i)

nxn_geom_pair_filtered#

valid collision pair geom ids [-1, ngeom - 1]

Type:

array(ndim=1, dtype=vec2i)

nxn_pairid#
contact pair id, -1 if not predefined,

-2 if skipped

collision id, else -1

Type:

array(ndim=1, dtype=vec2i)

nxn_pairid_filtered#

active subset of nxn_pairid

Type:

array(ndim=1, dtype=vec2i)

geom_pair_type_count#

count of max number of each potential collision

Type:

tuple[int, …]

geom_plugin_index#

geom index in plugin array (ngeom,)

Type:

array(ndim=1, dtype=int32)

eq_connect_adr#

eq_* addresses of type CONNECT

Type:

array(ndim=1, dtype=int32)

eq_wld_adr#

eq_* addresses of type WELD

Type:

array(ndim=1, dtype=int32)

eq_jnt_adr#

eq_* addresses of type JOINT

Type:

array(ndim=1, dtype=int32)

eq_ten_adr#

eq_* addresses of type TENDON

Type:

array(ndim=1, dtype=int32)

eq_flex_adr#

eq * addresses of type `FLEX

Type:

array(ndim=1, dtype=int32)

tendon_jnt_adr#

joint tendon address

Type:

array(ndim=1, dtype=int32)

tendon_site_pair_adr#

site pair tendon address

Type:

array(ndim=1, dtype=int32)

tendon_geom_adr#

geom tendon address

Type:

array(ndim=1, dtype=int32)

tendon_limited_adr#

addresses for limited tendons

Type:

array(ndim=1, dtype=int32)

ten_wrapadr_site#

wrap object starting address for sites

Type:

array(ndim=1, dtype=int32)

ten_wrapnum_site#

number of site wrap objects per tendon

Type:

array(ndim=1, dtype=int32)

wrap_jnt_adr#

addresses for joint tendon wrap object

Type:

array(ndim=1, dtype=int32)

wrap_site_adr#

addresses for site tendon wrap object

Type:

array(ndim=1, dtype=int32)

wrap_site_pair_adr#

first address for site wrap pair

Type:

array(ndim=1, dtype=int32)

wrap_geom_adr#

addresses for geom tendon wrap object

Type:

array(ndim=1, dtype=int32)

wrap_pulley_scale#

pulley scaling (nwrap,)

Type:

array(ndim=1, dtype=float32)

actuator_trntype_body_adr#

addresses for actuators with body transmission

Type:

array(ndim=1, dtype=int32)

sensor_pos_adr#

addresses for position sensors

Type:

array(ndim=1, dtype=int32)

sensor_limitpos_adr#

address for limit position sensors

Type:

array(ndim=1, dtype=int32)

sensor_vel_adr#

addresses for velocity sensors (excluding limit velocity sensors)

Type:

array(ndim=1, dtype=int32)

sensor_limitvel_adr#

address for limit velocity sensors

Type:

array(ndim=1, dtype=int32)

sensor_acc_adr#

addresses for acceleration sensors

Type:

array(ndim=1, dtype=int32)

sensor_rangefinder_adr#

addresses for rangefinder sensors

Type:

array(ndim=1, dtype=int32)

rangefinder_sensor_adr#

map sensor id to rangefinder id (excluding touch sensors) (excluding limit force sensors)

Type:

array(ndim=1, dtype=int32)

sensor_collision_start_adr#

address for sensor’s first item in collision

Type:

array(ndim=1, dtype=int32)

collision_sensor_adr#

map sensor id to collision id (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_touch_adr#

addresses for touch sensors

Type:

array(ndim=1, dtype=int32)

sensor_limitfrc_adr#

address for limit force sensors

Type:

array(ndim=1, dtype=int32)

sensor_e_potential#

evaluate energy_pos

Type:

bool

sensor_e_kinetic#

evaluate energy_vel

Type:

bool

sensor_tendonactfrc_adr#

address for tendonactfrc sensor

Type:

array(ndim=1, dtype=int32)

sensor_subtree_vel#

evaluate subtree_vel

Type:

bool

sensor_contact_adr#

addresses for contact sensors (nsensorcontact,)

Type:

array(ndim=1, dtype=int32)

sensor_adr_to_contact_adr#

map sensor adr to contact adr (nsensor,)

Type:

array(ndim=1, dtype=int32)

sensor_rne_postconstraint#

evaluate rne_postconstraint

Type:

bool

sensor_rangefinder_bodyid#

bodyid for rangefinder (nrangefinder,)

Type:

array(ndim=1, dtype=int32)

taxel_vertadr#

tactile sensor vertex address (nsensortaxel,)

Type:

array(ndim=1, dtype=int32)

taxel_sensorid#

address for tactile sensors

Type:

array(ndim=1, dtype=int32)

qM_tiles#

tiling configuration

Type:

tuple[mujoco_warp._src.types.TileSet, …]

qLD_updates#

tuple of index triples for sparse factorization

Type:

tuple[array(ndim=1, dtype=vec3i), …]

qM_fullm_i#

sparse mass matrix addressing

Type:

array(ndim=1, dtype=int32)

qM_fullm_j#

sparse mass matrix addressing

Type:

array(ndim=1, dtype=int32)

qM_mulm_rowadr#

sparse matmul row pointers

Type:

array(ndim=1, dtype=int32)

qM_mulm_col#

sparse matmul column indices

Type:

array(ndim=1, dtype=int32)

qM_mulm_madr#

sparse matmul matrix addresses

Type:

array(ndim=1, dtype=int32)

class Data[source]#

Dynamic state that updates each step.

solver_niter#

number of solver iterations (nworld,)

Type:

array(ndim=1, dtype=int32)

ne#

number of equality constraints (nworld,)

Type:

array(ndim=1, dtype=int32)

nf#

number of friction constraints (nworld,)

Type:

array(ndim=1, dtype=int32)

nl#

number of limit constraints (nworld,)

Type:

array(ndim=1, dtype=int32)

nefc#

number of constraints (nworld,)

Type:

array(ndim=1, dtype=int32)

time#

simulation time (nworld,)

Type:

array(ndim=1, dtype=float32)

energy#

potential, kinetic energy (nworld, 2)

Type:

array(ndim=1, dtype=vec2f)

qpos#

position (nworld, nq)

Type:

array(ndim=2, dtype=float32)

qvel#

velocity (nworld, nv)

Type:

array(ndim=2, dtype=float32)

act#

actuator activation (nworld, na)

Type:

array(ndim=2, dtype=float32)

qacc_warmstart#

acceleration used for warmstart (nworld, nv)

Type:

array(ndim=2, dtype=float32)

ctrl#

control (nworld, nu)

Type:

array(ndim=2, dtype=float32)

qfrc_applied#

applied generalized force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

xfrc_applied#

applied Cartesian force/torque (nworld, nbody, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

eq_active#

enable/disable constraints (nworld, neq)

Type:

array(ndim=2, dtype=warp._src.types.bool)

mocap_pos#

position of mocap bodies (nworld, nmocap, 3)

Type:

array(ndim=2, dtype=vec3f)

mocap_quat#

orientation of mocap bodies (nworld, nmocap, 4)

Type:

array(ndim=2, dtype=quatf)

qacc#

acceleration (nworld, nv)

Type:

array(ndim=2, dtype=float32)

act_dot#

time-derivative of actuator activation (nworld, na)

Type:

array(ndim=2, dtype=float32)

sensordata#

sensor data array (nworld, nsensordata,)

Type:

array(ndim=2, dtype=float32)

xpos#

Cartesian position of body frame (nworld, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

xquat#

Cartesian orientation of body frame (nworld, nbody, 4)

Type:

array(ndim=2, dtype=quatf)

xmat#

Cartesian orientation of body frame (nworld, nbody, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

xipos#

Cartesian position of body com (nworld, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

ximat#

Cartesian orientation of body inertia (nworld, nbody, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

xanchor#

Cartesian position of joint anchor (nworld, njnt, 3)

Type:

array(ndim=2, dtype=vec3f)

xaxis#

Cartesian joint axis (nworld, njnt, 3)

Type:

array(ndim=2, dtype=vec3f)

geom_xpos#

Cartesian geom position (nworld, ngeom, 3)

Type:

array(ndim=2, dtype=vec3f)

geom_xmat#

Cartesian geom orientation (nworld, ngeom, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

site_xpos#

Cartesian site position (nworld, nsite, 3)

Type:

array(ndim=2, dtype=vec3f)

site_xmat#

Cartesian site orientation (nworld, nsite, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

cam_xpos#

Cartesian camera position (nworld, ncam, 3)

Type:

array(ndim=2, dtype=vec3f)

cam_xmat#

Cartesian camera orientation (nworld, ncam, 3, 3)

Type:

array(ndim=2, dtype=mat33(f))

light_xpos#

Cartesian light position (nworld, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

light_xdir#

Cartesian light direction (nworld, nlight, 3)

Type:

array(ndim=2, dtype=vec3f)

subtree_com#

center of mass of each subtree (nworld, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

cdof#

com-based motion axis of each dof (rot:lin) (nworld, nv, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

cinert#

com-based body inertia and mass (nworld, nbody, 10)

Type:

array(ndim=2, dtype=vector(length=10, dtype=float32))

flexvert_xpos#

cartesian flex vertex positions (nworld, nflexvert, 3)

Type:

array(ndim=2, dtype=vec3f)

flexedge_J#

edge length Jacobian (nworld, 1, nflexedge*6)

Type:

array(ndim=3, dtype=float32)

flexedge_length#

flex edge lengths (nworld, nflexedge, 1)

Type:

array(ndim=2, dtype=float32)

ten_wrapadr#

start address of tendon’s path (nworld, ntendon)

Type:

array(ndim=2, dtype=int32)

ten_wrapnum#

number of wrap points in path (nworld, ntendon)

Type:

array(ndim=2, dtype=int32)

ten_J#

tendon Jacobian (nworld, ntendon, nv)

Type:

array(ndim=3, dtype=float32)

ten_length#

tendon lengths (nworld, ntendon)

Type:

array(ndim=2, dtype=float32)

wrap_obj#

geomid; -1: site; -2: pulley (nworld, nwrap, 2)

Type:

array(ndim=2, dtype=vec2i)

wrap_xpos#

Cartesian 3D points in all paths (nworld, nwrap, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

actuator_length#

actuator lengths (nworld, nu)

Type:

array(ndim=2, dtype=float32)

actuator_moment#

actuator moments (nworld, nu, nv)

Type:

array(ndim=3, dtype=float32)

crb#

com-based composite inertia and mass (nworld, nbody, 10)

Type:

array(ndim=2, dtype=vector(length=10, dtype=float32))

qM#

total inertia (nworld, nv, nv) if dense (nworld, 1, nM) if sparse

Type:

array(ndim=3, dtype=float32)

qLD#

L’*D*L factorization of M (nworld, nv, nv) if dense (nworld, 1, nC) if sparse

Type:

array(ndim=3, dtype=float32)

qLDiagInv#

1/diag(D) (nworld, nv)

Type:

array(ndim=2, dtype=float32)

flexedge_velocity#

flex edge velocities (nworld, nflexedge)

Type:

array(ndim=2, dtype=float32)

ten_velocity#

tendon velocities (nworld, ntendon)

Type:

array(ndim=2, dtype=float32)

actuator_velocity#

actuator velocities (nworld, nu)

Type:

array(ndim=2, dtype=float32)

cvel#

com-based velocity (rot:lin) (nworld, nbody, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

cdof_dot#

time-derivative of cdof (rot:lin) (nworld, nv, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

qfrc_bias#

C(qpos,qvel) (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_spring#

passive spring force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_damper#

passive damper force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_gravcomp#

passive gravity compensation force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_fluid#

passive fluid force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_passive#

total passive force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

subtree_linvel#

linear velocity of subtree com (nworld, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

subtree_angmom#

angular momentum about subtree com (nworld, nbody, 3)

Type:

array(ndim=2, dtype=vec3f)

actuator_force#

actuator force in actuation space (nworld, nu)

Type:

array(ndim=2, dtype=float32)

qfrc_actuator#

actuator force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_smooth#

net unconstrained force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qacc_smooth#

unconstrained acceleration (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_constraint#

constraint force (nworld, nv)

Type:

array(ndim=2, dtype=float32)

qfrc_inverse#

net external force; should equal: (nworld, nv) qfrc_applied + J.T @ xfrc_applied + qfrc_actuator

Type:

array(ndim=2, dtype=float32)

cacc#

com-based acceleration (nworld, nbody, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

cfrc_int#

com-based interaction force with parent (nworld, nbody, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

cfrc_ext#

com-based external force on body (nworld, nbody, 6)

Type:

array(ndim=2, dtype=vector(length=6, dtype=float32))

contact#

contact data

Type:

mujoco_warp._src.types.Contact

efc#

constraint data

Type:

mujoco_warp._src.types.Constraint

nworld#

number of worlds

Type:

int

naconmax#

maximum number of contacts (shared across all worlds)

Type:

int

naccdmax#

maximum number of contacts for CCD (all worlds)

Type:

int

njmax#

maximum number of constraints per world

Type:

int

nacon#

number of detected contacts (across all worlds) (1,)

Type:

array(ndim=1, dtype=int32)

ncollision#

collision count from broadphase (1,)

Type:

array(ndim=1, dtype=int32)

refit_bvh(m: Model, d: Data, rc: RenderContext)[source]#

Refit the dynamic BVH structures in the render context.

collision(m: Model, d: Data)[source]#

Runs the full collision detection pipeline.

This function orchestrates the broadphase and narrowphase collision detection stages. It first identifies potential collision pairs using a broadphase algorithm (either N-squared or Sweep-and-Prune, based on m.opt.broadphase). Then, for each potential pair, it performs narrowphase collision detection to compute detailed contact information like distance, position, and frame.

The results are used to populate the d.contact array, and the total number of contacts is stored in d.nacon. If d.nacon is larger than d.naconmax then an overflow has occurred and the remaining contacts will be skipped. If this happens, raise the nconmax parameter in io.make_data or io.put_data.

This function will do nothing except zero out arrays if collision detection is disabled via m.opt.disableflags or if d.nacon is 0.

nxn_broadphase(m: Model, d: Data, ctx: CollisionContext)[source]#

Runs broadphase collision detection using a brute-force N-squared approach.

This function iterates through a pre-filtered list of all possible geometry pairs and performs a quick bounding sphere check to identify potential collisions.

For each pair that passes the sphere check, it populates the collision arrays in d (d.collision_pair, d.collision_pairid, etc.), which are then consumed by the narrowphase.

The initial list of pairs is filtered at model creation time to exclude pairs based on contype/conaffinity, parent-child relationships, and explicit <exclude> tags.

sap_broadphase(m: Model, d: Data, ctx: CollisionContext)[source]#

Runs broadphase collision detection using a sweep-and-prune (SAP) algorithm.

This method is more efficient than the N-squared approach for large numbers of objects. It works by projecting the bounding spheres of all geoms onto a single axis and sorting them. It then sweeps along the axis, only checking for overlaps between geoms whose projections are close to each other.

For each potentially colliding pair identified by the sweep, a more precise bounding sphere check is performed. If this check passes, the pair is added to the collision arrays in d for the narrowphase stage.

Two sorting strategies are supported, controlled by m.opt.broadphase

  • SAP_TILE: Uses a tile-based sort.

  • SAP_SEGMENTED: Uses a segmented sort.

primitive_narrowphase(m: Model, d: Data, ctx: CollisionContext, collision_table: list[tuple[GeomType, GeomType]])[source]#

Runs collision detection on primitive geom pairs discovered during broadphase.

This function processes collision pairs involving primitive shapes that were identified during the broadphase stage. It computes detailed contact information such as distance, position, and frame, and populates the d.contact array.

The primitive geom types: PLANE, SPHERE, CAPSULE, CYLINDER, and BOX.

Additionally, collisions between planes and convex hulls.

To improve performance, it dynamically builds and launches a kernel tailored to the specific primitive collision types present in the model, avoiding unnecessary checks for non-existent collision pairs.

make_constraint(m: Model, d: Data)[source]#

Creates constraint jacobians and other supporting data.

deriv_smooth_vel(m: Model, d: Data, out: array(ndim=2, dtype=float32))[source]#

Analytical derivative of smooth forces w.r.t. velocities.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • out – qM - dt * qDeriv (derivatives of smooth forces w.r.t velocities).

euler(m: Model, d: Data)[source]#

Euler integrator, semi-implicit in velocity.

forward(m: Model, d: Data)[source]#

Forward dynamics.

fwd_acceleration(m: Model, d: Data, factorize: bool = False)[source]#

Add up all non-constraint forces, compute qacc_smooth.

Parameters:
  • m – The model containing kinematic and dynamic information.

  • d – The data object containing the current state and output arrays.

  • factorize – Flag to factorize inertia matrix.

fwd_actuation(m: Model, d: Data)[source]#

Actuation-dependent computations.

fwd_position(m: Model, d: Data, factorize: bool = True)[source]#

Position-dependent computations.

Parameters:
  • m – The model containing kinematic and dynamic information.

  • d – The data object containing the current state and output arrays.

  • factorize – Flag to factorize interia matrix.

fwd_velocity(m: Model, d: Data)[source]#

Velocity-dependent computations.

implicit(m: Model, d: Data)[source]#

Integrates fully implicit in velocity.

rungekutta4(m: Model, d: Data)[source]#

Runge-Kutta explicit order 4 integrator.

step1(m: Model, d: Data)[source]#

Advance simulation in two phases: before input is set by user.

step2(m: Model, d: Data)[source]#

Advance simulation in two phases: after input is set by user.

inverse(m: Model, d: Data)[source]#

Inverse dynamics.

create_render_context(mjm: MjModel, nworld: int = 1, cam_res: list[tuple[int, int]] | tuple[int, int] | None = None, render_rgb: list[bool] | bool | None = None, render_depth: list[bool] | bool | None = None, use_textures: bool = True, use_shadows: bool = False, enabled_geom_groups: list[int] = [0, 1, 2], cam_active: list[bool] | None = None, flex_render_smooth: bool = True, use_precomputed_rays: bool = True) RenderContext[source]#

Creates a render context on device.

Parameters:
  • mjm – The model containing kinematic and dynamic information on host.

  • nworld – The number of worlds.

  • cam_res – The width and height to render each camera image. If None, uses the MuJoCo model values.

  • render_rgb – Whether to render RGB images. If None, uses the MuJoCo model values.

  • render_depth – Whether to render depth images. If None, uses the MuJoCo model values.

  • use_textures – Whether to use textures.

  • use_shadows – Whether to use shadows.

  • enabled_geom_groups – The geom groups to render.

  • cam_active – List of booleans indicating which cameras to include in rendering. If None, all cameras are included.

  • flex_render_smooth – Whether to render flex meshes smoothly.

  • use_precomputed_rays – Use precomputed rays instead of computing during rendering. When using domain randomization for camera intrinsics, set to False.

Returns:

The render context containing rendering fields and output arrays on device.

get_data_into(result: MjData, mjm: MjModel, d: Data, world_id: int = 0)[source]#

Gets data from a device into an existing mujoco.MjData.

Parameters:
  • result – The data object containing the current state and output arrays (host).

  • mjm – The model containing kinematic and dynamic information (host).

  • d – The data object containing the current state and output arrays (device).

  • world_id – The id of the world to get the data from.

make_data(mjm: MjModel, nworld: int = 1, nconmax: int | None = None, nccdmax: int | None = None, njmax: int | None = None, naconmax: int | None = None, naccdmax: int | None = None) Data[source]#

Creates a data object on device.

Parameters:
  • mjm – The model containing kinematic and dynamic information (host).

  • nworld – Number of worlds.

  • nconmax – Number of contacts to allocate per world. Contacts exist in large heterogeneous arrays: one world may have more than nconmax contacts.

  • nccdmax – Number of CCD contacts to allocate per world. Same semantics as nconmax.

  • njmax – Number of constraints to allocate per world. Constraint arrays are batched by world: no world may have more than njmax constraints.

  • naconmax – Number of contacts to allocate for all worlds. Overrides nconmax.

  • naccdmax – Maximum number of CCD contacts. Defaults to naconmax.

Returns:

The data object containing the current state and output arrays (device).

put_data(mjm: MjModel, mjd: MjData, nworld: int = 1, nconmax: int | None = None, nccdmax: int | None = None, njmax: int | None = None, naconmax: int | None = None, naccdmax: int | None = None) Data[source]#

Moves data from host to a device.

Parameters:
  • mjm – The model containing kinematic and dynamic information (host).

  • mjd – The data object containing current state and output arrays (host).

  • nworld – The number of worlds.

  • nconmax – Number of contacts to allocate per world. Contacts exist in large heterogenous arrays: one world may have more than nconmax contacts.

  • nccdmax – Number of CCD contacts to allocate per world. Same semantics as nconmax.

  • njmax – Number of constraints to allocate per world. Constraint arrays are batched by world: no world may have more than njmax constraints.

  • naconmax – Number of contacts to allocate for all worlds. Overrides nconmax.

  • naccdmax – Maximum number of CCD contacts. Defaults to naconmax.

Returns:

The data object containing the current state and output arrays (device).

put_model(mjm: MjModel) Model[source]#

Creates a model on device.

Parameters:

mjm – The model containing kinematic and dynamic information (host).

Returns:

The model containing kinematic and dynamic information (device).

reset_data(m: Model, d: Data, reset: array | None = None)[source]#

Clear data, set defaults; optionally by world.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • reset – Per-world bitmask. Reset if True.

set_const(m: Model, d: Data)[source]#

Recomputes qpos0-dependent constant model fields.

This function propagates changes from some model fields to derived fields, allowing modifications that would otherwise be unsafe. It should be called after modifying model parameters at runtime.

Model fields that can be modified safely with set_const:

Field | Notes ———————————|———————————————- qpos0, qpos_spring | body_mass, body_inertia, | Mass and inertia are usually scaled together body_ipos, body_iquat | since inertia is sum(m * r^2). body_pos, body_quat | Unsafe for static bodies (invalidates BVH). body_gravcomp | If changing from 0 to >0 bodies, required. dof_armature | eq_data | For connect/weld, offsets computed if not set. hfield_size | tendon_stiffness, tendon_damping | Only if changing from/to zero. actuator_gainprm, actuator_biasprm | For position actuators with dampratio.

For selective updates, use the sub-functions directly based on what changed:

Modified Field | Call —————-|—————— body_mass | set_const body_gravcomp | set_const_fixed body_inertia | set_const_0 qpos0 | set_const_0

Computes:
  • Fixed quantities (via set_const_fixed): - body_subtreemass: mass of body and all descendants - ngravcomp: count of bodies with gravity compensation

  • qpos0-dependent quantities (via set_const_0): - tendon_length0: tendon resting lengths - dof_invweight0: inverse inertia for DOFs - body_invweight0: inverse spatial inertia for bodies - tendon_invweight0: inverse weight for tendons - cam_pos0, cam_poscom0, cam_mat0: camera references - light_pos0, light_poscom0, light_dir0: light references - actuator_acc0: acceleration from unit actuator force

Skips: dof_M0, actuator_length0 (not in mjwarp).

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

set_const_0(m: Model, d: Data)[source]#

Compute quantities that depend on qpos0.

Computes:
  • tendon_length0: tendon resting lengths

  • dof_invweight0: inverse inertia for DOFs

  • body_invweight0: inverse spatial inertia for bodies

  • tendon_invweight0: inverse weight for tendons

  • cam_pos0, cam_poscom0, cam_mat0: camera references

  • light_pos0, light_poscom0, light_dir0: light references

  • actuator_acc0: acceleration from unit actuator force

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

set_const_fixed(m: Model, d: Data)[source]#

Compute fixed quantities (independent of qpos0).

Computes:
  • body_subtreemass: mass of body and all descendants (depends on body_mass)

  • ngravcomp: count of bodies with gravity compensation (depends on body_gravcomp)

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

passive(m: Model, d: Data)[source]#

Adds all passive forces.

ray(m: Model, d: Data, pnt: array(ndim=2, dtype=vec3f), vec: array(ndim=2, dtype=vec3f), geomgroup: vec6f | None = None, flg_static: bool = True, bodyexclude: int = -1, rc: RenderContext | None = None) Tuple[array, array, array][source]#

Returns the distance at which rays intersect with primitive geoms.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • pnt – Ray origin points.

  • vec – Ray directions.

  • geomgroup – Group inclusion/exclusion mask.

  • flg_static – If True, allows rays to intersect with static geoms.

  • bodyexclude – Ignore geoms on specified body id (-1 to disable).

  • rc – Optional Render context containing BVH information for BVH accelerated ray intersections.

Returns:

Distances from ray origins to geom surfaces, IDs of intersected geoms (-1 if none), and normals at intersection points.

rays(m: Model, d: Data, pnt: array(ndim=2, dtype=vec3f), vec: array(ndim=2, dtype=vec3f), geomgroup: vec6f, flg_static: bool, bodyexclude: array(ndim=1, dtype=int32), dist: array(ndim=2, dtype=float32), geomid: array(ndim=2, dtype=int32), normal: array(ndim=2, dtype=vec3f), rc: RenderContext | None = None)[source]#

Ray intersection for multiple worlds and multiple rays.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • pnt – Ray origin points, shape (nworld, nray).

  • vec – Ray directions, shape (nworld, nray).

  • geomgroup – Group inclusion/exclusion mask. Set all elements to -1 to ignore.

  • flg_static – If True, allows rays to intersect with static geoms.

  • bodyexclude – Per-ray body exclusion array of shape (nray,). Geoms on the specified body ids are ignored (-1 to disable for that ray).

  • dist – Output array for distances from ray origins to geom surfaces, shape (nworld, nray). -1 indicates no intersection.

  • geomid – Output array for IDs of intersected geoms, shape (nworld, nray). -1 indicates no intersection.

  • normal – Output array for normals at intersection points, shape (nworld, nray).

  • rc – Optional Render context containing BVH information for BVH accelerated ray intersections.

render(m: Model, d: Data, rc: RenderContext)[source]#

Render the current frame.

Outputs are stored in buffers within the render context.

Parameters:
  • m – The model on device.

  • d – The data on device.

  • rc – The render context on device.

get_depth(rc: RenderContext, camera_index: int, depth_scale: float, depth_out: array(ndim=3, dtype=float32))[source]#

Get the depth data output from the render context buffers for a given camera index.

Parameters:
  • rc – The render context on device.

  • camera_index – The index of the camera to get the depth data for.

  • depth_scale – The scale factor to apply to the depth data.

  • depth_out – The output array to store the scaled and clamped depth data in with shape (nworld, height, width).

get_rgb(rc: RenderContext, camera_index: int, rgb_out: array(ndim=3, dtype=vec3f))[source]#

Get the RGB data output from the render context buffers for a given camera index.

Parameters:
  • rc – The render context on device.

  • camera_index – The index of the camera to get the RGB data for.

  • rgb_out – The output array to store the RGB data in, with shape (nworld, height, width).

energy_pos(m: Model, d: Data)[source]#

Position-dependent energy (potential).

energy_vel(m: Model, d: Data)[source]#

Velocity-dependent energy (kinetic).

sensor_acc(m: Model, d: Data)[source]#

Compute acceleration-dependent sensor values.

sensor_pos(m: Model, d: Data)[source]#

Compute position-dependent sensor values.

sensor_vel(m: Model, d: Data)[source]#

Compute velocity-dependent sensor values.

camlight(m: Model, d: Data)[source]#

Computes camera and light positions and orientations.

Updates the global positions and orientations for all cameras and lights in the model, including special handling for tracking and target modes.

com_pos(m: Model, d: Data)[source]#

Computes subtree center of mass positions.

Transforms inertia and motion to global frame centered at subtree CoM. Accumulates the mass-weighted positions up the kinematic tree, divides by total mass, and computes composite inertias and motion degrees of freedom in the subtree CoM frame.

com_vel(m: Model, d: Data)[source]#

Computes the spatial velocities (cvel) and the derivative cdof_dot for all bodies.

Propagates velocities down the kinematic tree, updating the spatial velocity and derivative for each body.

crb(m: Model, d: Data)[source]#

Computes composite rigid body inertias for each body and the joint-space inertia matrix.

Accumulates composite rigid body inertias up the kinematic tree and computes the joint-space inertia matrix in either sparse or dense format, depending on model options.

factor_m(m: Model, d: Data)[source]#

Factorization of inertia-like matrix M, assumed spd.

kinematics(m: Model, d: Data)[source]#

Computes forward kinematics for all bodies, sites, geoms, and flexible elements.

This function updates the global positions and orientations of all bodies, as well as the derived positions and orientations of geoms, sites, and flexible elements, based on the current joint positions and any attached mocap bodies.

rne(m: Model, d: Data, flg_acc: bool = False)[source]#

Computes inverse dynamics using the recursive Newton-Euler algorithm.

Computes the bias forces (qfrc_bias) and internal forces (cfrc_int) for the current state, including the effects of gravity and optionally joint accelerations.

Parameters:
  • m – The model containing kinematic and dynamic information.

  • d – The data object containing the current state and output arrays.

  • flg_acc – If True, includes joint accelerations in the computation.

rne_postconstraint(m: Model, d: Data)[source]#

Computes the recursive Newton-Euler algorithm after constraints are applied.

Computes cacc, cfrc_ext, and cfrc_int, including the effects of applied forces, equality constraints, and contacts.

solve_m(m: Model, d: Data, x: array(ndim=2, dtype=float32), y: array(ndim=2, dtype=float32))[source]#

Computes backsubstitution: x = qLD * y.

Parameters:
  • m – The model containing inertia and factorization information.

  • d – The data object containing factorization results.

  • x – Output array for the solution.

  • y – Input right-hand side array.

subtree_vel(m: Model, d: Data)[source]#

Computes subtree linear velocity and angular momentum.

Computes the linear momentum and angular momentum for each subtree, accumulating contributions up the kinematic tree.

tendon(m: Model, d: Data)[source]#

Computes tendon lengths and moments.

Updates the tendon length and moment arrays for all tendons in the model, including joint, site, and geom tendons.

transmission(m: Model, d: Data)[source]#

Computes actuator/transmission lengths and moments.

Updates the actuator length and moments for all actuators in the model, including joint and tendon transmissions.

contact_force(m: Model, d: Data, contact_ids: array(ndim=1, dtype=int32), to_world_frame: bool, force: array(ndim=1, dtype=vector(length=6, dtype=float32)))[source]#

Compute forces for contacts in Data.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • contact_ids – IDs for each contact.

  • to_world_frame – If True, map force from contact to world frame.

  • force – Contact forces.

get_state(m: Model, d: Data, state: array(ndim=2, dtype=float32), sig: int, active: array | None = None)[source]#

Copy concatenated state components specified by sig from Data into state.

The bits of the integer sig correspond to element fields of State.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output information (device).

  • state – Concatenation of state components.

  • sig – Bitflag specifying state components.

  • active – Per-world bitmask for getting state.

jac(m: Model, d: Data, jacp: array | None, jacr: array | None, point: array(ndim=1, dtype=vec3f), body: array(ndim=1, dtype=int32))[source]#

Compute translational and rotational Jacobian for point on body.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state (device).

  • jacp – Output translational Jacobian (optional).

  • jacr – Output rotational Jacobian (optional).

  • point – 3D point in global coordinates.

  • body – Body ID for each world.

mul_m(m: Model, d: Data, res: array(ndim=2, dtype=float32), vec: array(ndim=2, dtype=float32), skip: array | None = None, M: array | None = None)[source]#

Multiply vectors by inertia matrix; optionally skip per world.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • res – Result: qM @ vec.

  • vec – Input vector to multiply by qM.

  • skip – Per-world bitmask to skip computing output.

  • M – Input matrix: M @ vec.

set_state(m: Model, d: Data, state: array(ndim=2, dtype=float32), sig: int, active: array | None = None)[source]#

Copy concatenated state components specified by sig from state into Data.

The bits of the integer sig correspond to element fields of State.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output information (device).

  • state – Concatenation of state components.

  • sig – Bitflag specifying state components.

  • active – Per-world bitmask for setting state.

xfrc_accumulate(m: Model, d: Data, qfrc: array(ndim=2, dtype=float32))[source]#

Map applied forces at each body via Jacobians to dof space and accumulate.

Parameters:
  • m – The model containing kinematic and dynamic information (device).

  • d – The data object containing the current state and output arrays (device).

  • qfrc – Total applied force mapped to dof space.

class BiasType[source]#

Type of actuator bias.

NONE#

no bias

AFFINE#

const + kp*length + kv*velocity

MUSCLE#

muscle passive force computed by muscle_bias

class BroadphaseFilter[source]#

Bitmask specifying which collision functions to run during broadphase.

PLANE#

collision between bounding sphere and plane

SPHERE#

collision between bounding spheres

AABB#

collision between axis-aligned bounding boxes

OBB#

collision between oriented bounding boxes

class BroadphaseType[source]#

Type of broadphase algorithm.

NXN#

Broad phase checking all pairs

SAP_TILE#

Sweep and prune broad phase using tile sort

SAP_SEGMENTED#

Sweep and prune broad phase using segment sort

class ConeType[source]#

Type of friction cone.

PYRAMIDAL#

pyramidal

ELLIPTIC#

elliptic

class Constraint[source]#

Constraint data.

type#

constraint type (ConstraintType) (nworld, njmax)

Type:

array(ndim=2, dtype=int32)

id#

id of object of specific type (nworld, njmax)

Type:

array(ndim=2, dtype=int32)

J#

constraint Jacobian (nworld, njmax_pad, nv_pad)

Type:

array(ndim=3, dtype=float32)

pos#

constraint position (equality, contact) (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

margin#

inclusion margin (contact) (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

D#

constraint mass (nworld, njmax_pad)

Type:

array(ndim=2, dtype=float32)

vel#

velocity in constraint space: J*qvel (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

aref#

reference pseudo-acceleration (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

frictionloss#

frictionloss (friction) (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

force#

constraint force in constraint space (nworld, njmax)

Type:

array(ndim=2, dtype=float32)

state#

constraint state (nworld, njmax_pad)

Type:

array(ndim=2, dtype=int32)

Ma#

M*qacc (nworld, nv)

Type:

array(ndim=2, dtype=float32)

class Contact[source]#

Contact data.

dist#

distance between nearest points; neg: penetration (naconmax,)

Type:

array(ndim=1, dtype=float32)

pos#

position of contact point: midpoint between geoms (naconmax, 3)

Type:

array(ndim=1, dtype=vec3f)

frame#

normal is in [0-2], points from geom[0] to geom[1] (naconmax, 3, 3)

Type:

array(ndim=1, dtype=mat33(f))

includemargin#

include if dist<includemargin=margin-gap (naconmax,)

Type:

array(ndim=1, dtype=float32)

friction#

tangent1, 2, spin, roll1, 2 (naconmax, 5)

Type:

array(ndim=1, dtype=vector(length=5, dtype=float32))

solref#

constraint solver reference, normal direction (naconmax, 2)

Type:

array(ndim=1, dtype=vec2f)

solreffriction#

constraint solver reference, friction directions (naconmax, 2)

Type:

array(ndim=1, dtype=vec2f)

solimp#

constraint solver impedance (naconmax, 5)

Type:

array(ndim=1, dtype=vector(length=5, dtype=float32))

dim#

contact space dimensionality: 1, 3, 4 or 6 (naconmax,)

Type:

array(ndim=1, dtype=int32)

geom#

geom ids; -1 for flex (naconmax, 2)

Type:

array(ndim=1, dtype=vec2i)

efc_address#

address in efc; -1: not included (naconmax, nmaxpyramid)

Type:

array(ndim=2, dtype=int32)

worldid#

world id (naconmax,)

Type:

array(ndim=1, dtype=int32)

type#

ContactType (naconmax,)

Type:

array(ndim=1, dtype=int32)

geomcollisionid#

i-th contact generated for geom (naconmax,) helps uniquely identity contact when multiple contacts are generated for geom pair

Type:

array(ndim=1, dtype=int32)

class DisableBit[source]#

Disable default feature bitflags.

CONSTRAINT#

entire constraint solver

EQUALITY#

equality constraints

FRICTIONLOSS#

joint and tendon frictionloss constraints

LIMIT#

joint and tendon limit constraints

CONTACT#

contact constraints

SPRING#

passive spring forces

DAMPER#

passive damper forces

GRAVITY#

gravitational forces

CLAMPCTRL#

clamp control to specified range

WARMSTART#

warmstart constraint solver

FILTERPARENT#

disable collisions between parent and child bodies

ACTUATION#

apply actuation forces

REFSAFE#

integrator safety: make ref[0]>=2*timestep

SENSOR#

sensors

EULERDAMP#

implicit damping for Euler integration

NATIVECCD#

native convex collision detection (ignored in MJWarp)

class DynType[source]#

Type of actuator dynamics.

NONE#

no internal dynamics; ctrl specifies force

INTEGRATOR#

integrator: da/dt = u

FILTER#

linear filter: da/dt = (u-a) / tau

FILTEREXACT#

linear filter: da/dt = (u-a) / tau, with exact integration

MUSCLE#

piece-wise linear filter with two time constants

class EnableBit[source]#

Enable optional feature bitflags.

ENERGY#

energy computation

INVDISCRETE#

discrete-time inverse dynamics

MULTICCD#

multiple contacts with CCD

class GainType[source]#

Type of actuator gain.

FIXED#

fixed gain

AFFINE#

const + kp*length + kv*velocity

MUSCLE#

muscle FLV curve computed by muscle_gain

class GeomType[source]#

Type of geometry.

PLANE#

plane

HFIELD#

heightfield

SPHERE#

sphere

CAPSULE#

capsule

ELLIPSOID#

ellipsoid

CYLINDER#

cylinder

BOX#

box

MESH#

mesh

SDF#

sdf

class IntegratorType[source]#

Integrator mode.

EULER#

semi-implicit Euler

RK4#

4th-order Runge Kutta

IMPLICITFAST#

implicit in velocity, no rne derivative

class JointType[source]#

Type of degree of freedom.

FREE#

global position and orientation (quat) (7,)

BALL#

orientation (quat) relative to parent (4,)

SLIDE#

sliding distance along body-fixed axis (1,)

HINGE#

rotation angle (rad) around body-fixed axis (1,)

class Option[source]#

Physics options.

timestep#

simulation timestep

Type:

array(ndim=1, dtype=float32)

tolerance#

main solver tolerance

Type:

array(ndim=1, dtype=float32)

ls_tolerance#

CG/Newton linesearch tolerance

Type:

array(ndim=1, dtype=float32)

ccd_tolerance#

convex collision detection tolerance

Type:

array(ndim=1, dtype=float32)

gravity#

gravitational acceleration

Type:

array(ndim=1, dtype=vec3f)

wind#

wind (for lift, drag, and viscosity)

Type:

array(ndim=1, dtype=vec3f)

magnetic#

global magnetic flux

Type:

array(ndim=1, dtype=vec3f)

density#

density of medium

Type:

array(ndim=1, dtype=float32)

viscosity#

viscosity of medium

Type:

array(ndim=1, dtype=float32)

integrator#

integration mode (IntegratorType)

Type:

int

cone#

type of friction cone (ConeType)

Type:

int

solver#

solver algorithm (SolverType)

Type:

int

iterations#

number of main solver iterations

Type:

int

ls_iterations#

maximum number of CG/Newton linesearch iterations

Type:

int

ccd_iterations#

number of iterations in convex collision detection

Type:

int

disableflags#

bit flags for disabling standard features

Type:

int

enableflags#

bit flags for enabling optional features

Type:

int

sdf_initpoints#

number of starting points for gradient descent

Type:

int

sdf_iterations#

max number of iterations for gradient descent

Type:

int

impratio_invsqrt#

ratio of friction-to-normal contact impedance (stored as inverse square root)

Type:

array(ndim=1, dtype=float32)

ls_parallel#

evaluate engine solver step sizes in parallel

Type:

bool

ls_parallel_min_step#

minimum step size for solver linesearch

Type:

float

broadphase#

broadphase type (BroadphaseType)

Type:

mujoco_warp._src.types.BroadphaseType

broadphase_filter#

broadphase filter bitflag (BroadphaseFilter)

Type:

mujoco_warp._src.types.BroadphaseFilter

graph_conditional#

flag to use cuda graph conditional

Type:

bool

run_collision_detection#

if False, skips collision detection and allows user-populated contacts during the physics step (as opposed to DisableBit.CONTACT which explicitly zeros out the contacts at each step)

Type:

bool

contact_sensor_maxmatch#

max number of contacts considered by contact sensor matching criteria contacts matched after this value is exceded will be ignored

Type:

int

class RenderContext[source]#

Context for rendering.

nrender#

number of actively rendering cameras

Type:

int

cam_res#

camera resolution for actively rendering cameras

Type:

array(ndim=1, dtype=vec2i)

cam_id_map#

camera id map

Type:

array(ndim=1, dtype=int32)

use_textures#

whether to use textures

Type:

bool

use_shadows#

whether to use shadows

Type:

bool

use_precomputed_rays#

whether to use precomputed rays

Type:

bool

bvh_ngeom#

number of geometries in the BVH

Type:

int

enabled_geom_ids#

enabled geometry ids

Type:

array(ndim=1, dtype=int32)

mesh_registry#

mesh BVH id to warp mesh mapping

Type:

dict

mesh_bvh_id#

mesh BVH ids

Type:

array(ndim=1, dtype=uint64)

mesh_bounds_size#

mesh bounds size

Type:

array(ndim=1, dtype=vec3f)

mesh_texcoord#

mesh texture coordinates

Type:

array(ndim=1, dtype=vec2f)

mesh_texcoord_offsets#

mesh texture coordinate offsets

Type:

array(ndim=1, dtype=int32)

mesh_facetexcoord#

mesh face texture coordinates

Type:

array(ndim=1, dtype=vec3i)

textures#

textures

Type:

array(ndim=1, dtype=warp._src.texture.Texture2D)

textures_registry#

texture registry

Type:

list[warp._src.texture.Texture2D]

hfield_registry#

hfield BVH id to warp mesh mapping

Type:

dict

hfield_bvh_id#

hfield BVH ids

Type:

array(ndim=1, dtype=uint64)

hfield_bounds_size#

hfield bounds size

Type:

array(ndim=1, dtype=vec3f)

flex_mesh#

flex mesh

Type:

warp._src.types.Mesh

flex_rgba#

flex rgba

Type:

array(ndim=1, dtype=vec4f)

flex_bvh_id#

flex BVH id

Type:

warp._src.types.uint64

flex_face_point#

flex face points

Type:

array(ndim=1, dtype=vec3f)

flex_faceadr#

flex face addresses

Type:

array(ndim=1, dtype=int32)

flex_nface#

number of flex faces

Type:

int

flex_nwork#

total flex work items for refit

Type:

int

flex_group_root#

flex group roots

Type:

array(ndim=1, dtype=int32)

flex_elemdataadr#

flex element data addresses

Type:

array(ndim=1, dtype=int32)

flex_shell#

flex shell data

Type:

array(ndim=1, dtype=int32)

flex_shelldataadr#

flex shell data addresses

Type:

array(ndim=1, dtype=int32)

flex_radius#

flex radius

Type:

array(ndim=1, dtype=float32)

flex_workadr#

flex work item addresses for refit

Type:

array(ndim=1, dtype=int32)

flex_worknum#

flex work item counts for refit

Type:

array(ndim=1, dtype=int32)

flex_render_smooth#

whether to render flex meshes smoothly

Type:

bool

bvh#

scene BVH

Type:

warp._src.types.Bvh

bvh_id#

scene BVH id

Type:

warp._src.types.uint64

lower#

lower bounds

Type:

array(ndim=1, dtype=vec3f)

upper#

upper bounds

Type:

array(ndim=1, dtype=vec3f)

group#

groups

Type:

array(ndim=1, dtype=int32)

group_root#

group roots

Type:

array(ndim=1, dtype=int32)

ray#

rays

Type:

array(ndim=1, dtype=vec3f)

rgb_data#

RGB data

Type:

array(ndim=1, dtype=uint32)

rgb_adr#

RGB addresses

Type:

array(ndim=1, dtype=int32)

rgb_size#

per-camera RGB buffer sizes

depth_data#

depth data

Type:

array(ndim=1, dtype=float32)

depth_adr#

depth addresses

Type:

array(ndim=1, dtype=int32)

depth_size#

per-camera depth buffer sizes

render_rgb#

per-camera RGB render flags

Type:

array(ndim=1, dtype=warp._src.types.bool)

render_depth#

per-camera depth render flags

Type:

array(ndim=1, dtype=warp._src.types.bool)

znear#

near plane distance

Type:

float

total_rays#

total number of rays

Type:

int

class SolverType[source]#

Constraint solver algorithm.

CG#

Conjugate gradient (primal)

NEWTON#

Newton (primal)

class State[source]#

State component elements as integer bitflags.

Includes several convenient combinations of these flags.

TIME#

time

QPOS#

position

QVEL#

velocity

ACT#

actuator activation

WARMSTART#

acceleration used for warmstart

CTRL#

control

QFRC_APPLIED#

applied generalized force

XFRC_APPLIED#

applied Cartesian force/torque

EQ_ACTIVE#

enable/disable constraints

MOCAP_POS#

positions of mocap bodies

MOCAP_QUAT#

orientations of mocap bodies

NSTATE#

number of state elements

PHYSICS#

QPOS | QVEL | ACT

FULLPHYSICS#

TIME | PHYSICS | PLUGIN

USER#

CTRL | QFRC_APPLIED | XFRC_APPLIED | EQ_ACTIVE | MOCAP_POS | MOCAP_QUAT | USERDATA

INTEGRATION#

FULLPHYSICS | USER | WARMSTART

class Statistic[source]#

Model statistics (in qpos0).

meaninertia#

mean diagonal inertia (per-world)

Type:

array(ndim=1, dtype=float32)

class TrnType[source]#

Type of actuator transmission.

JOINT#

force on joint

JOINTINPARENT#

force on joint, expressed in parent frame

SLIDERCRANK#

force via slider-crank linkage

TENDON#

force on tendon

BODY#

adhesion force on body’s geoms

SITE#

force on site