Touch: tap a tile to apply the current tool; drag across tiles to paint a whole run; the bottom toolbar switches Weave / Cross / Note and holds Undo, Hint and Check; tap the speaker to mute; the back arrow returns to the menu · Keyboard: arrow keys move the cursor; Space or Enter apply the current tool; X cross; N note; 1 weave, 2 cross, 3 note; Z undo, Y redo; H hint; C check; M mute; Esc back
About:
A from-scratch nonogram (picture logic) game made in-house for Leetdom. Every board, glyph, tile, clue and sound is generated in code: no images, fonts or audio files, no network, no dependencies.
Each puzzle hides a small glyph on a grid. The numbers beside each row and above each column tell you the lengths of the filled runs, in order; cross off the tiles you can rule out and weave in the ones you can prove, and the picture resolves. Every generated board is checked to have exactly one solution before it is ever served, so you can always finish by logic alone — there is never a guess.
Journey is a hand-ordered run of boards that grows from 5x5 up to 15x15, each rated Gentle, Steady, Tricky or Fiendish by how much line-solving it actually takes, with your best time kept per board. Endless deals fresh unique boards forever from a seed and tracks your streak. Three tools share one grid: Weave fills a tile, Cross marks a blank (drawn as a bold X so it reads without relying on colour), and Note leaves a small dot for a maybe. Undo and redo are unlimited, Hint reveals one provably-correct tile, and Check points out the first tile that contradicts the solution so a wrong turn never quietly sinks a whole board.
It is built for a phone first: big tiles, drag to paint a run of cells, a thumb-reachable toolbar, and a layout that re-flows for portrait, landscape and desktop. On a keyboard the arrow keys move a cursor, Space weaves, X crosses, N notes, 1/2/3 switch tool, Z/Y undo and redo, H hints, C checks and Esc steps back. Your progress, best times and streak live on your device; if storage is blocked the game still plays.
Credits:
Made by Leetdom, 2026. Written for Leetdom, and it lives here.
Phone check: 2026-10-03: automated core suite (node scratch/test-core.js) 52/52 — line-solver correctness, generator makes only uniquely-solvable boards (10x10, 15x15, 10x15 batches each 100% solvable + unique at cap=2), deterministic seeded RNG reproducibility, and difficulty-rating spread. Real-PointerEvent browser playtest over local HTTP on a 390x844 phone, an 844x390 landscape phone and a 1280x800 desktop: full first-minute loop (menu → Journey → open board → weave → win) and a complete solve driven tile-by-tile reached screen=win solved=true with missFill=0 badFill=0; one-action retry (Replay / Next) works; errors=0 and offsite-net=0 on every stage; storeBlocked=false and audioReady=true; blocked-localStorage falls back to in-memory with no crash; tab-hidden pauses the timer; resize re-lays menu, board and win screen. Screenshots inspected for portrait, landscape and desktop at menu, play and win. Audio measured offline (OfflineAudioContext, 48 kHz): all nine cases non-silent and zero-clipping — weave, cross, erase, error, line-done, hint and the ambient pad all peak below -13 dBFS, and the worst-case stacked stress (win + 40 fills + line + error) peaks at -5.3 dBFS, proving the softclip + limiter master chain holds every peak under 0 dBFS. Production 2026-10-03 (pi-fleet): /games/glyphloom 200; in-page iframe on a 390x844 touch phone — real CDP touch menu → Journey → Ember Heart → full solve → win → Replay, zero console/page errors, zero offsite requests; Full screen refits the game 332x590 → 390x844 and touch still weaves. Server2 QA PASS (trademark tag removed before publish).
Rate this game:
One vote per game each month.
Play next:
PicreactA React-built Nonogram/Picross. Tap a cell to cycle it through fill, cross, and clear.
0h h1Fill the grid with red and blue: no three in a row, equal counts per line, no two lines alike.
0h n00h h1's companion: every blue number counts exactly the blue dots it can see.
Canal JamA crowded canal lock is jammed solid and the copper barge is boxed in. Every narrowboat only drifts the way it points, so you slide the others aside, clear a channel, and ease the copper barge out through the gate.