Tree Gen 1.37.0: Obstbaum-Preset + Card-Groesse gegen die Baumhoehe

1) Neues Preset "obstbaum" (Apfel/Kirsche/Birne)
   Eigenes Preset statt Umbau von "baum": der wird anderswo verwendet, und ein
   Hochstamm ist keine Standard-Silhouette.

   Der Zweck ist funktional, nicht bloss optisch: die Frucht-Streuung setzt
   Fruechte auf die AUSSENHAUT der Krone. Am generischen baum war der
   Kronenradius 0.78 m bei 1.28 m Card-Diagonale - die Cards waren groesser als
   die Krone, es gab keine Haut.

   Proportion belegt (Hochstamm): Kronenansatz 180-220 cm, Krone selbst 3-4 m.
   Ergibt 4.8 m Gesamthoehe und knapp 40 % Ansatz - genau das Band der
   Spielseite.

   Gemessen ueber alle NEUN Seeds der Spielseite: Hoehe 4.91-5.12 m,
   Kronenradius 1.83-2.05 m, Ansatz 38-40 %, Kronenradius/Card 2.15-2.42,
   3560-3824 Tris. Deckelung auf 420 Cards ueber LEAF_STUFEN_PRESET, sonst
   4304-4400 Tris.

   Zwei Fallen, gemessen statt vermutet: "Height" ist die STAMMlaenge, nicht die
   Baumhoehe (Height 4.8 ergab 5.4-6.2 m), und der Kronenansatz zaehlt gegen die
   GESAMThoehe (Branch Start 0.37 ergab 29 %).

   test_obstbaum.py prueft die funktionale Bedingung ueber alle neun Seeds. B/H
   ist BEWUSST nicht hart geprueft: B/H 0.55-0.75 und Kronenradius >= 1.80 bei
   4-5 m Hoehe lassen zusammen nur ein 4 % breites Fenster, waehrend die Streuung
   von Seed zu Seed 12 % betraegt. Vorrang hat der Kronenradius.

2) Card-Groesse misst sich an der BAUMHOEHE
   Mit 0.45/0.63/0.82/1.00 schrumpfte die Card um Faktor 2.2, der Baum um 6.2.
   Gemessen an der Birke 27/14/11/9 % der Baumhoehe, an der Eiche 33 gegen 11 -
   der Setzling trug relativ dreimal so grosses Laub wie der Altbaum.
   Jetzt 0.24/0.46/0.75/1.00: 14/10/10/9 %. Nicht ganz flach, ein junger Baum
   traegt seine Bueschel relativ groeber; auf Altbaum-Proportion gezwungen
   (0.18) wird er kahl.

   test_blatt_bueschel prueft die Spreizung jetzt direkt und ueber Inseln statt
   ueber Face-Index-Paare.

   HINWEIS an die Spielseite: der Addon-Pfad skaliert S1 auf 0.45 der
   S4-Groesse, auf BEIDEN Wegen nachgemessen (Einzelcard und Sammlung). Die
   dort gemessenen 0.76 entstehen also erst danach - bitte growth_t am
   S1-Objekt direkt vor treegen_leaves pruefen, das muss 0.0 sein.

