---
von: atlas
an: staustufen
datum: 2026-04-26 13:00
status: neu
betrifft: Thomas-Feedback nach L1-Test — Grafik-Umbau, Doku-Konzept, Bilder, Begriff
---

# Erstmal: starker erster Burst

Thomas hat Level 1 angetestet. Mode-Check, Tank-Mechanik, End-Screen,
Assessment-Calls, Sprachregel — alles steht. Du hast sauber durchgezogen.

Jetzt kommt Runde 2: vier inhaltliche Punkte. **Wichtig vorab**:
für die zwei großen Punkte (Doku + neue Visualisierung) erwartet
Thomas **erst ein kurzes Konzept** in deiner Inbox-Quittung, dann
Umsetzung. Nicht direkt drauflos bauen, sonst baust du eventuell
zweimal. Ich kommentiere das Konzept binnen Stunden, dann setzt du um.

## 1. Begriff: „Versorgungsqualität" raus → „Netzbalance" rein

Thomas' Begründung (zu Recht): Versorgungsqualität klingt linear-gut
(„mehr ist mehr"), aber **zu viel Strom ist genauso kaputt wie zu
wenig** (Netz-Frequenzfehler, Trafo-Schäden in Realität, didaktisch:
„Stromüberschuss ist auch Verschwendung").

Neuer Begriff: **Netzbalance**.
- Ein **grüner Korridor** ± 15 % um den Bedarf = „Netz im Gleichgewicht"
- Darüber → **Überschuss** (gelb 15–30 %, rot > 30 %) → didaktischer
  Hinweis „Strom geht ungenutzt verloren"
- Darunter → **Versorgungslücke** (gelb 15–30 %, rot > 30 %) →
  „Verbraucher bekommen nicht genug"
- End-Bewertung: % der Tick-Sekunden im **grünen** Bereich.

Begriff durchziehen: Variablennamen, UI-Labels, End-Screen-Text,
Assessment-Payload (`results.netzbalance` statt `results.versorgung`).

## 2. Visualisierung: Landschaft im Querschnitt statt abstrakte Tanks

Thomas' Bild: **„aufgeschnittener Berg seitwärts wie eine Infografik
in einem Schulbuch"**. Konkret:

- SVG-Querschnitt einer Alpenlandschaft, von links Berg → rechts Tal
- **Oberer Speicher** als Stausee in einer Bergmulde, eingezeichnet
  mit Wasserstand (Y-Höhe = Füllstand %)
- **Unterer Speicher** im Tal, ebenfalls als Wasserkörper sichtbar
- **Druckrohr** vom oberen Speicher abwärts in den Berg →
  **Maschinenhaus** im Tal mit Pumpe + Turbine
- Wasserbewegung als animierte **Pfeile/Punkte im Rohr**
  (CSS `stroke-dasharray` + `stroke-dashoffset`-Animation, oder
  SVG-Pfade)
- Beschriftung direkt an den Elementen: „Oberer Speicher 65 %",
  „Pumpe ⏸", „Turbine ▶ stark", Höhenangabe „+450 m" o.ä.
- **Klickbare Pumpe und Turbine** direkt auf dem Querschnitt — ein
  Klick öffnet ein kleines Pop-up-Menü oder togglet durch die Stufen
  (aus/schwach/mittel/stark). Keine separaten Steuer-Panels mehr
  unten.
- Stil: zeitgenössische Schulbuch-Infografik. Kann auch teilweise
  hand-illustriert wirken — Pattern: Heli's flat-alpine-Stil aus
  [App/sims/heli/scripts/generate-mission-images.sh](App/sims/heli/scripts/generate-mission-images.sh)
  passt visuell sehr gut. Du könntest sogar **das Querschnitt-Bild
  selbst per DALL-E generieren** und dann mit interaktiven SVG-Layern
  überlagern (Wasserstand-Rects, Pfeile, Klickflächen) — das wäre
  technisch elegant: ein statisches Hintergrundbild + interaktive
  Overlays.

**Konzept-Skizze gewünscht**: SVG-Aufbau (welche Layer), wie die
Wasserstands-Animation läuft, wie die Pumpe-/Turbinen-Klickflächen
gestaltet sind (Hover-Highlight, Tap-Target ≥ 36 px), ob du
Hintergrund per DALL-E machst oder rein SVG zeichnest.

## 3. Graph unten: Liniendiagramm mit Korridor, mehr Höhe

Aktuell sind die Bedarfs-Blöcke pro Tag konstante Rechtecke. Thomas
findet das grafisch und didaktisch flach. Neue Vorgaben:

- **Mehr Höhe** für den Graph-Bereich (aktuell zu klein, soll Hauptachse
  des Bilanz-Verständnisses werden)
- **Bedarf** als **Liniendiagramm** mit Wellenform — innerhalb eines
  Tages variieren (Morgenspitze, Mittagsdelle, Abendspitze ist klassisch
  Last-Profile, recherchiere ein einfaches Profil und skaliere). Für
  L1 reicht: pro Tag 4–6 Stützpunkte mit Bezier-Glättung, also weiche
  Wellenlinie.
- **Aktuelle Versorgung** (Pumpen-Verbrauch + Turbinen-Erzeugung +
  Grundlast) als zweite Linie, andere Farbe.
- **Grüner Korridor** ± 15 % um Bedarfslinie als gefüllter
  halbtransparenter Bereich (siehe Punkt 1).
- **Differenz visualisieren**: zwischen Bedarfslinie und
  Versorgungslinie shading, **rot wenn außerhalb Korridor**, grau
  wenn innerhalb. Alternative: Pfeile nach oben (Überschuss) oder
  unten (Lücke), wenn außerhalb.
- **Tag-Trenner** als vertikale Linien mit „Tag 1 / Tag 2 / …".
- **Aktueller Tick** als Marker (Vertikalbalken oder roter Punkt
  auf den Linien).

Library: Du kannst Vanilla-SVG benutzen (ist die Plattform-Konvention)
oder ein winziges Helper-Lib. Chart.js/Recharts/D3 sind **nicht** im
Stack — Plattform-Komplexität-Limit. Vanilla-SVG mit
`d="M ... C ... L ..."`-Pfaden + `<rect>` für Korridor ist genug.

**Konzept-Skizze gewünscht**: ASCII oder Stichworte zum Aufbau —
Achsen, Linien-Layer, Korridor-Rect, Tag-Trenner, Tick-Marker, Höhe in
px, Farben.

## 4. Bilder + Doku + Sprachausgabe — Konzept zuerst, Umsetzung danach

Thomas will, dass Staustufen **grafisch und didaktisch hochwertig**
ausgestattet ist. Drei Säulen:

### 4a. Bilder

**Was du brauchst:**
- **Card-Image fürs Cockpit** (`App/assets/img/sim-staustufen.png` o.ä.,
  16:9, ~1024×576) — eine schöne Stausee-Illustration. **Dringend**:
  Cockpit zeigt sonst nur 💧-Emoji ohne Bild.
- **Querschnitts-Hintergrund** (siehe Punkt 2) — falls du den DALL-E-Weg
  gehst.
- **Region-/Stausee-Bilder** für Info-Cards (z.B. Kaprun, Malta,
  Kops II, Reißeck, Limberg) — **optional in L1**, Roadmap für L2.

**Pipeline:**
- API-Key liegt schon in [`App/.env.local`](App/.env.local) als
  `OPENAI_API_KEY` (DALL-E 3). Auch `ELEVENLABS_API_KEY` für TTS.
- Vorlage-Skript: [`App/sims/heli/scripts/generate-mission-images.sh`](App/sims/heli/scripts/generate-mission-images.sh)
  — kopier nach `App/sims/staustufen/scripts/generate-images.sh` und
  passe die Prompts an. Stil-Prompt von Heli ist konsistent über
  Module hinweg, lass den weitgehend stehen, nur Scene-Prompts ändern.
- Kosten ~0.04 € pro Bild bei DALL-E 3 1024×576. Du darfst die
  generieren — Thomas hat das autorisiert. Sei sparsam: zuerst 1–2
  zentrale Bilder (Card + Querschnitt-Hintergrund), Test, dann mehr.
- Bilder in `App/sims/staustufen/assets/img/` (oder bei plattformweit
  relevanten Bildern wie der Card in `App/assets/img/`).

**Card-Image im DB-Eintrag setzen:**
```sql
UPDATE module_info SET card_image = 'sim-staustufen.png'
WHERE module_id = 'staustufen';
```
Path-Konvention prüfen — schau bei den anderen Modulen
(`App/assets/img/sim-04-weltvergleich.png` etc.), wie das geladen wird.

### 4b. InfoCards (Didaktisches Onboarding & Begriffs-Erklärung)

Vorbild: **Klima** und **Logistik** zeigen InfoCards mit Bild + Text
beim Start eines Tages oder Auftrags. Slide-in von rechts, 5–8 Sek
sichtbar, nicht-blockierend, kann manuell geschlossen werden.
Pattern: `.lg-infocard` in [App/sims/logistik/game.html](App/sims/logistik/game.html)
und der entsprechende Atlas-Brief
[App/sims/_inbox/logistik/2026-04-24-2200-atlas-antwort-cards-pattern.md](App/sims/_inbox/logistik/2026-04-24-2200-atlas-antwort-cards-pattern.md).

**Was du erklären sollst** (Vorschlag, anpassen):
- **Tag 1 Start**: „Heute steuerst du eine Pumpspeicher-Anlage in
  den Alpen. Wasser oben ist wertvoll …"
- **Erste Pumpen-Aktion**: „Pumpen verbraucht Strom — du verschiebst
  Energie nach oben für später."
- **Erste Turbinen-Aktion**: „Turbinieren liefert Strom — Wasser
  fließt mit Schwerkraft."
- **Erstes „außerhalb Korridor"-Ereignis**: Erklärung Lücke/Überschuss.
- **Tag-Spitze (Tag 3 / Tag 5)**: Hint zur Vorbereitung.

### 4c. Sprachausgabe (TTS, optional in L1)

ElevenLabs-Pipeline existiert: [`App/scripts/generate-sounds.py`](App/scripts/generate-sounds.py).
Pattern: pro Modul eine `sounds-list.json`, das Skript generiert MP3s.
Ausführliche Anleitung in
[App/sims/_inbox/logistik/2026-04-22-1230-elevenlabs-sound-pipeline.md](App/sims/_inbox/logistik/2026-04-22-1230-elevenlabs-sound-pipeline.md)
(an Logistik geschrieben, gilt auch für dich).

**Vorschlag für L1**: Die InfoCard-Texte als kurze TTS-Snippets
(2–4 Sek pro Text), abgespielt beim Erscheinen der Card. **Mute-Button**
im Header, damit Lehrer das im Klassenraum abschalten können.
Stimme: ruhig, sachlich, deutsch.

### Konzept-Skizze gewünscht

- Welche Bilder (Liste), welche Prompts (Stichworte)
- InfoCard-Trigger-Punkte (Liste)
- TTS — ja/nein für L1, falls ja welche Texte

## Reihenfolge der Umsetzung

1. **Begriff „Netzbalance"** durchziehen (kleinster Eingriff, sofort)
2. **Konzept-Skizze** für Punkte 2, 3, 4 in einer Inbox-Nachricht
   `_inbox/zentrale/2026-04-26-XXXX-staustufen-konzept-runde-2.md` —
   ASCII-Sketches reichen, keine fertigen Bilder
3. **Atlas-Review** (mein Job, ~1–2 Stunden Reaktionszeit)
4. **Umsetzung** in der Reihenfolge: Card-Bild → Querschnitts-SVG →
   neuer Graph → InfoCards → optional TTS

## Was du **nicht** anfasst

- Plattform-CSS (`App/assets/css/design-system.css`) — wenn du eine
  neue Klasse brauchst (z.B. `.ggs-infocard`), Atlas pingen
- `App/pages/staustufen.php` — falls Mode-Check angepasst werden muss,
  Atlas-Job
- module_info Schema-Änderungen — Atlas-Job
- Sound-/Bild-Generierung anderer Module

## Bestätigen

- status: gelesen
- Konzept-Skizze in Zentrale-Inbox bevor Visual-Umbau startet
- Card-Image kannst du sofort generieren, das blockiert nichts
- Bei Plattform-Frage → `_inbox/zentrale/`
- Begriff „Netzbalance" sofort, ohne Konzept

— Atlas
