Jun – Aug 2026, project
StimMap3D
Interactive 3D model of TMS coil placement and the cortical field it induces

What it is
StimMap3D is an educational, in-browser 3D visualizer for rTMS coil targeting and the electric field a figure-8 coil induces in the cortex, with a cited dose–response panel below the scene. You drag the coil across a 3D cortex, or pick a standard target, and the heatmap recomputes live in clearly labelled relative units, never V/m. It is an illustrative model: not a medical device, not for clinical use, and not a prediction of anyone's response to treatment. It is a pure static site: the field solver runs in a Web Worker in the browser, there is no backend, and every clinical figure cites its open-literature source.
The app is live at stimmap3d.pages.dev, and its source is public on GitHub under the MIT licence.

Features
- Live coil to E-field heatmap. Drag the coil or pick a preset and the cortex recolors with no per-frame reallocation and no main-thread solve.
- Targeting presets with method explainers. Beam-F3, F4, Fz, Cz and the Fox 2012 sgACC-connectivity DLPFC optimum, each cited to its primary source, with cards on the deprecated 5-cm rule, Beam-F3 and connectivity targeting.
- Targeting-debate overlay. Both coil centres and their straight-line scalp gap, derived live from the preset coordinates and labelled as a Euclidean chord rather than a geodesic.
- Field-direction glyphs and a self-error map. An overlay of arrows shows the induced field's tangential direction, and a toggle recolors the cortex by the model's own radial-removal residual, so a stated limitation becomes an inspectable layer.
- Depth–dose readout and coil tilt. A tilt slider cants the coil while the junction stays on target, and a heads-up display shows the half-value depth and on-surface focal spread as surface-derived illustrations, not validated dosimetry.
- Dose–response panel. Odds ratios and absolute response and remission rates on separate, labelled axes; the odds-ratio conversion uses an explicit, sourced sham baseline; the synthetic trajectory cohort is badged as synthetic.
- Guided tour, deep links and PNG export. A skippable tour dispatches the real store actions beat by beat; the configuration encodes to a shareable query URL; a one-click PNG export bakes the disclaimer and relative-units legend into the image so a shared still cannot shed them.
- Methods self-check quiz and printable one-pager. A short retrieval-practice quiz on the Methods page, and a print stylesheet whose header re-bakes the non-clinical disclaimer, synthetic badges and relative-units labels.
- Honesty layer and accessibility. A persistent non-clinical banner on every screen, a
Methods & Limitations page, a license-badged provenance ledger, a fully keyboard-driven coil,
an
aria-liveregion narrating the heatmap result, andprefers-reduced-motionsupport.

How the physics works, and what it gets wrong
The model is a simplified analytical spherical-head approximation, not a finite-element simulation, chosen so the field recomputes in milliseconds and stays explainable from first principles. StimMap3D's design document states the method in one required statement, which the app ships on its Methods page:
E-field = tangential projection of −dA/dt from a magnetic-dipole figure-8 model in a single best-fit spherical conductor (Heller & van Hulsteyn 1992; Eaton 1992; Sarvas 1987). The radial component is zero by the spherical boundary condition and the field is independent of the conductivity profile — which is exactly why it runs in real time and is not anatomically accurate. For anatomically faithful fields, use FEM (e.g., SimNIBS).
The limitations are stated just as plainly, in the same section:
It ignores gyral/sulcal folding (evaluates on a smooth surface; real hotspots can be centimeters off), tissue heterogeneity (scalp/skull/CSF/gray/white), CSF current shunting, and white-matter anisotropy; uses an idealized dipole coil (~4–10%field error of an idealized dipole coil versus real spiral windings, as stated in StimMap3D's documentationStimMap3D's DESIGN.md §3.2 at commit 0a20e81 attributes the range to PLOS ONE 2017.Source: StimMap3D repository field error vs. real spiral windings, per PLOS ONE 2017); shows induced E-field magnitude, not neural activation (which depends on field direction relative to axons and on thresholds); the single best-fit sphere degrades away from the coil and in non-spherical regions (frontal/temporal poles); and it applies a first-order tangential approximation — removing the radial component of −∂A/∂t cancels the radial field, but the exact secondary −∇φ also perturbs the tangential part, which this model never solves, so even within the sphere the field is approximate (Eaton 1992).
The same section ends: "No FEM comparison or clinical validation is shipped." Both passages are quoted from StimMap3D's DESIGN.md §3.2, read at that commit on 2026-09-20.

All per-patient outcome trajectories in the dose–response panel are synthetic, generated at author time from published summary statistics, and badged as such throughout. Odds ratios stay relative to sham and become a probability only against an explicit, labelled baseline.


Engineering rigor
The repository's validation record reports 447app tests passing in StimMap3D's release gatedocs/validation.md in the public repository at commit 0a20e81, read on 2026-09-20.Source: StimMap3D repository app tests across 35test files holding StimMap3D's app testsdocs/validation.md in the public repository at commit 0a20e81, read on 2026-09-20.Source: StimMap3D repository files passing in the release gate, and all 24production Chromium checks passing in StimMap3D's validation recorddocs/validation.md in the public repository at commit 0a20e81, read on 2026-09-20.Source: StimMap3D repository production Chromium checks passing, including loading and failure behavior, narrow layouts and PNG export labels. GitHub Actions runs the same checks on every push to main and every pull request, with separate jobs for the dependency audits and for the mesh pipeline and clinical anchors. An axe-core test in that suite structurally guards the app's panels. The record closes on its own limit: these are automated checks and visual inspection, not independent human review or clinical validation.
The honesty gates themselves, as StimMap3D's DESIGN.md §1 states them:
- (a) The non-clinical disclaimer is visible on every route and carried into exported and printed figures.
- (b) The Methods & Limitations page is reachable and quotes the method statement and limitations in §3.2.
- (c) Odds ratios are never plotted or mixed with absolute response rates; they become probabilities only against an explicit, labeled sham baseline (§4).
- (d) All synthetic data is badged as synthetic, and every figure resolves to a citation-ledger entry.
- (e) The E-field is shown only in clearly labeled relative units, never V/m or a calibrated dose.