Open main menu

Humanoid Robots Wiki β

Changes

MuJoCo WASM

2,642 bytes added, 23:09, 27 May 2024
no edit summary
== Install emscripten ==
First, you need to install emscripten, which is a compiler toolchain for WebAssembly.
=== Get the emsdk repo ===
<code>
git clone https://github.com/emscripten-core/emsdk.git
</code>
 
=== Enter that directory ===
<code>
cd emsdk
</code>
 
=== Download and install the latest SDK tools ===
<code>
./emsdk install latest
</code>
 
=== Make the "latest" SDK "active" ===
<code>
./emsdk activate latest
</code>
 
=== Activate PATH and other environment variables ===
<code>
source ./emsdk_env.sh
</code>
 
These variables are set for the current terminal. If you want to make it for all terminals, you can add them to any terminal profile. Here they are:
 
The environment variables:
<code>
EMSDK = < path to emsdk dir >
 
EM_CONFIG = ~/.emscripten
 
EMSDK_NODE = < path to emsdk dir >/node/12.9.1_64bit/bin/node
</code>
 
=== Now just try it! ===
<code>
emcc
</code>
 
 
 
== Build the mujoco_wasm Binary ==
 
First git clone
<code> https://github.com/zalo/mujoco_wasm </code>
 
Next, you'll build the MuJoCo WebAssembly binary.
<syntaxhighlight lang="bash">
mkdir build
cd build
emcmake cmake ..
make
</syntaxhighlight>
 
 
 
[[File:Carbon (1).png|800px|thumb|none|emcmake cmake ..]]
 
 
[[File:Carbon (2).png|400px|thumb|none|make]]
 
'''Tip:''' If you get an error with "undefined symbol: saveSetjmp/testSetjmp" at the build step, revert to:
<code>
./emsdk install 3.1.56 && ./emsdk activate 3.1.56 && source ./emsdk_env.sh
</code>
 
== Running in Browser ==
 
Run this in your mujoco folder to start a server.
 
<code>
python -m http.server 8000
</code>
 
Then navigate to:
 
<code>
http://localhost:8000/index.html
</code>
[[File:Wasm screenshot13-40-40.png|800px|thumb|none|MuJoCo running in browser]]
 
 
== Running in Cloud/Cluster and Viewing on Local Machine ==
Add extra parameter to your ssh command:
 
<code>
ssh -L 8000:127.0.0.1:8000 my_name@my_cluster_ip
</code>
 
Then you can open it on the browser on your local machine!
 
== Adding New Models ==
All the models are stored in the folder examples/scenes, as seen below:
[[File:Example folder.png|400px|thumb|none]]
You can add your own model XML and meshes here. For example, here we add the stompy folder.
 
After adding the model files, run
<code>
python generate_index.py
</code>
to update file indexes.
 
Then copy all the content in <code>index.json</code> to <code> mujocoUtils.js</code>, as shown below:
[[File:Add model1.png|400px|thumb|none]]
 
In the end, again at file <code> mujocoUtils.js</code>, add the name and scene file
[[File:Add model2.png|600px|thumb|none]]
 
Then reload again and you can see new models have been added:
[[File:Add model3.png|800px|thumb|none]]
11
edits