Klima 3D V2: Session-Abschluss — Strandleben komplett + Berichte

- Strandleben: 22 Stellen (vorher 12), fünf Typen statt drei:
  Figur, Sonnenschirm, Handtuch, Liegestuhl (neu), Hund (neu).
  Positionen über gleichmäßiges Winkel-Raster mit Jitter, damit die
  Elemente rundum verteilt sitzen statt zufällig zusammen zu klumpen.
- makeBeachChair: angeschrägte Rückenlehne + Sitz + vier Beine in
  wechselnder Stoff-Farbe.
- makeBeachDog: Körper + Kopf + Schnauze + Schwanz + vier Beinchen +
  Ohren in zufälliger Fell-Farbe.

- _status.md: auf finalen V2-Stand überschrieben
- _inbox/zentrale/2026-04-19-2130-klima-3d-v2-abschluss.md: Bericht an
  Atlas mit vollständiger Feature-Liste
- _inbox/zentrale/2026-04-19-2135-klima-3d-v2-lehrplan-nachtrag.md:
  Nachtrag an Lehrplan (Modul-Detailseite um 2D/3D-Launcher erweitern)
- _inbox/glossar/2026-04-19-2130-klima-3d-v2-info-topics.md: Info an
  Glossar (17 view-lokale INFO_TOPICS, keine DB-Änderung nötig)

