Zellularautomat v2
Topologie · Kachel-Tiling · Hex-Modus
Über diese Version / About this version
Die Original-Version (v1) ist unverändert auf zellularautomat.astrojones.de verfügbar. Diese v2-Variante ist eine vollständig getrennte Desktop-Anwendung, die um drei Konzepte erweitert wurde:
- Topologie-Auswahl zwischen hyperbolischer Poincaré-Scheibe, Torus (Donut), flachem Rechteck und Hex-Gitter.
- Kachel-Tiling im hyperbolischen Modus (1×1, 2×2, 3×3, 4×4 unabhängige Scheiben).
- Hex-Modus mit drei dokumentierten Life-like Regeln (B2/S34, B3/S12, B4/S34).
Download | Run locally
Die v2-App ist eine eigenständige Python-Anwendung (pygame + numpy). Sie läuft lokal – die Website dient nur als Download-Quelle und zur Dokumentation. Quellcode:
⬇ zellularautomat_v2.py 📖 README
python3 -m venv .venv
source .venv/bin/activate
pip install pygame numpy
python zellularautomat_v2.py
Steuerung / Controls
| Taste | Wirkung |
|---|---|
| T | Topologie wechseln (Hyperbolic → Donut → Rectangle → Hex) |
| 1 / 2 / 3 | Regel 1, 2 oder 3 (je nach Topologie) |
| + / − | Geschwindigkeit (1–30 Gen/s) |
| Leertaste | Pause / Weiter |
| R | Zellen zufällig verteilen (50 %) |
| Mausklick | Zelle toggeln |
| Esc | Beenden |
Topologien im Detail
Hyperbolic (Poincaré-Disk)
Die Original-Geometrie: Zellen in der oberen Halbebene werden via Cayley-Transformation \[ z' = \frac{z - i}{z + i} \] in die Einheitsscheibe abgebildet. Zellen nahe des Rands schrumpfen. Jede Kachel ist eine eigenständige Scheibe; ein Wrap zwischen Kacheln würde die Geometrie zerstören.
Donut (Torus)
Klassischer 2D-Torus: ein 80×60-Gitter mit Wrap-around in beiden Achsen. Eine Zelle am linken Rand hat den rechten als Nachbar – das vermeidet fixe Grenzen und ergibt periodische Strukturen.
Rectangle
Flaches 80×60-Gitter mit statischen Rändern: am Rand liegende Zellen haben einen Nachbar weniger. Game of Life auf einem endlichen Brett ohne Wrap.
Hex (Hexagonal)
Sechseckgitter mit axialen Koordinaten \((q, r)\). Sechs Nachbarn: \[ (+1,0), \; (+1,-1), \; (0,-1), \; (-1,0), \; (-1,+1), \; (0,+1). \] Drei Life-like Regeln verfügbar: B2/S34, B3/S12, B4/S34. Hyperbolisch + Hex ist nicht kombinierbar (die Poincaré-Scheibe trägt kein reguläres Hex-Tiling).
Regeln / Rules
Die App interpretiert drei Familien:
-
1D-Elementarzellularautomaten:
R30undR110. Beide zeilenweise angewendet; Wrap auf Tile-Ebene (jede Zeile ist ein Ring). -
2D Life-like (quadratisch):
B3/S23(Conway's Game of Life). Eine Zelle wird geboren bei 3 Nachbarn, überlebt bei 2 oder 3, sonst stirbt sie. -
2D Life-like (hexagonal):
B2/S34,B3/S12,B4/S34. Sechs Nachbarn.
Architekturhinweis / Architectural note
zellularautomat_v2.py verwendet das Strategy-Pattern:
jede Topologie liefert ein Grid-Objekt mit
einheitlicher Schnittstelle (states, screen,
neighbours). Die step-Methode der
Automaton-Klasse delegiert an die passende Regel —
egal ob 1D-Tabelle, 2D-Square oder Hex.