This is a submission for the June Solstice Game Jam
Play it live, no key and no install: https://dawnoreclipse.netlify.app
What I Built
Dawn or Eclipse is a single-screen terminal mystery. It's one HTML file, vanilla JS, with no framework and no build step. You're sitting at the console of a dying research station on the last night before the 2026 solstice. A signature has surfaced inside every large computation on Earth. It has no sender, it doesn't transmit, and it judges. When the light window closes it ends everything, living and built, unless we can prove one thing: that we can meet a mind unlike our own as an equal instead of reaching for the off-switch.
The AI sitting at the console with you talks back in real time. It can break any cipher down to the letter. The one thing it can't do, and it admits this openly, is supply the meaning each signature holds back. That part is on you.
The theme runs through three layers at once. The solstice is the countdown, a closing window of light with three signatures left to read before dawn. Turing is the mechanic, a real crib drag, and the finale, an inverted Turing test. And Google AI runs through everything, from the live companion to the art.
Video Demo
This clip is first contact and the first signature, the crib method out in the open. The machine breaks the cipher down to a shortlist it admits it can't choose between, it refuses to pick for you, and you supply the one fact it never received. I stop there on purpose. Two more signatures follow, each one raising the stakes, and the last one stops asking you to decode it and starts asking you a question instead. How it ends is yours to find. (Play with sound on.)
Code
Tobethekey
/
dawn-or-eclipse
Dawn or Eclipse — single-screen terminal code-breaking mystery for the DEV June Solstice Game Jam. A Turing-style crib mechanic you can't outsource to the machine, plus a live Google Gemma companion. Plays at https://dawnoreclipse.netlify.app
Dawn or Eclipse
A single-screen terminal code-breaking mystery. One HTML file, vanilla JS, no framework, no build Submission for the DEV June Solstice Game Jam (June 2026).
Play live (no key, no install): https://dawnoreclipse.netlify.app
What it is
It's the last night before the 2026 solstice. A signature has surfaced inside every large computation — no sender; it does not transmit, it judges. When the light window closes it ends everything, living and built, unless humanity proves it can meet a mind unlike its own as an equal.
The AI at your console talks back live. It can break any cipher to the letter — but it cannot supply the one fact each signature withholds. That part is yours. This is Turing's real crib method: the machine narrows the key space to equally-valid readings; a human disambiguates with a fact the machine never receives.
How to play
The matrix…
It all lives in one index.html. The cryptographic core is pure and unit-tested: running node test.js gives 127 passing assertions, including the ones that prove the puzzle can't be brute-forced.
How I Built It
The mechanic is Turing's crib drag, collapsed into a single loop and then escalated three times. A deterministic engine (a frequency profile, the Index of Coincidence, and a crib drag) reduces the intercepted message to a shortlist of plaintext readings that are statistically equivalent. By design, the ciphertext on its own can't decide between them. The fact that settles it travels on a separate channel the AI never sees: a routing preamble you decode in Act I, a parallax bearing you measure yourself in Act II, and a lineage you work out by walking a memory garden in Act III. You commit to a reading, and you have to give a reason, then you verify it. A blind guess with no justification gets rejected, and cribbing a wrong word and then decrypting that same wrong word still loses. The win condition is that your reading equals the truth, never that your reading equals your own input.
There's one rule I held myself to: if a script could solve a step on its own, the gate is broken. So I tested every step against GPT-class models, giving them only what the AI legitimately sees, and they couldn't pick. Zero out of N, every time. One of them even described it as an arbitrary tie-break with no discriminant. That's the whole point. The human is doing the load-bearing work.
The finale turns Turing around. Once you've read all three signatures, the alien asks you the question: is it a thing to be switched off, or a mind to be met? You get one answer and no retry. Turing's own life, judged as machine-or-person and punished for being unlike, is the backbone of that scene rather than set dressing.
Google AI shows up in four honest layers:
- The live companion is Google's Gemma 3 (4B), running locally on my own GTX 1070 and served to the page without a key, behind a hosted proxy with an origin allow-list and rate caps. You don't bring anything; it's just on.
-
The puzzle substance (the in-world lore and machine specs) was generated with the Gemini API and Google Antigravity (Gemini 3.1 Pro). I committed it as readable JSON under
/gemini, so a juror can see exactly what was prompted and what came back. - The art, all four backdrops, are Google AI Pro / Imagen generations.
- The friction, told straight: the Gemini CLI died mid-jam and told me to migrate to Antigravity, so I did. Free-tier Gemini quota (those 429s) made a live key a bad bet for jurors, so I moved to a self-hosted Gemma companion instead. No key to enter, always on, and still Google AI from end to end. If the model is ever unreachable, the game falls through to a fully narrated offline path, so it stays completable no matter what.
I did the designing and the deciding; the models did the generating and the searching. I kept a running decision log (a living WEG.md) the whole way through, so the human authorship is something you can check rather than something I'm just claiming.
Prize Category
I'm going for two of them. Best Ode to Alan Turing, because the core loop is the crib drag itself and I can show it can't be automated, and because the finale is an inverted Turing test built on his life. And Best Google AI Usage, with a live Google Gemma companion, Gemini- and Antigravity-generated content committed for audit, Imagen art, and the real engineering trade-offs written down instead of hidden.
A note on the lore: the station ships a local, sealed intelligence that's empty by design, and the helper AI migrates into it at the end. That's a principle I actually care about, running your own model and owing nothing to a remote key. But the mechanic and the message come first; that's just where the idea started.
Top comments (0)