Cellular Automaton

Alleinentwicklung · Rust (wasm-bindgen, wasm-pack), Flutter Web, Riverpod, serde

RustWebAssemblyFlutter WebRiverpod

Problem & Ziel

Ein robuster Proof of Concept nach professionellen Standards (2000+ Zeilen Code): eine interaktive Browser-Simulation zellularer Automaten – als langlebige, modulare Software-Basis statt einfacher Bastelarbeit.

Herausforderung

Zwei Welten verbinden: ein performanter Simulationskern in Rust, der als WebAssembly-Modul im Browser läuft, angebunden an eine Flutter-Web-Oberfläche – inklusive Performance-Überlegungen bei der Übergabe größerer Datenmengen zwischen Rust und Dart/JavaScript.

Lösung

Simulationskern „ca_core“ in Rust mit Strategy-Pattern für vier zur Laufzeit umschaltbare Regelwerke (Game of Life, High Life, Maze, Seeds), via wasm-pack zu WebAssembly kompiliert. Flutter-UI mit Riverpod-State-Management: Play/Step/Reset, einstellbare Geschwindigkeit, Live-Anzeige von Generation und lebenden Zellen, Export als CSV, JSON und PNG.

Ergebnis

Alle vier Regelwerke getestet und stabil im Browser lauffähig – modular erweiterbar um weitere Regelwerke und Exportformate.

Learnings

Integration von Rust und Flutter über WebAssembly, Architektur mit austauschbaren Regelwerken (Strategy-Pattern) und der Umgang mit Performance an der Sprachgrenze zwischen Rust und Dart/JavaScript.

Einblicke in das Projekt

Dekorative Simulation des Spiels des Lebens. Zellen entstehen und sterben nach festen Regeln. Die Darstellung ist rein visuell; alle Informationen dazu stehen im Text der Case Study.

Generation 0Lebende Zellen 0

Live-Demo: Game of Life im Browser – klicken Sie ins Raster, um eigene Zellen zu setzen.

Simulation nach dem Regelwerk Game of Life: grüne lebende Zellen auf dunklem Raster.
Weiteres Regelwerk der Simulation mit anderem Zellmuster.
Bedienoberfläche der Simulation mit Anzeige von Generation und Anzahl lebender Zellen.