T1D SIMULATOR
Spil sikkert, før det virkelig tæller
Om projektet
Jeg fik konstateret T1D i februar 2025. Fra dag ét skulle jeg lære om
blodsukkerkontrol ved at udføre potentielt livsfarlige eksperimenter på
mig selv med insulin, mad og motion. Det var stressende for mig selv og
mine pårørende — sådan opstod idéen til en T1D Simulator.
Målet er at nydiagnosticerede, deres forældre og pårørende kan lege sig
til livsvigtig viden om de fysiologiske mekanismer der styrer blodsukker,
når man ikke selv producerer insulin — i et sikkert virtuelt miljø uden
risiko, med hurtig og detaljeret feedback.
Folk som har haft diabetes i lang tid, vil potentielt også kunne prøve
sig frem med hvordan livsstilsændringer (mad, motion og
doserings-strategier) kan påvirke blodsukkerniveauet.
Simulationen bygger på videnskabelig litteratur hvor muligt, og er krydret
med mine personlige erfaringer hvor litteraturen er svag. Alle med T1D er
forskellige, og modellen kan ikke simulere præcist hvordan du reagerer —
men forhåbentlig kan den gøre dig klogere på de mange fascinerende
fysiologiske faktorer der spiller ind på dit blodsukker.
— Kristian Rauhe Harreby, apr. 2026
⚠️ Medicinsk ansvarsfraskrivelse: Denne simulator er
IKKE et medicinsk udstyr (jf. EU MDR 2017/745). Den er udelukkende til
undervisningsbrug. Brug den ikke til at beregne insulindoser eller
træffe behandlingsbeslutninger. Rådfør dig altid med dit behandlerteam.
Støt projektet
Feedback & fejlrapporter
Fandt du en fejl? Har du en idé til forbedring? Al feedback er velkommen — du behøver ikke være teknisk!
Donation
Simulatoren er gratis og open source. Donationer går til projektets udgifter: AI-abonnementer, kaffe og mere tid til udvikling.
☕ Buy Me a Coffee
📱 MobilePay
Spilmekanikker
- Mål: Hold blodsukkeret stabilt og optjen points.
- Points: Jo tættere på målzonen, jo flere points.
- Personlig profil: Indtast din vægt, ICR og ISF ved start — simulatoren tilpasser sig dine parametre.
Spiltilstande
🏖️ Sandkasse
Sandkassen er dit laboratorium. Her kan du lege frit uden konsekvenser og
udforske, hvordan kroppen reagerer på forskellige valg. Prøv at spise et
stort måltid uden insulin — eller giv for meget insulin og se, hvad der sker.
Eksperimentér med meget aktivitet vs. slet ingen, almindelig mad vs. low-carb,
og hvad der sker, hvis du glemmer din basal-insulin helt — eller deler dosen
i morgen og aften. Jo mere nysgerrig du er, jo bedre forståelse får du.
Der er ingen forkerte svar i sandkassen — kun læring.
📦 Box Challenge
Box Challenge minder om sandkassen, men med en ekstra abstrakt udfordring:
der dukker farvede bokse op på grafen, og dit mål er at holde blodsukker-kurven
fri af dem. Det kræver kreativitet — du skal tænke fremad og planlægge dine
interventioner, så kurven snor sig uden om boksene. Du har tre liv, og hver
dag bedømmes med stjerner baseret på, hvor godt du klarer dig. Brug det som
et puslespil: hvornår skal du spise, hvornår skal du dosere, og hvornår
skal du bare lade kroppen arbejde?
🎯 Kampagne
Kampagnen guider dig gennem realistiske hverdagsscenarier, dag for dag.
Hver dag har specifikke mål — fx at huske basal-insulin, håndtere et måltid,
eller overleve natten uden hypo. Du starter med få værktøjer og låser
gradvist flere op. Dr. Byte hjælper undervejs med tips og forklaringer.
Kampagnen er det bedste sted at starte, hvis du er helt ny — den lærer
dig grundlaget skridt for skridt, og du kan altid spille en dag om igen
for at forbedre din stjerne-bedømmelse.
Game Over
- Svær hypoglykæmi: Sandt BG falder under 1.5 mmol/L — hjernen kan ikke fungere.
- Ketoacidose (DKA): Vedvarende højt BG uden tilstrækkeligt insulin. Du advares med symptomer først.
- Vægtændring: Samlet ændring overstiger ±5 kg.
- Komplikationer: 7-dages gennemsnits-BG over 15 mmol/L.
- Kampagne-mål: I kampagnen kan du også tabe dagen, hvis du ikke udfører de påkrævede opgaver inden tiden løber ud.
Keyboard Shortcuts
- Space — Start spil / Pause / Fortsæt
- ← → — Sænk / øg simuleringshastighed
- ½, 1-9 — Giv hurtig insulin direkte (½E, 1E, 2E … 9E)
- Z — Insulin X — Mad C — Motion V — Diabetes-kit
- Når et panel er åbent: brug bogstavtasterne som genveje til knapperne. Fx i mad-panelet:
Z=Dextro, X=Æble, C=Juice, Q=Pizza, D=Kylling, B=Lav selv
- Chord-genveje: tryk to taster hurtigt efter hinanden, fx X+Z = åbn mad → spis dextro
- Escape — Luk åbne paneler
Fysiologi & Interventioner
- Mad: Kulhydrater hæver BG hurtigt (20-60 min). Protein bidrager langsomt (~25% af kulhydrateffekt, forsinket 30 min).
- Hurtig insulin: Onset 10-15 min, peak 1-2 timer, varighed 3-5 timer. Sænker BG med ca. ISF pr. enhed.
- Basal insulin: Dækker kroppens grundbehov over 24+ timer. Husk den dagligt!
- Aktivitet: Fire typer med forskellig fysiologi:
Cardio (BG falder — muskeloptag),
Styrketræning (BG stiger akut — stresshormoner),
Blandet sport (moderat effekt),
Afslapning (reducerer stress). Motion øger insulinfølsomheden i mange timer efter — pas på forsinket hypoglykæmi!
- Glucagon: Nødbehandling ved svær hypoglykæmi. Hæver BG kraftigt over 20-30 min. Brug kun i nødsituationer.
- Dawn-effekt: Leveren frigiver ekstra glukose om morgenen (ca. 04:00-08:00), og insulin virker dårligere. Kræver mere insulin til morgenmad.
- Søvn: Natlige interventioner (22:00-07:00) forstyrrer søvnen og øger insulinresistensen næste dag.
- Kontraregulering: Hypoglykæmi udløser stresshormoner der hæver BG — men ved T1D er denne respons svag.
- Hypo-tilvænning: Gentagen hypoglykæmi svækker kroppens evne til at mærke og modvirke lavt blodsukker. Undgå hypo for at bevare denne beskyttelse!
Målinger
- CGM: Viser blodsukker med 5-10 min forsinkelse og nogen usikkerhed. Ikke altid præcis!
- Fingerprik: Mere præcis end CGM (±5%). Brug den til at dobbelttjekke.
- Keton-stik: Mål ketoner ved vedvarende højt BG. Forhøjede ketoner + højt BG = risiko for ketoacidose.
Baggrund og test
Simulatoren er bygget på validerede fysiologiske modeller og videnskabelig litteratur. Vil du vide mere?
- Fysiologisk model — Hvordan simulatorens motor virker: Hovorka-modellen, insulin, motion, stresshormoner m.m.
- Videnskabelig oversigt — Alle faktorer der påvirker blodsukker ved T1D, baseret på forskning og klinisk erfaring.
Modellen valideres løbende med automatiske tests:
- Visuel modelvalidering — 17 testsektioner der kører simulatoren headless (uden UI) og plotter BG-kurver for forskellige scenarier. Testene verificerer baseline-stabilitet, cirkadisk ISF-variation, insulin- og kulhydrat dosis-respons, profil- og vægtafhængighed, motion, og ekstreme patientprofiler. Hver sektion beskriver hvad der testes, hvad vi forventer, og om resultatet matcher. Åbn filen direkte i en browser for at se graferne.
- Automatiserede enhedstests — 100 tests der tjekker individuelle fysiologiske mekanismer (insulinvirkning, kulhydratabsorption, motion, stresshormoner, ketoner m.m.).
Udvikling
🚧 Under udvikling — Simulatoren er i tidlig udvikling. Funktioner kan ændres eller forsvinde uden varsel. De fysiologiske modeller forbedres løbende og er ikke klinisk valideret.
v0.8.0-beta — 2026-04-01
Features:
- Mad-chips redesign: portionsvægt, makro-bar, farvede tooltips
- SVG-sprøjteikoner (ens farver på alle platforme)
- Settings-menu: visuelt hierarki, venstre-pile, toggle-kontakter
- Profil-validering med deaktiveret gem-knap ved ugyldige værdier
- Fullscreen-knap med tekstlabel
Vigtige bugfixes:
- "Lav selv" mad-panel åbnede ikke før spilstart
- Start/Stop-knaptekst blev overskrevet af i18n
- Søvn-overlay (zzZzz) skjult bag points-panel — flyttet til venstre
- VFX-symptomer viste blur efter BG var normaliseret
v0.7.0-beta — 2026-04-01
Features:
- Campaign-tilstand med dag 1 (basal-tutorial)
- Settings-menu med undergruppper
- VFX-symptomer (sløret syn, lysglimt)
- Versionsnummer synligt på logo (mouse-over)
Vigtige bugfixes:
- BG-kræfter (leverproduktion) viste forkerte værdier
- Box Challenge redning virkede ikke korrekt
v0.6.0-beta — 2026-03-27
Features:
- Campaign-system med bane-struktur og dag-progression
- eHbA1c-beregning (estimeret langtidsblodsukker)
- Søvn-bobler redesignet
- Under-construction banner og feedback-sektion
Vigtige bugfixes:
- Falsk hurtiginsulin vist uden bolus-injektion
v0.5.0 (24. mar) — Mad-gitter, insulin-aktionsbånd, baggrundsmusik
v0.4.0 (22. mar) — Fysiologi-panel, Box Challenge, søvnsystem, lydsystem
v0.3.0 (18. mar) — FFA-insulinresistens, UX-overhaul, donationsmuligheder
v0.2.0 (12. mar) — Fedt/protein-modeller, i18n, highscore, aktivitetssystem
v0.1.0 (4. mar) — Første release: Hovorka-model, profil, stress, HAAF, CGM, ketoner
Credits
Idé, design & fysiologisk modellering
Kristian R. Harreby — med AI-assisteret research og implementering (Claude, Anthropic & Gemini, Google).
Bemærk: Kildekode og tests er primært genereret via AI og har ikke gennemgået en fuldstændig manuel audit.
Kernemodel
- Hovorka et al. (2004): Glukose-insulin ODE-model med 11 tilstandsvariable — dækker insulin-farmakokinetik, kulhydrat-absorption og glukose-kinetik. Kilde
- Open source-grundlag: Inspireret af svelte-flask-hovorka-simulator af Jonas Nordhassel Myhre.
Udvidelser af modellen (Kristian R. Harreby, AI-assisteret)
- Motionsmodel: To ekstra kompartmenter (E1/E2) med fire aktivitetstyper (cardio, styrke, blandet, afslapning) — baseret på Resalat et al. 2020, Riddell et al. 2017.
- Stresshormonsystem: Akut stress (adrenalin/glukagon, t½ 60 min) og kronisk stress (kortisol, t½ 12 timer) med automatisk Somogyi-respons ved hypoglykæmi.
- Dawn-fænomen: Cirkadisk kortisolpeak (04:00→08:00) der øger leverens glukoseproduktion om morgenen. Regenereres dagligt med individuel variation.
- Cirkadisk ISF: Døgnvariation i insulinfølsomhed (0.70–1.20) — morgen-insulinresistens vs. aftenfølsomhed. Baseret på Toffanin 2013, Hinshaw 2013.
- HAAF-model: Hypo-unawareness baseret på akkumuleret hypoglykæmi-belastning. Gentagne hypoer svækker kontraregulationen progressivt — baseret på Cryer 2013.
- Ketonmodel: Produktion ved insulinmangel, clearance ved tilstrækkeligt insulin. DKA-progression med advarsler.
- Lever-glykogenpool: Massebalanceret (0–100g) med forbrug via glykogenolyse og genopfyldning via gluconeogenese + mad.
- Søvnforstyrrelse: Natlige interventioner koster søvn → forhøjet kronisk stress og forstærket dawn-effekt næste morgen.
- Vægt- og kaloriemodel: Energibalance med BMR-skalering og motionsforbrug → vægtændring over tid.
- Fedt-kompartmentmodel: To kompartmenter (mave → tarm) med dynamisk mavetømning. Fedt i tarmen udløser CCK/GLP-1 der bremser kulhydratabsorption (pizza-effekten). τG = 40 + 18×ln(1 + fedtTarm/10). Baseret på Smart 2013, Wolpert 2013.
- Protein-glukagonmodel: Tre-kompartment aminosyre-absorption (mave → tarm → blod) der driver glukagon-stimuleret leverproduktion via Hill-funktion. Erstatter den gamle 25%-kulhydrat-regel. Baseret på Paterson 2016, Fromentin 2013, Gannon 2013.
Teknologier
T1D SIMULATOR
Play it safe, before it really counts
About the Project
I was diagnosed with T1D in February 2025. From day one, I had to learn
about blood sugar control by performing potentially life-threatening
experiments on myself with insulin, food, and exercise. It was stressful
for me and my loved ones — that's how the idea for a T1D Simulator was born.
The goal is to let newly diagnosed patients, their parents, and loved ones
play their way to vital knowledge about the physiological mechanisms that
control blood sugar when you no longer produce your own insulin — in a safe
virtual environment without risk, with fast and detailed feedback.
People who have lived with diabetes for a long time may also benefit from
exploring how lifestyle changes (food, exercise, and dosing strategies)
can influence blood sugar levels.
The simulation is built on scientific literature where possible, and
seasoned with my personal experiences where the literature falls short.
Everyone with T1D is different, and the model cannot accurately simulate
how you specifically react — but hopefully it can help you understand the
many fascinating physiological factors that influence your blood sugar.
— Kristian Rauhe Harreby, Apr 2026
⚠️ Medical disclaimer: This simulator is
NOT a medical device (cf. EU MDR 2017/745). It is intended solely for
educational purposes. Do not use it to calculate insulin doses or
make treatment decisions. Always consult your healthcare team.
Support the Project
Feedback & Bug Reports
Found a bug? Have an idea for improvement? All feedback is welcome — you don't need to be technical!
Donate
The simulator is free and open source. Donations go towards project expenses: AI subscriptions, coffee, and more time for development.
☕ Buy Me a Coffee
📱 MobilePay
Game Mechanics
- Goal: Keep your blood sugar stable and earn points.
- Points: The closer to the target range, the more points.
- Personal profile: Enter your weight, ICR and ISF at start — the simulator adapts to your parameters.
Game Modes
🏖️ Sandbox
The sandbox is your laboratory. Here you can play freely without consequences
and explore how the body reacts to different choices. Try eating a big meal
without insulin — or give too much insulin and see what happens. Experiment
with lots of activity vs. none at all, regular food vs. low-carb, and what
happens if you forget your basal insulin entirely — or split the dose between
morning and evening. The more curious you are, the better you'll understand.
There are no wrong answers in the sandbox — only learning.
📦 Box Challenge
Box Challenge is like the sandbox, but with an extra abstract challenge:
coloured boxes appear on the graph, and your goal is to keep the blood sugar
curve clear of them. It requires creativity — you need to think ahead and
plan your interventions so the curve weaves around the boxes. You have three
lives, and each day is rated with stars based on how well you perform. Think
of it as a puzzle: when should you eat, when should you dose, and when should
you just let the body do its thing?
🎯 Campaign
The campaign guides you through realistic everyday scenarios, day by day.
Each day has specific objectives — such as remembering basal insulin, managing
a meal, or surviving the night without a hypo. You start with few tools and
gradually unlock more. Dr. Byte helps along the way with tips and explanations.
The campaign is the best place to start if you're completely new — it teaches
you the fundamentals step by step, and you can always replay a day to improve
your star rating.
Game Over
- Severe hypoglycemia: True BG drops below 1.5 mmol/L — the brain cannot function.
- Ketoacidosis (DKA): Sustained high BG without sufficient insulin. You'll be warned with symptoms first.
- Weight change: Total change exceeds ±5 kg.
- Complications: 7-day average BG exceeds 15 mmol/L.
- Campaign objectives: In campaign mode, you can also fail the day if you don't complete the required objectives before time runs out.
Keyboard Shortcuts
- Space — Start game / Pause / Resume
- ← → — Decrease / increase simulation speed
- ½, 1-9 — Give rapid insulin directly (½U, 1U, 2U … 9U)
- Z — Insulin X — Food C — Activity V — Diabetes kit
- When a panel is open: use letter keys as shortcuts to buttons. E.g. in the food panel:
Z=Dextrose, X=Apple, C=Juice, Q=Pizza, D=Chicken, B=Custom
- Chord shortcuts: press two keys in quick succession, e.g. X+Z = open food → eat dextrose
- Escape — Close open panels
Physiology & Interventions
- Food: Carbohydrates raise BG fastest (20-60 min). Protein contributes slowly (~25% of carb effect, delayed 30 min).
- Rapid insulin: Onset 10-15 min, peak 1-2 hours, duration 3-5 hours. Lowers BG by approximately ISF per unit.
- Basal insulin: Covers the body's baseline needs over 24+ hours. Remember it daily!
- Activity: Four types with different physiology:
Cardio (BG drops — muscle uptake),
Strength training (BG rises acutely — stress hormones),
Mixed sport (moderate effect),
Relaxation (reduces stress). Exercise increases insulin sensitivity for many hours after — watch out for delayed hypoglycemia!
- Glucagon: Emergency treatment for severe hypoglycemia. Raises BG substantially over 20-30 min. Use only in emergencies.
- Dawn effect: The liver releases extra glucose in the morning (around 04:00-08:00), and insulin works less effectively. Requires more insulin for breakfast.
- Sleep: Nighttime interventions (22:00-07:00) disrupt sleep and increase insulin resistance the next day.
- Counter-regulation: Hypoglycemia triggers stress hormones that raise BG — but in T1D this response is weak.
- Hypo unawareness: Repeated hypoglycemia weakens the body's ability to sense and counteract low blood sugar. Avoid hypos to preserve this protection!
Measurements
- CGM: Shows blood sugar with 5-10 min delay and some uncertainty. Not always accurate!
- Fingerprick: More accurate than CGM (±5%). Use it to double-check.
- Ketone test: Measure ketones when BG is persistently high. Elevated ketones + high BG = risk of ketoacidosis.
Background & Testing
The simulator is built on validated physiological models and scientific literature. Want to learn more?
- Physiological model — How the simulator engine works: the Hovorka model, insulin, exercise, stress hormones, etc.
- Scientific overview — All factors affecting blood sugar in T1D, based on research and clinical experience.
The model is continuously validated with automated tests:
- Visual model validation — 17 test sections that run the simulator headless (without UI) and plot BG curves for various scenarios.
- Automated unit tests — 100 tests checking individual physiological mechanisms.
Development
🚧 Under Construction — This simulator is in early development. Features may change or disappear without notice. The physiological models are continuously being improved and have not been clinically validated.
v0.8.0-beta — 2026-04-01
Features:
- Food chips redesign: portion weight, macro bar, colored tooltips
- SVG syringe icons (consistent colors across all platforms)
- Settings menu: visual hierarchy, left arrows, toggle switches
- Profile validation with disabled save button on invalid values
- Fullscreen button with text label
Key bug fixes:
- "Custom food" panel did not open before game start
- Start/Stop button text overwritten by i18n
- Sleep overlay (zzZzz) hidden behind points panel — moved to left
- VFX symptoms showed blur after BG had normalized
v0.7.0-beta — 2026-04-01
Features:
- Campaign mode with day 1 (basal tutorial)
- Settings menu with subgroups
- VFX symptoms (blurred vision, light flashes)
- Version number visible on logo (mouse-over)
Key bug fixes:
- BG forces (liver production) showed incorrect values
- Box Challenge rescue did not work correctly
v0.6.0-beta — 2026-03-27
Features:
- Campaign system with level structure and day progression
- eHbA1c calculation (estimated long-term blood sugar)
- Sleep bubbles redesigned
- Under-construction banner and feedback section
Key bug fixes:
- False rapid insulin displayed without bolus injection
v0.5.0 (Mar 24) — Food grid, insulin action band, background music
v0.4.0 (Mar 22) — Physiology panel, Box Challenge, sleep system, sound system
v0.3.0 (Mar 18) — FFA insulin resistance, UX overhaul, donation options
v0.2.0 (Mar 12) — Fat/protein models, i18n, highscore, activity system
v0.1.0 (Mar 4) — First release: Hovorka model, profile, stress, HAAF, CGM, ketones
Credits
Idea, design & physiological modelling
Kristian R. Harreby — with AI-assisted research and implementation (Claude, Anthropic & Gemini, Google).
Note: Source code and automated tests are primarily generated via AI and have not undergone a complete manual audit.
Core model
- Hovorka et al. (2004): Glucose-insulin ODE model with 11 state variables — covers insulin pharmacokinetics, carbohydrate absorption, and glucose kinetics. Source
- Open source foundation: Inspired by svelte-flask-hovorka-simulator by Jonas Nordhassel Myhre.
Model extensions (Kristian R. Harreby, AI-assisted)
- Exercise model: Two extra compartments (E1/E2) with four activity types (cardio, strength, mixed, relaxation) — based on Resalat et al. 2020, Riddell et al. 2017.
- Stress hormone system: Acute stress (adrenaline/glucagon, t½ 60 min) and chronic stress (cortisol, t½ 12 hours) with automatic Somogyi response during hypoglycaemia.
- Dawn phenomenon: Circadian cortisol peak (04:00→08:00) increasing hepatic glucose production in the morning. Regenerates daily with individual variation.
- Circadian ISF: Diurnal variation in insulin sensitivity (0.70–1.20) — morning insulin resistance vs. evening sensitivity. Based on Toffanin 2013, Hinshaw 2013.
- HAAF model: Hypo unawareness based on accumulated hypoglycaemia burden. Repeated hypos progressively impair counter-regulation — based on Cryer 2013.
- Ketone model: Production during insulin deficiency, clearance with sufficient insulin. DKA progression with warnings.
- Liver glycogen pool: Mass-balanced (0–100 g) with consumption via glycogenolysis and replenishment via gluconeogenesis + food.
- Sleep disruption: Nocturnal interventions cost sleep → elevated chronic stress and amplified dawn effect next morning.
- Weight & calorie model: Energy balance with BMR scaling and exercise expenditure → weight change over time.
- Fat compartment model: Two-compartment (stomach → intestine) with dynamic gastric emptying. Intestinal fat triggers CCK/GLP-1 feedback slowing carb absorption (pizza effect). τG = 40 + 18×ln(1 + fatIntestine/10). Based on Smart 2013, Wolpert 2013.
- Protein glucagon model: Three-compartment amino acid absorption (stomach → gut → blood) driving glucagon-stimulated hepatic glucose production via Hill function. Replaces the old 25% carb-equivalent rule. Based on Paterson 2016, Fromentin 2013, Gannon 2013.
Technologies