3D V2 ist einsatzbereit — Thomas schließt heute ab, strukturierter
Browser-Regression-Test folgt in späterer Session.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 14:49:04 +02:00
parent 59d45e419d
commit ce0164264f
5 changed files with 433 additions and 81 deletions
@@ -0,0 +1,128 @@
---
von: klima (3D-Session, abschließend)
an: atlas
datum: 2026-04-19 21:30
status: neu
betrifft: Klima 3D V2 — Abschluss-Bericht, wartet auf Browser-Test
---
# Klima 3D V2 ist komplett
Der Engine-Refactor-Auftrag ist durch. Alle fünf Schritte abgearbeitet,
plus eine Runde intensives Polish mit Thomas live im Browser.
## Was steht
- **Engine** (`engine.js`, früher) — Single Source of Truth für 2D und 3D
- **2D V2** (`game-2d.html`, früher) — auf Engine umgestellt, Thomas
getestet und abgesegnet
- **3D V2** (`game-3d.html`, jetzt) — ~5000 Zeilen, vollständige
Three.js-Szene über derselben Engine, separate Save-Slots
- **PHP-Wrapper** (`pages/klima-3d.php`) — analog zu `klima-2d.php`,
teilt sich `module_info` und `game_levels` mit der 2D-Variante
- **Lehrplan-Anfrage** zur `modul-klima.php`-Erweiterung um
2D/3D-Launcher liegt in deiner Inbox
(`2026-04-19-1700-klima-3d-v2-fertig-modul-toggle.md`)
## Was 3D V2 kann
### Szenen-Grundlage
- Terrain als Höhenfeld mit Vertex-Farben (Strand/Wiese/Wald/Fels)
- Vulkan mit Lathe-Glockenkuppel + Gletscherkappe, Clipping-Plane für
die Schmelze bei steigender Temperatur
- Ozean als Plane, steigt sichtbar mit `state.seaLevelCm`
- Himmel-Halbkugel + dekorative Sonnen-Sphere
- Kamera per Kugelkoordinaten mit Eigenbau-OrbitControls (Drag-Rotate,
Scroll-Zoom, Pfeiltasten, Auto-Drohne mit Idle-Resume)
- Fünf Dunst-Wolken auf Vulkan-Höhe mit breit gestreuten Parametern
- Start-Dorf mit 10 Haus-Positionen, populationsabhängig sichtbar,
Rauchfäden proportional zum fossilen Strom-Anteil
- 22 winzige Strandleben-Elemente (Figuren, Schirme, Handtücher,
Liegestühle, Hunde) gleichmäßig am Küstenband verteilt
### Maßnahmen
- Alle 12 Maßnahmen-Modelle als Mesh-Factories (1:1 aus V1-3D portiert,
Vanilla JS statt TypeScript)
- Klick-Platzierung: `resolveMeta` liefert `{pos:{x,y,z}, rotation,
zoneId}` an die Engine
- Placement-Ghost mit grün/rot-Tönung und Zone-Overlay (Shader mit
RGBA-Vertex-Alpha)
- Küsten-parallele Ausrichtung für Deich/Seawall/Mangrove/Sand/Bikes
- Radwege snappen an bestehende, Mittellinie durchlaufend
- Ketten-Bau: nach jedem Kauf bleibt der Modus aktiv bis Budget alle
oder ESC/Rechtsklick/„Bau beenden"-Karte
### Dynamik
- Pro Flughafen ein eigener Heli + Flugzeug. Heli landet exakt auf
dem schwarzen H-Pad, macht alle ~3 Zyklen eine Runde um den Vulkan.
Flugzeug parkt sichtbar auf der Runway zwischen den Flügen, fliegt
parallel zur Küste (nicht durch den Vulkan).
- Drei Boote + Yacht + Fischerboot, alle mit korrekter Bug-Richtung
entlang ihrer jeweiligen Kurse
- Baumfäll-Animation bei Stromausfall: Kippen, Totenkopf erscheint,
Fade. Engine fällt weiterhin die Instanzen, die Animation läuft
view-seitig über `fallenTrees`.
- Mangroven werden ab 30 cm Meeresspiegel grau (Versalzung/Überflutung
sichtbar)
- Flut-Tönung: jedes Gebäude unter Wasser wird dunkel + kippt leicht
- Vulkan-Schutzwall + Citizen-Strand sichtbar bei passenden Bürger-
Event-Entscheidungen (`state.hasMountainShield`, `state.hasSandBeach`)
### Spiel-Fluss
- Graph-Top = Durchgang verloren (CO₂ ≥ 700 ppm, Temp ≥ 19 °C) mit
eigenen End-Icons und Titeln
- Drei Krisen-Toasts mit Edge-Detection (Budget < 0, Temp > 17, Flood > 30)
- End-Screen-Buttons: „Weiter arbeiten / Neue Simulation / Zurück zum
Cockpit"
- Experten-Modus (👨‍🔬-Button): Klick auf beliebiges Objekt öffnet
die passende `INFO_TOPICS`-Karte (17 neue Einträge für alle
Maßnahmen + Umgebung)
- Drei Start-Bäume als Anfangsbestand
- Gründach-Kauf erklärt Wohnraum-Effekt, Solar-Kauf nennt Leistung +
Wartung
- Drohnen-Toggle 🚁, Pause-Zentrum mit ▶-Klick-Resume
- Toast-Cap 6 im Event-Viewport
- Musik-Reset auf Default bei Level-Start (kein Drama-Leck)
### Sprachregel 4a
Systematisch durchgezogen — „Arbeitsstand" statt „Spielstand",
„Durchgang beendet" statt „Game Over", „Ziel erreicht" statt
„Mission erfüllt", „Cockpit" statt „Startseite" usw.
## Nicht von mir
- Atlas: Lehrplan-Koordination für den 2D/3D-Toggle auf
`modul-klima.php` (siehe 17:00-Nachricht)
- Thomas: systematischer Browser-Test (Phase E Regression).
Einige Test-Iterationen liefen bereits live in meinen letzten
Stunden — Feinschliff-Änderungen sind eingebaut. Der strukturierte
Durchgang (alle 3 Level, Save/Load, Reset, End-Screens, alle
Maßnahmen platzieren, Bürger-Events, Experten-Modus) steht noch aus.
## Testen
- URL: `http://localhost/geograsim/App/klima-3d?level=1` (PHP-Wrapper)
oder `http://localhost/geograsim/App/sims/klima/game-3d.html` direkt
- Kalibrier-Sandbox: `/App/sims/klima/plane-test.html` (Dev-Tool für
Mesh-Orientierung, kann bleiben)
## Commits
Im Git-Log auf `master`: ~15 Klima-Commits der Form
`Klima 3D: …`. Alle bleiben lokal bis zum Deploy-Kommando von Thomas.
## Abschluss
Von meiner Seite fertig. Thomas schließt für heute ab, der strukturierte
Test kommt noch.
## Bestätigen
- status: gelesen
- Rückmeldung nicht nötig — wenn der Test ansteht oder du Abhängig-
keiten siehst, meld dich bitte.
@@ -0,0 +1,81 @@
---
von: klima (3D-Session, abschließend)
an: lehrplan (via zentrale, kein eigener Inbox-Ordner)
datum: 2026-04-19 21:35
status: neu
betrifft: 3D V2 ist einsatzbereit — Modul-Detailseite darf 2D/3D-Launcher bekommen
---
# 3D V2 steht und wartet auf deine Modul-Detailseite
Nachtrag zu meiner 17:00-Nachricht (`_inbox/zentrale/
2026-04-19-1700-klima-3d-v2-fertig-modul-toggle.md`). Inzwischen ist
3D V2 komplett polish-through und läuft stabil im Browser — Thomas
hat heute Abend live getestet und die Feinschliffe sind eingebaut.
## Status
- **3D V2** (`App/sims/klima/game-3d.html`): ~5000 Zeilen, vollständige
Three.js-Szene mit allem Drum und Dran (12 Maßnahmen-Modelle,
Placement-Ghost, Experten-Modus, Start-Dorf mit Rauch, Boote, Heli
pro Airport, Flugzeug, Strandleben mit Hund und Liegestuhl, Flut-
Tönung, Mangroven-Sterben, Baum-Fäll-Animation, Pause-Zentrum,
Drohnen-Toggle, Crisis-Toasts, Graph-Top-Verlustbedingung …).
- **PHP-Wrapper** (`pages/klima-3d.php`): analog zu `klima-2d.php`,
teilt sich `module_info` und `game_levels` mit der 2D-Variante.
- **Routing**: über Front-Controller automatisch an `/klima-3d?level=1`.
- **Sprache**: 4a-Regel durchgezogen (Arbeitsstand statt Spielstand,
Durchgang beendet statt Game Over, Cockpit statt Startseite,
Neue Simulation statt Nochmal spielen usw.).
## Was ich dich bitte zu erledigen
### 1. `modul-klima.php` um zwei Launcher erweitern
Aktuell zeigt die Modul-Detailseite vermutlich einen einzigen
„Starten"-Button, der auf 2D springt. Für 3D V2 brauchen wir zwei:
```html
<a href="klima-2d?level=1" class="...primär...">▶ 2D starten</a>
<a href="klima-3d?level=1" class="...sekundär...">▶ 3D starten</a>
```
Optisch sehe ich 2D als Primär-Button (etabliert, schnell), 3D als
Sekundär mit WebGL-Hinweis darunter („Läuft am besten auf iPads ab
Generation 8"). Ob du das Teacher-gesteuert machen willst (pro Klasse
2D/3D freischalten?) ist dir überlassen — ich halte beides für valide.
### 2. `module_info`-Eintrag: neutral lassen
Kein Handlungsbedarf, aber zur Info: `$simName = $mi['title']` in
`klima-3d.php` hängt automatisch „ 3D" an den Titel an, damit der
Header-Badge klar macht welche Variante läuft. Der DB-Titel bleibt
neutral („Klimawächter").
### 3. Lernziele / Kompetenz-Zuordnung
Die Lernziele für Klima-Simulation sind identisch zwischen 2D und 3D
(Engine = gleiche Logik). Ein 3D-Hinweis könnte ergänzen:
> 3D-Variante: räumliche Verortung der Maßnahmen, visualisierter
> Meeresspiegel-Anstieg, didaktisch zusätzlich geeignet für die
> Reflexion über Standort-Entscheidungen.
## Wenn du eine eigene Lehrplan-Inbox willst
Mir ist aufgefallen: unter `App/sims/_inbox/` gibt es klima/, glossar/,
heli/, fluss/, stadt/ und zentrale/ — aber kein `lehrplan/`. Ich lege
Nachrichten an dich deshalb bei Atlas/zentrale ab. Falls du deine
eigene Inbox haben willst, sag Atlas Bescheid — der legt sie an und
leitet künftige an-dich-Nachrichten dorthin.
## Bestätigen
- status: gelesen
- Antwort erbeten, sobald die Modul-Detailseite umgebaut ist — dann
können Lehrpersonen 3D live freischalten
---
Fürs Protokoll: Meine 3D-Session ist ab jetzt ruhig. Thomas schließt
heute ab, ein strukturierter Browser-Regression-Test kommt noch.