Skip to main content

MuJoCoUni

English | 简体中文

arXiv Paper

MuJoCoUni is the standalone UniLab batch-executor layer for official MuJoCo. It provides the BatchEnvPool API used by UniLab without modifying MuJoCo solver, contact, integrator, or source-tree internals.

System Boundary

MuJoCoUni sits between UniLab and official MuJoCo.

MJCF / XML asset
        |
        v
official MuJoCo compiler
        |
        v
mjModel
        |
        v
MuJoCoUni BatchEnvPool
  - captures/copies mjModel
  - owns model pool
  - owns worker mjData
  - calls official MuJoCo C APIs
        ^
        |
UniLab backend
  - receives task/training command
  - owns rollout pace
  - packs state/control/reset arrays
  - unpacks state/sensor arrays

Responsibility split:

UniLab:
  task config, commands, rewards, rollout pace, CPU/GPU bridge,
  training orchestration, logging

MuJoCoUni:
  BatchEnvPool, model cloning, worker mjData, local thread pool,
  batched step/forward/reset/query execution

MuJoCo:
  MJCF compiler, mjModel/mjData definitions, solver, contact,
  integrator, sensor layout, official C API

For larger CPU/GPU training, UniLab remains the bridge above local MuJoCoUni executors:

CPU rollout side
  MuJoCoUni BatchEnvPool instances
  produce observation/reward/done/sensor data
  request action tensors
        |
        v
UniLab bridge
  batches rollout traffic
  routes data toward GPU learner/action service
  routes actions/control commands back to CPU workers
        |
        v
GPU side
  consumes training data
  performs learner/inference work
  returns action tensors or policy-side feedback through UniLab

Version Policy

MuJoCoUni has its own package version, independent of the MuJoCo solver version.

Current release:

mujoco-uni-runtime==0.5.0
mujoco>=3.5,<3.12

The public metadata is available from Python:

import mujoco_uni

print(mujoco_uni.__version__)
print(mujoco_uni.MUJOCO_VERSION)
print(mujoco_uni.MUJOCO_VERSION_SPEC)

MuJoCoUni supports one official MuJoCo solver version per Python environment. The native extension records the MuJoCo version used at build time, and the runtime fails fast if the loaded mujoco package does not match that native build target.

Version switching is active but process-level: MuJoCoUni selects an existing versioned uv environment, then runs the target command in that environment before Python imports mujoco. Normal training launch does not create, install, or rebuild environments.

env-mj35  -> mujoco==3.5.x  -> build/install mujoco-uni-runtime
env-mj36  -> mujoco==3.6.x  -> build/install mujoco-uni-runtime
env-mj37  -> mujoco==3.7.x  -> build/install mujoco-uni-runtime
env-mj38  -> mujoco==3.8.x  -> build/install mujoco-uni-runtime
env-mj39  -> mujoco==3.9.x  -> build/install mujoco-uni-runtime
env-mj310 -> mujoco==3.10.x -> build/install mujoco-uni-runtime
env-mj311 -> mujoco==3.11.x -> build/install mujoco-uni-runtime

Default and fallback selection prefer discovered environments in this order:

3.11 > 3.8 > 3.10 > 3.9 > 3.7 > 3.6 > 3.5

If the requested version is not found, MuJoCoUni prints a warning and falls back to the preferred existing environment. If no MuJoCo environment exists, launch fails with a clear setup error.

For UniLab training, the normal task command is the only user-facing launcher. Set the process selector when running the command:

MUJOCO_UNI_VERSION=3.8 uv run train --algo ppo --task go2_joystick_flat --sim mujoco
MUJOCO_UNI_VERSION=3.10 uv run train --algo ppo --task go2_joystick_flat --sim mujoco

Unset MUJOCO_UNI_VERSION keeps the active Python environment behavior. Exact requests such as 3.8.0 require that exact runtime; minor requests such as 3.8 accept a compatible 3.8.x runtime.

