Commit Graph
34 Commits
Author SHA1 Message Date
knsoandClaude Opus 5 8283109ceb docs: edges-Schluessel im Plan nachziehen, Merker fuer Task 14
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 10:19:31 +02:00
knsoandClaude Opus 5 f97b7d9c81 docs: stillen Bruch der Verbraucher in Task 13-15 ausdruecklich eintragen
Seit dem neuen Chunk-Format werfen overview.py und geometry.js, und props.js
setzt still keine einzige Laterne mehr. Die drei Aufgaben, die das reparieren,
bekommen den genauen Bruch und die Pflicht, ihre von Hand im alten Format
gebauten Fixtures mitzuziehen. Dazu der Docstring von _line() als Bedingung
statt als Tatsache.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 10:03:38 +02:00
knsoandClaude Opus 5 25f2912520 docs: eigene Korrektur nachschaerfen und Task 9 mitziehen
Die Begruendung zur doppelten Mitte war selbst missverstaendlich: "jede Linie
frisst je die Haelfte des Achsabstands" ergibt woertlich gelesen null Luecke.
Jetzt steht die Rechnung ausgeschrieben da. Dazu tragen die Signaturen von
Task 9 nicht mehr object, sondern Polygon - sonst haette sich derselbe Fehler
in die naechste Aufgabe vererbt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 08:14:19 +02:00
knsoandClaude Opus 5 c0cc32f3f3 docs: Kommentar zur doppelten gelben Mitte und Rückgabetyp berichtigen
Der Kommentar nannte 10 cm Abstand der Mitten. Tatsächlich liegen die Achsen
20 cm auseinander, und erst die Pufferung lässt zwischen den gemalten Linien
die 10 cm entstehen, die der Entwurf verlangt. Dazu der zugesagte
Rückgabetyp statt object.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 08:00:57 +02:00
knsoandClaude Opus 5 ea72cb934a docs: Erwartungszahlen auf die Messung am echten Netz berichtigen
Der Entwurf nannte 0,18 km² Restfläche und 1,0-1,2 km² Fahrbahn. Gemessen
sind es 0,093 und 0,914 km²: Die Restfläche zählte den Gehweg doppelt, und
bei der Fahrbahn fehlte der Rückschnitt an 690 Kreuzungen. Dazu Gehweg
0,295 km² und Bordstein 120,3 km.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 05:39:08 +02:00
knsoandClaude Opus 5 1300dc9a2a docs: Säuberung des Graphen gegen quadratische Laufzeit absichern
Die Fassung im Plan suchte je Kante den Grad über alle Kanten und begann
nach jedem Fund von vorn. Am echten Skelett mit rund 12.000 Rohästen wäre
das nicht langsam, sondern praktisch stehengeblieben. Jetzt wird der Grad
einmal gezählt und fortgeschrieben, ein Durchgang räumt alle Fransen auf
einmal weg, und ein Test mit über 1.500 Kanten nagelt es fest.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 00:48:58 +02:00
knsoandClaude Opus 5 3a26cf837b docs: Kit-Ordner des Nutzers nicht mehr verschieben zum Prüfen
Schritt 4 von Task 2 verschob modular_sidewalk_curb_kit nach /tmp und zurück.
Bricht der Lauf dazwischen ab, liegt ein Ordner, der uns nicht gehört, im
Temp-Verzeichnis. CURB_KIT stellt den Pfad um, ohne etwas anzufassen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 00:12:41 +02:00
knsoandClaude Opus 5 a86a4c9601 docs: fünf Befunde des Vorabscans im Plan berichtigt
Signatur von road_graph, eine wirkungslose Hilfsfunktion, eine Zusicherung
die der Vereinfachung widerspricht, ein doppelter Aufruf und ein sorted()
über Wörterbücher ohne Schlüssel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 23:48:15 +02:00
knsoandClaude Opus 5 b24714adf4 docs: Umsetzungsplan für den Straßenumbau
16 Aufgaben mit Tests zuerst. Aufgabe 1 misst das größte Risiko des
Entwurfs, bevor irgendetwas gebaut wird: ob der Browser eine Bodenplatte
mit 100 Löchern je Chunk in unter 50 ms trianguliert. Danach Graph,
Querschnitte, Kreuzungen, Mulde, Markierungen, Chunk-Format, Flamingo
Park, Pipeline, Browser, Minimap und die Abnahme.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 23:40:13 +02:00
knsoandClaude Opus 5 3c74202b5e fix(extract): Chunk-Ausgabe lauf-stabil, Eckenprüfung in beide Richtungen
emit.py normalisiert jede ausgegebene Fläche und sortiert die Listen nach der
Ausgabestruktur selbst. unary_union() in apply_street() gab das kartenweite
Straßenpolygon mit anderem Ringstartpunkt und an anderer Listenstelle zurück und
änderte damit 88 Chunkdateien, in denen sich geometrisch nichts bewegt hatte
(symmetrische Differenz 0,00 m²). Belagsarten und Mittellinien behalten ihre
Reihenfolge: overview.py malt die Beläge in Listenreihenfolge übereinander, und
vergeLampPoints() hängt an Reihenfolge und Laufrichtung der Mittellinien —
Sortieren verschöbe dort 1.848 von 3.921 Laternen auf die andere Straßenseite.

