Release GIL in MuJoCo Studio Python bindings.

This change adds py::gil_scoped_release to various functions in the parser, renderer, sim and ux modules of the MuJoCo Studio Python bindings. This allows other Python threads to execute while these C++ functions, which can sometimes be time-consuming, are running. The two heaviest operations Present() (rendering) and Advance() (physics) now both release the GIL in C++.

PiperOrigin-RevId: 930645361
Change-Id: Ib239fb54edc7ac0d8b1d94bec8c57a447d5f4d27
This commit is contained in:
Matija Kecman
2026-06-11 11:31:28 -07:00
committed by Copybara-Service
parent ab17ff5552
commit 37084a5c0b
4 changed files with 46 additions and 6 deletions
+1
View File
@@ -48,6 +48,7 @@ PYBIND11_MODULE(sim, m) {
auto& model = py::cast<mujoco::python::MjModelWrapper&>(model_obj);
auto& data = py::cast<mujoco::python::MjDataWrapper&>(data_obj);
if (step_fn.is_none()) {
py::gil_scoped_release no_gil;
return self.Advance(model.get(), data.get());
} else {
return self.Advance(