Lanternfall is a small puzzle game about keeping wandering spirits inside a grove. You place stone cairns, press Seal, and the grove lights up tile by tile. It runs in any modern browser, saves your progress on your own device, and it is built from plain HTML, JavaScript, Canvas and Web Audio. No framework, no build step, no dependencies.
Why I skipped the libraries
I looked at the obvious options for a game like this: a WebGL renderer for bigger particle effects, a music library for richer sound, a small sound-effects synth. They are all good and permissively licensed. I still left them out, for two reasons. Shipping with zero dependencies makes the licensing question trivial, and it means the game runs anywhere you can serve a folder of files. You can double-click the page and play.
The trade-off is real. The visuals are simpler than a WebGL renderer would give me, and I wrote the audio engine myself. For a calm puzzle game that was the right deal.
Levels you can trust
The part I care about most is that no level is ever unfair. Every level is generated and then checked by a solver. The exact minimum number of cairns needed to seal the grove is computed with a max-flow cut, which is the same math used to find the smallest set of links that disconnects a network. A second solver, a simulated-annealing search seeded from that cut, hunts for the best possible score. That score becomes the Keeper’s best, and your stars are measured against it.
That means a three-star result is genuinely achievable, and a level cannot be accidentally unsolvable. The 48 campaign levels are solved ahead of time. The Daily Grove and endless Lantern Run levels are solved in a background worker, usually in under two seconds.
Sound without audio files
All of the music and effects are synthesized in code. There are no audio files in the project. The reverb uses a generated impulse response with early reflections and a stereo spread. I borrowed ideas, not code, from open-source projects with permissive licenses, and I credited them in the source.
How I tested it
There are 336 automated checks on the rules and the generator, plus a 44-step test that drives the real interface from launch to a three-star result, including a leak and a recovery. Testing and review together turned up real problems: levels that were too easy, a star curve that was too steep, and a Reduce Motion setting that did nothing.
I also keep a list of what I have not verified. I cannot tell you how the audio sounds to a human ear from an automated test, and I have not checked every phone and browser. Writing that down keeps me honest about where to test next.
Try it
You can play Lanternfall free, right on the home page. If you want the full tour of the rules, creatures and tools, there is a walkthrough page.