diff --git a/docs/aetheria-gravity-map.md b/docs/aetheria-gravity-map.md index 18264ff0a..14c289394 100644 --- a/docs/aetheria-gravity-map.md +++ b/docs/aetheria-gravity-map.md @@ -93,6 +93,7 @@ All read at c6519383 in the detached worktree `C:\aeth-wt\ag2-docs` on 2026-10-1 - **B53. Belt extent** (same dump, `belts.py`, 155 belts under bodies in 40 zones). With L_F read from the belt orbit's Distance (4fb5cb94), the parent's own pull at a belt's outermost asteroid over its body's Plummer pull is at minimum 0.012 (p01 0.938, 8 belts under 0.99); with L_F read from the outermost asteroid it is 1.000 for every belt. The asteroid spread is the generator's (ZoneGenerator 150: Distance + u (v - 1/2) AsteroidBeltWidth(D)): 42 of 155 belts reach inside their parent's Roche limit and 1 below distance 0. - **B54. The series threshold, measured** (`threshold.py` on Soul's `band_check.py`: float32 port against 40-digit mpmath quadrature, five (a, b) shapes, 15 radii each). Worst error per unit strength with the series from tau 0.4 (40 terms): 1.0e-6 overall; 3.1e-7 at tau 0.05, 6.1e-7 at 0.3, 4.7e-7 at 0.39 (closed), 9.7e-7 at 0.41, 1.0e-6 at 0.43, 6.5e-7 at 0.6, 4.9e-7 at 1, 2.3e-7 at 2.5, 6.0e-8 at 10. From 0.5: 1.04e-6; 0.6: 1.45e-6; 0.7: 2.63e-6; 1 (4fb5cb94): 1.01e-5 (at tau 1). The closed form is float32-clean only to about tau 0.45 (9.7e-7) and worsens from there (1.5e-6 at 0.6, 1.0e-5 at 1). - **B55. Subzone isolation needs the root window from the reach** (imagination-ag4-cwr-refresh scratchpad, 2026-10-17: `ImagWellDump` with belt masses run on Yggdrasil at 09a7f189, jobs jH/jI, production entrance zones seeds 1-130, 106 multi-root, 417 roots; `place3.py` ports replace.py at C4 plus r3's rules; `cwr.py` rebuilds each placed zone with `welltree.py`'s zone+belt tree and counts Soul's metric from finding `cut-well-law.s2.subzones-overlap-in-production`). Areas are tangent circles (ZoneGenerator 63-91), so the nearest other root sits about r_i + r_j away and the root's reach, Reach x that distance, is roughly the area radius: a family filling 0.75 r cannot end inside it. *Today*: 705 of 1456 ordered root pairs have reach_i + support_j > d (worst 4.62), 948 of 4940 orbits inside another root's support, 2496 inside its reach, 246 roots at the 1.5 x support floor; 5461 bodies (4907 wells, 554 belts); 10 belts reach below distance 0, 283 inside 1.5 x their parent's Roche limit. *C4 with the 0.75 window (r2)*: 636 pairs, 261 of 2302 orbits, 2880 bodies (2590 wells, 290 belts). *floor-window* (a root's support under reach / Beta, window min(0.75 r, reach / 2.25)): 0 pairs (worst 0.83 of d), 0 of 1318 orbits, no floor-bound root, 1927 bodies (1762 wells, 165 belts), 24 of 47 root rings in multi-root zones merged. *fade-window* (rule 2 for roots, support under Gamma x reach): 0 pairs (worst 0.75), 0 of 985, 1601 bodies (1471 wells, 130 belts), 30 rings merged. Belts as intervals at the authored AsteroidBeltWidth fold almost all (543 of 554 under floor-window): the width (50 + 5 D^0.666) is wider than most slots, so r3 places a belt as a point and clamps its half-width to its slot. Two port details: a parent that absorbs folded children grows its Roche limit, so the lower bound is recomputed after each fold (59 belts sat inside it otherwise); a zone dump over 240 seeds in one Fact ran out of memory. Caveats: the dump is post-generator (children the old generator dropped are missing), positions are at t = 0, area radii are reconstructed from the area rule. +- **B56. A belt is an interval in its slot** (imagination-ag4-cwr4 scratchpad, 2026-10-17: Soul's belt and isolation probes, extended with percentiles, run on Yggdrasil at 1f83d074 with three placements patched in, jobs jbase/jA/jB/jC, production entrance zones seeds 1-130 plus every zone of seeds 7-12). Spread over AsteroidBeltWidth(D), 170 entrance belts: r3's symmetric half-width gives 145 at zero, median 0, p90 0.04, mean 0.012. Filling the slot (inner edge max(lower, previous sibling's outer edge x q), outer edge min(window, next sibling / q), belt centred, width min(W, slot)) gives 0 at zero, p10 0.02, median 0.11, p90 0.29, mean 0.13, 1 belt over 0.5; clamping the ruled point into the slot instead of centring gives the same distribution. Body counts, isolation (0 of 1456 pairs, worst 0.833; 0 orbit-instants in another root's support or reach) and the full suite (2103) are unchanged: belts are massless, so moving one inside its slot moves no well. Letting a belt claim its authored width in the chain instead keeps 21 of 170 belts (median 0.65) and folds bodies (wells 1793 to 1727), against c4-proceed-and-fly's counts, and fails LockOnSituation. So under the band law every production belt is slot-bound: AsteroidBeltWidth never binds and is a ceiling only, and the neighbour terms bind once the belt is an interval (the symmetric form's neighbour term was redundant, Soul's s1). Turret order: the unmutated StationPlacement harness gives the same stations, turrets and orbit sums in two processes and twice in one; the 0.8 tail mutant survived 3 four-class runs and 2 single-class runs (jm0p8), so jM's one CAUGHT is not reproduced, and there is no shared state to fix: the tail rule needs a forced fixture. ## Model page @@ -143,7 +144,7 @@ Cells not filled, plainly: whether a per-body multiplier on c or the core is eve Mapped and admitted (2026-10-14, base 11b2d7ad): `aetheria-gravity:cut_spec:cut-gravity-subtract.r2` and its sibling `aetheria-gravity:cut_spec:cut-orbits-placed-at-build.r1`, both merged at 5dd1f6b7. Mapped and admitted (2026-10-14, base 5dd1f6b7): `aetheria-gravity:cut_spec:cut-potential-owner.r3` (rebased on 3f5cef68 on 2026-10-15, after rulings `funnel-kept-until-flown` and `core-inside-roche-curve`), one Hands pass; it carries follow-ups `deep-orbit-placement-test` and `gravity-subtract-test-residuals`. Between it and grid-lowering the drawn grid lags (B23). The operator will fly the funnel before ruling on it again (`funnel-kept-until-flown`), so potential-owner and grid-lowering must both be on one playable branch before that flight; grid-lowering is stacked on potential-owner, not a sibling (B26), and its map is the next Imagination pass once potential-owner's report lands. Mapped and admitted (2026-10-15, base dd06f39d, stacked on potential-owner's head): `aetheria-gravity:cut_spec:cut-grid-lowering.r1`, one Hands pass, Starfire-verified; on its branch the drawn grid is the field (B30) and the Sector Waves noise is off the grid until grid-noise-presentation. Mapped and admitted (2026-10-15, base 8f491fd3, stacked on grid-lowering's head): `aetheria-gravity:cut_spec:cut-fog-precision-and-jitter.r1`, the slope jitter (B32) and the patch's second gravity lowering (B33), one Hands pass. Mapped and admitted (2026-10-15, base 8f491fd3, a sibling of fog-precision-and-jitter on grid-lowering's head, disjoint files): `aetheria-gravity:cut_spec:cut-orbits-from-field.r1`, periods from the field (B35-B38), one Hands pass; it raises `aetheria-gravity:question:rails-enclosed-or-parent` and is written for the recommended parent-only option. Not yet mapped: - **drawn-pose-at-drawn-time** (mapped and admitted 2026-10-15, base 09ec04a8: `aetheria-gravity:cut_spec:cut-drawn-pose-at-drawn-time.r1`, one Hands pass): `DrawAhead` owns every drawn pose at T = ExactTime + Lead (B39); closes item 3 of `fog-jitter-residuals`. -- **tail-taming** (ruling `tame-tails-parent-only-rails`, lean `tail-taming-lean-conserving-compact`): `aetheria-gravity:cut_spec:cut-well-law.r2` (the band law, B40-B43, B48; reach 1/2 D, series branch), runnable before question `tail-taming-law-r3` is answered; the generator rules go to children-within-reach once r3 sets the spacing. Soul's s1 falsified it (multi-root far field, belt extent, unpinned fade start and ring edge, series threshold); the fix batch is `aetheria-gravity:cut_spec:cut-well-law.r3` (B52-B54), with the zone's shape between roots put to the operator as question `multi-root-zone-shape`. children-within-reach r2 was refreshed after it merged: `aetheria-gravity:cut_spec:cut-children-within-reach.r3` (B55), written to question `root-window`'s recommended floor-window. +- **tail-taming** (ruling `tame-tails-parent-only-rails`, lean `tail-taming-lean-conserving-compact`): `aetheria-gravity:cut_spec:cut-well-law.r2` (the band law, B40-B43, B48; reach 1/2 D, series branch), runnable before question `tail-taming-law-r3` is answered; the generator rules go to children-within-reach once r3 sets the spacing. Soul's s1 falsified it (multi-root far field, belt extent, unpinned fade start and ring edge, series threshold); the fix batch is `aetheria-gravity:cut_spec:cut-well-law.r3` (B52-B54), with the zone's shape between roots put to the operator as question `multi-root-zone-shape`. children-within-reach r2 was refreshed after it merged: `aetheria-gravity:cut_spec:cut-children-within-reach.r3` (B55), written to question `root-window`'s recommended floor-window. Soul's s1 held isolation but found belts collapsed to a line; the delta on Hands' head 1f83d074 is `aetheria-gravity:cut_spec:cut-children-within-reach.r4` (B56): belts fill their slots, five forced pins, the font asset restored. - **potential-owner** (mapped, above): one ServerShared potential (c from an authored compressed curve G·m^p, authored core-radius curve, uniform-disc core, log tail, superposition, analytic gradient, no gate, global K in PlanetSettings, reference zero at the root's zone radius); every CPU force reader (Ship, floating bodies, clouds, mines) and `Zone.Flow`'s slope term read it; GetHeight = φ/K; deletes `GravityAcceleration`, `GravityReferenceRate`, `GetNormal` as a force source, the PowerPulse well and `GravityDepthExponent`; field strength per field-strength-ruled. Waits on both admitted cuts. May split into the potential and its readers if one Hands pass cannot hold both. - **rosette-equilibria** (follow-up `rosette-generation-r3`, rulings `rosettes-artificial-derived-from-fields`, `rosettes-placed-in-equilibrium`, `rosettes-rare-and-huge`, `binaries-orbited-from-afar`): pairs and rosettes placed as relative equilibria under the band law, members on their own radii (a pair at r_i proportional to c_partner; twisted crowns for alternating rosettes), one spin for every member, so no ring shears (B51); WellTree's ring group accepts members on two radii; members always suns, rare and huge. Waits on children-within-reach (`cut-children-within-reach.r3`), which places rings as one radius and merges root rings that cannot fit a multi-root zone's reach (B55); rare, huge rosettes need a sole-root zone or a large area. - **grid-noise-presentation**: the Sector Waves noise (after grid-lowering on layer 10, drawn only into the nebula patch height) and fine-grid detail move to non-slope presentation (grid-gravity-only-ruled); it also owns the Main Menu's own Surface Displacement brushes (B29, follow-up `menu-grid-brushes`). Waits on grid-lowering.