finderscope v2: camera + neighbours
I wanted the zoom to actually feel like looking through a scope rather than a bounding-box crop, so this session was about two things: a fixed camera FOV, and pulling in neighbouring constellations so there’s context around whatever you’re meant to be naming.
the auto-fit issues
v1 fit the canvas to the target constellation’s own bounding box, which meant every constellation filled the frame regardless of its real size on the sky. Crux and hydra looked the same scale, which defeats the point of a “how much can you see” difficulty system.
So, I fixed it by switching to a constant angular field of view instead. stereographic projection has a neat closed-form relationship between angular separation from centre and projected radius: rho = 2 * tan(theta / 2). so i just pick a FOV in degrees, work out what radius that maps to, and scale the canvas to that instead of to the data.
neighbours
for each constellation, check every vertex’s angular separation from the target’s centre (reused the same cosc term from the projection maths, just wrapped in acos instead). anything with at least one vertex inside a 55° radius gets pulled in and drawn dim, target stays bright and thicker so there’s no ambiguity about what to actually guess.
I tested both of these in node before touching canvas, specifically against Oct and UMi since anything near the celestial poles is where stereographic maths tends to fall apart.
OCTANS WHYY
octans pulls in 37 neighbours at the current radius because it’s so close to the pole. Everything nearby just looks angularly closer than it would elsewhere on the sky. That’s fine for now, but medium/hard difficulty will look like a mess down there unless i either shrink the include radius near the poles specifically or cap how many neighbours actually get drawn.
what’s next
- sort out the pole clutter issue properly
- difficulty tiers (all lines / neighbours only / none)
- guess input + checking
- learn mode, hemisphere split
