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 c3f65a4029 docs engine: state the RNG design decision in rng.go
rng.go is a construction point, not an abstraction wall; components
take *rand.Rand directly (idiomatic Go dependency injection) and only
RunScenario creates streams, from config seeds. Decided 2026-06-10
over the alternatives (interface wall, folding newRand into
scenario.go).
2026-06-10 13:01:39 +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 docs engine: state the RNG design decision in rng.go 2026-06-10 13:01:39 +02:00
web types: generate TypeScript from engine structs with tygo 2026-06-10 12:58:13 +02:00
.gitignore batman 2026-06-10 11:57:10 +02:00
generate.go types: generate TypeScript from engine structs with tygo 2026-06-10 12:58:13 +02:00
go.mod types: generate TypeScript from engine structs with tygo 2026-06-10 12:58:13 +02:00
go.sum types: generate TypeScript from engine structs with tygo 2026-06-10 12:58:13 +02:00
LICENSE batman 2026-06-10 11:57:10 +02:00
README.md batman 2026-06-10 11:57:10 +02:00
tygo.yaml types: generate TypeScript from engine structs with tygo 2026-06-10 12:58:13 +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.