Skip to main content

Python bindings for the Gobot robotics scene, simulation, and rendering engine.

Project description

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 currently publishes full-featured Linux x86_64 wheels for NVIDIA GPU systems. The wheel includes CPU simulation, MuJoCo Warp training dependencies, and the LuisaCompute CUDA viewport renderer.

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
scripts/build_luisa_compute.sh
uv sync
uv run gobot_editor --path examples/go1

uv sync installs Gobot editable: Python files import directly from the checkout, while _core, libgobot, and gobot_editor come from the same build installed in .venv. After changing C++ or CMake files, rebuild and reinstall only Gobot:

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 environment includes ONNX Runtime, PyTorch, rsl_rl, MuJoCo Warp, training logs, video capture, and ONNX export support. There are no separate CPU, CUDA, or training extras. Selecting mujoco-cpu or mujoco-warp remains an explicit runtime choice; requesting Warp never silently falls back to CPU.

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
git submodule update --init --recursive
scripts/build_luisa_compute.sh
uv run --with build python -m build --wheel
uv pip install --force-reinstall dist/gobot-*.whl

Notes

  • Supported platform: Linux.
  • Python package name: gobot.
  • MuJoCo support is included in release wheels when available in the build.
  • Release wheels install the MuJoCo Warp Python provider and LuisaCompute CUDA renderer by default; neither becomes a C++ scene API.
  • 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.

Project details


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.14-cp314-cp314-manylinux_2_35_x86_64.whl (68.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

gobot-0.1.14-cp313-cp313-manylinux_2_35_x86_64.whl (68.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

gobot-0.1.14-cp312-cp312-manylinux_2_35_x86_64.whl (68.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

gobot-0.1.14-cp311-cp311-manylinux_2_35_x86_64.whl (68.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

gobot-0.1.14-cp310-cp310-manylinux_2_35_x86_64.whl (68.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

File details

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

File metadata

File hashes

Hashes for gobot-0.1.14-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1f94fe2a08a3e7dc8915ce43b190e33dfa6c63dcfe6f80cc4b7868607b68d044
MD5 0e56d8908db91aa8ebd36d005cf3f37c
BLAKE2b-256 39148596cc522be05e5be689b70ec4814c17c8c4205344afe9cd50e299a22ead

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.14-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.14-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.14-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 30cafac9624068b329e4371d8bb32f362b5892518607f2db7ada5614103adca1
MD5 b186de1a9ea04e75bb9a7346c93c4dc2
BLAKE2b-256 b86cd310069a06bed8a101ffca1941d13ca1e06f18a4524037e6e5182a966d17

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.14-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.14-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.14-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d1d6d3feb30281158bce54b88e1a989f2dc5249e65c7ba6128ee0ab2846827f3
MD5 00d5079f711509b436fb93f27ea036c5
BLAKE2b-256 b11e82746409eab6318e7e57ea80b4a0c7c659354d36d7733e0c3d245a8342a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.14-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.14-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.14-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1095780fe0d806dfdb4f1285f97d0a29c6f68da4abcac6a261e337580fafd023
MD5 47400ce9a1d8009c5ad092ac0366053a
BLAKE2b-256 46ebdc3c8c263f6dcdaa20a320d65b8ac7f81710d8776bf48e30ea923c584da1

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.14-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.14-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.14-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 0503481fa4093a0501b40209ab30e425f9a69c3f57e71c5edf8da4d9c68f1a51
MD5 6519b7d443a1d28fdf87e5739fef1c41
BLAKE2b-256 7e4fb397c9f693669816f56f0638d87a028c48826a2855408cc33fe118bb7ef0

See more details on using hashes here.

Provenance

The following attestation bundles were made for gobot-0.1.14-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page