Metadata-Version: 2.4
Name: mime-engine
Version: 0.1.0
Summary: MIcrorobotics Multiphysics Engine — domain-specific physics for microrobot simulation
Project-URL: Homepage, https://microrobotica.org/mime/
Project-URL: Repository, https://github.com/Microrobotics-Simulation-Framework/MIME
Project-URL: Documentation, https://microrobotica.org/mime/
Project-URL: Issues, https://github.com/Microrobotics-Simulation-Framework/MIME/issues
Author: Nicholas Ehsan Roy
License-Expression: LGPL-3.0-or-later
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Python: >=3.10
Requires-Dist: jax>=0.4
Requires-Dist: jaxlib>=0.4
Requires-Dist: maddening<0.2,>=0.1.0
Requires-Dist: numpy>=1.24
Provides-Extra: ci
Requires-Dist: pytest>=7.0; extra == 'ci'
Requires-Dist: pyyaml>=6.0; extra == 'ci'
Provides-Extra: dev
Requires-Dist: pytest-xdist; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-parser>=2.0; extra == 'docs'
Requires-Dist: pydata-sphinx-theme>=0.14; extra == 'docs'
Requires-Dist: sphinx>=7.0; extra == 'docs'
Requires-Dist: sphinxcontrib-bibtex>=2.5; extra == 'docs'
Provides-Extra: runner
Requires-Dist: matplotlib>=3.7; extra == 'runner'
Requires-Dist: pyyaml>=6.0; extra == 'runner'
Requires-Dist: pyzmq>=25.0; extra == 'runner'
Provides-Extra: viz
Requires-Dist: pyvista>=0.42; extra == 'viz'
Description-Content-Type: text/markdown

# MIME

MIcrorobotics Multiphysics Engine.

📖 **Documentation: <https://microrobotica.org/mime/>**
🧩 Part of the [Microrobotics Simulation Framework](https://microrobotica.org/) (MADDENING · MIME · MICROROBOTICA).

## What is MIME?

MIME is a domain-specific physics engine for microrobot simulation, built on the [MADDENING](https://microrobotica.org/maddening/) framework. It provides microrobotics-specific node classes, a structured asset schema, control abstractions, uncertainty models, and a benchmark suite (B0–B5).

MIME sits at Layer 2 of an open-source stack: [MADDENING](https://microrobotica.org/maddening/) (physics framework) → **MIME** (microrobotics engine) → [MICROROBOTICA](https://microrobotica.org/) (simulator + registry).

## Intended Use and Disclaimers

> **MIME is research software.** It is not a medical device as defined by EU MDR (EU 2017/745) or US FDA regulations. It has no medical purpose. It is not intended for clinical use, clinical decision-making, or patient diagnosis. It has not been CE-marked, cleared, or approved by any regulatory body.
>
> When used as a component within regulated medical software, MIME is classified as SOUP (Software of Unknown Provenance) under IEC 62304. The device manufacturer is responsible for assessing MIME's suitability and performing all required verification and validation. See [Regulatory Documentation](docs/regulatory/) for details.

## Quick Start

```bash
# Install MIME from PyPI (pulls maddening as a dependency)
pip install mime-engine

# Or, for GPU acceleration (CUDA 12):
pip install "mime-engine" "jax[cuda12]"
```

Then in Python:

```python
import mime          # public API: import path is still `mime`
from mime.nodes.environment.external_magnetic_field import ExternalMagneticFieldNode
```

Full walkthroughs (installation, quickstart, library reference):
<https://microrobotica.org/mime/>

### From source (development)

```bash
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
```

## Documentation

| Document | Description |
|----------|-------------|
| [Architecture Plan](ARCHITECTURE_PLAN.md) | System architecture and design decisions |
| [Node Taxonomy](MIME_NODE_TAXONOMY.md) | Scientific rationale for physics node categories |
| [Documentation Architecture](DOCUMENTATION_ARCHITECTURE.md) | Documentation standards and compliance |
| [Algorithm Guide](docs/algorithm_guide/) | Mathematical docs per node |
| [Validation](docs/validation/) | V&V evidence, SOUP package, anomaly registry |
| [Regulatory](docs/regulatory/) | Intended use, downstream integration |
| [Contributing](CONTRIBUTING.md) | Development setup, conventions |
| [CHANGELOG](CHANGELOG.md) | Version history |

## Citation

If you use MIME in academic work, please cite:

```bibtex
@software{mime,
  title = {MIME: MIcrorobotics Multiphysics Engine},
  version = {0.1.0},
  license = {LGPL-3.0-or-later},
  url = {https://github.com/Microrobotics-Simulation-Framework/MIME}
}
```

## License

LGPL-3.0-or-later. See [LICENSE](LICENSE).
