google-deepmind / google-deepmind/mujoco

No Mesh-mesh collision in mujoco-mjx

Open
#2,759 1 comment 1 reaction 1 assignee Claimed by @thowell View on GitHub
bug MJX
Dominant language
C++
Stars
15.2k
Forks
1.8k
Avg merge
10d 16h
Merged PRs (30d)
25

Description

### Intro

I am using mujoco-mjx 3.3.4 and found that mesh-mesh collisions are not available. Two meshes will penetrate each other. The mesh-primitive collision is working fine.

Here is a video of the penetration: [video](https://www.dropbox.com/scl/fi/17iquqtal55jo8c9zxkya/violin_stage.mp4?rlkey=c0605ypkpq7605onc30xzgq7f&dl=0)

You can reproduce with the code from this [dropbox link](https://www.dropbox.com/scl/fi/kezizcraqoxhdmn066ezi/Project.zip?rlkey=yn0z8d6rwbn7agcnbuobwoseb&dl=0)

### My setup

I pre-processed the mesh files so that each stl doesn't contain too many vertices, and all of them are convex.

My xml file:

```xml

































```

The dependencies:

```txt
Package Version
-------------------- -----------
absl-py 2.3.1
asttokens 3.0.0
blinker 1.9.0
brax 0.12.4
build 1.2.2.post1
chex 0.1.89
click 8.2.1
cloudpickle 3.1.1
coacd 1.0.7
contourpy 1.3.2
cycler 0.12.1
decorator 5.2.1
etils 1.13.0
exceptiongroup 1.3.0
executing 2.2.0
Farama-Notifications 0.0.4
Flask 3.1.1
flask-cors 6.0.1
flax 0.10.7
fonttools 4.59.0
fsspec 2025.7.0
glfw 2.9.0
gymnasium 1.2.0
humanize 4.12.3
importlib_resources 6.5.2
ipdb 0.13.13
ipython 8.37.0
itsdangerous 2.2.0
jax 0.5.2
jaxlib 0.5.1
jaxopt 0.8.5
jedi 0.19.2
Jinja2 3.1.6
kiwisolver 1.4.8
markdown-it-py 3.0.0
MarkupSafe 3.0.2
matplotlib 3.10.3
matplotlib-inline 0.1.7
mdurl 0.1.2
mediapy 1.2.4
ml_collections 1.1.0
ml_dtypes 0.5.1
msgpack 1.1.1
mujoco 3.3.4
mujoco-mjx 3.3.4
nest-asyncio 1.6.0
numpy 2.2.6
opt_einsum 3.4.0
optax 0.2.5
orbax-checkpoint 0.11.19
packaging 25.0
parso 0.8.4
pexpect 4.9.0
pillow 11.3.0
pip 25.1
prompt_toolkit 3.0.51
protobuf 6.31.1
ptyprocess 0.7.0
pure_eval 0.2.3
Pygments 2.19.2
PyOpenGL 3.1.9
pyparsing 3.2.3
pyproject_hooks 1.2.0
python-dateutil 2.9.0.post0
PyYAML 6.0.2
rich 14.0.0
scipy 1.15.3
setuptools 78.1.1
simplejson 3.20.1
six 1.17.0
stack-data 0.6.3
tensorboardX 2.6.4
tensorstore 0.1.76
tomli 2.2.1
toolz 1.0.0
traitlets 5.14.3
treescope 0.1.9
trimesh 4.7.0
typing_extensions 4.14.1
wcwidth 0.2.13
Werkzeug 3.1.3
wheel 0.45.1
zipp 3.23.0
```

### What's happening? What did you expect?

The two bodies penetrated each other. I expect them to have collisions.

### Steps for reproduction

Unzip the zip file from the [dropbox link](https://www.dropbox.com/scl/fi/kezizcraqoxhdmn066ezi/Project.zip?rlkey=1j29evctyqt2agyi9r7xqn51g&dl=0).

Run main_mjx.py in the folder.

### Minimal model for reproduction

_No response_

### Code required for reproduction

_No response_

### Confirmations

- [x] I searched the [latest documentation](https://mujoco.readthedocs.io/en/latest/overview.html) thoroughly before posting.
- [x] I searched previous [Issues](https://github.com/google-deepmind/mujoco/issues) and [Discussions](https://github.com/google-deepmind/mujoco/discussions), I am certain this has not been raised before.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.