How reeper316099/outbreakscope works
OutbreakScope is a desktop teaching app for exploring infectious-disease scenarios, stochastic variation, and parameter fitting to case data. Users configure a model and timed interventions in the simulator, inspect derived curves and ensemble results, or import observations and run an optimizer followed by parallel MCMC chains. The renderer coordinates workers and file workflows; Electron provides the desktop shell and guarded IPC. The graph preserves README-described charting, comparison, explanation, import/export, and diagnostics capabilities. Unsampled UI and simulation modules are included by exact tree path; their detailed internal calls are not inferred.
Main entry points: simulator.ts Scenario controls · fitRun.ts Fit orchestration · fitView.ts Fit workspace · stochastic.ts Stochastic models
Components 34
Desktop shell
- Electron shell
electron/main.ts - Native IPC
electron/ipc.ts
Scenario experience
- Renderer router
src/main.ts - Scenario controls
src/ui/simulator.ts - Charts and results
src/ui/resultsPanel.ts - Scenario comparison
src/ui/compare.ts - Model explainer
src/ui/explainer.ts - Ensemble client
src/ui/ensembleClient.ts
Simulation engine
- Ensemble worker
src/workers/ensemble.worker.ts - Stochastic ensemble
src/sim/ensemble.ts - Stochastic models
src/sim/stochastic.ts - ODE integration
src/sim/rk4.ts - Compartment models
src/sim/models.ts - Intervention schedule
src/sim/interventions.ts - Derived metrics
src/sim/derived.ts - Seeded random
src/sim/rng.ts - Parameter conversion
src/sim/params.ts
Data fitting
- Fit workspace
src/ui/fitView.ts - Fit coordinator
src/ui/fitClient.ts - Optimizer worker
src/workers/fit.worker.ts - Chain workers
src/workers/mcmc.worker.ts - Fit orchestration
src/sim/fitRun.ts - Fit evaluator
src/sim/fit.ts - Nelder-Mead
src/sim/optimize.ts - MCMC sampler
src/sim/mcmc.ts - Fit diagnostics
src/sim/diagnostics.ts
Data and contracts
- CSV import
src/io/csv.ts - Bundled datasets
src/io/datasets.ts - Data export
src/io/export.ts - Scenario sessions
src/io/session.ts - Preferences storage
src/io/storage.ts - Runtime schemas
src/shared/schemas.ts - Shared contracts
src/shared/types.ts
Other components
- User
Connections 37
- User → Renderer router: uses
src/main.ts - Renderer router → Scenario controls: routes to
src/main.ts - Renderer router → Fit workspace: routes to
src/main.ts - Scenario controls → Ensemble client: starts runs
src/ui/simulator.ts - Ensemble client → Ensemble worker: dispatches
src/ui/ensembleClient.ts - Ensemble worker → Stochastic models: runs
src/workers/ensemble.worker.ts - Stochastic ensemble → Stochastic models: aggregates
src/sim/ensemble.ts - Stochastic models → ODE integration: uses grid
src/sim/stochastic.ts - ODE integration → Compartment models: builds rates
src/sim/rk4.ts - ODE integration → Intervention schedule: selects segment
src/sim/rk4.ts - Stochastic models → Intervention schedule: selects segment
src/sim/stochastic.ts - Scenario controls → Charts and results: renders results
src/ui/simulator.ts - Scenario controls → Scenario comparison: supports overlays
src/ui/simulator.ts - Renderer router → Model explainer: routes to
src/main.ts - Fit workspace → CSV import: parses imports
src/ui/fitView.ts - Fit workspace → Bundled datasets: loads samples
src/ui/fitView.ts - Fit workspace → Fit coordinator: starts fit
src/ui/fitView.ts - Fit coordinator → Optimizer worker: optimizes first
src/ui/fitClient.ts - Fit coordinator → Chain workers: launches chains
src/ui/fitClient.ts - Optimizer worker → Fit orchestration: runs fit stage
src/workers/fit.worker.ts - Chain workers → Fit orchestration: runs chain stage
src/workers/mcmc.worker.ts - Fit orchestration → Fit evaluator: evaluates model
src/sim/fitRun.ts - Fit orchestration → Nelder-Mead: calls optimizer
src/sim/fitRun.ts - Fit orchestration → MCMC sampler: samples chains
src/sim/fitRun.ts - Fit orchestration → Fit diagnostics: computes diagnostics
src/sim/fitRun.ts - Fit evaluator → ODE integration: simulates cases
src/sim/fit.ts - Fit evaluator → Fit diagnostics: checks identifiability
src/sim/fit.ts - Scenario controls → Scenario sessions: saves scenarios
src/ui/simulator.ts - Scenario controls → Data export: exports results
src/ui/simulator.ts - Fit workspace → Data export: exports fit
src/ui/fitView.ts - Electron shell → Native IPC: registers
electron/main.ts - Native IPC → Runtime schemas: validates requests
electron/ipc.ts - Scenario sessions → Runtime schemas: validates files
src/io/session.ts - Preferences storage → Runtime schemas: validates preferences
src/io/storage.ts - Ensemble worker → Seeded random: seeds realizations
src/workers/ensemble.worker.ts - Stochastic models → Seeded random: draws events
src/sim/stochastic.ts - ODE integration → Parameter conversion: sets step rates
src/sim/rk4.ts