Zoom tiers, naming against siblings
Grouping
- The community detection runs at three settings instead of one, from a cut that finds a couple of regions to one that finds fifty small figures.
- Groups per tier: 1 / 12 / 43.
- Each tier has its own minimum size, maximum spread and coherence bar. A bigger group is a looser group, because it has absorbed its weaker members, so the bars relax as the groups grow.
- Group position and radius from the coordinate-wise median instead of the mean. Tier 2 median radius 1.9 → 1.24, and two more groups pass the spread test: 46 → 48.
Naming
- A group below the top tier is scored against its siblings instead of the whole atlas. Previously every tier picked the same top word.
- The comparison excludes the group itself from the reference pool. Measured against the parent, a group that is half its parent cannot be more than about twice as distinctive however defining its words are, which was below the bar it had to clear. Against its siblings the measure is unbounded and means what it should.
- Skipped when the parent is most of the atlas. Applied there it produced "teeth, pants, weirded" in place of "teeth".
- The top tier usually has no distinctive words by construction: a group that is most of the atlas has no words that are rare in the atlas. It is left undrawn rather than given a name, so nothing on the map is a word we chose. At the widest setting one group still names itself.
Seed check
Louvain at resolution 0.2, ten seeds. Two groups every run; 36 dreams in the smaller group under all ten.
Rendering
- Tier visibility follows the zoom, with the bands overlapping so pulling back dissolves the small figures into the large ones rather than switching between them.
- Spanning trees per tier. The top tier draws none; its tree is 589 lines.
- Shape styling interpolates with tier strength instead of switching on.
- Constellation lines are a soft warm tone and the bright gold is kept for the figure under the cursor. When four fifths of the sky belongs to some figure, painting all of it the same colour says nothing.
- Labels drawn only for the tier in focus, decluttered by screen-space box overlap, larger group wins.
- Faint stars go genuinely sub-pixel, the way faint stars do. What made that unusable before was not the size but the target, so every star carries an invisible margin a few pixels wide on screen.
- Constellations are picked by proximity to their stars rather than by one disc each. Forty-eight overlapping discs left any group buried under the pile unreachable.
- Pinned constellations stay visible past the top of the zoom band, haloes at 0 and pointer events off.
- Zoom readout on the right edge; follows replay frames.
- Hover state reapplied after a zoom repaint.