# Zellularautomat v2

Topologie-, Tiling- und Hex-Erweiterung des originalen hyperbolischen
Zellularautomaten ([astrojones/zellularautomat](https://github.com/astrojones/zellularautomat)).

Live-Website (nur Download + Doku):
**https://zellularautomat-v2.astrojones.de**

## Was ist neu gegenüber v1?

| Feature | v1 | v2 |
|---|---|---|
| Hyperbolic (Poincaré) | ✓ | ✓ |
| Donut (Torus) | ✗ | ✓ |
| Rectangle (flach) | ✗ | ✓ |
| Hex-Gitter | ✗ | ✓ |
| Kachel-Tiling (1×1 … 4×4) | ✗ | ✓ (Hyperbolic) |
| Hex-Life-Regeln (B2/S34, B3/S12, B4/S34) | ✗ | ✓ |

Die Original-Version v1 bleibt unverändert auf
**https://zellularautomat.astrojones.de** verfügbar (nur Theorie,
kein Download).

## Installation

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install pygame numpy
python zellularautomat_v2.py
```

Abhängigkeiten:
- `pygame >= 2.6`
- `numpy >= 1.24`

Getestet auf Python 3.14, macOS 15.

## Bedienung

| Taste | Wirkung |
|---|---|
| `T` | Topologie wechseln (Hyperbolic → Donut → Rectangle → Hex) |
| `1` / `2` / `3` | Regel 1, 2 oder 3 (je Topologie) |
| `+` / `−` | Geschwindigkeit (1–30 Gen/s) |
| `Leertaste` | Pause / Weiter |
| `R` | Zufallsverteilung (50 %) |
| `Mausklick` | Zelle toggeln |
| `Esc` | Beenden |

## Regeln

- **1D**: R30 (chaotisch), R110 (Turing-vollständig)
- **2D square**: B3/S23 (Conways Game of Life)
- **2D hex**: B2/S34, B3/S12, B4/S34

## Tests

```bash
SDL_VIDEODRIVER=dummy python -m unittest test_v2_core.py -v
```

14 Tests in 4 Klassen: TopologyTests, TilingTests, RuleTests, StepTests.

## Architektur

`zellularautomat_v2.py` verwendet das Strategy-Pattern:

- `Grid` — einheitlicher Container für Zustand, Geometrie, Nachbarschaft
- `build_hyperbolic`, `build_donut`, `build_rectangle`, `build_hex` — Topologie-Builder
- `step_1d_rowwise`, `step_2d` — Regel-Anwendung
- `Automaton` — hält Grid + Topologie + Regel, delegiert Step
- `UI` — Glass-Morphism Layout (Topologie-Buttons, Tiling, Regeln, Speed-Slider)

## Kosmologischer Bezug

Die Poincaré-Scheibe ist ein vereinfachtes Modell für den
Weltraum mit negativer Krümmung. Die App macht sichtbar, wie dieselbe
Regel in vier fundamental verschiedenen Geometrien evolviert:
hyperbolisch (unendlich, schrumpfend), toroidal (periodisch), flach
(endlich, mit Rändern), hexagonal (sechsfach rotationssymmetrisch).

CMB-Observablen (Cornish, Spergel & Starkman 1998) und Luminet et al.
(2003) legen nahe, dass auch unser reales Universum eine endliche,
möglicherweise nicht-einfach-zusammenhängende Topologie haben könnte —
Donut oder etwas Verwandtes.

## Lizenz / Quellen

Original-Cayley-Transformation: Disk-to-Halfplane nach H. S. M. Coxeter,
*Introduction to Geometry* (1961).

Hex-Nachbarschaft: Standard axial coordinates, siehe
https://www.redblobgames.com/grids/hexagons/
