Installation#

From PyPI#

pip install mime-engine

The mime-engine distribution exposes the mime Python package and pulls in MADDENING as a dependency, so a single command gets you both layers.

Why mime-engine? The bare mime distribution name on PyPI is taken by the long-standing email-encoding library. The import path is unaffected — you still write import mime.

GPU acceleration#

MIME inherits its JAX hardware story from MADDENING. To add CUDA 12:

pip install "mime-engine" "jax[cuda12]"

Or TPU:

pip install "mime-engine" "jax[tpu]"

You need matching system drivers (nvidia-smi for CUDA).

Optional extras#

Extra

What it adds

Install command

dev

pytest + pytest-xdist

pip install "mime-engine[dev]"

docs

Sphinx + MyST + bibtex (for building the docs locally)

pip install "mime-engine[docs]"

viz

PyVista 3D rendering

pip install "mime-engine[viz]"

runner

pyzmq + pyyaml + matplotlib (used by the MICROROBOTICA runner)

pip install "mime-engine[runner]"

ci

Minimal CI bundle (pytest + pyyaml)

pip install "mime-engine[ci]"

From source#

git clone https://github.com/Microrobotics-Simulation-Framework/MIME
cd MIME
pip install -e ".[dev]"
PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python -m pytest tests/ -v

Inside the MICROROBOTICA IDE#

If you’re using the MICROROBOTICA IDE, install MIME into the same Python environment the IDE’s embedded interpreter uses. The IDE locates mime through PYTHONPATH; once pip install mime-engine finishes, File → Open Experiment will work end-to-end without any further configuration.

Verifying the install#

import jax
import mime

print(f"JAX backend: {jax.devices()[0].platform}")  # 'cpu' / 'gpu' / 'tpu'
print(f"MIME nodes:  {dir(mime.nodes)}")