Background
MuJoCo official XML reference documents <compiler discardvisual="true"/> here:
https://mujoco.readthedocs.io/en/stable/XMLreference.html#compiler
According to the MuJoCo docs, discardvisual should discard purely visual model elements with no effect on physics. This includes:
- materials
- textures
- geoms with
contype=0 and conaffinity=0 when they are not referenced elsewhere
- meshes that are no longer referenced
Reproduction
Tested locally with:
- MuJoCo:
mujoco==3.6.0
- MotrixSim:
0.7.0
Minimal MJCF:
<mujoco model="discardvisual_probe">
<compiler angle="radian" discardvisual="true"/>
<worldbody>
<body name="base" pos="0 0 0">
<freejoint/>
<inertial pos="0 0 0" mass="1" diaginertia="0.1 0.1 0.1"/>
<geom name="collision" type="box" size="0.1 0.1 0.1" contype="1" conaffinity="1" rgba="1 0 0 1"/>
<geom name="visual" type="box" size="0.2 0.2 0.2" contype="0" conaffinity="0" rgba="0 1 0 1"/>
</body>
</worldbody>
</mujoco>
Observed result:
discardvisual=false
MuJoCo: num_geoms=2, geom_names=[collision, visual]
MotrixSim:num_geoms=2, geom_names=[collision, visual]
discardvisual=true
MuJoCo: num_geoms=1, geom_names=[collision]
MotrixSim:num_geoms=2, geom_names=[collision, visual]
This suggests that MotrixSim currently accepts the discardvisual attribute, but does not apply the MuJoCo compiler behavior and instead silently keeps the visual geom.
Expected behavior
When <compiler discardvisual="true"/> is set, MotrixSim should match MuJoCo behavior and remove purely-visual geoms/assets from the compiled model.
If full support is not planned yet, it would still help to emit a clear warning or error instead of silently ignoring the attribute, because the current behavior can create MJCF compatibility mismatches.
Impact
The current behavior can lead to:
- different compiled models between MuJoCo and MotrixSim for the same MJCF
- extra geoms / assets that the upstream model author expected to be removed
- unnecessary memory/runtime overhead in large models that rely on
discardvisual
If useful, I can also provide a mesh/material-based repro case.
Background
MuJoCo official XML reference documents
<compiler discardvisual="true"/>here:https://mujoco.readthedocs.io/en/stable/XMLreference.html#compiler
According to the MuJoCo docs,
discardvisualshould discard purely visual model elements with no effect on physics. This includes:contype=0andconaffinity=0when they are not referenced elsewhereReproduction
Tested locally with:
mujoco==3.6.00.7.0Minimal MJCF:
Observed result:
This suggests that MotrixSim currently accepts the
discardvisualattribute, but does not apply the MuJoCo compiler behavior and instead silently keeps the visual geom.Expected behavior
When
<compiler discardvisual="true"/>is set, MotrixSim should match MuJoCo behavior and remove purely-visual geoms/assets from the compiled model.If full support is not planned yet, it would still help to emit a clear warning or error instead of silently ignoring the attribute, because the current behavior can create MJCF compatibility mismatches.
Impact
The current behavior can lead to:
discardvisualIf useful, I can also provide a mesh/material-based repro case.