Skip to main content

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

Project description

MuJoCo Mojo

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.

Documentation

Installation

Install using uv (recommended):

uv add mujoco-mojo

or with pip:

pip install mujoco-mojo

[!WARNING] At the time of writing, MuJoCo supports up to Python 3.13

Features

MJCF Tools

  • Strongly-typed MJCF elements backed by Pydantic v2
  • Early validation of MJCF structure and attribute semantics
  • Pythonic composition of assets, bodies, sensors, and plugins
  • Designed to mirror MuJoCo’s XML schema closely (no magic abstractions)
  • Suitable for code generation, tooling, and large model pipelines
  • Embedded MuJoCo object enumerations to make getting mjOBJ IDs simple
  • Specialized handling of dependency by remapping assets to become shared allows for space efficient execution of complex models

Job Utilities

  • Single or multi-threaded trial execution
  • Random draw tools for Monte Carlo or rerun with global variable override
  • Detailed status files for insight on trial progress
  • Resume a previously started job without rerunning previous cases
  • Automatically record installed Python packages to requirements.txt for job recreation (works with uv or pip)
  • End of run summary with metric to help perform a state of health check
  • Flexible command line utilities to run jobs

[!TIP]

mujoco-mojo run monte-carlo \
    --generator monte_carlo_test.Experiment.generate \
    --runtime monte_carlo_test.runtime \
    --workdir ./mc_test/ \
    --no-resume \
    --gen-arg 123 \
    --gen-kwarg 'test=1234' \
    --n-trial 10 \
    --n-proc 1
  • Support for running jobs with SLURM for distributed compute
  • Built in Rich logging for terminal and a rotating file handler for persistent logs

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.

[!NOTE] MuJoCo Mojo is an independently developed open-source toolbox. It is not affiliated with, sponsored by, or endorsed by Google DeepMind or the official MuJoCo development team. MuJoCo® is a registered trademark of Google LLC. All MJCF schemas and MuJoCo-related terminology used within this project are for compatibility and documentation purposes only.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mujoco_mojo-1.3.2.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mujoco_mojo-1.3.2-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file mujoco_mojo-1.3.2.tar.gz.

File metadata

  • Download URL: mujoco_mojo-1.3.2.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}

File hashes

Hashes for mujoco_mojo-1.3.2.tar.gz
Algorithm Hash digest
SHA256 57fc430ef324752e9582efe6479d748fe648ae57d83a3615eaf381450d5cf0d0
MD5 d30edcee1a3029998f8f3ecc10ffc908
BLAKE2b-256 aad4f5dc4f4f4b8fea1b9eca6cb58bcefd1d6a3c784e1448df09c7ba984c86ed

See more details on using hashes here.

File details

Details for the file mujoco_mojo-1.3.2-py3-none-any.whl.

File metadata

  • Download URL: mujoco_mojo-1.3.2-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","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}

File hashes

Hashes for mujoco_mojo-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d6c6664075a8c95832df2a761def86506ce85d0436a5ddaade1f3fe2e8b19f56
MD5 b46b40804cf9dfa26e5253dd7e941f80
BLAKE2b-256 95ca7cfc449de8a456b8a62c90311b7f09b768848477be358cf3a000880d8eb7

See more details on using hashes here.

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