Medical & Lab

Einthoven Lab

Mac & iPad · One universal app

The 12-lead ECG,
alive on your desk.

An educational 12-lead ECG simulator for Mac and iPad. Twelve rhythms, 42 teaching tracings and real paper geometry — with every lead computed from one turning cardiac vector, so the twelve always agree.

Fully offline, no account.

Coming soon to the App Store See how it works →

Version 1.0 · One app. Mac and iPad.

Works entirely offline · No account · No data collected

Einthoven Lab on iPad showing a twelve-lead ECG in the four-by-three layout on warm ECG paper, with the readout bar reading 72 bpm

One dipole, twelve views

The engine represents cardiac electrical activity as a single vector turning in the chest. Each of the twelve leads is that same vector seen from its own angle, so the leads always agree with one another: Einthoven's law (II = I + III) and Goldberger's identity (aVR + aVL + aVF = 0) hold exactly, at every sample.

Axis shifts, bundle-branch patterns, injury currents and their reciprocal changes all follow from the geometry instead of from per-lead scripting. Choose an inferior injury current and the elevation appears in II, III and aVF while aVL goes reciprocally down — in the same instant, for the same reason a real heart does it.

II = I + III, to machine precision, on every sample.

IIIIIIaVRaVLaVF+55°
The hexaxial reference system, with the cardiac vector at +55° — the axis of the app's normal sinus baseline.

Turn the knobs. Watch all twelve leads answer.

Sixteen signal controls, grouped the way an ECG is read. Every one of them changes the signal itself, so the whole page answers at once — never a single lead redrawn on its own.

12 rhythms

Sinus, atrial fibrillation, atrial flutter with selectable conduction ratio, SVT, first-degree AV block, Mobitz I, Mobitz II, third-degree block, ventricular tachycardia, ventricular fibrillation, asystole and ventricular pacing.

Ectopy

Premature atrial beats, occasional or frequent PVCs and bigeminy — with the compensatory pause emerging from the model rather than being scripted.

Morphology

Frontal axis, RBBB and LBBB, QRS voltage and width, T-wave shape, QT scaling, U waves.

ST segment

Six injury territories with adjustable displacement. Reciprocal changes appear on their own.

Signal quality

Baseline wander, muscle tremor and mains interference, applied to all leads at once — because that is how real artefact behaves.

One tap back to normal

Reset to Normal Sinus restores the textbook tracing — 72 bpm, PR 160 ms, QRS 90 ms, QTc 400 ms, axis 55° — without touching how you are looking at it.

The controls sidebar open on iPad with the rhythm set to sinus at 124 bpm, right bundle branch block selected and the frontal axis at 110 degrees; the readout bar reads 125 bpm, QRS 140 ms and axis 110 degrees Right

Every slider names what it moves

Take the frontal axis to +110° and switch conduction to RBBB: the QRS widens to 140 ms, the axis readout reclassifies itself to Right, and the rS-to-qR progression across the chest leads rearranges itself — because the vector moved, not because twelve waveforms were swapped for twelve others.

Nothing is hidden behind a friendly label, and nothing is scripted per lead. The engine generates the signal at 500 samples per second and draws it in real time; a speed control from 0.1× to 10× slows the sweep enough to read a single wave, or fast-forwards through a slow rhythm.

42 tracings, one tap away

Five groups — sinus and atrial, ventricular, conduction blocks, ischaemia and ST, morphology and electrolytes — each preset carrying a short description of what to look for on the page. One tap returns to normal sinus rhythm.

Sinus & atrialVentricularConduction blocksIschaemia & STMorphology & electrolytes

A sample of the catalogue