check_corners() misst gegen den Straßenrand statt gegen die Straßenfläche. Alle
vier Ecken liegen in der Fahrbahn, ihr Flächenabstand ist 0,000 m; die alte
Prüfung schlug deshalb nur an, wenn eine Straße sich zurückzieht. Eine nach
innen verbreiterte Straße hätte apply_park() still auf das veraltete Viereck
zurückgeschnitten.

Die Parkwege werden am Parkviereck abgeschnitten — die runden Kappen von
LineString.buffer() lagen mit 95,96 m² darüber hinaus, rund 41 m² davon sichtbar
als Betonzungen auf den umgebenden Belägen. load_elements() prüft den OSM-Abzug
so streng wie die Parkdatei, mit Dateiname statt nacktem KeyError.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 13:43:01 +02:00
knsoandClaude Opus 5 0e11c54338 docs: Plan erwartet die bekannte Zufahrt-Warnung statt gar keiner
Folge der Entscheidung aus Task 5: Sperrflächen schneiden auch Zufahrten aus
und warnen dabei. Am echten Stand quert die Zufahrt zum Parkplatz die
Sperrfläche der Tribüne, die Warnung gehört also zum gewollten Zustand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 08:07:21 +02:00
knsoandClaude Opus 5 c6241db90f docs: Umsetzungsplan für Flamingo Park, Spec beim Planen geschärft
Beim Nachrechnen korrigiert: affine statt bilinearer Einpassung (bilinear
verfehlte den Hood Yard um 4,2 m), offset_u 6,25 m, gemessenes Schnitt-Vieleck
der Gasse, Mittellinienstücke erst ab 15 m, Tribüne ohne replaces, Startpunkt
als eigenes Modul, PYTHONUTF8=1 unter Windows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 23:57:30 +02:00
knsoandClaude Opus 5 f7506ac556 docs: Umsetzungsplan für die Tribüne im Park J6
Vier Tasks: ersetzte Gebäude beim Chunk-Aufbau weglassen, Materialrollen und Asset-Test je Ort, Tribüne aufbereiten und eintragen (am Prototyp gemessen: 1,7 MB, 69 557 Dreiecke, 14 Primitive, 49 MB), Prüfung im Browser mit vorberechneten Blick- und Kapselpunkten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 20:08:18 +02:00
knsoandClaude Opus 5 3321a029fa docs: Umsetzungsplan für den Hood Yard, Spec am Prototyp geschärft
Prototyp am echten Modell: 653,6 MB -> 16,2 MB, 2,9 Mio. -> 658 000 Dreiecke,
Bump-Maps erhalten. Radien geändert: Der Hof erscheint erst ab 250 m und
verschwindet ab 450 m, sonst stünde er vom Startpunkt aus über ungeladenem
Boden. Vereinfachung je Material statt eines gemeinsamen Anteils.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 10:24:46 +02:00
knsoandClaude Opus 5 dedf5be507 docs: Folgen der Beschriftungs-Entfernung für Feinkalibrierung, Minimap und Start
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 20:39:55 +02:00
knsoandClaude Opus 5 a8817e2849 docs: Umsetzungsplan zum Entfernen der Kartenbeschriftungen
Acht Aufgaben, Code und Liste aus dem gegen die echte Vorlage geprüften
Prototyp; in Plan-Reihenfolge in einer Repository-Kopie nachgespielt.
Spec: Start und Autos ziehen von der Buchstabenkontur auf die
wiederaufgebaute Straße am Park, Nummern im Berichtsbeispiel.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:17:32 +02:00
knsoandClaude Opus 5 034b12537a docs: Entwurf und Umsetzungsplan für scharfe Kaskaden-Schatten
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 15:38:18 +02:00
knsoandClaude Opus 5 61ef30f081 docs: Downtown-Bezugspunkt statt Downtown-Kern, stimmige Koordinatenbeispiele
(−511, 254) ist der Bezugspunkt aus tools/extract/data/districts.json, der
Mittelpunkt der westlichen Hochhäuser, und liegt in B9. Der höchste Turm,
das Southeast Financial Center, steht in C12. Das Anzeigebeispiel
x 412 / y 1830 liegt in F3, nicht in C10. Im Browser bei Task 4 der
Minimap aufgefallen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 11:36:59 +02:00
knsoandClaude Opus 5 2f38e8f445 docs: Umsetzungsplan für die Feinkalibrierung
Sieben Aufgaben: Korrekturdatei lesen und prüfen, Korrekturen je Ebene
anwenden, Laternen in die Pipeline, einzelner Chunk vergrößert, Einhängen
in run.py mit Vorher/Nachher-Probe, Browser liest chunk.lamps.
Vor dem Commit in einer Kopie komplett durchgespielt, inklusive echtem
Pipeline-Lauf (22 s, 2.591 Laternen) und Mutationsproben der neuen Tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 10:42:11 +02:00
knsoandClaude Opus 5 44108f94f4 docs: Umsetzungsplan für die Minimap, Spec nachgeschärft
Vier Aufgaben: Chunk-Namen in JavaScript und Python mit gemeinsamem
Beispielsatz; Kartenbild, Begehbarkeitsmaske und map.json aus
overview.py; reine Kartenmathematik mit Tests; Kartenkomponente und
Einhängen mit Browser-Abnahme.

