Installation#
EmbodiChain is a Python framework built on the DexSim simulation engine (dexsim_engine on PyPI). This guide covers system requirements, package indexes, Docker and local install paths, optional generative-simulation dependencies, and verification.
After installation, continue with the Quick Start Tutorial.
Choose your setup#
Path |
Best for |
Notes |
|---|---|---|
Docker |
First run, reproducible GPU sim |
Pre-built image with CUDA 12.8, Vulkan, and Python 3.11 |
Local + uv |
Day-to-day development |
Fast installs; recommended with a virtual environment |
Local + pip |
Simple environments |
Use a virtual environment |
System requirements#
Component |
Requirement |
|---|---|
OS |
Linux x86_64 (Ubuntu 20.04+ recommended) |
GPU |
NVIDIA GPU with compute capability 7.0+ |
NVIDIA driver |
≥ 535 (tested on driver branches up to 580.x) |
CUDA |
12.x (aligned with the Docker image and |
Vulkan |
Host ICD/layer files for GPU rendering (see Docker notes) |
Python |
3.10 or 3.11 |
Display (optional) |
X11 |
[!NOTE] PyTorch: EmbodiChain depends on PyTorch transitively (for example via
dexsim_engineandpytorch_kinematics). If you install or upgrade PyTorch separately, match the wheel to your CUDA version using the official PyTorch install selector.
Package indexes#
EmbodiChain and its simulation backend are published on a DexForce package index. Generative-simulation extras also need Blender’s index for the bpy wheel.
Index |
URL |
Used for |
|---|---|---|
DexForce (required) |
|
|
Blender (gensim only) |
|
|
Reuse these flags on every pip / uv pip install command:
DEXFORCE_INDEX="http://pyp.open3dv.site:2345/simple/"
DEXFORCE_TRUSTED_HOST="pyp.open3dv.site"
BLENDER_INDEX="https://download.blender.org/pypi/"
PIP_EXTRA_ARGS="--extra-index-url ${DEXFORCE_INDEX} --trusted-host ${DEXFORCE_TRUSTED_HOST}"
GENSIM_EXTRA_ARGS="${PIP_EXTRA_ARGS} --extra-index-url ${BLENDER_INDEX}"
[!TIP] To avoid repeating flags, you can configure pip once:
pip config set global.extra-index-url "${DEXFORCE_INDEX}"and
pip config set global.trusted-host "${DEXFORCE_TRUSTED_HOST}".
Docker (recommended for first run)#
The pre-configured image includes CUDA 12.8, Vulkan-related mounts, and dependencies needed for GPU simulation and rendering.
Prerequisites#
NVIDIA driver ≥ 535 on the host
For GUI runs: working X11 forwarding (
DISPLAY,~/.Xauthority,/tmp/.X11-unix)For headless servers: no display required; use
--headlessin tutorial scripts
Pull and start a container#
1. Pull the image:
docker pull dexforce/embodichain:ubuntu22.04-cuda12.8
2. Start a container using the repo script docker/docker_run.sh (mounts GPU drivers, Vulkan, shared memory, and your data directory):
git clone https://github.com/DexForce/EmbodiChain.git
cd EmbodiChain
./docker/docker_run.sh <container_name> <data_path>
Argument |
Meaning |
|---|---|
|
Name for the new container |
|
Host directory mounted at |
The script checks for Vulkan ICD/layer and EGL vendor JSON files on the host. Warnings usually mean reduced rendering support; the script exits only when required driver paths are missing entirely.
3. Attach to the running container:
docker exec -it <container_name> bash
Inside the container, install or update EmbodiChain with the local installation commands if needed, then verify.
[!NOTE] The script uses
--network=host,--gpus all, and a large--shm-sizefor simulation workloads. Adjust mounts indocker/docker_run.shif your driver files live under/etcinstead of/usr/share.
Local installation#
Use a dedicated virtual environment to avoid conflicts with system Python packages.
1. Create a virtual environment#
With uv (recommended):
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv --python 3.11 .venv
source .venv/bin/activate
With pip:
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
2. Install EmbodiChain#
Set the index variables from Package indexes, then pick one row:
Source |
Tool |
Command |
|---|---|---|
PyPI |
uv |
|
PyPI |
pip |
|
Git clone |
uv |
|
Git clone |
pip |
|
Example — editable install from source with uv:
git clone https://github.com/DexForce/EmbodiChain.git
cd EmbodiChain
uv venv --python 3.11 .venv && source .venv/bin/activate
uv pip install -e . \
--extra-index-url http://pyp.open3dv.site:2345/simple/ \
--trusted-host pyp.open3dv.site
Example — install from PyPI with pip:
pip install embodichain \
--extra-index-url http://pyp.open3dv.site:2345/simple/ \
--trusted-host pyp.open3dv.site
This pulls in dexsim_engine (Python package dexsim) and the rest of the core dependencies declared in pyproject.toml.
Optional: generative simulation (gensim)#
Install the gensim extra for SimReady asset pipelines, Blender-based mesh processing, and pyrender. The bpy wheel is hosted on Blender’s index and must be included in the install command.
Source |
Tool |
Command |
|---|---|---|
PyPI |
uv |
|
PyPI |
pip |
|
Git clone |
uv |
|
Git clone |
pip |
|
Example:
pip install -e ".[gensim]" \
--extra-index-url http://pyp.open3dv.site:2345/simple/ \
--trusted-host pyp.open3dv.site \
--extra-index-url https://download.blender.org/pypi/
[!TIP] When using uv from a source checkout,
pyproject.tomlalready defines the Blender index under[tool.uv.index]for thebpysource. You still need the DexForce index flags fordexsim_engine.
For SimReady pipeline usage and LLM configuration, see SimReady Asset Pipeline.
Verify installation#
Quick check (all install methods)#
python -c "import embodichain, dexsim; print('embodichain', embodichain.__version__); print('dexsim', dexsim.__version__)"
You should see version strings for both packages with no import errors.
Simulation tutorial (source tree or Docker with repo)#
The tutorial script scripts/tutorials/sim/create_scene.py ships with the repository. Run it from the repository root:
cd /path/to/EmbodiChain
python scripts/tutorials/sim/create_scene.py
With a display: omit
--headlessto open the DexSim viewer after the scene is built.Headless / SSH: use
--headlessto run without a window (FPS logs in the terminal):
python scripts/tutorials/sim/create_scene.py --headless
Optional GPU smoke test:
python scripts/tutorials/sim/create_scene.py --headless --device cuda
Press Ctrl+C to stop; the script cleans up the simulation on exit.
Troubleshooting#
Symptom |
What to try |
|---|---|
|
Add the DexForce index and |
|
Reinstall with the DexForce index; |
Docker Vulkan / EGL warnings from |
Install host NVIDIA drivers and Vulkan user-space packages; paths must be files under |
Viewer does not open |
Export |
PyTorch / CUDA errors at runtime |
Reinstall a PyTorch build that matches your driver/CUDA from pytorch.org. |
|
Include the Blender index ( |