Normal sinus rhythmAF — rapid responseAtrial flutter 2:1Mobitz I (Wenckebach)3° AV blockMonomorphic VTAnterior STEMIPosterior MIPericarditisHyperkalaemiaLong QTWellens-pattern T
The presets sidebar open on iPad with Atrial flutter 2:1 selected; the readout bar reads 150 bpm with a FLUTTER badge and no PR interval
Atrial flutter 2:1 — F waves at 300, ventricles at 150, and a PR interval that reads "—" because there is none to state.
Mobitz II selected in the conduction blocks group on iPad, showing a fixed PR interval of 170 ms with dropped beats on the twelve-lead page
Mobitz II — fixed PR, sudden dropped beats, the pattern visible in all twelve leads at once.
Ventricular bigeminy selected on iPad, with every other beat a wide ectopic complex and a PVC-per-minute counter in the readout bar
Ventricular bigeminy — every other beat ectopic, with the compensatory pause falling out of the model.
Hyperkalaemia selected in the morphology and electrolytes group on iPad, showing tented T waves and a QRS widened to 135 ms
Hyperkalaemia — tented T waves and a QRS widened to 135 ms, beside Long QT, LVH voltage and the U-wave picture of hypokalaemia.

Applying a preset does not clear the sheet: the new signal walks onto the paper beside the old ink, so the change itself is visible. Reset is the only act that clears the page.

Paper that behaves like paper

The sheet is metric and honest: 250 mm wide whatever the window, so each cell of the 4×3 page holds 2.5 s at 25 mm/s and a 1 mV R wave really is ten small squares at standard gain. A calibration pulse sits on every page and always shows the gain in force.

The four-by-three layout on macOS: four columns of three leads on warm ECG paper with the rhythm strip along the bottom

4×3

The printed 12-lead page — four columns of three, 2.5 s per cell, with the 10 s rhythm strip underneath.

The six-by-two layout on macOS: the six limb leads in the left column and V1 to V6 in the right column

6×2

The same twelve leads in two columns of six: limb leads left, chest leads right, about 5 s of every lead at once.

The stack layout on macOS: all twelve leads as full-width strips down the page, each with its own calibration pulse

Stack

A 12-channel recorder page — every lead a full-width strip, roughly 17 s each, so a Wenckebach ladder or an AF response stays on screen.

25 or 50 mm/s, gain remembered per layout, sweep or scroll pen, and a rhythm strip whose lead you choose.

A printout by day, a monitor by night

Light appearance draws Paper: the warm thermal sheet, dark ink, the familiar red millimetre grid. Dark appearance draws Monitor: a green phosphor trace with a faint embered grid on near-black. Auto follows your system, so the app moves from printout to bedside screen when your Mac or iPad does. The grid survives both — millimetres still have to be countable — and the signal, the geometry and every measurement are identical either way.

The same twelve-lead sinus tracing in the four-by-three layout drawn as Paper: dark ink on a warm cream sheet with a red millimetre grid

Paper — the light appearance

Dark ink on the warm thermal sheet. What a printed 12-lead looks like.

The same twelve-lead sinus tracing in the four-by-three layout drawn as Monitor: a green phosphor trace on a near-black screen with a faint embered grid

Monitor — the dark appearance

A green phosphor beam on near-black, the grid embered rather than gone.

Same rhythm, same layout, same numbers — the two panels differ only in the skin the stage is drawn on.

Numbers the app reads off its own signal

Heart rate measured from the beats themselves — in atrial fibrillation it wanders around the mean the way a bedside display does — plus a rhythm badge, PR, QRS, QT and QTc calipers, the QRS axis with its hexaxial classification, and a PVC-per-minute counter. The calipers and the paper can never disagree: both come from the same interval model that schedules the beats.

The readout bar showing 72 bpm, a SINUS badge, PR 160 ms, QRS 90 ms, QT 365 ms, QTc 400 ms and an axis of 55 degrees

Heart rate

Taken from the last few R–R intervals of the drawn signal, not echoed from the slider — so in AF it wanders around the mean and in asystole it decays to "--".

Rhythm badge

The current rhythm, named beside the rate, flashing amber on an ectopic beat.

