diff --git a/python/mujoco/experimental/studio/sim.cc b/python/mujoco/experimental/studio/sim.cc index e77efbfc..1a6906b5 100644 --- a/python/mujoco/experimental/studio/sim.cc +++ b/python/mujoco/experimental/studio/sim.cc @@ -43,22 +43,13 @@ PYBIND11_MODULE(sim, m) { .def(py::init<>()) .def( "advance", - [](StepControl& self, py::object model_obj, py::object data_obj, - py::object step_fn) { + [](StepControl& self, py::object model_obj, py::object data_obj) { auto& model = py::cast(model_obj); auto& data = py::cast(data_obj); - if (step_fn.is_none()) { - py::gil_scoped_release no_gil; - return self.Advance(model.get(), data.get()); - } else { - return self.Advance( - model.get(), data.get(), - [step_fn, model_obj, data_obj](mjModel*, mjData*) { - step_fn(model_obj, data_obj); - }); - } + py::gil_scoped_release no_gil; + return self.Advance(model.get(), data.get()); }, - py::arg("model"), py::arg("data"), py::arg("step_fn") = py::none(), + py::arg("model"), py::arg("data"), "Step physics forward, respecting speed settings and refresh budget.") .def("force_sync", &StepControl::ForceSync, "Ensures the next Advance() will synchronize time and step once.") diff --git a/src/experimental/platform/sim/step_control.cc b/src/experimental/platform/sim/step_control.cc index 88d33f18..7f0122da 100644 --- a/src/experimental/platform/sim/step_control.cc +++ b/src/experimental/platform/sim/step_control.cc @@ -92,8 +92,7 @@ StepControl::PauseState StepControl::GetPauseState() const { return pause_state_; } -StepControl::Status StepControl::Advance(mjModel* m, mjData* d, - StepFn step_fn) { +StepControl::Status StepControl::Advance(mjModel* m, mjData* d) { if (!m) { return Status::kOk; } @@ -187,11 +186,7 @@ StepControl::Status StepControl::Advance(mjModel* m, mjData* d, if (pre_step_) { pre_step_(m, d); } - if (step_fn) { - step_fn(m, d); - } else { - mj_step(m, d); - } + mj_step(m, d); if (post_step_) { post_step_(m, d); } diff --git a/src/experimental/platform/sim/step_control.h b/src/experimental/platform/sim/step_control.h index b3bd5b2f..cafe7cb1 100644 --- a/src/experimental/platform/sim/step_control.h +++ b/src/experimental/platform/sim/step_control.h @@ -55,7 +55,7 @@ class StepControl { mjWARN_BADQACC, mjWARN_BADQVEL, mjWARN_BADQPOS}; // Steps physics forward, respecting speed settings and refresh budget. - Status Advance(mjModel* m, mjData* d, StepFn step_fn = nullptr); + Status Advance(mjModel* m, mjData* d); // Ensures the next call to Advance() will synchronize time and step once. void ForceSync();