Commit 2e1a429
authored
feat: constellations preset (seeded asterisms, template-held) (#59)
* feat: add constellation asterism data and seeded pick
* feat: fit constellation figures to grid with aspect correction
* feat: rasterize anti-aliased constellation template
* feat: seed agents along constellation stars and edges
* fix: document and assert seed_agents empty-Vec precondition
* feat: wire InitMode::Constellation seeding and trail pre-seed
Add InitMode::Constellation variant, SimConfig::constellation_restamp_floor
field, Simulation::constellation_template, build-once layout in new()/reset(),
trail pre-seed via max-combine, and extend init_species with constellation_layout
param + dispatch arm. Add non-exhaustive arms in runner.rs and explorer.rs.
* feat: static constellation re-stamp via post-decay max
* test: strengthen constellation drift assertion to verify no re-stamp
* feat: add ConstellationStatic preset and retune Constellation for atlas init
* feat: render both constellation presets as Braille atlas linework
* fix: make Constellation reset deterministic, drop thread_rng re-roll
`effective_init_mode` was calling `InitMode::random(&mut thread_rng())`
for Constellation, making every auto-reset and manual restart choose a
different init layout. Now that the constellation figure is selected by
the seeded sim RNG inside `Simulation::new`, the reset path is fully
deterministic. The function becomes a pass-through and the `preset`
argument is dropped at the function and all three call sites. Stale
doc comments updated accordingly.
* test: register ConstellationStatic and regenerate preset goldens
Add "constellationstatic" to the PRESETS array in preset_config_snapshot.rs
and regenerate tests/golden/preset_configs.txt. The constellation block now
reflects init_mode=Constellation (changed from Random), and a new
constellationstatic block appears with restamp_floor-discriminated scalars.
Fix two clippy field_reassign_with_default errors in constellation test
helpers in src/simulation/mod.rs (use struct-init syntax).
Full gate: 1017 lib + 56 visual_regression + 19 doc tests, all green.
* fix: make ConstellationStatic never-reset behavior explicit
* feat: make constellation template-led — scale to brightness, weight stars, retune presets
Template values (0..1) are now multiplied by max_brightness at every stamp
site (new(), reset(), update()) so the pre-seeded figure renders at full
trail-brightness range instead of ~3% white-point. Star sigma tightened
to 2.2px; edge peak/sigma reduced to 0.45/0.55 for hairline linework.
ConstellationStatic: restamp_floor 1.0, decay 0.92, deposit 0.6, count 2500.
Constellation drift: decay 0.95, deposit 1.5, count 5000, floor stays 0.0.
Test rewritten to assert held > 1.5 (proves scaling happened) and that
drift decays strictly below the static floor after 20 frames.
* feat: constellation v2 — points render, lin/log split, low white-point, richer canvas-filling figures
- Render: both Constellation + ConstellationStatic switch Braille→Points charset,
add IntensityMapping::linear_log_split(10.0), explicitly pin auto_normalize=false
- ConstellationStatic sim retune: max_brightness 30→10, deposit_amount 0.6→0.3
(top-level and species[0]), count 2500→2000
- fit_to_grid margin 10%→5% so figures use more of the canvas
- Replace 6 figures (drop Cassiopeia/Crux): Orion(10s/11e) Ursa Major(10s/10e)
Scorpius(10s/9e) Cygnus(7s/6e) Leo(9s/9e) Gemini(11s/10e)
- Update test: both_constellations_render_braille_cosmic →
both_constellations_render_points_cosmic (asserts Points/Cosmic/false/lin-log-split)
- Regenerate preset_configs.txt golden (constellationstatic block only)
* feat: unify into single 'constellations' preset (static), drop drift variant1 parent 063effe commit 2e1a429
13 files changed
Lines changed: 759 additions & 67 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
341 | | - | |
342 | | - | |
| 341 | + | |
| 342 | + | |
343 | 343 | | |
344 | | - | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
| 344 | + | |
349 | 345 | | |
350 | 346 | | |
351 | 347 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
96 | 92 | | |
97 | 93 | | |
98 | 94 | | |
| |||
132 | 128 | | |
133 | 129 | | |
134 | 130 | | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
| 131 | + | |
140 | 132 | | |
141 | 133 | | |
142 | 134 | | |
| |||
1049 | 1041 | | |
1050 | 1042 | | |
1051 | 1043 | | |
| 1044 | + | |
1052 | 1045 | | |
1053 | 1046 | | |
1054 | 1047 | | |
| |||
1759 | 1752 | | |
1760 | 1753 | | |
1761 | 1754 | | |
1762 | | - | |
1763 | | - | |
1764 | | - | |
1765 | | - | |
1766 | | - | |
1767 | | - | |
| 1755 | + | |
1768 | 1756 | | |
1769 | 1757 | | |
1770 | 1758 | | |
| |||
2894 | 2882 | | |
2895 | 2883 | | |
2896 | 2884 | | |
| 2885 | + | |
| 2886 | + | |
| 2887 | + | |
| 2888 | + | |
| 2889 | + | |
| 2890 | + | |
| 2891 | + | |
| 2892 | + | |
| 2893 | + | |
| 2894 | + | |
2897 | 2895 | | |
2898 | 2896 | | |
2899 | 2897 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
717 | 717 | | |
718 | 718 | | |
719 | 719 | | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
720 | 723 | | |
721 | 724 | | |
722 | 725 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
423 | 423 | | |
424 | 424 | | |
425 | 425 | | |
| 426 | + | |
426 | 427 | | |
427 | 428 | | |
428 | 429 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
54 | 55 | | |
55 | 56 | | |
56 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
50 | 53 | | |
51 | 54 | | |
52 | 55 | | |
| |||
80 | 83 | | |
81 | 84 | | |
82 | 85 | | |
| 86 | + | |
| 87 | + | |
83 | 88 | | |
84 | 89 | | |
85 | 90 | | |
| |||
114 | 119 | | |
115 | 120 | | |
116 | 121 | | |
| 122 | + | |
117 | 123 | | |
118 | 124 | | |
119 | 125 | | |
| |||
646 | 652 | | |
647 | 653 | | |
648 | 654 | | |
649 | | - | |
| 655 | + | |
650 | 656 | | |
651 | 657 | | |
652 | 658 | | |
653 | | - | |
654 | | - | |
655 | | - | |
656 | | - | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
657 | 663 | | |
658 | | - | |
659 | | - | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
660 | 667 | | |
661 | 668 | | |
662 | | - | |
| 669 | + | |
663 | 670 | | |
664 | | - | |
665 | | - | |
666 | | - | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
667 | 674 | | |
668 | 675 | | |
669 | 676 | | |
| |||
1020 | 1027 | | |
1021 | 1028 | | |
1022 | 1029 | | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
1023 | 1046 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1943 | 1943 | | |
1944 | 1944 | | |
1945 | 1945 | | |
1946 | | - | |
| 1946 | + | |
1947 | 1947 | | |
1948 | 1948 | | |
1949 | 1949 | | |
1950 | 1950 | | |
1951 | 1951 | | |
1952 | 1952 | | |
1953 | 1953 | | |
1954 | | - | |
1955 | | - | |
| 1954 | + | |
| 1955 | + | |
1956 | 1956 | | |
1957 | 1957 | | |
1958 | 1958 | | |
1959 | 1959 | | |
1960 | | - | |
| 1960 | + | |
1961 | 1961 | | |
1962 | 1962 | | |
1963 | 1963 | | |
1964 | | - | |
1965 | | - | |
| 1964 | + | |
| 1965 | + | |
1966 | 1966 | | |
1967 | 1967 | | |
1968 | 1968 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
208 | 208 | | |
209 | 209 | | |
210 | 210 | | |
211 | | - | |
| 211 | + | |
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
| 215 | + | |
| 216 | + | |
215 | 217 | | |
216 | 218 | | |
217 | 219 | | |
| |||
489 | 491 | | |
490 | 492 | | |
491 | 493 | | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
492 | 506 | | |
493 | 507 | | |
494 | 508 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
274 | 274 | | |
275 | 275 | | |
276 | 276 | | |
277 | | - | |
278 | | - | |
| 277 | + | |
| 278 | + | |
279 | 279 | | |
280 | 280 | | |
281 | 281 | | |
| |||
424 | 424 | | |
425 | 425 | | |
426 | 426 | | |
| 427 | + | |
| 428 | + | |
427 | 429 | | |
428 | 430 | | |
429 | 431 | | |
430 | | - | |
431 | | - | |
| 432 | + | |
| 433 | + | |
432 | 434 | | |
433 | 435 | | |
434 | 436 | | |
| |||
459 | 461 | | |
460 | 462 | | |
461 | 463 | | |
462 | | - | |
| 464 | + | |
| 465 | + | |
463 | 466 | | |
464 | 467 | | |
465 | 468 | | |
| |||
1395 | 1398 | | |
1396 | 1399 | | |
1397 | 1400 | | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
1398 | 1405 | | |
1399 | 1406 | | |
1400 | 1407 | | |
| |||
1520 | 1527 | | |
1521 | 1528 | | |
1522 | 1529 | | |
| 1530 | + | |
| 1531 | + | |
1523 | 1532 | | |
1524 | 1533 | | |
1525 | 1534 | | |
| |||
0 commit comments