Crisis BFT consensus protocol — Go PoC, Python recorder, and CrisisViz: a native macOS scrubbable curriculum visualizer (10 chapters, ~18 minutes at 1×, signed-speed slider with reverse playback).
Find a file
saymrwulf fb9bc9c726 Add README — Crisis PoC + educational visualizer
Short framing: this repo is a proof-of-concept and educational
artifact for Mirco Richter's Crisis paper, comprising a Go PoC, a
Python recorder, and CrisisViz — a native macOS/SwiftUI curriculum
visualizer that walks the protocol end to end across ten chapters
in serial slow motion. Speed slider goes -16x to +16x with reverse
playback; narration is beat-bound to whichever moment the playhead
sits on.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 16:28:02 +02:00
CrisisViz Ch08 erasure shards: migrate to serial timeline + per-cast vaults 2026-05-07 22:30:29 +02:00
src/crisis Masterclass redesign: cast lifelines, narrative invariants, video harness 2026-05-06 19:11:36 +02:00
tests Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00
.gitignore Add macOS .app bundle with native Dock icon and activation policy 2026-04-30 20:21:18 +02:00
Crisis.mirco-richter-2019.pdf Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00
crisis_data.json Add JSON export pipeline + event recorder for visualization 2026-04-30 20:06:21 +02:00
pyproject.toml Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00
README.md Add README — Crisis PoC + educational visualizer 2026-05-08 16:28:02 +02:00

crisis

A proof-of-concept and educational artifact for Mirco Richter's Crisis paper — a DAG-based BFT consensus protocol with a data-availability layer.

This repo contains:

  • a small Go PoC of the protocol (src/, tests/),
  • a Python recorder that exports a simulation run to JSON (pyproject.toml),
  • CrisisViz — a native macOS / SwiftUI curriculum visualizer that walks the protocol end to end across ten chapters: cast intro, gossip mechanics, partition, round derivation, virtual voting, leader election, total order, the data-availability problem, erasure-coded recovery, and Byzantine fork detection.

Everything is in extreme slow motion and serialized for didactic clarity. A signed speed slider scrubs the chapter forward and backward at any rate from 16× to +16×; narration in the overlay is bound to whichever beat the playhead is on.

Build:

cd CrisisViz
swift build              # dev binary
./bundle.sh              # produce CrisisViz.app + open
swift run CrisisViz --testbed   # PNG sweep + invariant + MP4 harness

The viewer is the master of time. Pull the slider.