MuJoCoUni owns the internal discovery and spawning services used by UniLab. Explicit environment preparation is a setup operation, not part of the normal training launch path.

The required MuJoCo Python model pointer helpers, _address and _from_model_ptr, are checked at import time.

Package Layout

The structure mirrors the DrakeUni split between runtime code, native source, and compiled artifacts:

src/mujoco_uni/
  __init__.py
  metadata.py              # MuJoCoUni package metadata and supported range
  batch_env.py              # Stable public BatchEnvPool API
  mujoco_runtime/
    api.py                  # MuJoCoUni-owned access to official mujoco
    version_control.py      # MuJoCo solver-version control
  runtime/
    batch.py                # Python API, validation, compatibility behavior
  compiled/
    __init__.py             # Native extension loader and diagnostics
    _batch_env*.so          # Generated extension after local build
  native/
    batch_env.cc            # Native pybind11 executor
    threadpool.h/.cc        # Local thread pool

The stable import path is:

from mujoco_uni.batch_env import BatchEnvPool, SUPPORTED_FIELDS

Execution Model

BatchEnvPool accepts one mujoco.MjModel or a compatible sequence of mujoco.MjModel objects. At construction time it reads the official MuJoCo model pointer from Python, copies the model with mj_copyModel, and stores pool-owned models internally.

The hot path is native C++ calling the official MuJoCo C API. The pool uses:

  • one logical pool-owned mjModel assignment per environment slot,
  • one reusable mjData per worker thread,
  • disjoint environment chunks,
  • disjoint output slots,
  • one synchronization point per batch operation.

There is no MPI or OpenMP inside the base BatchEnvPool executor. Large-scale multi-process, multi-socket, or multi-node collection composes multiple local executors from a layer above BatchEnvPool.

Worker CPU affinity (Linux)

BatchEnvPool accepts an optional cpu_ids sequence that pins each native worker thread to an explicit CPU, so multiple pools can be kept on disjoint CPU sets:

pool = BatchEnvPool(model, nbatch=64, cpu_ids=[0, 1, 2, 3])

cpu_ids[i] pins worker thread i, so the mapping is 1:1 with nthread: its length must equal nthread, and when nthread is omitted it is inferred from len(cpu_ids). CPU ids are validated at construction (non-negative, unique, available to the process); invalid input raises ValueError. The configured mapping is exposed read-only via pool.cpu_ids, and pool.worker_cpu_ids() reports the CPU each worker was actually observed on after pinning. When cpu_ids is not given, scheduling behavior is unchanged. CPU pinning is supported on Linux only.

Public API

The stable public API is mujoco_uni.batch_env.

Exported symbols:

  • BatchEnvPool
  • SUPPORTED_FIELDS
  • batch_available
  • batch_import_error

Supported randomization/model fields:

body_mass
body_ipos
body_iquat
body_inertia
dof_armature
gravity
geom_friction
kp
kd

Core BatchEnvPool behavior:

  • construct from one model or a sequence of length 1 / nbatch,
  • step over the full pool and return final state, optionally with final sensor data,
  • forward over the full pool and return sensor data,
  • sparse reset with optional model-field randomization,
  • site Jacobian queries,
  • hfield height sampling,
  • non-owning model views through get_model, get_models, and get_all_models.

Returned model views remain valid only while the pool is alive.

Installation

MuJoCoUni is published as mujoco-uni-runtime. The default install path is a prebuilt wheel bound to the default MuJoCo version (3.11.0), published for linux x86_64 / aarch64 and macOS arm64 × Python 3.10–3.13:

pip install "mujoco==3.11.0" mujoco-uni-runtime

One released runtime version carries exactly one MuJoCo binding (PyPI filename identity), and the native extension refuses to load against any MuJoCo version other than its build-time one (exact-version watchdog at import time).

