- Ein Klick faengt die Maus ein, danach dreht die blosse Mausbewegung den
Blick. Maus nach rechts oben heisst Blick nach rechts oben. Esc gibt die
Maus wieder frei, das Fadenkreuz zeigt den Zustand an.
- Ohne Mausfang (direkt nach Esc oder wo er gesperrt ist, etwa in
eingebetteten Vorschauen) dreht Ziehen den Blick in derselben Richtung -
vorher zog man die Szene, was sich verkehrt anfuehlte.
- Am Handy wischt man jetzt ebenfalls in die Blickrichtung statt dagegen.
- Mit gefangener Maus fuehrt ein Klick zu dem Punkt unter dem Fadenkreuz,
ohne Mausfang weiterhin zum angeklickten Punkt.
- Beim Wechsel in die Uebersicht wird der Mausfang freigegeben.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Zwei Finger auf- und zuziehen zoomt die Uebersicht. Beide Zeiger werden
mitgefuehrt; laesst man einen Finger los, geht es nahtlos ins Drehen
ueber.
- Mausrad zoomt weiterhin, jetzt auch mit gedrueckter Strg-Taste - der
Seitenzoom des Browsers wird dabei unterdrueckt. Die Schrittweite kommt
aus dem Betrag des Radwegs, damit Trackpads feiner dosieren koennen.
- Zoombereich 9 bis 120 m statt 14 bis 110 m.
- Das Wischen des Rundgangs wird im Uebersichtsmodus nicht mehr
ausgewertet; sonst sammelte sich dort eine Blickdrehung an, die beim
Zurueckwechseln sprang.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die Fotoansicht lief weder auf dem Handy noch auf dem Laptop rund. Pro Bild
braucht sie jetzt rund ein Fuenftel der Rechenzeit (gemessen relativ im
Software-Renderer), die stilisierte rund ein Viertel.
- Schattenkarten nur noch bei Sonnenstand-, Ansichts- oder Torwechsel neu
(shadowMap.autoUpdate = false). Gilt fuer beide Ansichten.
- GTAO und Bloom entfernt: GTAO hat die Szene ein zweites Mal gezeichnet.
- Gras in Felder von 3 x 3 m, nur bis 22 m gezeichnet, Dichte halbiert.
- Blattkarten mit Lambert statt physikalischer Beleuchtung, Eigenleuchten
aus der Blatttextur als Himmelsfuellung, das dem Tageslicht folgt.
Etwa ein Drittel so viele Karten, dafuer etwas groesser.
- Anpassungsfaehige Pixeldichte: unter rund 40 Bildern/s sinkt sie
schrittweise bis 0.55, bei Reserve steigt sie wieder.
- Ohne Bewegung wird nach knapp 2 s nicht mehr gezeichnet.
- Umgebungskarte nur bei merklicher Sonnenstandsaenderung neu.
- Auf Geraeten ohne Maus: 55 % der Blaetter und Halme, Travertin 1024 px,
Schatten 2048.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Zwoelf CC0-Materialsaetze von ambientCG, neu komprimiert auf 11 MB
(public/materialien, Quellenliste in QUELLEN.md). Sie werden erst geladen,
wenn auf "Fotorealistisch" geschaltet wird.
- Travertin (Travertine009, 2K): 80x80-Platten und Stellplatten werden aus
Fotoausschnitten zusammengesetzt - jede Platte ein eigener Ausschnitt,
dazu Fugen, Fasen und Fugenschatten. Lose Platten, Stufen, Stelen und
Mauern bekommen das Foto direkt.
- Keramik 60x60 aus Concrete017, ebenfalls als Plattenraster.
- Tegula, Verbundstein, Dekorkies, Schotterwiese, Spielsand, Beete, Rasen,
Wiese, Holzschalung, Beton und Sockel direkt als Fotomaterial.
- Rauheit fuer Gras, Erde und Stein angehoben: poliert fotografierter Stein
und Gras spiegelten draussen sonst den Himmel grau.
- Boden der Umgebungskarte als warmes Rueckstrahllicht - Decken und
Unterseiten lagen vorher fast schwarz im Schatten.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Oben in der Mitte schaltet ein Knopf zwischen Stilisiert und
Fotorealistisch. Beide Varianten entstehen aus derselben Geometrie; die
zweite wird beim ersten Umschalten aufgebaut und bleibt danach bestehen.
Fotorealistisch:
- Texturen doppelt so fein, mit Rauheits- und Verdeckungskarten aus dem
Hoehenbild. Das Motiv wird skaliert auf die groessere Leinwand gezeichnet,
damit Scheite, Kiesel und Poren gleich gross bleiben.
- Laub aus Blattkarten (Baumlaub, Eibennadeln, Liguster, Straeucher,
Kraeuter) mit Volumen-Normalen und Alpha-Test-Schatten.
- Baeume rekursiv gewachsen, mit gekruemmten Aesten und Blattwolken.
- Rasen und Schotterwiese aus Grasbueschelen, die im Wind wiegen.
- Physikalischer Himmel mit Umgebungslicht, Sonne zu Himmel etwa 5:1,
Verlaufshimmel in der Daemmerung, 4096er Schatten.
- GTAO, leichtes Bloom, MSAA.
- Wiese ohne sichtbares Kachelmuster.
Nebenbei behoben:
- Normalmaps hatten die y-Steigung verkehrt: Poren und Fugen standen als
Buckel hervor. Betrifft auch die stilisierte Ansicht.
- Umlandkranz schliesst jetzt luecklos an das Raster an; vorher sah man
von oben als helle Linie den Himmel durch den Spalt.
- Glas im Fotomodus fast spiegelnd, Holzfassade mit Relief.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nordgrenze
- Sitzmauer und Travertinmauer waren vertauscht. Der Plan zeichnet aussen,
auf der Terrasse der Nachbarn, die "Sitzmauer" (0.55 tief, rund 40 cm
hoch: Terrasse -1.77, Krone -1.35) und direkt dahinter die
"Travertinmauer", die jetzt bis auf das Niveau der Nachbarn hinunter-
reicht - sie sehen Naturstein statt Beton.
- Terrasse der Nachbarn fest auf -1.77.
- Schotterwiese (Flaechen 4 und 5) eben: quer kein Hang mehr, laengs folgt
sie der Feuerwehrzufahrt. Unter der Ligusterhecke fassen Winkelelemente
den Garten der Nachbarn, so wie der Plan sie dort beschriftet. Wiesen mit
fester Ebene werden jetzt plan gerendert statt dem Raster zu folgen.
- Eingang fuer die Nachbarn: Travertinstufe in der Luecke zwischen Hecke
und Mauer ("Stufe" im Plan), darueber ein Torbogen aus Cortenstahl mit
Kletterrose. Kein Tor.
Rundgang
- Klick auf den Boden laeuft dorthin, Ziehen dreht den Blick. Kein
Mausfang mehr.
- Weiches Anfahren und Bremsen, gedaempftes Nachfuehren bei Stufen statt
Fall-und-Aufprall, Rutschen an Hindernissen.
- Travertinmauern mit fester Krone sind begehbar; man steigt ueber die
Sitzmauer vom Sitzplatz auf den Rasen, statt springen zu muessen.
- Gartentor oeffnet sich beim Naehertreten und schliesst hinter einem, E
uebersteuert. Schwelle unter dem Tor schliesst die Luecke zum Podest.
- Blickrichtung blieb beim Wechsel Uebersicht/Rundgang nicht erhalten
(Vorzeichenfehler in yawDegrees).
- mergeGeometries loest indizierte Geometrien vorher auf.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Haus
- Oeffnungen aus den Fassadenplaenen von EHLE abgegriffen. Zum Garten steht
im Erdgeschoss eine einzige, mittige Fensterfront (x -8.82 bis -4.67),
daneben das Lamellenband vor dem gedeckten Sitzplatz; im Obergeschoss zwei
Fenster mit zwei schmalen Lamellen dazwischen.
- Der gedeckte Sitzplatz ist nur noch gegen Westen offen, so wie es die
Suedwestfassade als "Aussensitzplatz" zeigt. Gegen den Garten steht dort
eine geschlossene Wand - bisher schaute man durch die Fassade hinein.
- Hauszugang an der Nordostfassade statt an der Nordwestfassade: Tuerfluegel
und feststehende Verglasung, zusammen 3.15 m, darueber das Vordach. Das
Vordach kennt jetzt seine Fassadenseite.
- Die Fassadennamen im Datenmodell waren vertauscht; jetzt mit Tabelle im
README festgehalten.
Garten
- Sichtschutz: die gruenen Punkte im Kiesbett sind Ziergraeser, keine
Polster. Neue Halmgeometrie - schmales, sich verjuengendes Band, das nach
oben ueberhaengt, rund 1.10 m. Die Bodenleuchten sind jetzt Strahler und
leuchten Stelen und Graeser von unten an.
- Baenkli: die Fuesse standen quer zur Sitzplatte, weil der Versatz in
Welt-Z statt entlang der gedrehten Achse gerechnet wurde.
- Obere Ebene bis an das Kraeuterbeet eben auf -0.02. Zwischen Grillfeld und
Kraeuterbeet stieg der Rasen um gut 30 cm an.
- Unter dem Spielhaus steht der Betonklotz aus dem Plan (graues Rechteck
1.01 x 2.70 m); die offene Plattform daneben bleibt auf Stuetzen.
- Aus dem Gartenhaus wird ein Gartenschrank: 1.80 x 0.50 m, 2.00 m hoch, mit
dem Ruecken in der Ecke und den Doppeltueren zum Garten.
- Neben dem Gelaender der Osttreppe lag Rasen; dort liegt jetzt derselbe
Belag wie auf dem Weg, bis an den Treppenkopf.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Rueckmeldung Punkt fuer Punkt:
Weg rund ums Haus
- Der Ostweg ist jetzt durchgehend gepflastert von der Verbundstein-
Anpassung (x 2.86) bis zur Grenze (x 4.45) - vorher 0.83 m breit mit
Rasenstreifen daneben. Der Weg an der Suedgrenze reicht von der Grenze
bis an die Nachbarmauer (z 4.49 bis 5.97).
- Winkelelemente Ost auf die Grenzlinie x 4.45; die Linie bei z 4.96 im
Sueden war keine eigene Stuetzwand, das ist die Nachbarmauer selbst.
Hoehen und Gefaelle
- LEVELS koennen jetzt auch eine geneigte Ebene vorgeben. Die Wege sind
Rampen: Ostweg rund 12%, Suedweg rund 3%, Feuerwehrzufahrt 13.6% aus
den Plankoten -2.08 und -1.08. Der Architekturplan nennt an denselben
Stellen "Steigung 9.9%" und "Steigung 13.0%".
- Ausserhalb der Zonen wird die Interpolation der naechsten Zone
fortgesetzt statt ihres konstanten Ersatzwerts - die Feuerwehrzufahrt
stand vorher als schwebende Platte ueber einer Gelaendekante.
- Gelaende oestlich der Grenze korrigiert: dort lag ein Huegel ueber dem
Weg, obwohl der Plan -0.72 und -1.57 angibt.
Obere Ebene
- Der Rasen ist eben auf -0.02. Die Koten 0.09 bis 0.26 liegen schon im
angehobenen Kiesbett des Sichtschutzes, nicht mehr im Rasen; ohne feste
Vorgabe zog die Interpolation den Rasen huegelig hoch.
Stufen
- Beim gedeckten Sitzplatz stimmen jetzt beide schwebenden Platten: der
Plan zeichnet zwei versetzte Rechtecke mit den Koten -0.02 und -0.17,
bisher lagen sie auf -0.17 und -0.31 - die untere verschwand im Belag.
- Das Gartentor steht auf dem oberen Niveau (-0.13), von dort zwei Stufen
hinunter auf den Hauptsitzplatz.
- Westtreppe ueber den ganzen Treppenblock (5 Stufen statt 4), die
Gelaenderpfosten reichen bis ins Gelaende statt in der Luft zu enden.
Rundgang
- Treppen und schwebende Stufen sind begehbar: ihre Trittflaechen gehen in
die Hoehenabfrage ein, die Stufen sind kein Hindernis mehr.
- Springen mit der Leertaste, rund 55 cm.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Der Plan zeichnet zwei Rechtecke uebereinander: Podest 1.81 x 2.70 m mit
der Kote 1.47 und darauf an der Ostseite die Huette 1.01 x 2.70 m. Bisher
stand hier ein geschlossener Kasten auf der Podestflaeche. Jetzt Stuetzen,
Podestboden auf 1.47, offene Plattform mit Bruestung im Westen, Huette mit
Pultdach im Osten und eine Leiter an der Westseite.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Systematischer Abgleich Plan gegen Szene, Bereich fuer Bereich.
Neu gebaut
- Lineare Bauteile (LINEAR): Treppe und Rampe am Ost- und Westzugang,
Stahlrohrgelaender laengs des Gefaelles, Entwaesserungsrinnen mit
buendigem Rost. Geometrie aus den Trittlinien des Plans abgegriffen
(Ost: 8 Trittlinien z -4.18 bis -6.52, Koten -0.37/-1.57; West:
Trittlinien alle 20 cm ab x -21.94, Koten -0.28/-1.08).
- Rasenrandplatten: das durchgehende Band von 6 cm Breite entlang der
Rasenkante wird als hochkant stehende Randplatte mit Sichtkante
aufgebaut, nicht mehr als Belag (neuer Typ randplatte, 1.2 m2).
- Zwei schwebende Travertinstufen am Gartentor, Koten -0.13 und -0.32.
- Winkelelemente entlang der Suedgrenze, Tegula-Streifen des Nachbarn.
Korrigiert
- Holzscheiterwand: der Plan zeigt zwei Felder 1.50 x 0.46 m, nicht eines.
Farbe #ffaa00 war faelschlich als Tegula klassiert.
- Gartentor: Fluegel laeuft ueber z, nicht ueber x - das Tor stand um 90
Grad verdreht. Jetzt Stabgitter mit Pfosten und senkrechten Staeben
statt geschlossenem schwarzem Blatt.
- Winkelelemente Ost auf x 3.735 (Plan: Doppellinie 3.69/3.78), Fussweg
auf x 2.86 bis 3.69 zwischen Verbundstein-Anpassung und Winkelelementen.
- Rinne beim Gartentor auf die Schraffur des Plans (z 2.295, x -23.34
bis -21.74).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nach erneutem Detailstudium des Gartenplans und der Referenzbilder darin:
- Sichtschutz ist nicht durchgehend: 28 aufrechte Travertinstelen (50x6 cm,
Dreiergruppen, Positionen direkt aus dem Plan) wechseln sich mit
Eibengruppen ab, alle in einem Dekorkiesbett. Hoehe 1.80 m gegen den
Suednachbarn, 1.50 m gegen Zollet auf der unteren Ebene.
- Zwei schwebende Travertinstufen fuehren vom gedeckten Sitzplatz (-0.02)
auf den Hauptsitzplatz hinunter, als auskragende Platten mit Schattenfuge.
- Hoehenprofil auf zwei klare Ebenen gebracht: untere Ebene -0.33,
Travertinsitzmauer mit 31 cm Ansicht, obere Ebene -0.02. Die Niveaus stehen
fest in LEVELS statt aus streuenden Koten geschaetzt zu werden.
- Jede Hoehenkote gehoert neu zu genau einer Flaeche, der kleinsten, die sie
enthaelt - sonst kippen benachbarte Ebenen ineinander.
- Der schmale Streifen am Sichtschutz ist Kiesbett, nicht Plattenbelag.
- Travertin nach den Referenzbildern deutlich heller, eigene Steintextur fuer
die Stelen; Flammengrill als Stahlkubus mit Holzfach und Feueroeffnung.
- Stirnflaechen der Hecken hatten entartete UVs und zeigten Strahlenmuster.
- tools/plan-bilder.mjs zieht die Referenzfotos aus dem Plan-PDF.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
busybox-wget loest localhost nach ::1 auf, nginx lauschte nur auf IPv4. Der
Healthcheck schlug damit dauerhaft fehl, der Container blieb 'starting', und
Traefik nimmt Container ohne 'healthy'-Status nicht in die Routing-Tabelle auf.
Daher 404 trotz korrekter Labels.
- Healthcheck auf 127.0.0.1
- nginx lauscht zusaetzlich auf IPv6
- Workflow wartet auf 'healthy' und prueft den Router
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nach der Plankontrolle ueberarbeitet:
- Belaege sind eben. Je Belag wird aus den Hoehenkoten eine Ebene bestimmt
(Gefaelle <= 5 %, am Kotenschwerpunkt aufgehaengt, nur Koten derselben
Gelaendezone). Das Raster wird darauf gezwungen und dort nicht geglaettet.
Jeder Belag bekommt eine senkrechte Sichtkante zum Gelaende.
- Mauern sind Bauteile: Travertin-Schichtmauerwerk mit versetzten Stossfugen
und Abdeckplatte, einzelne Winkelelemente mit Fussplatte, Ortbeton in
Schaltafelfeldern.
- Sichtschutz: die Eibenreihen des Plans werden zu geschnittenen Hecken
verkettet, ebenso die Ligusterhecke. Lamellenwand im Planrhythmus.
- Der Plan zeichnet die Travertinplatten 40x60 einzeln im Dekorkies - jetzt
30 erhabene Platten an den Planpositionen statt geschlossenem Belag.
- Normalmaps aus dem Fugenbild fuer Platten, Pflaster, Holzschalung und Laub.
- Nachbarhaus Zollet richtig platziert (stand auf dem Nachbargarten) und
wie Haus 9a ausgebildet.
Behobene Fehler: boxGeometry erzeugte Seiten und Deckel mit umgekehrtem
Wickelsinn - saemtliche Boxen waren innen nach aussen gekehrt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Geometrie massstaeblich aus dem Gartenplan-PDF (1:100) extrahiert: Belaege,
Mauern, Pflanzenstandorte und 46 Hoehenkoten. Wohnhaus nach Gartenplan und
den Fassadenplaenen von EHLE Architekten.
- tools/: Pipeline PDF -> Szenenmodell (MuPDF, Node)
- src/: three.js-Szene mit prozeduralen Texturen, Rundgang und Uebersicht
- Docker/Traefik fuer garten.aicds.ch, Gitea-Workflow auf main
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>