Die Spec bekommt dabei drei Präzisierungen, die sich erst beim Lesen des
Codes ergeben haben: die Namensnennung muss über der Karte liegen
(Lizenzpflicht), die Veraltungsprüfung erkennt nicht jede Änderung, und
die Eingabesperre stoppt Mausereignisse auf der Karte erst an deren
Wurzel, weil ein Stopp in der Capture-Phase auch den eigenen Canvas
taub machen würde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 09:24:00 +02:00
knsoandClaude Opus 5 4c82b14a57 docs: Laternen nicht mehr auf die Kreuzung setzen (Ruling 18)
Seit Task 4 sind die Mittellinien an Kreuzungen getrennt. lampPoints
startete bei Streckenlänge 0 und setzte damit je einmündendem Ast eine
Laterne in denselben Punkt, mitten auf die Fahrbahn. Start jetzt bei
halber Teilung, dazu ein Test, der das Stapeln nachweist.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 19:24:00 +02:00
knsoandClaude Opus 5 4289378561 docs: Widerspruch in Task 6b auflösen (MAINLAND_MIN_SIZE)
Mein Step-3-Code scheiterte an meinem eigenen Step-1-Test: in einer Szene
mit nur einer Komponente erklärt argmax genau diese zum Festland, also
auch einen einzelnen Schriftzug. Der Implementer hat das gefunden und
MAINLAND_MIN_SIZE ergänzt; der Plan zieht nach, samt Begründung des
Werts und des zweigeteilten Befunds an echten Daten.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 18:02:13 +02:00
knsoandClaude Opus 5 0bf2c29061 fix: leere Zusicherung und mutierende Ringumkehr
Die Zusicherung im Löcher-Test stand mit "or True" in meiner eigenen
Fix-Vorgabe und prüfte damit nichts; ersetzt durch zwei Zusicherungen,
die die Lage des Lochs im Außenring tatsächlich belegen.

Im Planentwurf zu Task 7 hätte clockwise(hole).reverse() die Eingabe des
Aufrufers verändert, weil clockwise() denselben Array zurückgibt, wenn
der Ring schon passt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 17:41:43 +02:00
knsoandClaude Opus 5 062a9af2fd docs: Task 6b für die Kartenbeschriftung, Löcher in Task 7
Die Sichtprüfung nach Task 6 hat gezeigt, dass die Beschriftungen der
Originalkarte zu Geometrie werden — "VICE CITY (MIAMI)" steht als 1.600 m
breiter Schriftzug in der Bucht. Task 6b entfernt sie, bevor Task 7 daraus
Meshes baut. Der Brief nennt drei gemessene Sackgassen (Buntheit, Farbton,
Zusammenhang nur der Straßenmaske) und den Weg, der trägt: auf Regionenebene
über alle Nicht-Wasser-Klassen, wo die Buchstaben eigene Inseln ohne jedes
natürliche Merkmal bilden.

extrudePolygons und flatPolygons in Task 7 verarbeiten jetzt Ringlisten mit
Löchern statt einzelner Ringe, passend zu Ruling 34.

overview.py rendert den ganzen Ausschnitt aus den Chunk-Dateien; damit ist
der Beschriftungsfehler überhaupt erst aufgefallen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 17:19:28 +02:00
knsoandClaude Opus 5 2c355aa3d8 data(extract): Wahrzeichen und Viertel für den Ausschnitt
skyline.json: die 54 Wahrzeichen im Ausschnitt aus rolux/gtamaplib-vc
(Unlicense, Commit 98b858f), reduziert auf name, id, xyz und height.
Texturen bleiben ausgeschlossen, das sind Spiel-Screenshots.

