docs: Folgen der Beschriftungs-Entfernung für Feinkalibrierung, Minimap und Start

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5 committed 2026-09-13 20:39:55 +02:00
1 parent 4534a47eec
commit dedf5be507
4 files changed
+5 -5

No files matched your search

@@ -12,7 +12,7 @@
## Global Constraints ## Global Constraints
- **Ausführungsschranke:** Dieser Plan beginnt erst, wenn die Beschriftungs-Aufgabe task_999fed4a gelandet ist. Sie ändert in einer anderen Sitzung die Pipeline. Aufgabe 6 ändert `tools/extract/run.py` und muss die Datei vorher neu lesen. - **Ausführungsschranke:** Dieser Plan beginnt erst, wenn der Beschriftungs-Plan (`docs/superpowers/plans/2026-09-13-beschriftungen.md`) gelandet ist. Er hat `tools/extract/run.py` geändert — Aufgabe 6 muss die Datei vorher neu lesen — und `chunk_for_world` samt Test schon angelegt: in Aufgabe 1 entfallen die Änderung der Importzeile und der Test `test_chunk_for_world_matches_javascript` in `tests/test_coords.py` sowie Step 3; `tests/test_coords.py` und `leonida/coords.py` fallen aus Step 7 heraus.
- Python-Bibliotheken: numpy, scipy, scikit-image, shapely, networkx, pillow, pytest. TOML über `tomllib` (Standardbibliothek). **Keine neue Abhängigkeit**, auch nicht in JavaScript. - Python-Bibliotheken: numpy, scipy, scikit-image, shapely, networkx, pillow, pytest. TOML über `tomllib` (Standardbibliothek). **Keine neue Abhängigkeit**, auch nicht in JavaScript.
- Koordinaten in Korrekturen sind **Welt-x und Welt-y in Metern**, wie die Minimap sie anzeigt. Nie three.js-z. - Koordinaten in Korrekturen sind **Welt-x und Welt-y in Metern**, wie die Minimap sie anzeigt. Nie three.js-z.
- Chunk-Namen A1–L12: Spalte aus `i` (West → Ost), Zeile aus `j` (Nord → Süd). A1 = `chunk_0_0`, B9 = `chunk_1_8` = Welt x −750…−500, y 250…500. - Chunk-Namen A1–L12: Spalte aus `i` (West → Ost), Zeile aus `j` (Nord → Süd). A1 = `chunk_0_0`, B9 = `chunk_1_8` = Welt x −750…−500, y 250…500.
@@ -173,7 +173,7 @@ Spieler.
- **Autos:** vier SUVs an Straßenpunkten nahe dem Start, Konfiguration aus der Showcase - **Autos:** vier SUVs an Straßenpunkten nahe dem Start, Konfiguration aus der Showcase
übernommen. Ihre Chunks bleiben geladen, weil jedes Fahrzeug in jedem Frame Physik rechnet. übernommen. Ihre Chunks bleiben geladen, weil jedes Fahrzeug in jedem Frame Physik rechnet.
- **Figuren:** Modul aus `showcase.js` nach `src/characters/`, inklusive Delta-Retargeting - **Figuren:** Modul aus `showcase.js` nach `src/characters/`, inklusive Delta-Retargeting
und ans Mesh angepasster Hitbox. Start ist die Promenade von Vice Beach bei X 1699, Y 743 (three.js: x = 1699, z = -743), und ans Mesh angepasster Hitbox. Start ist der Rasen am Südrand des Parks von Vice Beach bei X 1600, Y 690 (three.js: x = 1600, z = -690) — ursprünglich X 1699, Y 743 auf einer Buchstabenkontur von „(MIAMI BEACH)“, versetzt mit dem Beschriftungs-Plan —,
abgeleitet aus dem Schwerpunkt der 259 Ocean-Beach-Landmarks im Ausschnitt. abgeleitet aus dem Schwerpunkt der 259 Ocean-Beach-Landmarks im Ausschnitt.
- **Debug-Panel:** Figurenauswahl, Chunk-Grenzen, Hitbox, Kartenbild auf dem Boden, - **Debug-Panel:** Figurenauswahl, Chunk-Grenzen, Hitbox, Kartenbild auf dem Boden,
Sichtweite, Höhenfaktor, Sprung zu einem der 54 Wahrzeichen. Sichtweite, Höhenfaktor, Sprung zu einem der 54 Wahrzeichen.
@@ -2,7 +2,7 @@
**Datum:** 2026-09-13 **Datum:** 2026-09-13
**Zusammenhang:** Der Nutzer will die extrahierte Welt Chunk für Chunk korrigieren, indem er im Chat eine Stelle nennt und sagt, was dort anders sein soll. Die Stelle liest er auf der Minimap ab (`docs/superpowers/specs/2026-09-13-minimap-design.md`), die dafür Chunk-Namen A1–L12 und Weltkoordinaten anzeigt. **Zusammenhang:** Der Nutzer will die extrahierte Welt Chunk für Chunk korrigieren, indem er im Chat eine Stelle nennt und sagt, was dort anders sein soll. Die Stelle liest er auf der Minimap ab (`docs/superpowers/specs/2026-09-13-minimap-design.md`), die dafür Chunk-Namen A1–L12 und Weltkoordinaten anzeigt.
**Reihenfolge, vom Nutzer entschieden:** Die Umsetzung beginnt, sobald die Beschriftungs-Aufgabe task_999fed4a gelandet ist, die derzeit in einer anderen Sitzung `tools/extract/run.py` ändert. Danach folgt der Straßenbau (Bordstein, Gehweg, Rissrichtung). **Reihenfolge, vom Nutzer entschieden:** Die Umsetzung beginnt, sobald die Beschriftungs-Aufgabe gelandet ist (`docs/superpowers/specs/2026-09-13-beschriftungen-design.md`, ersetzt task_999fed4a); sie hat `tools/extract/run.py` geändert und `chunk_for_world` in `tools/extract/leonida/coords.py` schon angelegt. Fehler des automatischen Wiederaufbaus unter früheren Beschriftungen werden über `corrections.toml` behoben. Danach folgt der Straßenbau (Bordstein, Gehweg, Rissrichtung).
## Ziel ## Ziel
@@ -31,7 +31,7 @@ Drei neue Dateien neben `manifest.json` in `public/data/vice-a/`:
`map.json` ist die **einzige** Quelle für Maßstab und Ausschnittsgrenzen der Karte. Der Browser liest sie, statt die Werte ein zweites Mal im JavaScript festzuschreiben. `map.json` ist die **einzige** Quelle für Maßstab und Ausschnittsgrenzen der Karte. Der Browser liest sie, statt die Werte ein zweites Mal im JavaScript festzuschreiben.
**Erzeugung:** vorerst als eigener Schritt `cd tools/extract && uv run python overview.py`, **nicht** in `run.py`. Grund: die Beschriftungs-Aufgabe task_999fed4a arbeitet gleichzeitig in einer anderen Sitzung an der Pipeline, und zwei Sitzungen sollen nicht in dieselbe Datei schreiben. Der Preis dieser Entkopplung ist, dass die Karte nach einem Pipeline-Lauf veralten kann — abgesichert über `manifest_sha256` (siehe Fehlerfälle). Das Einhängen in `run.py` folgt, sobald die Pipeline frei ist. **Erzeugung:** am Ende von `tools/extract/run.py` über `render_map` aus `overview.py`, seit der Beschriftungs-Plan gelandet ist. `cd tools/extract && uv run python overview.py` erzeugt dieselben Dateien weiterhin einzeln, etwa nach einer Änderung nur an den Farben. `manifest_sha256` sichert ab, dass Karte und Chunks zusammenpassen (siehe Fehlerfälle).
## Aufbau ## Aufbau
@@ -182,5 +182,5 @@ Die Namensnennung steht unten links und reicht auf schmalen Fenstern bis in die
- Eine kleine Eckkarte. - Eine kleine Eckkarte.
- Pausieren des Spiels. - Pausieren des Spiels.
- Wegmarken und Routen. - Wegmarken und Routen.
- Einhängen der Kartenerzeugung in `run.py` — folgt, sobald die Beschriftungs-Aufgabe gelandet ist.
- Bordstein, Gehweg und Rissrichtung — der anschließende Straßenbau. Kommen dort neue Flächen hinzu, zeichnet `overview.py` sie in einem eigenen Schritt nach. - Bordstein, Gehweg und Rissrichtung — der anschließende Straßenbau. Kommen dort neue Flächen hinzu, zeichnet `overview.py` sie in einem eigenen Schritt nach.