The tail rescale shipped in cd392e7 is a measured NULL as a search
intervention -- 12 of 12 pairs byte-identical on harbor and maple, 8000 evals
from a plateau, not merely underpowered. Of course it is: the whole failing
tail is 0.034% of corpus value. Looking at the rest of the factor, prompted by
the owner, found something much larger above the threshold.
crink = area_outside/area = (L*h)/A, so 1/crink = A/(L*h) is the room's mean
depth from its daylit wall in storey-heights. That is the right variable for a
daylight rule, and the fail boundary it implies (1/crink = 1.62, i.e. 4.86 m at
h=3) is a sensible one that agrees with 38.3's frontage bound derived
independently. What is wrong is hanging a TWO-sided gaussian on it:
* The near side penalises a room for having MORE daylit wall than target --
while leaf_cost's siblings edge_cost and outside_edge_cost already charge
that same wall at exterior_wall=100 and boundary_wall=133.3 per m2. The wall
is billed once in cost and again as lost value.
* It never earns its keep as a failure either: the over-exposed branch only
reaches FAIL_THRESHOLD above crinkliness 21.5, and the corpus maximum is
3.95. It has never produced a single fail; it only removes value.
* 133 of the 318 passing graded leaves in the 500k baseline (42%) sit on that
side, mean quality 0.810.
crinkliness_shape="daylight" (default OFF, "gaussian" is stock) clips it: a
room shallower than the gaussian's peak scores 1.0, because daylight is a
sufficiency requirement and surplus is the cost model's business, not this
factor's. Clipping at the PEAK rather than at FAIL_THRESHOLD is deliberate --
it keeps the factor continuous and preserves the graded approach to the
daylight limit, where clipping at the threshold would put a 10x cliff on the
exact boundary the 0.5**n fail multiplier already steps on.
Fail set byte-identical on all 21 corpus artefacts for all four
shape/tail combinations, so stock stays a valid yardstick for every arm.
Area-weighted crinkliness quality 0.480 -> 0.513, leaf quality product
0.2722 -> 0.2831; per-artefact score +0.2%..+19.6%, and unlike the ramp it
reaches health-centre and programme-house, where the tail change was 0.000%.
Note "daylight" clips the OPPOSITE side from 38.1's superseded compact_ok,
which forgives being buried; composing either with those modes is refused.
ab_9gj_ramp.py becomes ab_9gj_crinkliness.py and takes named arms, since it
now covers both changes; its first arm is the baseline and the yardstick.
Refs homemaker-py-9gj.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MJ84Feep79Hhm3E4zZJmnB
2 KiB
2 KiB
| 1 | programme | start | seed | tail | hard | soft | total | score | elapsed_s |
|---|---|---|---|---|---|---|---|---|---|
| 2 | harbor-house | coldstart-500000-s0.dom | 0 | gaussian | 8 | 25 | 33 | 1.85176240526207e-11 | 403.6 |
| 3 | harbor-house | coldstart-500000-s0.dom | 0 | ramp | 8 | 25 | 33 | 1.85176240526207e-11 | 413.5 |
| 4 | harbor-house | coldstart-500000-s2.dom | 0 | gaussian | 12 | 30 | 42 | 3.0491865573276097e-14 | 364.4 |
| 5 | harbor-house | coldstart-500000-s2.dom | 0 | ramp | 12 | 30 | 42 | 3.0491865573276097e-14 | 361.9 |
| 6 | maple-court | coldstart-500000-s1.dom | 0 | gaussian | 17 | 56 | 73 | 4.626623187133073e-25 | 445.0 |
| 7 | maple-court | coldstart-500000-s1.dom | 0 | ramp | 17 | 56 | 73 | 4.626281900486264e-25 | 443.8 |
| 8 | harbor-house | coldstart-500000-s0.dom | 1 | gaussian | 8 | 24 | 32 | 3.749216704165142e-11 | 417.1 |
| 9 | harbor-house | coldstart-500000-s0.dom | 1 | ramp | 8 | 24 | 32 | 3.749216704165142e-11 | 425.6 |
| 10 | harbor-house | coldstart-500000-s2.dom | 1 | gaussian | 12 | 30 | 42 | 3.0491865573276097e-14 | 355.6 |
| 11 | harbor-house | coldstart-500000-s2.dom | 1 | ramp | 12 | 30 | 42 | 3.0491865573276097e-14 | 364.3 |
| 12 | maple-court | coldstart-500000-s1.dom | 1 | gaussian | 17 | 56 | 73 | 4.629596572120101e-25 | 442.4 |
| 13 | maple-court | coldstart-500000-s1.dom | 1 | ramp | 17 | 56 | 73 | 4.629661078538839e-25 | 444.8 |
| 14 | harbor-house | coldstart-500000-s1.dom | 0 | gaussian | 7 | 36 | 43 | 1.4676873187056738e-15 | 373.2 |
| 15 | harbor-house | coldstart-500000-s1.dom | 0 | ramp | 7 | 36 | 43 | 1.4676873187056738e-15 | 375.2 |
| 16 | maple-court | coldstart-500000-s0.dom | 0 | gaussian | 18 | 35 | 53 | 1.1458353761153645e-17 | 483.1 |
| 17 | maple-court | coldstart-500000-s0.dom | 0 | ramp | 18 | 35 | 53 | 1.1458353761153645e-17 | 462.6 |
| 18 | maple-court | coldstart-500000-s2.dom | 0 | gaussian | 12 | 43 | 55 | 4.278297968488281e-18 | 481.2 |
| 19 | maple-court | coldstart-500000-s2.dom | 0 | ramp | 12 | 43 | 55 | 4.267745195711144e-18 | 481.8 |
| 20 | harbor-house | coldstart-500000-s1.dom | 1 | gaussian | 7 | 36 | 43 | 1.4676873187056738e-15 | 378.6 |
| 21 | harbor-house | coldstart-500000-s1.dom | 1 | ramp | 7 | 36 | 43 | 1.4676873187056738e-15 | 380.1 |
| 22 | maple-court | coldstart-500000-s0.dom | 1 | gaussian | 17 | 37 | 54 | 6.645342661051106e-18 | 456.4 |
| 23 | maple-court | coldstart-500000-s0.dom | 1 | ramp | 17 | 37 | 54 | 6.645342661051106e-18 | 478.6 |
| 24 | maple-court | coldstart-500000-s2.dom | 1 | gaussian | 12 | 43 | 55 | 4.258152742657858e-18 | 517.1 |
| 25 | maple-court | coldstart-500000-s2.dom | 1 | ramp | 12 | 43 | 55 | 4.258152742657858e-18 | 515.6 |