Tactile Sim
Drop-in tactile sensor simulation for MuJoCo and Isaac. Same calibration profiles Monty uses for ingestion run inside your sim, so the readings your policy sees in training match what the physical sensor produces in deployment. Replay any Monty recording as a runnable scene; submit your sim's readings to score conformance against the ground-truth recording.
0 sensors supportedMuJoCo · Isaac · Genesisconformance leaderboard
Install
bash
pip install monty-tactile-sim
# Optional sim-engine extras
pip install "monty-tactile-sim[mujoco]"
pip install "monty-tactile-sim[isaac]"The plugin authenticates against this platform on first run (sets MONTY_API_KEY), pulls the sensor registry, and adds a monty.sim namespace you call from inside your sim loop.
python
import monty.sim as ms
# Discover sensors at runtime — no plugin re-release when we add new ones
print(ms.list_sensors())
# -> ['off-the-shelf-glove-v1', 'osmo', 'digit-v2', 'reskin-v1', 'gelsight-mini']
# Replay any Monty recording as a runnable scene
scene = ms.load_scene(video_id="0c16e6c7-ddc0-4299-b142-93660cbf4bf0",
sensor="osmo")
# Inside your MuJoCo / Isaac step loop
sim.step()
readings = scene.read_tactile(sim.world) # native sensor units
# (force, magnetometer xyz,
# depth image, etc — per sensor)Supported sensors
Pulled live from/api/sensors by every plugin installConformance leaderboard
R² agreement vs. Monty ground-truth recordings (higher = more faithful sim)No conformance submissions yet.
Submit via POST /api/sim/conformance — the plugin's scene.score_conformance() helper does this automatically.
Platform API
GET/api/sensorsList supported sensors + calibration profiles
GET/api/sensors?slug=<slug>Single sensor (full geometry + calibration JSON)
GET/api/sim/scene/<videoId>?sensorSlug=<slug>Export a Monty recording as a runnable sim scene
POST/api/sim/conformanceSubmit sim readings → score against ground-truth recording
GET/api/sim/conformanceLeaderboard of submitted runs