Skip to main content

MuJoCo Mojo

PyPI version Python versions Tests & Release Status Ruff Pydantic v2 License Documentation GitHub Discussions PyPI Downloads


A complete MJCF lifecycle and trial orchestration suite for MuJoCo, powered by Pydantic v2.

MuJoCo Mojo bridges the gap between static XML modeling and large-scale simulation research. It provides a strongly-typed bridge for building models and a robust execution engine for running them at scale.

  • Model: Build MJCFs via validated Python objects allowing for programatic generation.
  • Scale: Execute multi-threaded Monte Carlo trials with built-in resume logic.
  • Monitor: Track progress via a zero-dependency web dashboard and persistent logs.
  • Assess: Quickly view interactive results of a trial in context of others.
  • Reproduce: Automatic environment snapshotting (requirements.txt) for every job.

Installation

Install using uv (recommended):

uv add mujoco-mojo[all]

or with pip:

pip install mujoco-mojo[all]

Features

MJCF Tools

  • Strongly-Typed Elements: MJCF components backed by Pydantic v2 for immediate validation.
  • Semantic Validation: Early detection of structural errors and attribute mismatches before the engine starts.
  • MuJoCo Alignment: Designed to mirror MuJoCo’s XML schema closely (no magic abstractions)
  • Object Enumerations: Embedded MuJoCo object mappings to simplify retrieving mjOBJ IDs.
  • Asset Sharing: Specialized handling of dependency by remapping assets to become shared allows for space efficient execution of complex models

Runtime Toolkit

  • Forcing Functions: A library of typed Load definitions (spring-dampers, point-to-point forces, friction, and more) that apply themselves including reaction forces.
  • Proximity Sensing: Built-in distance and closest-point tracking between sites and bodies, exposed as both telemetry signals and live overlays with no extra instrumentation. Works on concave geometry meshes.
  • Structured Telemetry: A single post/track call records any value into a hierarchical namespace during simulations. This include prebuilt request calls for commonly desired values.
  • Video Recording: Multi-camera MP4/WebM/GIF capture synced to simulation time, with playback-speed control, force/proximity overlays, on-frame labels, and single-frame snapshots.

Job Utilities

Campaign Orchestration

  • Multi-Threaded Execution: Single or multi-threaded trial execution
  • Environment Snapshotting: Automatically record installed Python packages to requirements.txt for job recreation (works with uv or pip)
  • Resume Logic: Resume a previously started job without rerunning previous cases
  • Robust Logging: Built in Rich logging for terminal and a rotating file handler for persistent logs and status files for insight on trial progress
  • Global Overrides: Force specific values onto distributions via CLI or JSON overrides to test "golden" cases.

Monte Carlo

  • Reproducible Sampling: Random draw tools for Monte Carlo or rerun with global variable override
  • End of run summary with metric to help perform a state of health check
  • Support for running jobs with SLURM for distributed compute

Optimization

  • Bayesian Search: Intelligent design space navigation powered by Optuna integration.
  • Design Variables: Continuous (DesignFloat) and discrete (DesignCategorical) parameters evolved by the solver.
  • Adaptive Refinement: "Zoom" into promising neighborhoods by aggressively shrinking search bounds on resume.
  • Stochastic Robustness: Multi-evaluation trials that average scores over different seeds to filter out noisy physics outliers.

Dojo Dashboard

A zero-dependency, offline-first web suite for monitoring and analyzing your simulation jobs in real-time.

Monitor: Real-Time Oversight

  • Live Progress Tracking: Dynamic progress bars and color-coded status cards provide a high-level view of your Monte Carlo runs.
  • Success/Failure Analytics: Automatic categorization of trials with built-in data integrity checks to identify "empty" vs. "failed" runs.
  • Sensory Feedback: Optional audio cues and visual celebrations let you know exactly when a multi-hour job hits 100%.
  • Deep-Linked Navigation: Jump straight from the monitor to any individual trial in the viewer with one click.

Mosaic: Advanced Telemetry Analysis

  • High-Fidelity Plotting: Hardware-accelerated visualization using Plotly.js for seamless zooming and panning through millions of data points.
  • Dynamic Versus Mode: Overlay current telemetry against previous trials using an intuitive range-selection slider for instant regression testing.
  • Regex-Powered Filtering: Navigate high-dimensional datasets using a "folder-style" signal selector with suffix and regex support.
  • State Persistence & Sharing: Every view is captured in a shareable, compressed URL by pasting a link to share your exact configuration.
  • Pro-Grade Tooling: Built-in JSON configuration editor, drag-and-drop config restoration, and multi-format exports (SVG, PNG, CSV).
  • Keyboard-First Design: Full hotkey support for warping between trials and managing views without leaving the home row.

Reloaded

A rapid prototyping loop that allows you to modify physics logic and model architecture on the fly without ever closing the visualizer.

  • Module Hot-Reloading: Recursively reloads local Python modules and MJCF logic, allowing code changes to propagate instantly to the active simulation.
  • Unified Visualizer Bridge: Synchronized visualization of custom force and torque vectors across native OpenGL, Viser web interfaces, and video recordings.
  • Multiple Viewer Backends: Drive the same reload/sync pipeline through either the native MuJoCo OpenGL viewer or a Viser web viewer.
  • Interactive Prototyping: A developer-centric command loop to toggle playback speeds, repeat last commands, watch for file changes and auto-reload, switch telemetry recording on or off mid-session, or trigger "generation-only" mode for rapid MJCF debugging.
  • Live Session Controls: Adjust the seed and trial number on the fly with seed <N> and trial <N>, without restarting the loop.
  • Asset Persistence: Automatically dumps current MJCF snapshots and model configurations to a workspace directory for post-hoc analysis or version tracking.

Metadata

Release files for mujoco-mojo 2.6.11

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-mojo 2.6.11
File Size Uploaded
mujoco_mojo-2.6.11.tar.gz 8.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mujoco-mojo 2.6.11
File Interpreter ABI Platform
mujoco_mojo-2.6.11-py3-none-any.whl Python 3 none any Details

Total release size: 10.6 MB

Release files / mujoco_mojo-2.6.11.tar.gz

Download URL mujoco_mojo-2.6.11.tar.gz
Size 8.8 MB
Tags Source
SHA-256 checksum
How to use checksums
6fd8e7da61d0ec89557604062de0f5a7139e73f4931fc212ea16844caeede86f
BLAKE2b-256 checksum
How to use checksums
2e1e1662cc14dd114282474a374a2c73b1662682bb5514141a0c1768630e8994
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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}

Release files / mujoco_mojo-2.6.11-py3-none-any.whl

Download URL mujoco_mojo-2.6.11-py3-none-any.whl
Size 1.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
bea592849c593a80536bd3d3c3df26c6a94a346f2c988e74adbaa1d712431689
BLAKE2b-256 checksum
How to use checksums
8aec4e2bcdffca02c86ab26ae89484a168ddda1cc17f39273d23c18236aa8c25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","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}

Release history Release notifications | RSS feed

2.6.12

2 release files

This release

2.6.11 This release

2 release files

2.6.10

2 release files

2.6.9

2 release files

2.6.8

2 release files

2.6.7

2 release files

2.6.6

2 release files

2.6.5

2 release files

2.6.4

2 release files

2.6.3

2 release files

2.6.2

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.7

2 release files

2.5.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.3

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.10

2 release files

2.3.9

2 release files

2.3.8

2 release files

2.3.7

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.2

2 release files

1.0.0

2 release files

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