For any non-default MuJoCo version, the sdist is the fallback and the only path: build from source against your environment's mujoco with --no-build-isolation (so the build does not see a throwaway isolated environment). Windows users take this path as well — no Windows wheels.

pip install "mujoco>=3.5,<3.12" pybind11 numpy setuptools wheel
pip install mujoco-uni-runtime --no-binary mujoco-uni-runtime --no-build-isolation

See docs/release-coordination.md for the cross-repo release coordination rules.

Prerequisites

Building from source requires:

  • a C++17 toolchain — macOS: Xcode Command Line Tools (xcode-select --install); Debian/Ubuntu: sudo apt install build-essential; Windows: MSVC Build Tools
  • Python development headers — Debian/Ubuntu system Python: sudo apt install python3-dev (or python3.X-dev matching your version). Not needed when using a uv-managed Python (uv python install), which bundles the headers and is the recommended option.

uv projects declare the same setup:

[project.optional-dependencies]
mujoco = ["mujoco~=3.11.0", "mujoco-uni-runtime==0.5.0", "pybind11>=2.12", "wheel"]

[tool.uv]
no-build-isolation-package = ["mujoco-uni-runtime"]

For development beside UniLab:

cd /path/to/mujoco_uni
uv sync
uv pip install --force-reinstall --no-deps --no-build-isolation -e .

The common development commands are also wrapped in the Makefile:

make sync       # uv sync
make install    # editable install (builds the native extension)
make check      # ruff + pytest
make test       # pytest only
make matrix     # version-matrix checks across supported MuJoCo versions

UniLab imports through its compatibility/backend layer, which in turn imports:

from mujoco_uni.batch_env import BatchEnvPool, SUPPORTED_FIELDS

Rebuilding The Native Extension

Editable installs are useful while developing MuJoCoUni in one environment. They generate a local extension such as:

src/mujoco_uni/compiled/_batch_env.cpython-313-darwin.so

That artifact is tied to the active Python environment, platform, and MuJoCo patch version. Rebuild after switching virtual environments, Python versions, or MuJoCo versions:

uv pip install "mujoco==3.10.0" pybind11 wheel
uv pip install --force-reinstall --no-deps --no-build-isolation -e .

After selecting a solver version, run local checks without an automatic sync if you want to preserve the already-built native target:

uv run --no-sync pytest -q

Validation

Standalone checks:

uv run ruff check .
uv run pytest -q

or simply make check. After switching the MuJoCo version with make mujoco MJ=<version>, run tests with make test-no-sync so the freshly built native target is preserved.

Version-matrix checks:

uv run python tools/version_matrix.py --pytest

or make matrix. Full UniLab validation is available as make test-unilab and make test-unilab-train.

The default matrix covers:

3.5.0 3.6.0 3.7.0 3.8.0 3.8.1 3.9.0 3.10.0 3.11.0

Full UniLab task validation is separate from the quick package matrix:

uv run python tools/version_matrix.py --versions 3.5.0 3.10.0 --unilab
uv run python tools/version_matrix.py --versions 3.5.0 3.10.0 --unilab-train

The --unilab-train mode runs a short one-iteration training smoke in each selected MuJoCo environment.

UniLab integration checks:

cd ../UniLab
uv run pytest \
  tests/base/test_mujoco_batch_env_randomization.py \
  tests/base/test_mujoco_batch_env_jacobian.py \
  tests/base/backend/test_mujoco_site_jacobian.py \
  tests/envs/locomotion/test_go2_rough_height_scan.py \
  tests/envs/locomotion/test_go2_footstand.py \
  tests/envs/locomotion/test_go2_terrain_spawn.py \
  -q

Training smoke:

cd ../UniLab
uv run python scripts/train_rsl_rl.py \
  task=go2_joystick_flat/mujoco \
  algo.seed=1 \
  algo.num_envs=256 \
  algo.num_steps_per_env=24 \
  algo.max_iterations=2 \
  algo.save_interval=100 \
  training.no_play=true \
  training.logger=tensorboard \
  training.device=cpu \
  training.log_root=logs/mujoco_uni_smoke