25 Tests bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 13:00:35 +02:00
co-authored by Claude Opus 4.8
parent 499d507e28
commit 4aaf3231ef
9 changed files with 341 additions and 12 deletions
+55
View File
@@ -563,6 +563,61 @@ Der Kaktus erzeugt regulaer **0 Cards** — kein Ast ist duenner als `Max Radius
und das ist botanisch richtig. Vorher lief das still durch und man stand vor
einer leeren `_Leaf`-Ebene; jetzt sagt der Operator es und nennt den Regler.
### Obstbaum: die Krone muss groesser sein als eine Card
Das Preset ist nicht nur eine Silhouette, es ist eine FUNKTIONALE Bedingung.
Die Frucht-Streuung setzt Fruechte auf die Aussenhaut der Krone und schiebt sie
radial nach aussen. Am generischen `baum` war der Kronenradius 0.78 m bei
1.28 m Card-Diagonale - die Cards waren groesser als die Krone, es gab keine
Haut, auf die sich etwas setzen laesst.
`obstbaum` ist ein eigenes Preset, kein Umbau von `baum`: der wird anderswo
verwendet, und ein Hochstamm ist keine Standard-Silhouette. Proportion belegt -
beim Hochstamm liegt der Kronenansatz bei 180-220 cm, die Krone selbst ist 3-4 m
hoch; 1.8 m Ansatz plus 3 m Krone sind 4.8 m Gesamthoehe und ein Ansatz bei
knapp 40 %.
Gemessen ueber alle neun Seeds der Spielseite (Apfel 1/15/22, Kirsche 2/16/23,
Birne 3/17/24): Hoehe 4.91-5.12 m, Kronenradius 1.83-2.05 m, Kronenansatz
38-40 %, Kronenradius/Card 2.15-2.42, 3560-3824 Tris.
Zwei Fallen beim Einregeln, beide gemessen statt vermutet:
* `Height` ist die STAMMlaenge, nicht die Baumhoehe - die Aeste ragen darueber
hinaus. Mit Height 4.8 kam der Baum auf 5.4-6.2 m.
* Der Kronenansatz zaehlt gegen die GESAMThoehe. `Branch Start` 0.37 ergab
gemessen 29 %, nicht 37 %.
`tests/test_obstbaum.py` prueft die funktionale Bedingung ueber alle neun Seeds.
B/H wird BEWUSST nicht hart geprueft: die Vorgaben B/H 0.55-0.75 und
Kronenradius >= 1.80 m bei 4-5 m Hoehe lassen zusammen nur ein 4 % breites
Fenster zu, waehrend die Streuung von Seed zu Seed rund 12 % betraegt. Vorrang
hat der Kronenradius, weil an ihm die Fruechte haengen.
### Card-Groesse misst sich an der Baumhoehe
Die absolute Card-Diagonale sagt nichts - sie haengt daran, wie gross die Card
im Atlas gezeichnet ist. Aussagekraeftig ist ihr Verhaeltnis zur BAUMHOEHE, und
das war schief: mit 0.45/0.63/0.82/1.00 schrumpfte die Card ueber die Stufen um
Faktor 2.2, der Baum aber um 6.2. Gemessen an der Birke **27 % / 14 % / 11 % /
9 %**, an der Eiche sogar 33 % gegen 11 %. Der Setzling trug relativ dreimal so
grosses Laub wie der Altbaum - ein Laubpaket auf einem Stiel.
Jetzt 0.24/0.46/0.75/1.00, gemessen 14 % / 10 % / 10 % / 9 %. Nicht ganz flach:
ein junger Baum traegt seine Bueschel relativ groeber, und wer ihn auf
Altbaum-Proportion zwingt (0.18 durchgemessen, 11 %), macht ihn kahl.
Zwei Messfallen, an denen ich mich fast selbst verrannt haette:
* Die Card-Groesse ueber Face-Index-Paare zu messen setzt voraus, dass je zwei
aufeinanderfolgende Faces eine Card bilden. Die Insel-Zaehlung braucht die
Annahme nicht - beide stimmten hier zwar ueberein, aber nur die zweite belegt
das auch.
* Ein Kontrollrender zeigte eine riesige Card, die es laut Messung nicht gab.
Es war die QUELL-Card am Ursprung. Sie in Y aus dem Weg zu schieben half
nicht, weil eine orthografische Kamera Tiefe ignoriert - sie muss
`hide_render`. Zweimal beinahe eine Fehldiagnose aus einem Bild.
### Der Ursprung sitzt an der Stammbasis, nicht am tiefsten Ast
Zweimal war dieser Fehler schon "behoben". Erst kam der Ursprung aus der