VitalSim — a physiology-driven bedside patient-monitor simulator for trauma-resuscitation training

In active development

Real Physiology — Simulated

A patient-monitor simulator for trauma resuscitation (xABCDE). Vitals emerge from a coupled physiology engine - not a script - so the numbers move the way a real patient would. No expensive manikins, no lab.

Runs in a web browser - bring your own devices. Works with no WiFi infrastructure.

The problem

Monitor training is either expensive or unconvincing.

Teaching the primary survey well means students need to read a realistic monitor - and see it change when they act. Today that forces an awkward trade-off.

High-fidelity kit is costly

Realistic monitor training has meant expensive manikins and simulation-lab infrastructure that many programs simply can't book time on - or afford.

Scripted simulators feel canned

Cheaper apps play back keyframed numbers. Treat the patient correctly - or incorrectly - and the vitals often march on regardless.

Learners spot the seams

When numbers don't respond to interventions, the exercise stops teaching physiology and starts teaching the script. Trust in the tool erodes.

The differentiator

A coupled physiology engine - not a script.

Haemorrhage, tension pneumothorax, tamponade, neurogenic and obstructive shock, TBI, airway, oxygenation and ventilation, temperature - modelled as interacting systems through shared physiology. Vitals emerge from that model, so they respond believably to what the learner does.

The same bleed, two very different patients

Give an identical haemorrhage to a fit young adult and to an elderly patient on beta-blockers. Because the engine models the compensation - not a pre-recorded curve - the two monitors diverge on their own.

Patient A

Fit young adult · same Class II bleed
  • Heart rate122 bpm ↑
  • Blood pressure118/74 ≈
  • Pulse pressurenarrowing
  • Skin / cap refillcool, delayed

Brisk tachycardia holds the pressure up early - the classic young compensator masking real blood loss.

Patient B

Elderly, on beta-blockers · same Class II bleed
  • Heart rate84 bpm (blunted)
  • Blood pressure92/68 ↓
  • Pulse pressurelow
  • Skin / cap refillcool, delayed

The blunted heart-rate response can't compensate - so pressure falls earlier. Same insult, different trajectory.

Why it matters: the divergence isn't authored. It falls out of modelling the compensation, which is exactly the reasoning the primary survey is meant to teach.
Live demo Launch the interactive side-by-side runs — the same bleed on a young compensator vs. a beta-blocked elderly patient, both monitors live. m0-wasm-demo · runs the real physiology engine in your browser

Preview: two live monitors, one shared insult - the young compensator vs. the beta-blocked elderly patient.

SIMULATION Illustrative training content. Figures shown are representative of the simulation and are not clinical guidance. For education only - not a medical device, not for patient care.
Two-device, no infrastructure

One instructor drives it. The monitors just show up.

A bring-your-own-devices design that runs entirely in the browser. The instructor holds a "controller"; each bedside screen is a "monitor". No manikins, no install, no venue IT tickets.

  • Works with no WiFi infrastructure. Devices connect peer-to-peer / over the local network, so a classroom needs no special setup.
  • One controller, many monitors. Run several bedside screens from a single instructor device for group stations.
  • Smooth traces over a flaky link. Each monitor regenerates its own waveforms locally; the authoritative numbers stay driven by the instructor's engine.
Author your own scenarios

Build a case, run it, debrief it.

Instructors compose a scenario from a patient baseline and a problem list, add findings and learning objectives, then let the run grade itself.

Problem-list authoring

Start from a patient baseline and add the problems - a bleed, a pneumothorax, a head injury. The engine couples them; you don't script the numbers.

Auto-graded objectives

Attach learning objectives as a checklist. The run tracks them automatically, so assessment is consistent from station to station.

Structured debrief

Finish with a debrief that lays out what happened against the objectives - turning a single run into a teachable timeline.

VitalSim ControllerBuilder

Patient baseline

Adult34 y 78 kgno regular meds

Problem list

CHaemorrhage — Class II
BTension pneumothorax — right

Objectives · auto-graded

Recognise Class II haemorrhage
Decompress the tension pneumothorax
Reassess vitals after intervention
▶ Test4× speedschema ✓
Session review07:41 run

Timeline

Vitals
Actions
Objectives

Graded

✓ Haemorrhage recognised · 1:12 ✓ Chest decompressed · 3:40 ! Reassessment missed

Illustrative interface — the instructor console: build the case, run it live, and debrief against auto-graded objectives.

Built for trust

Modelled carefully, reviewed by clinicians.

Fidelity only helps if it's trustworthy. The engine is built to be deterministic and to reflect informed clinical judgement.

Deterministic core

A physiology core written in Rust and compiled to WebAssembly - the same inputs produce the same run, which makes scenarios reproducible.

Physician face-validity review

Model behaviour has been reviewed by a physician for face validity, so the trajectories read as clinically plausible.

Calibrated with a clinician

Model constants were calibrated together with an emergency physician - grounding the parameters in clinical judgement rather than guesswork.

We're deliberately modest about this: face-validity review and calibration are a foundation for realistic training, not a claim of clinical accuracy or validation for any medical use.

Coming soon

Want a first look?

VitalSim is in active development. The instructor controller — scenario authoring, live play, session review, free-run and multi-device pairing — is built and running; the immersive bedside monitor is up next, ahead of a hosted preview. Register interest and we'll reach out when the preview and live demo are ready.