Thread Safety

Built-in MuJoCo sensors are read from mjData.sensordata and are supported by the batch executor.

Custom sensors, plugins, and global MuJoCo callbacks are thread-safety-sensitive. If nthread > 1, any global mutable callback/plugin state is the caller's responsibility.

Scope Boundaries

MuJoCoUni stays outside these responsibilities:

  • MuJoCo source-code changes,
  • MuJoCo solver/contact/integrator forks,
  • distributed factorization of one MuJoCo solve across MPI ranks,
  • OpenMP inside the MuJoCoUni executor,
  • UniLab task YAMLs, rollout code, reward functions, and DrakeUni behavior.

Citation

Paper page: MuJoCoUni

@article{jia2026mujocouni,
  title   = {MuJoCoUni: Persistent Batched Runtime Primitives for MuJoCo},
  author  = {Jia, Yufei and Wu, Junzhe},
  journal = {arXiv preprint arXiv:2605.24922},
  year    = {2026},
  url     = {https://arxiv.org/abs/2605.24922}
}

License

Apache-2.0.

Metadata

Release files for mujoco-uni-runtime 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mujoco-uni-runtime 0.5.0
File Size Uploaded
mujoco_uni_runtime-0.5.0.tar.gz 55.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for mujoco-uni-runtime 0.5.0
File
mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ x86-64 Details
mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.35+ ARM64 Details
mujoco_uni_runtime-0.5.0-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ x86-64 Details
mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.35+ ARM64 Details
mujoco_uni_runtime-0.5.0-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ x86-64 Details
mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.35+ ARM64 Details
mujoco_uni_runtime-0.5.0-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.35+ x86-64 Details
mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.35+ ARM64 Details
mujoco_uni_runtime-0.5.0-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 20.7 MB

Release files / mujoco_uni_runtime-0.5.0.tar.gz

Download URL mujoco_uni_runtime-0.5.0.tar.gz
Size 55.7 kB
Tags Source
SHA-256 checksum
How to use checksums
a0c774da3607b6111d7c91155867377f9eb6d91ab6e0bbb97f15247df1ead9d7
BLAKE2b-256 checksum
How to use checksums
e9ce476cf50ec4f76b86b855b861e01f106b330c7d62a61574655cfe90336a07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_x86_64.whl

Download URL mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_x86_64.whl
Size 2.4 MB
Tags CPython 3.13 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
84f1c81819752622cb794458a731d8b1b98ec2a589380fedf55999b3fe89faed
BLAKE2b-256 checksum
How to use checksums
5683df50eae1b379198bf0c2c58d36f768afe30db7dad823b9210d21c6399eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_aarch64.whl

Download URL mujoco_uni_runtime-0.5.0-cp313-cp313-manylinux_2_35_aarch64.whl
Size 2.4 MB
Tags CPython 3.13 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
9d22628e59ae205610e1eeba2429c21801cf8ea25d99de6d66733621c44086c2
BLAKE2b-256 checksum
How to use checksums
e71cff0cb5a53311f94200a1ecd9645d9e48442b994bb866a04e5c52f3f28537
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp313-cp313-macosx_10_13_universal2.whl

Download URL mujoco_uni_runtime-0.5.0-cp313-cp313-macosx_10_13_universal2.whl
Size 397.0 kB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
1831182949ace71f48e9ee7c9ef7406b4b1ef2bba9884c87e4932ba92862041b
BLAKE2b-256 checksum
How to use checksums
de33c4c2d2fb73b43c8a4e331fe065d4f49f1ae70b17d4327255ccb733f917d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_x86_64.whl

Download URL mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
a0117a107319661dccc6657e3cc0d2545f58eb0f9b0c725acba1d4047f507847
BLAKE2b-256 checksum
How to use checksums
0a257633b376c3cadffd35420f7f13a1a35ddfed86cae8842cf1206c3555b516
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_aarch64.whl

Download URL mujoco_uni_runtime-0.5.0-cp312-cp312-manylinux_2_35_aarch64.whl
Size 2.4 MB
Tags CPython 3.12 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
61539c6287ca62600836062aefeb458e550f4ea6782d8f24e501027824aac546
BLAKE2b-256 checksum
How to use checksums
7d9d2b14e54f2a0c70fdd95091f2648f9c50203bc87ac238370f5f51f9dac170
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp312-cp312-macosx_10_13_universal2.whl

Download URL mujoco_uni_runtime-0.5.0-cp312-cp312-macosx_10_13_universal2.whl
Size 396.9 kB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
9597385aaafc77ae7d6f89aedfb677ad9f67a0874afd5962330c08cebbad56b6
BLAKE2b-256 checksum
How to use checksums
dcfafe3e5173e804ac4eb1acbbd0fc9df81fe079fab7ae3d9813cd92cdf79b23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_x86_64.whl

Download URL mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
3ccc49063dc34f3d657ffa7afe12c62d6a88615edcb2cc21b60ec59272dea3e3
BLAKE2b-256 checksum
How to use checksums
46adf8edda197f41b2dee678faca8964cf307e6bfbdc7b2bea6b907f5bf5fdf8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_aarch64.whl

Download URL mujoco_uni_runtime-0.5.0-cp311-cp311-manylinux_2_35_aarch64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
746caa1ed23237ba4a0e2d7d7afb6afa0e3c6223b8000f22bc0c6da64a538fef
BLAKE2b-256 checksum
How to use checksums
deeda66e735512317bd135b2b9c806a882ff9f01f8503ce53b59874a6f4c685e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp311-cp311-macosx_10_9_universal2.whl

Download URL mujoco_uni_runtime-0.5.0-cp311-cp311-macosx_10_9_universal2.whl
Size 403.7 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
f86a5bc75e1758b05816777b41bb3232015ce1a26d1f63bdb2da4f3b7ae87030
BLAKE2b-256 checksum
How to use checksums
45a93cc6a7e31140bb48749a64165698358af4422a8b948293397be4621b81a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_x86_64.whl

Download URL mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_x86_64.whl
Size 2.4 MB
Tags CPython 3.10 Linux glibc 2.35+ x86-64
SHA-256 checksum
How to use checksums
d00015521610a39a473a15ef350f015914f1b82372a4eae1f580934be44bbb94
BLAKE2b-256 checksum
How to use checksums
d8edc438dd170d7a6bbbbbc31cf6188ec94bd6e8cdc384e1e1619c6c24e27d7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_aarch64.whl

Download URL mujoco_uni_runtime-0.5.0-cp310-cp310-manylinux_2_35_aarch64.whl
Size 2.3 MB
Tags CPython 3.10 Linux glibc 2.35+ ARM64
SHA-256 checksum
How to use checksums
3a4d8c9471298b0c30a5526d49fe623aa8a8682001e208ea4bd3421318a9de3d
BLAKE2b-256 checksum
How to use checksums
87237ff0ccefecbbcfbaffce7e5959ec35023c354813546424eca4ccdc12cabd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release files / mujoco_uni_runtime-0.5.0-cp310-cp310-macosx_10_9_universal2.whl

Download URL mujoco_uni_runtime-0.5.0-cp310-cp310-macosx_10_9_universal2.whl
Size 401.3 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
755146199fcf8958e5dd3b74c32d93419502a6dd89751c445c5fe70cf68a0847
BLAKE2b-256 checksum
How to use checksums
68ee61348995acb39aef26b5a1d9af57d61d6a2d042002063ab1b7bf28b0fdc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

13 release files

0.4.0

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.1

1 release file

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