mujoco-stubs
An unofficial stub-only package providing type hints for MuJoCo, a physics engine for robotics and biomechanics.
The stubs were generated from MuJoCo 3.9.0 using pybind11-stubgen and corrected with the generation scripts in this repository. They are a best-effort aid to type checking and autocompletion, and may be incomplete or inaccurate. Consult the official MuJoCo documentation for runtime behavior.
Usage
Python 3.10 or newer is required. Install from PyPI:
pip install mujoco-stubs
This installs the stubs and their typing dependencies without installing or constraining MuJoCo. To also install a compatible MuJoCo runtime, use the extra:
pip install "mujoco-stubs[mujoco]"
The extra requires mujoco>=3.9.0,<3.10.0 and may change the installed MuJoCo
version to satisfy that range. Type checkers that support
PEP 561 discover the stubs
automatically when your code imports mujoco.
The package is partial. Graphics typing focuses on Renderer, viewer handles,
and public GLContext operations. Direct OpenGL/EGL/CGL bindings and internal
modules such as mujoco._simulate and the gl_context backend selectors remain
partially or wholly uncovered.
The stubs have been audited on both macOS (CGL) and Linux with EGL libraries available. Windows runtime auditing is not yet covered.
Versioning
The version of this package follows {mujoco_version}.{stub_revision}. For example, 3.9.0.1 is
stub revision 1 generated from MuJoCo 3.9.0; 3.9.0.2 would contain further stub
corrections. This release targets the MuJoCo 3.9 series. The optional mujoco
extra enforces that version range; a plain installation leaves runtime version
selection to you. The stub version number alone does not constrain MuJoCo.
Development
With uv installed, run the package validation:
uv run --locked --python 3.12 python scripts/validate.py
If you use just, just validate runs the same checks,
just lint checks the validation code, and just build builds distributions.
just audit runs mypy's stubtest with commented allowlists
for known native-binding differences and partial coverage.
License
Licensed under Apache-2.0. See NOTICE for MuJoCo and dm_control attribution and the origin of the generated declarations.
Metadata
Release files for mujoco-stubs 3.9.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mujoco_stubs-3.9.0.1.tar.gz | 181.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mujoco_stubs-3.9.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 283.9 kB
Release files / mujoco_stubs-3.9.0.1.tar.gz
| Download URL | mujoco_stubs-3.9.0.1.tar.gz |
|---|---|
| Size | 181.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
120484f943ffe83d412e97e7daecc5802c4668d2188af740966334403215a8e9
|
|
BLAKE2b-256 checksum How to use checksums |
b140858c8ca9a7d12d717b6b911dffc0db644292fb303334b0bbe253e2100713
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / mujoco_stubs-3.9.0.1-py3-none-any.whl
| Download URL | mujoco_stubs-3.9.0.1-py3-none-any.whl |
|---|---|
| Size | 102.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8cb34134a5ea7c418ccb86cdb18f4167692d57ed43972600521de5ba1553543c
|
|
BLAKE2b-256 checksum How to use checksums |
a1c7b52f5aec85ef0887775789de73543770245eef5f987e24850e0b679eeb06
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log