Solstice — A Light-Routing Puzzle Game A developer built Solstice, a light-routing puzzle game with a custom ray-tracing engine, dual-spectrum beam physics, and 18 levels across 7 tiers. The game features a CRT terminal narrative with a Turing test theme, optional AI dialogue via Google Gemini, and is deployed as a static site on Vercel. This is a submission for the June Solstice Game Jam What I Built Solstice is a puzzle game where you place mirrors to guide light beams across a grid. Each level has two modes — SUN and MOON. You toggle between them to route both beams to their targets. Both need to be lit at the same time to win. Click a cell to place a / mirror, click again for \ , again to remove. Right-click removes it. Ctrl+Z to undo. That's the whole mechanic — but the levels get hard fast. There are 18 levels split into 7 tiers. It starts simple one mirror, one beam and builds up to puzzles where you have fewer than 10 free cells and every placement has to count. I verified every level with a Python solver to make sure they're all solvable at the stated par. The game has a terminal with a Bletchley Park theme. You get 3 questions, the AI responds like a trapped wartime consciousness, and at the end you decide if it was human or machine. It connects to the Gemini API if you have a key, otherwise it uses pre-written responses. VIDEO DEMO { https://youtu.be/gqtylwILuJ8 https://youtu.be/gqtylwILuJ8 } Code A light-routing puzzle game with a custom ray-tracing engine, dual-spectrum beam physics, 18 levels across 7 tiers, a CRT terminal narrative, undo/redo, and a star-based rating system. Built with vanilla JavaScript, rendered on HTML Canvas 2D, with audio synthesis via the Web Audio API and optional AI-powered dialogue through Google Gemini. Deployed as a static site on the Vercel CDN. Each subsystem is a standalone ES module communicating through a central game state, orchestrated by a requestAnimationFrame game loop. flowchart LR subgraph Pipeline Core Pipeline direction LR GL "GAME LOOP