Use standalone MuJoCo 3.3.6 and jrl-cmakemodules v2#98
Draft
arntanguy wants to merge 9 commits intorohanpsingh:mainfrom
Draft
Use standalone MuJoCo 3.3.6 and jrl-cmakemodules v2#98arntanguy wants to merge 9 commits intorohanpsingh:mainfrom
arntanguy wants to merge 9 commits intorohanpsingh:mainfrom
Conversation
Collaborator
Author
|
I can confirm that building and running |
This was referenced Mar 22, 2026
Builds and run against mujoco 3.3.6 in nix
This relies on uitools.h deprecated since MuJoco 2.x, we will never use it again and it makes code messy.
Significant changes around use of glfw target use, I am not sure I fully understand the use-case for the complicated logic that used to exist before (i.e merging static libraries), so this might need to be revisited later on should issues arise.
7a5d68a to
45b3fe8
Compare
Allow robot descriptions installed in an external path.
c4bdaab to
a43b2af
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MuJoCo 3.3.6. Why3.3.6? It's the version available in my current efforts in getting the framework in nixpkgs, and also happens to be the latestMuJoCoversion I managed to build inUbuntu 22.04using the officialcmakescripts.jrl-cmakemodules v2from Introduce JRL CMake Modules v2 jrl-umi3218/jrl-cmakemodules#798 (unifies how projects are defined and exported)Now this is essentially a rewrite of the existing cmake scripts, and it has some implications:
MuJoCoofficially exported with the official cmake scripts and consumed through a regularfind_package(mujoco ...)uitoolsand related unused codepaths. This is unavailable sinceMuJoCo 2.x.MuJoCo 3.0. However, for some strange reason, the mujoco team did not see fit to export thesimulate/component containing a working adapter implementation. In the current version, we rely on building source files gathered directly fromMuJoCo's source tree. This is both unavailable with the installed version (sources are not installed and the find_package does not report where the source tree lives), and not straightforward to do in Nix (each package is built in its own separated sandbox there). Thus I bundled the necessary files from thesimulate/folder ofMuJoCo 3.3.6into this repository. Not ideal as we will need to keep them in sync manually with future releases.src/CMakeLists.txtis doing a lot of odd things here. I tried cleaning it up by linking against "sensible" targets, this works in Nix. However, so far I have been unable to make it work in myUbuntu 22.04devcontainer (running within NixOS), it segfaults at0x0, never a great sign. This might however be due to my specific setup, further investigations needed.**. Considering the very specific linking step in the existing cmake files, I suspect there is some deeper incompatibilities going on there.Leaving this as a WIP until I can look deeper into this.
@ThomasDuvinage if you wish to try, it requires mc-rtc/superbuild-extensions#5 to build (install MuJoCo as a regular cmake project)