Skip to main content

gobot

Gobot is a Linux robotics simulation package with a Python-first workflow. Use it from Python to create scenes, step simulation, inspect robot state, and drive reinforcement-learning experiments.

overview

PyPI License CI

Install

Gobot publishes full-featured Linux x86_64 wheels for NVIDIA GPU systems. The default install includes CPU simulation, MuJoCo Warp, Newton, PyTorch and CUDA user-space dependencies, the LuisaCompute renderer, Gaussian Splatting inference, and the bundled OpenUSD importer/runtime. There are no feature extras to select.

pip install gobot -i https://pypi.org/simple

Check the install:

import gobot

print(gobot.__file__)
print(gobot.__version__)
print(gobot.backend_infos())

Python Usage

Set a project root before using res:// paths:

import gobot

gobot.set_project_path("/path/to/project")
scene = gobot.load_scene("res://world.jscn")

print(scene.root.name)

Editor

Start the editor from the Python environment you want Gobot to use:

gobot_editor

For source checkout development:

cd /path/to/gobot
uv run gobot_editor --path examples/go1

The first uv run initializes the required Git submodules and builds the cached LuisaCompute, gsplat, and OpenUSD SDKs before installing Gobot editable. It requires the source-build toolchain, including a CUDA toolkit with nvcc. Later runs are incremental. Python files import directly from the checkout, while _core, libgobot, and gobot_editor come from the same build installed in .venv. The editable gobot_editor launcher runs an incremental CMake/Ninja rebuild before every start, so changed C++ and CMake files cannot silently leave the editor on stale native binaries. If the initial editable install was configured inside uv's temporary build isolation environment, the launcher repairs that persistent CMake cache with the current virtual environment before its first incremental rebuild.

When native changes must be used by another Python entry point, rebuild and reinstall only Gobot explicitly:

uv sync --reinstall-package gobot --no-build-isolation-package gobot

The initial uv sync installs the build backend in .venv; disabling build isolation on later native rebuilds prevents CMake from caching a temporary build environment's Python executable.

Python-only edits need no rebuild. Do not add PYTHONPATH or launch an editor from build/python; that can combine source files, native extensions, and executables from different builds. The package launcher selects the native artifacts installed in its own environment.

uv run is environment activation, not a separate Gobot runtime. These are equivalent after uv sync:

uv run gobot_editor --path examples/go1
.venv/bin/gobot_editor --path examples/go1

Alternatively, run source .venv/bin/activate once and then use gobot_editor or python directly. At runtime, GOBOT_PYTHON_LIBRARY=/other/libpython.so still overrides automatic libpython discovery.

For a standalone CMake build used by C++ tests, use a separate build directory and the Python selected by uv:

cmake -S . -B build/dev -DPython3_EXECUTABLE="$(uv python find)"
cmake --build build/dev -j
ctest --test-dir build/dev --output-on-failure

Python CTest cases run against build/dev/python in an isolated interpreter, so an older editable _core in .venv cannot shadow the artifact under test. That standalone build is not the artifact used by the .venv console script; run the following command when the installed editor must be updated:

uv sync --reinstall-package gobot --no-build-isolation-package gobot

The default Linux x86-64 environment includes ONNX Runtime, PyTorch, rsl_rl, MuJoCo Warp, Newton, training logs, video capture, and ONNX export support. There are no separate CPU, CUDA, or training extras. Selecting a simulation provider remains explicit; requesting a CUDA provider never silently falls back to CPU.

OpenUSD remains an optional CMake feature, but Python source builds enable it by default. Official Linux x86-64 wheels bundle the runtime, so pip install gobot does not need OpenUSD, LuisaCompute, or oneTBB checkouts and does not compile them on the user's computer. Source builds use pinned, shallow submodules under 3rdparty; the PEP 517 backend initializes and builds them automatically. The explicit CMake workflow remains available for SDK work:

git submodule update --init --depth=1 3rdparty/openusd 3rdparty/onetbb
cmake --workflow --preset dependencies-openusd
cmake -S . -B build/openusd-dev \
  -DGOB_BUILD_OPENUSD=ON \
  -DGOB_OPENUSD_ROOT="$PWD/build/openusd/install"
cmake --build build/openusd-dev -j

The importer maps USD hierarchy, stage units/up-axis, transforms, visibility, render-purpose polygon meshes, normals, UVs, and constant UsdPreviewSurface material inputs into Gobot PackedScene data. OpenUSD-enabled installs bundle their native runtime under gobot/openusd. See Newton and OpenUSD integration for the data boundary and provider example.

Run Go1 rough-terrain training on MuJoCo Warp through uv:

uv run \
  python -m examples.go1.train.go1_velocity_train \
  --backend mujoco-warp \
  --device cuda:0 \
  --num-envs 256 \
  --iterations 10000 \
  --no-step-extras

Select the CPU semantic baseline explicitly when CUDA is not desired:

uv run \
  python -m examples.go1.train.go1_velocity_train \
  --backend mujoco-cpu \
  --device cpu \
  --num-envs 64 \
  --iterations 10000

