Agent-based dashboard: how a deepfake spreads through a school network, and where a limited education budget actually helps. Illustrative, not validated.
Find a file
Justin Visser 2a5b78cb9a refactor cmd: thin main, testable run(io.Writer), AllStrategies in engine
The strategy list moves into the engine (AllStrategies), where the API
and frontend will read it too: one source of truth, per the handoff.
main shrinks to the standard Go shell pattern: all work happens in
run(out io.Writer) error; main only maps the error to stderr and the
exit code. Writing to an interface instead of stdout is what lets
main_test.go capture output in a bytes.Buffer.
errcheck flagged every unchecked Fprintf, so formatting became pure
Sprintf string building with one checked write at the end: nicer than
discarding four errors with '_, _ ='.
2026-06-10 12:39:03 +02:00
cmd/spreadlab refactor cmd: thin main, testable run(io.Writer), AllStrategies in engine 2026-06-10 12:39:03 +02:00
internal/engine refactor cmd: thin main, testable run(io.Writer), AllStrategies in engine 2026-06-10 12:39:03 +02:00
.gitignore batman 2026-06-10 11:57:10 +02:00
go.mod batman 2026-06-10 11:57:10 +02:00
LICENSE batman 2026-06-10 11:57:10 +02:00
README.md batman 2026-06-10 11:57:10 +02:00

spreadlab

Self-hosted dashboard that runs an agent-based deepfake-spread model live: change the levers, watch the spread, and (later) search for the best intervention under a budget. Output is illustrative, not validated.

Status: milestone 1, porting the simulation engine.

Layout:

  • internal/engine/ - the pure simulation engine (no web dependencies)
  • cmd/spreadlab/ - the server binary (milestone 2)
  • web/ - Vue 3 + TypeScript frontend (milestone 2+)

MIT licensed.