PR · QRS · QT · QTc

Stamped by the same interval model that schedules the beats, so the calipers and the ink can never disagree — and "—" wherever an interval is undefined.

QRS axis

The frontal axis with its hexaxial class: Normal, Left, Right or Extreme.

PVC per minute

Ectopic-style beats in the last rolling minute, so bigeminy and occasional PVCs are separable at a glance.

Calibration, always visible

The 1 mV pulse on every page and the caption under it — 25 mm/s · 10 mm/mV — say exactly what the paper you are reading is set to.

One app. Mac and iPad.

A single universal app: the same engine, the same 42 presets, the same twelve leads on both. On the Mac you get a resizable window, menu-bar commands and keyboard shortcuts; on iPad it runs full screen in landscape, with the controls and presets a tap away.

Einthoven Lab on macOS with Mobitz I (Wenckebach) applied: the rhythm picker reads second-degree AV block, the readout bar 59 bpm and the strip shows progressive PR lengthening then a dropped beat
Mobitz I — the PR stretches beat by beat, then a QRS is dropped, on the paper and in the readouts at the same time.
Monomorphic ventricular tachycardia on macOS at 181 bpm with wide regular complexes in all twelve leads and no PR interval
Monomorphic VT at 180 — wide, regular, with the rhythm strip catching the transition onto the page.
Ventricular pacing on macOS at 70 bpm: a pacing spike ahead of each wide LBBB-pattern complex, with a PACED badge in the readout bar
Ventricular pacing — a spike, then the wide LBBB-pattern QRS that follows it 20 ms later.
The Monitor appearance on macOS with muscle tremor added: the green phosphor trace carries a fine fuzzy artefact across all twelve leads at once
Muscle tremor at 0.09 mV, on every lead at once — artefact that behaves like artefact.

On the Mac

A resizable window, the two sidebars, and full menu-bar commands: Space to run or pause the paper, ⇧⌘R to reset, ⌘M to cycle the layout, ⌥⌘I for the controls — with every preset listed in the Simulation menu.

On iPad

Landscape, full screen and touch-first, with the control and preset sidebars a tap away and the rhythm-strip lead picker in the toolbar menu. Big, legible traces make it a natural lecture tool: project it and change one knob live.

Who it is for

Medical and nursing students

Rhythm recognition, axis, blocks and ST territories — practised on tracings you can change one knob at a time.

Educators

Big honest paper on a projector, three layouts, no login and no network. Load a preset and let the class read it before you name it.

Paramedics and nurses

A rehearsal bench for the strips that matter: the wide-complex tachycardias, the blocks, the paced rhythm, the artefact that mimics all three.

Clinicians brushing up

A model whose leads agree by construction, so the geometry behind an axis shift or a reciprocal change is visible rather than asserted.

A guide travels with the app: built-in Help explains every control, the twelve leads, each preset and the model behind them — all offline.

No account. No network. Nothing to collect.

Einthoven Lab has no sign-in, no analytics, no cookies and no server. It never connects to sensors or hardware, and it works exactly the same in Airplane Mode — because it works entirely offline. Nothing leaves your device, because nothing is collected in the first place.

No account, no login, no server

There is nothing to sign up for and nothing to sign in to. The app has no backend at all.

No data collection of any kind

No analytics, no advertising frameworks, no telemetry. The only thing stored is your own display preferences, on your device.

No network use at all

Every feature works offline, in Airplane Mode, identically. The app makes no requests, so nothing about you can be sent anywhere.

No sensors, no hardware, no patient data

The app never connects to electrodes, accessories or Bluetooth devices. Every tracing it draws is synthetic, generated by its own model.

Read the privacy policy

Twelve leads that always agree — and knobs you can turn to see why.

All Arpastore apps

Einthoven Lab generates synthetic ECG waveforms for education. It is not a medical device, does not measure or record physiological signals, and must not be used for diagnosis or patient care.