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.13-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.13-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.13-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.13-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.13-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.13-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for gobot-0.1.13-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6c744c157a80652931f12b29259c4abdd96389df56893e43aeda53aa3820851d
MD5 ef0ca6bf62b7e0cef972b8a3aeba7dac
BLAKE2b-256 6bbc226c36063f83f3af9b47bbc0a2ab905b3651fdeae847677b505492df4abb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.13-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 203de07100ce6ba980568915f9fa4869a68450b90568d436dfecdba8ee1e27fe
MD5 16ba7c37298240cca5f9d3904716693e
BLAKE2b-256 fda743df142321fe0af0d2ceda8e6812bafb50336988c64314e602918d6fa94f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.13-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 9fd10948fcd167c1a5fd476e4d7c0407f685a7daa4a5e039eb41d9a241597b87
MD5 d2a08aae4b97d4af57c49d706f7c4010
BLAKE2b-256 a579f431c9f27817ba50477bd3f730e138e71d7ed32ef16b7eb27db8502cb060

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.13-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 8caa228a30a966bb2b0d3310c436765c4f2988f8386254decead03f2e766ef4a
MD5 b9517f429132cc0e3d55dbf7c45bedf8
BLAKE2b-256 e15590b9c1b3662ffdd97346309a514068f40a3451540eef18fcb82f6efe5167

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for gobot-0.1.13-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4fc2c60ba36d4559c453f97b84db6b96924580b41342fc61c86f087a6e600d8c
MD5 c9efe84cca8ce42b8d53296b41bf3b34
BLAKE2b-256 51044fb86c373abbd6b4f898b2ffd190b60c032cd2e46c7daad2c38da418a27b

See more details on using hashes here.

Provenance

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