Website • Paper • Quickstart • Video
- x86-64 Linux platform. Support for other platforms is coming.
- Ubuntu 22.04+ or another Linux distribution with
GLIBC >= 2.35,GLIBCXX >= 3.4.30, andCXXABI >= 1.3.13 uvpackage manager- A working NVIDIA driver compatible with Isaac Sim requirements
We use uv for package management. If you don't have it installed, please refer to Installing uv.
# Install required tools (Debian/Ubuntu)
sudo apt install git wget unzip
# Clone the repository
git clone https://github.com/intelligent-control-lab/BrickSim BrickSim
cd BrickSim
# Download the prebuilt native extension to shorten setup time
./scripts/download_prebuilt_native.sh
# Alternatively, if you want to build the native extension from source, run:
# sudo apt install build-essential xz-utils zstd
# ./scripts/build.sh
# Set up the Python environment and install dependencies
uv sync --lockedYou can install the bricksim package from our nightly build registry.
Note that the published Python packages do not include demos or experiment scripts.
uv pip install "bricksim[all]" \
--index https://dl.cloudsmith.io/public/bricksim/bricksim/python/simple/ \
--override <(printf 'pywin32==306 ; sys_platform == "win32"\n')Or, if you want to add BrickSim to pyproject.toml:
- Add the following override to your
pyproject.toml(to mitigate Isaac Sim's dependency issue):[tool.uv] override-dependencies = [ 'pywin32==306 ; sys_platform == "win32"', ]
- Add the
bricksimdependency:uv add "bricksim[all]" \ --index bricksim=https://dl.cloudsmith.io/public/bricksim/bricksim/python/simple/
# Open an empty stage to play interactively
uv run bricksim
# Run the assembly demo
uv run bricksim demos/demo_assembly.pyOther demos include:
demos/demo_inhand.pyfor in-hand manipulation experimentsdemos/demo_keyboard_teleop.pyfor keyboard-driven interactiondemos/demo_teleop.pyfor teleoperation, recording, and replay workflows- The teleoperation demo expects the
lerobotpackage plus a configured leader device path insidedemos/demo_teleop.py.
- The teleoperation demo expects the
| Path | Purpose |
|---|---|
native/ |
C++ native extension |
python/ |
Python extension and API |
demos/ |
Demos |
experiments/ |
Research and evaluation scripts |
resources/ |
USD files and other assets |
scripts/ |
Development and build scripts |
Generate the Pyright and ty configuration for type analysis and completion in editors like VSCode:
uv run bricksim-type-configsWe recommend installing the ty extension for VSCode auto-completion, as it's much faster at handling Isaac Sim's many dependencies.
If you make changes to the C++ code in native/, you need to re-compile the native extension for the changes to take effect.
./scripts/build.sh
# To also build & run the tests, use:
RUN_TESTS=1 ./scripts/build.shIf you use BrickSim in your research, please cite:
@article{wen2026bricksim,
title = {BrickSim: A Physics-Based Simulator for Manipulating Interlocking Brick Assemblies},
author = {Wen, Haowei and Liu, Ruixuan and Piao, Weiyi and Li, Siyu and Liu, Changliu},
journal = {arXiv:2603.16853},
year = {2026},
eprint = {2603.16853},
archiveprefix = {arXiv},
primaryclass = {cs.RO},
url = {https://arxiv.org/abs/2603.16853}
}
Package repository hosting is graciously provided by Cloudsmith.
Cloudsmith is the only fully hosted, cloud-native, universal package management solution, that
enables your organization to create, store and share packages in any format, to any place, with total
confidence.