Land #70: give stars orbits their own potential holds, and clear the last galaxy.rs grandfathering #85

Closed
opened 2026-08-14 05:00:05 +00:00 by coilyco-ops · 0 comments
Member

Item 6 of #70, unblocked once #72's luminosity floor shipped. Also clears src/rust/galaxy.rs from #78's excludes, which is the same file and wants the same commit rather than a second churn through it.

What ships

Four changes, all measured on #70 and now promoted from ablation switches to per-scenario parameters:

parameter disks elliptical
birth_orbit_ratio_cap 1.06 1.06
birth_velocity_dispersion 0.3 1.5
collapse_radiation_resist 80 (was 20) 20
STAR_FIELD_AXISYMMETRIC true true

Every switch inverts cleanly to its own control, so each number stays re-measurable without an edit.

Measured, size 500, t=2500, two seeds

vsig above ~1.5 is a disk, below ~0.7 is a mush:

scenario before after
irregular => spiral 0.48 / 0.31 2.50 / 3.30
bang => spiral - 2.49 / 2.75
irregular => elliptical 0.52 / 0.49 (target) 0.58 / 0.45

The disk holds to t=5000 - vsig 1.83, old cohort 1.51, no crossover at any checkpoint against a baseline of 0.11-0.44 - and the resolved population settles near 20k. #70 removed a bad sink and #72's floor added a good one, and they nearly cancel exactly as predicted.

bcirc now reads 1.06 rather than 1.69-3.21, so the cap binds and the probe reports it.

Three findings worth recording

The probe had drifted from the call site again. birth_circular_ratio mirrored the ablation switch but not the new scenario parameter, so it reported 1.93 while births were capped at 1.06 - the exact failure its own comment warns about, one release after the retraction that prompted the warning. Fixed, and the comment is now a two-line DRAGON on both sides.

The radiation gate had to become per-scenario. At 80 the elliptical's extra supernovae sweep gas into an annulus and it fails its own ring-signature check (0.293 against a 0.25 bar). Isolated by running each switch separately rather than assuming. The elliptical keeps 20.

Only one golden hash moved. Ring, bang-spiral, and irregular-spiral are byte-identical after 100 ticks - the elliptical is the only scenario forming stars that early, so it is the only one whose gas sees the change at that depth. Recaptured.

Verification

  • 91 Rust tests, clippy, rustfmt, check-js, and the full precommit gate green.
  • 48 e2e green against the new physics.
  • All four scenario-identity tests pass at size 250 with every existing threshold unchanged.

galaxy.rs comment grandfathering, cleared

138 blocks / 715 comment lines compressed to the two-line cap, with the reasoning relocated into seven new docs: stellar-heating.md, star-metrics.md, metric-calibration.md, integrator.md, seeding.md, stellar-population.md, boundary-ridge.md.

The guardrails stay put, just shorter - a dragon does not need three paragraphs to be flagged:

/// DRAGON: DO NOT TUNE AGAINST THIS - it scores an eccentric orbit at
/// pericenter as a good disk. Use vsig. docs/star-metrics.md.

The dead-cross-link hook caught two docs I had referenced but not yet written, which is the hook doing exactly its job.

pyproject.toml is down to four survivors, each now carrying its measured rationale inline: perf-rewrite.md, the seven skill docs, the four YAML entries, and pkg/**. That closes #78's fixable surface.

Still open, deliberately

  • The elliptical has no luminosity floor, so its population is unbounded - 56k at t=5000. Needs its retired light rendered first (#72).
  • Central over-concentration below size 250 (#70 item 4), parked by the option-1 decision.
  • #65's gas-confinement retune, which is a separate change with its own golden regeneration.
Item 6 of #70, unblocked once #72's luminosity floor shipped. Also clears `src/rust/galaxy.rs` from #78's excludes, which is the same file and wants the same commit rather than a second churn through it. ## What ships Four changes, all measured on #70 and now promoted from ablation switches to per-scenario parameters: | parameter | disks | elliptical | |---|---|---| | `birth_orbit_ratio_cap` | 1.06 | 1.06 | | `birth_velocity_dispersion` | 0.3 | **1.5** | | `collapse_radiation_resist` | **80** (was 20) | 20 | | `STAR_FIELD_AXISYMMETRIC` | true | true | Every switch inverts cleanly to its own control, so each number stays re-measurable without an edit. ## Measured, size 500, t=2500, two seeds `vsig` above ~1.5 is a disk, below ~0.7 is a mush: | scenario | before | after | |---|---|---| | irregular => spiral | 0.48 / 0.31 | **2.50 / 3.30** | | bang => spiral | - | 2.49 / 2.75 | | irregular => elliptical | 0.52 / 0.49 (target) | **0.58 / 0.45** | The disk holds to t=5000 - `vsig` 1.83, old cohort 1.51, no crossover at any checkpoint against a baseline of 0.11-0.44 - and the resolved population settles near 20k. #70 removed a bad sink and #72's floor added a good one, and they nearly cancel exactly as predicted. `bcirc` now reads 1.06 rather than 1.69-3.21, so the cap binds and the probe reports it. ## Three findings worth recording **The probe had drifted from the call site again.** `birth_circular_ratio` mirrored the ablation switch but not the new scenario parameter, so it reported 1.93 while births were capped at 1.06 - the exact failure its own comment warns about, one release after the retraction that prompted the warning. Fixed, and the comment is now a two-line DRAGON on both sides. **The radiation gate had to become per-scenario.** At 80 the elliptical's extra supernovae sweep gas into an annulus and it fails its own ring-signature check (0.293 against a 0.25 bar). Isolated by running each switch separately rather than assuming. The elliptical keeps 20. **Only one golden hash moved.** Ring, bang-spiral, and irregular-spiral are byte-identical after 100 ticks - the elliptical is the only scenario forming stars that early, so it is the only one whose gas sees the change at that depth. Recaptured. ## Verification - 91 Rust tests, clippy, rustfmt, `check-js`, and the full `precommit` gate green. - **48 e2e green** against the new physics. - All four scenario-identity tests pass at size 250 with every existing threshold unchanged. ## galaxy.rs comment grandfathering, cleared 138 blocks / 715 comment lines compressed to the two-line cap, with the reasoning relocated into seven new docs: `stellar-heating.md`, `star-metrics.md`, `metric-calibration.md`, `integrator.md`, `seeding.md`, `stellar-population.md`, `boundary-ridge.md`. The guardrails stay put, just shorter - a dragon does not need three paragraphs to be flagged: ```rust /// DRAGON: DO NOT TUNE AGAINST THIS - it scores an eccentric orbit at /// pericenter as a good disk. Use vsig. docs/star-metrics.md. ``` The dead-cross-link hook caught two docs I had referenced but not yet written, which is the hook doing exactly its job. `pyproject.toml` is down to four survivors, each now carrying its measured rationale inline: `perf-rewrite.md`, the seven skill docs, the four YAML entries, and `pkg/**`. That closes #78's fixable surface. ## Still open, deliberately - The elliptical has no luminosity floor, so its population is unbounded - 56k at t=5000. Needs its retired light rendered first (#72). - Central over-concentration below size 250 (#70 item 4), parked by the option-1 decision. - #65's gas-confinement retune, which is a separate change with its own golden regeneration.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/galaxy-gen#85
No description provided.