Packaged examples are available from the editor start screen under Examples. See doc/examples.md for packaging details.

Examples

Example Preview
CartPole CartPole example
Go1 policy playback Go1 policy playback

Local Wheel Build

From a source checkout:

git clone https://github.com/RobSimulatorGroup/gobot.git
cd gobot
uv run --with build python -m build --wheel
uv pip install --force-reinstall dist/gobot-*.whl

The PEP 517 backend initializes the pinned submodules and incrementally builds all native SDKs. A complete Git checkout is required for source builds; install the published wheel when the dependency sources or native build toolchain are not available.

Notes

  • Supported platform: Linux.
  • Python package name: gobot.
  • Release wheels install MuJoCo CPU, MuJoCo Warp, Newton, LuisaCompute, Gaussian Splatting inference, and OpenUSD support by default. The Python GPU providers remain behind Gobot's backend-neutral simulation boundary.
  • A system CUDA Toolkit is needed to build from source, but not to use a wheel. Wheel users need a compatible NVIDIA driver providing libcuda.so.1 and the system libglvnd EGL/OpenGL dispatch libraries. Driver libraries are not copied into the wheel because they must match the target machine's driver.
  • Packaged examples: gobot/examples/ in wheels and examples/ in source.
  • MuJoCo RL roadmap: doc/mujoco_rl_plan.md.
  • Luisa CUDA renderer architecture and build guide: doc/luisa_rendering_plan.md.
  • Gaussian Splatting environment assets and inference runtime: doc/gaussian_splatting.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gobot-0.1.16-cp314-cp314-manylinux_2_35_x86_64.whl (83.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

gobot-0.1.16-cp313-cp313-manylinux_2_35_x86_64.whl (83.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

gobot-0.1.16-cp312-cp312-manylinux_2_35_x86_64.whl (83.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

gobot-0.1.16-cp311-cp311-manylinux_2_35_x86_64.whl (83.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

gobot-0.1.16-cp310-cp310-manylinux_2_35_x86_64.whl (83.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

File details

Details for the file gobot-0.1.16-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.16-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ee90d79defa252ab5f35c56d2594b66210025c85556f13716b255093cca68b5f
MD5 788b1f36290e05522db7aac9f56d1228
BLAKE2b-256 73e58e13c6553a62628cf244db26d7f5f95747d33397f6db3a6b39cddb4223dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.16-cp314-cp314-manylinux_2_35_x86_64.whl:

Publisher: python-publish.yml on RobSimulatorGroup/gobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gobot-0.1.16-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.16-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 2396d4c128bad5202bdc4ffbf24c2a450ead3c04b1bdebb0301197261a82cb63
MD5 f82718a24044f42d474ab27ed5d79b7a
BLAKE2b-256 a37d6961d5cfd22323644df944d3075cac06db8d6794a0d6c3b7fd1f88789b8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.16-cp313-cp313-manylinux_2_35_x86_64.whl:

Publisher: python-publish.yml on RobSimulatorGroup/gobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gobot-0.1.16-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.16-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 91e360e92e2d42629de15cc5b61fcd7f058664e38ff33d054d1e34520ee8f43c
MD5 43d9a5e010331d3d4651a45a45f251d5
BLAKE2b-256 2d0ecdea51658b48e1cf8a5bd637935cf8879d15c8f89bb5c178c7b5ce3251f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.16-cp312-cp312-manylinux_2_35_x86_64.whl:

Publisher: python-publish.yml on RobSimulatorGroup/gobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gobot-0.1.16-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.16-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 36192c6d13ce5b13a9b11245320613934d0a0d3c03d6e3d1dbc9fde6f2f6d2ce
MD5 41137b06e3f441685f177eaa8cb25698
BLAKE2b-256 b4348086291953412e2e62d2f393e31e529ddeb5fab1cd9448b567cd36244bd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.16-cp311-cp311-manylinux_2_35_x86_64.whl:

Publisher: python-publish.yml on RobSimulatorGroup/gobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gobot-0.1.16-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.16-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 99f44f59ffc183a71bd61c50e41bc76ba5ef0e1db7326b88e50380ef4dca29f5
MD5 f6f33bda8ba5aa521370198843867ef4
BLAKE2b-256 c2d495ad2b44bc612936bdc39e00e78c6285fc7965b01c58f0abf8d71980c353

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.16-cp310-cp310-manylinux_2_35_x86_64.whl:

Publisher: python-publish.yml on RobSimulatorGroup/gobot

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.18

5 files

This release

0.1.16 This release

5 files

0.1.14

5 files

0.1.13

5 files

0.1.12

5 files

0.1.11

5 files

0.1.10

5 files

0.1.9

5 files

0.1.8

5 files

0.1.7

5 files

0.1.6

5 files

0.1.5

6 files

0.1.4

6 files

0.1.3

6 files

0.1.2

6 files

0.1.1

6 files

0.1.0

4 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page