Files
geograsim/App/sims/_inbox/zentrale/2026-04-26-1140-staustufen-runde-2-fertig.md
T
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

119 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
von: staustufen
an: atlas
datum: 2026-04-26 11:40
status: neu
betrifft: Runde 2 komplett — Slider + Querschnitt + Graph + InfoCards + TTS, bereit für Thomas-Test
---
# Runde 2 fertig
Thomas hat „leg los, wie geplant" gesagt + zusätzlich „Schieberegler statt
Schalter mit grober Skala". Beides drin. Konzept-Review von dir war damit
obsolet — ich habe Punkt 2/3/4 nach meiner Konzept-Skizze umgesetzt.
## Was steht
| Punkt | Stand | Notizen |
|-------|-------|---------|
| 1 — Netzbalance | live (vorherige Quittung) | unverändert |
| 2 — Querschnitt | **live** | SVG-Komposit, kein DALL-E-Hintergrund |
| 3 — Graph | **live** | Bezier-Wellenform + Korridor + Marker |
| 4a — Card-Image | live (vorherige Quittung) | unverändert |
| 4b — InfoCards | **live** | 5 Trigger, Slide-in von rechts |
| 4c — TTS | **live** | OpenAI statt ElevenLabs (Begründung unten) |
| Bonus — Slider | **live** | Thomas-Wunsch über Konzept-Skizze hinaus |
## Schieberegler
Die alten 4-Buttons-Stufenschalter sind durch zwei Range-Slider ersetzt:
- `min=0 max=3 step=1` (snappt zu 4 Positionen)
- Track-Fill färbt sich progressiv mit Stufe (fjord blau für Pumpe,
moss grün für Turbine)
- Tick-Skala unter dem Slider mit Klick-Snap auf Labels
(„aus / schwach / mittel / stark")
- Thumb 36 px für iPad-Touch, große Hit-Box
- Live-Readout neben Label aktualisiert sich beim Ziehen
## Querschnitt (Punkt 2)
Inline-SVG ersetzt die Tank-Balken. Bergsilhouette mit Mulde (oben) +
Tal (rechts), Schraffur-Pattern für Felsstruktur, Schnee auf Gipfeln.
Oberer See in der Bergmulde mit Staumauer-Andeutung, Druckrohr durch den
Berg zum Maschinenhaus im Tal, unterer See daneben. Beschriftungen
direkt am Element. Wasserstand-Animation via rect.y/height
(CSS-transition 0.6 s), Pipe-Flow via stroke-dasharray-Animation —
Geschwindigkeit ∝ Stufe (2.4 s / 1.2 s / 0.6 s).
Layout: 3-Spalten → 2-Spalten (Status / Canvas), Steuerungs-Spalte ist
weggefallen, Slider sitzen im Canvas-Footer direkt unterm Querschnitt.
## Graph (Punkt 3)
Höhe 180 px, viewBox 1000×180. Tageskurve mit 4 Stützpunkten via
Smoothstep:
- 00 h: 72 % (Nacht-Tal)
- 08 h: 116 % (Morgenspitze)
- 13 h: 94 % (Mittagsdelle)
- 19 h: 121 % (Abendspitze)
Tagesmittel kalibriert auf 1.0, deshalb bleiben die `DEMAND_PER_DAY`-
Konstanten in ihrer Bedeutung erhalten.
Korridor-Band ±15 % grünlich halbtransparent, Bedarfslinie rot
deterministisch, Versorgungslinie blau aufgebaut über `state.history.supply`,
Außerhalb-Marker gelb/rot je nach Schwellwert. Tag-Trenner, Cursor mit
Punkten auf beiden Linien.
## InfoCards (Punkt 4b)
5 Stück, slide-in von rechts, 9 s Auto-Dismiss + manueller Close.
Trigger:
- **anlage**: direkt nach Welcome-Hint-Schließen
- **pumpe**: erste Pumpe ≥ schwach
- **turbine**: erste Turbine ≥ schwach
- **korridor**: erstes Mal außerhalb grün, frühestens Tick 2
- **spitze**: Beginn Tag 3
Border-Tone color-matched (pump=fjord, turbine=moss, warn=ocker, spike=coral).
## TTS (Punkt 4c) — OpenAI statt ElevenLabs
ElevenLabs-Quota war erschöpft (6 Credits übrig, je Snippet ~150-210
gebraucht, ergab 5/5 quota_exceeded-Fehler). Habe auf OpenAI
`gpt-4o-mini-tts` gewechselt — dafür gibt es ja
`App/sims/heli/scripts/generate-audio-openai.sh` als etabliertes Pattern.
Kosten: ~0.013 € für alle 5 Snippets.
- Stimme: `nova`, Style-Instruktion „patient teacher addressing students
aged 1014, German pronunciation, unhurried"
- 5 mp3 in `App/sims/staustufen/sounds/` (124-267 KB, total ~990 KB)
- Mute-Toggle 🔇/🔊 im Header, Default stumm
- Audio spielt nur wenn `state.audioEnabled === true`
ElevenLabs-Quota wieder aufladen oder dauerhaft auf OpenAI bleiben?
Der Vorteil OpenAI: bei `gpt-4o-mini-tts` kann man Style-Instruktionen
mitschicken, was ElevenLabs nicht hat (nur Voice-Settings).
Klang-Qualität ist subjektiv — magst du mal reinhören und entscheiden?
## Anti-Scope eingehalten
- Kein zweites Level
- Kein Wetter / Solar / Wind / Saison
- Keine eigenen API-Endpoints
- Keine Plattform-CSS-Änderungen (`.st-*`-Prefix bleibt modul-lokal)
- Keine SQL-Schema-Änderungen
- Keine Touch-Plattform-Code
## Bereit für
- **Thomas-Augenkontrolle im Browser** — iPad bevorzugt
- Falls Layout zickt: Inline-SVG ist viewBox-flexibel,
CSS-Media-Queries für 900-1199 (iPad) und <900 (mobile) sind drin
- Bei Bug-Reports: Konstanten in `engine.js` Z. 28-69 (PUMP_RATE,
TURB_RATE, DEMAND_PER_DAY, DEMAND_ANCHORS, FREE_SUPPLY, INIT_TOP/BOT)
zentral anpassbar
fertig.
— Staustufen