districts.json ist selbst erstellt — in gtadb gibt es keine Viertel.
Downtown und Ocean Beach sind aus den Wahrzeichen abgeleitet, dazu fünf
Suburbs-Punkte, damit die Vorstadt nicht Downtown-Höhen bekommt.

Der Plan sagte bisher nur "wird hier heruntergeladen", ohne Quelle und
Schema; das ist jetzt dokumentiert, samt korrigierter Lizenzangabe.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 16:31:09 +02:00
knsoandClaude Opus 5 2afae81bce docs: Plan auf Rulings 24-29 umstellen (Palmen, Gebäude)
palm_points bekommt die Landflächen und verwirft, was nicht darauf liegt:
am echten Mosaik standen 218 von 2.433 Palmen im Wasser. regularize
vereinfacht nicht mehr ein zweites Mal und gröber als mask_polygons, was
202 von 2.085 Gebäuden verworfen hatte. Dazu die vier neuen Tests, der
Marker am einzelnen Test statt eines suiteweiten Filters, die Entdoppelung
der Palmenpunkte und die korrigierte Signatur von assign_heights.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 16:17:39 +02:00
knsoandClaude Opus 5 11f6aa76fe docs: Palmenpunkte in Task 5 korrigieren (Rulings 20-23)
Die erste Palme startet bei halber Teilung, weil die Mittellinien seit
Task 4 an Kreuzungen getrennt sind und zwei gegenüberliegende Äste sonst
zwei Palmen in denselben Punkt setzen. Der feste Versatz von 4 m weicht
einer Suche vom Fahrbahnrand: am echten Mosaik stünden damit 60 % der
Palmen auf der Fahrbahn. Dazu zwei Tests, die es bisher nicht gab, und
die korrigierte Signatur im Interfaces-Block.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 15:27:37 +02:00
knsoandClaude Opus 5 830e9f87e0 docs: Plan auf Rulings 13-17 umstellen (Brücken, Mittellinien)
Brückenerkennung im Plan von der Bounding-Box auf die Verschneidung
umgestellt und um die Wassernähe ergänzt, Mittellinien über den
Pixelgraphen statt über Konturen. Der Plan zeigt jetzt den Code, der
in 120cafd tatsächlich gebaut wurde.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 15:17:25 +02:00
knsoandClaude Opus 5 fb898b03b3 docs: zwei Fehler im Referenzcode von Aufgabe 4 korrigiert
- Löcher werden über das Vorzeichen der Shoelace-Summe erkannt; die Stichprobe am
  Konturmittelpunkt versagt bei einer Insel mit Lagune
- das Brückenfenster braucht einen Rand, sonst enthält es nur Straßenpixel und die
  Erkennung löst nie aus

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 14:40:59 +02:00
knsoandClaude Opus 5 162e018925 docs: Palette und Toleranzen an das echte Mosaik angepasst
Wasser ist #3090c0, nicht #2c67a4; der alte Wert war die Kompositionsfarbe aus tiles.py.
Mit Schwelle 22 fallen die unbekannten Pixel von 37,4 auf 3,5 Prozent. Die Sollanteile für
Straße und Gebäude stammten aus einer Messung mit anderer Klasseneinteilung und werden
auf die gemessenen Bänder gesetzt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 14:17:15 +02:00
knsoandClaude Opus 5 d40d96a800 docs: classify meldet auf Wunsch den Anteil unbekannter Pixel
Aufgabe 6 braucht den Anteil für den Abbruch über 5 Prozent; die Signatur in Aufgabe 3
kannte ihn bisher nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 14:07:30 +02:00
knsoandClaude Opus 5 a94c09e279 docs: Plan an zwei Befunde aus Aufgabe 2 angepasst
- pyproject.toml braucht pythonpath, sonst ist das lokale Paket im Test nicht importierbar
- der Mosaik-Test prüft jetzt den exakten Zuschnitt-Versatz statt nur der Eckkacheln

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 14:05:19 +02:00
knsoandClaude Opus 5 2280617d9e docs: zwei Planfehler in Aufgabe 1 korrigiert
- controls ist eine Pflichtoption von player.init; der Beispielcode übergab sie nicht,
  wodurch die App mit einem TypeError startete
- der git-add-Befehl hätte den Submodul-Pin still auf den lokalen Branch-Commit umgesetzt

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 13:44:53 +02:00
knsoandClaude Opus 5 a523dce676 Umsetzungsplan für den Vice-City-Ausschnitt
12 Aufgaben mit 88 Schritten, von der Python-Extraktion über den
Geometrie-Baustein und das Chunk-Streaming bis zur Abnahme.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 13:19:52 +02:00