PHYSICAL ASSET
DIGITAL TWIN
v0.1.0-alpha · physics-informed twin runtime

didymOS

Model it. Mirror it. Trust it.

Physics-informed digital twins for real assets — the equations first, a bounded ML residual second. Streamed over MQTT, served as an API — and rendered at 1:1 scale in VR & AR. δίδυμος — the twin.

▼ SCROLL
// running in the field — live fleet totals
0
assets mirrored
0M
datapoints / day
0%
twin uptime
±0K
residual bound — always
ENERGY🏭 MANUFACTURING🌊 MARITIME🌱 AGRI
// why physics-first

Most “digital twins” are either renders or black boxes.

A 3D model with no physics can't predict. A pure-ML model can't extrapolate and can't explain itself. didymOS runs the asset's real equations and lets a strictly bounded ML residual absorb what the physics misses — so every prediction is explainable, and every divergence is evidence.

CAD render “twin”

  • No governing equations
  • No live telemetry
  • Can't forecast or warn
  • Demo-ware, not a runtime

Pure-ML twin

  • Blind outside training data
  • Unexplainable predictions
  • Silently drifts with sensors
  • Needs months of history

didymOS

  • Physics kernel per asset class
  • ML residual, hard-bounded (±3 K)
  • Residual saturation ⇒ anomaly alarm
  • Runs from day one, no history needed
// features

A twin runtime, not a picture.

⚛️

Physics kernel

Pluggable per asset class — IEC 60076-7 thermal model for transformers, pump & motor models next. Difference equations, unit-tested.

🎯

Bounded ML residual

A small learner corrects the physics from live data — clamped to a hard envelope. When it saturates, that's not noise. That's a fault signature.

📡

MQTT-native · dimorph agent

The edge agent ingests telemetry over MQTT and republishes twin state — from a €35 Raspberry Pi to industrial gateways. No cloud dependency, ever.

🔮

What-if API

GET /twin/{id}/whatif?load=130 — raise the load 30% and didymOS answers with the hot-spot trajectory before you touch the real asset.

🥽

VR & AR native

The twin isn't trapped in a dashboard: walk around it on Meta Quest, or pin it onto the real machine through your phone's camera. Step inside ↓

🔗

Audit ledger

Every prediction and recommendation hash-chained to an append-only log — an AI-Act-shaped audit trail, out of the box.

// in the field

Not slideware. Mirrors of real machines.

didymOS earned its scars in the field before it had a landing page — the physics-plus-residual recipe, the MQTT edge agents and the failure-prediction line were all run against real machines first, then productised.

PILOT · GR
Energy

Distribution transformer fleet

Oil-immersed transformers mirrored by dimorph edge agents on Raspberry Pi. IEC 60076-7 kernel, live hot-spot tracking, 8-hour forecasts on the operator's morning screen.

4 assets · 8 h forecast horizon · divergence alarms on residual saturation
PILOT · FACTORY FLOOR
🏭
Manufacturing

Production-line twin

Cycle-time physics with an ML residual absorbing drift — wear, operator variance, seasonal air pressure. The what-if API answers takt-time questions before anyone touches the real line.

Line-level twin · what-if before changeover · drift caught as residual, not surprise
PILOT · OFFSHORE
🌊
Maritime

Offshore substation monitoring

Fault anticipation for equipment you can only reach by boat: didymOS's identification layer was proven on offshore-substation telemetry first, where a missed warning costs a vessel charter.

Failure prediction · days of warning, not minutes · visits planned, not provoked
// live demo — real equations, in your browser

A transformer twin, running right now.

This is not an animation. The panel below integrates the IEC 60076-7 thermal difference equations (top-oil and hot-spot dynamics) at ~16 simulated minutes per second, with a bounded ML residual learning the plant/model mismatch live. Inject a cooling fault and watch the residual saturate — divergence is detection.

twin://transformer-TX1  ·  IEC 60076-7 kernel + residual ● NOMINAL
ML residual (±3 K bound)
Hot-spot (meas.)
°C
Twin prediction
°C
Steady @ load
°C
Residual
K
Ageing rate
×
measured physics only physics + ML residual 8 h forecast 98°C design 118°C alarm
// step inside the twin

The twin isn't on a screen. You're standing in it.

Dashboards flatten machines into charts. didymOS renders the same live twin state at 1:1 scale — in your room through a VR headset, or pinned onto the physical machine through a phone camera. Same API, three realities.

Meta Quest 3 VR headset
META QUEST 3 · PASSTHROUGH
HOT-SPOT 84.2°CLOAD ▸ 130%+8h ▸ 106°C

🥽 Virtual Reality — walk around the future

The full asset at 1:1 scale in your room. Grab the load slider with your bare hands, push it to 130%, and watch tomorrow's hot-spot bloom across the windings — before it ever happens on the real machine. What-if analysis stops being a query and becomes a place you visit.

hand tracking1:1 scalewhat-if in 3Dmulti-user review
Vuzix Shield binocular AR smart glasses
VUZIX SHIELD · BINOCULAR WAVEGUIDES · ANDROID
ANCHORED · TX1RESIDUAL +2.1K● NOMINAL

📱 Augmented Reality — the machine wears its data

Through binocular AR glasses — or any ARCore phone — live gauges, the 8-hour forecast ribbon and divergence alerts anchor onto the physical asset itself. The technician sees the machine's future standing right in front of it, hands free — no control room, no laptop.

anchors on-assetlive overlaysdivergence alertsoffline on-site
// through the waveguides — what you see wearing the glasses · live twin state
twin://TX1 · LIVE
● NOMINAL
LOAD —AMB —
RESIDUAL —AGEING —×
COMPONENT ·
click a component of the twin
to inspect it · drag to rotate
BINOCULAR FUSED VIEW · SAME LIVE STATE AS THE SIMULATOR ABOVE
click a component — tank, radiators, bushings, conservator — to inspect its live attributes · drag to rotate · change the LOAD in the live demo above and this view follows, live
// get started

Three commands to your first twin.

Install the runtime

Python ≥3.10. One package, no cloud account, no license key.

$ pip install didymos

Point a twin at your asset

Pick an asset class, point at your MQTT broker — the dimorph agent starts mirroring immediately.

$ didymos init --asset transformer --broker mqtt://192.168.1.40 # or: --replay data.csv

Open the viewer — browser, Android or Quest

Live state, 8-hour forecast and the what-if API at :8642/twin/TX1.

$ didymos view # → http://localhost:8642

Every other twin hides its model error.
didymOS bounds it, publishes it, and turns it into the alarm.
That's not a feature of the product — it is the product.

// divergence is detection