MIME#

MIcrorobotics Multiphysics Engine — the physics layer of the Microrobotics Simulation Framework. MIME extends MADDENING with the specific node families needed to simulate magnetically actuated microrobots in confined biological flows: rigid-body chains, magnetic response, low-Reynolds hydrodynamics (Stokeslet, IBM-FVM with optional GNN correction), and the actuation/sensing chain that bridges to the MICROROBOTICA IDE.

Magnetic actuation & low-Re hydrodynamics

Dipole response, Stokeslet flow, IBM-FVM with optional GNN closure, and a Lubrication correction for near-wall confined flow — all as composable Nodes.

Validation suite (B0–B5)

Six standardised benchmarks with shipped reference data: digitised de Jongh 2025 trajectories, dipole-field verification, robot-arm mass matrix, free-fall, PD tracking, and confined-flow corrections.

Regulatory metadata baked in

Every MimeAssetSchema carries ISO 10993 biocompatibility, SOUP classification, ISO 14971 hazard hints, and an Anatomical regime guard the loader enforces before simulation starts.

Control primitives & policies

ControlPolicy, ControlPrimitive, ControlSequence and the PolicyRunner orchestrate closed-loop strategies on top of the same node graph — same autodiff, no second runtime.

Composable environment effects

The EffectModel contract (v0.2 pilot) makes force/torque effects swappable and composable: the HydrodynamicModel family (LBM / FVM / Stokeslet / DefectCorrection) behind one builder + validation surface. Magnetic family in v0.3.

How MIME is wired#

MIME extends MADDENING with the physics, control, uncertainty, and regulatory metadata specific to magnetically actuated microrobots in confined biological flow. The autodiff and coupling all stay in MADDENING; everything below is what MIME adds on top.

        flowchart LR
    MAD["MADDENING<br/><i>graph runtime &middot; coupling<br/>autodiff &middot; surrogates</i>"]:::ext

    subgraph DOM["domain nodes (SimulationNode subclasses)"]
      direction TB
      Act["actuation<br/><i>MotorNode &middot; PermanentMagnet<br/>ExternalMagneticField</i>"]
      Robot["robot<br/><i>RigidBody &middot; RobotArm</i>"]
      Env["environment<br/><i>Stokeslet &middot; IBM-FVM<br/>Lubrication &middot; GNN</i>"]
      Sense["sensing<br/><i>magnetometer<br/>range-of-motion</i>"]
      Ther["therapeutic<br/><i>release kinetics<br/>dosimetry</i>"]
    end

    subgraph META["regulatory metadata (MIME-only)"]
      direction TB
      Schema["MimeAssetSchema<br/><i>biocompat &middot; SOUP &middot; regime</i>"]
      Enums["domain enums<br/><i>compartment, regime,<br/>actuation, release</i>"]
      Bench["B0-B5 benchmarks"]
    end

    subgraph CTRL["control"]
      direction TB
      Policy["ControlPolicy ABC"]
      Prim["ControlPrimitive ABC"]
      Run["PolicyRunner"]
    end

    UQ["UncertaintyModel<br/><i>input &middot; epistemic &middot; aleatoric</i>"]

    MR["MICROROBOTICA<br/><i>loads asset, renders trajectory</i>"]:::ext

    MAD --> Act
    MAD --> Robot
    MAD --> Env
    MAD --> Sense
    MAD --> Ther

    Act --> Run
    Robot --> Run
    Env --> Run
    Sense --> Run
    Ther --> Run

    Policy --> Run
    Prim --> Policy
    UQ --> Run

    Enums --> Schema
    Bench --> Schema
    Run --> Schema

    Schema --> MR

    classDef ext stroke-dasharray:5 3
    

Release Notes

Algorithm Guide

Validation