# Lumikins — todo ## 3D view (two arrows that swing the camera by 45 degrees) — done Done (see AGENTS.md "The 3D view"): - arrows at the top right + keys `[` `]` (`,` `.`, pad LT / RT), yaw -45 / 0 / +45 eased; 0 = the old 2D view, unchanged; - `Camera3d` (perspective, turn around the middle of the view, slight tilt), clicks un-projected on the middle plane, tested; - `TerrainMesh` + `World3d`: terrain extruded 24 px per chunk, rebuilt only where dug / built, within a time budget; cards for Lumikins, hatch, exit, particles, motes, glows; pools as boxes; sky and parallax far behind; HUD 2D on top; - no GL: arrows greyed, 2D only; checked in shots (desktop Mesa) and in the browser (remote build, WebGL). Finishing touches, done: - the bloom shader with the 3D layer: checked on a screenshot (scene param `bloom`), nothing to fix; - HD haze drawn in 3D; ground shadows softer, smaller, lifted; - no dark fringes on smoothed HD cards (colours spread into the clear pixels by tools/art_hd.py, imagescale() when shrinking, terrain colour divided by its alpha); the 2D HD view checked, unchanged; - backgrounds are real planes in depth (`Backdrop`), turning with the camera, no hole at +-45 degrees nor during the turn; the HD sky as a PNG made for GL (`*-sky-gl.png`); - dragging at an angle follows the pointer (both points cast on the level plane); - a Lumikin hidden by the ground gets a glowing outline instead of a faint copy. Left / ideas: - the outline samples a little of the neighbouring frames' pixels when a pose touches its cell's edge (none does today); - the near layer is seen a little from the side at 45 degrees: its bottom row goes on below (a flat band) where no ground hides it. ## Other ideas - more levels per world (now 2-3), traps, a level editor; - hand-tuned HD frames for more poses (the HD sprites are drawn by code in tools/art_hd.py); - Android app (bin/jumphp twa), privacy page on the site, site update for the 18 levels / 8 worlds.