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

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

gobot-0.1.12-cp313-cp313-manylinux_2_35_x86_64.whl (67.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

gobot-0.1.12-cp312-cp312-manylinux_2_35_x86_64.whl (67.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

gobot-0.1.12-cp311-cp311-manylinux_2_35_x86_64.whl (67.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

gobot-0.1.12-cp310-cp310-manylinux_2_35_x86_64.whl (67.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

File details

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

File metadata

File hashes

Hashes for gobot-0.1.12-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 0694f65d54d02db2b1afeac19299367b4b918e6a1c4950458eacff0f19056f58
MD5 422ec589fc4cf895467da34aa0971de6
BLAKE2b-256 78e940ed6ac88ec1a4b66cb1eb1016db7a2f9c7205bd0069362e2e6d1c543a6e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.12-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 12f5b9f481357fdeaa4c85e68344b786e9abd70340511d2523ecc47520bf578a
MD5 d81255fe751a8047bdce70b16dee2f73
BLAKE2b-256 69487685fc439a52206f3aba66ed232dcd7866163007ded836a9a15bd0ec5d0d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.12-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d6ceecf801a41d17c2a22c572204128bfe1d6350abd8e085cca394f838cb4995
MD5 89088c0fa52ffc25fee2d35472c98517
BLAKE2b-256 56511fb3fe5732c9caa41a4f5c12b2860685fbd9ecf23f31c3c31d91ab495db9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.12-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 03b2a1adfbf7b1022371b5f7cf48f58f6032ddb08f657f085bd720dc50f3324e
MD5 2dac1e91bbe2774c0bdb720a9ee82332
BLAKE2b-256 8d2372fac97fdb2a6ffcd05bb6307eb6a9d291a54a3110f366abaa480f233e19

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.12-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 e3867055fe0aba17b69318fd463653cc8fa036c0c5a25e5ae0d22be3bb5f4b16
MD5 3db25bf1c8cde1f6a93900563ed6dc1a
BLAKE2b-256 78d4c92b8d8f0e94308a83b38822466ea5451ce715b98de235da76c6f945e5ca

See more details on using hashes here.

Provenance

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