Made By BangMade By Bang
iOS + AndroidFlutterDartHiveMobileiOSAndroid

Lumo — One calm puzzle a day

A daily numberlink puzzle — connect matching dots, fill the grid, keep your streak. Offline, no account, no pressure.

Lumo — One calm puzzle a day

The Challenge

Mobile puzzle games split into two camps.

On one side: Flow Free and Numberlink-style apps — thousands of levels, infinite content, but they collapse into grind and lose the daily habit hook. On the other: Wordle and NYT Connections — one puzzle a day, clear ritual, easy share — but they are word-based, with no spatial logic.

Lumo fills the gap between them: one numberlink puzzle a day, no words, no network, no account, no pressure.

Design Approach

Three principles locked from day one:

  • Whisper, not scream. No screen shake, no white flash, no chromatic aberration. Every feedback animation caps at 400ms (board clear is the one exception — 800–1200ms). Haptic only on success — failure is a soft red tint, nothing more.
  • Offline-first, no account. No backend. No Firebase. No analytics SDK. All progress, streaks, and run history live on the device via Hive. Works on a plane.
  • Cross-platform daily seed. Every player on Earth gets the same Daily Seed each day. Built on a hand-rolled xorshift32 + FNV-1a (not dart:math.Random) to stay deterministic across Dart versions.

How to Play

  1. Draw a path — tap and drag from one dot to its matching pair, through empty cells.
  2. Fill every cell — no cell may be left blank.
  3. No crossings — paths of different colors cannot cross.
  4. Clear the board — when every pair is connected and the grid is full, you win.
  5. Keep the streak — solve the Daily Seed before midnight (your local time) to extend your streak.

Two Modes

Daily Seed Challenge

One puzzle per day, same seed for every player worldwide. Solve before midnight your time to keep your streak. Share your result as an image via the system share sheet — no leaderboards, no pressure.

Endless Run

After every cleared board, a new one loads instantly. A combo multiplier (×1 → ×8) rewards focused, error-free solving. The run summary shows your best combo and total boards cleared.

How It Compares

CriterionLumoFlow FreeWordleNYT Connections
MechanicNumberlinkNumberlinkWord guessWord grouping
Daily ritualYesNoYesYes
Endless modeYesYesNoNo
Offline-firstYesPartialNoNo
No accountYesYesNoNo
StreakYesNoYesYes
Share imageYesNoYesYes

Tech Highlights

  • Engine — Flutter + raw CustomPainter (no Flame).
  • StateValueNotifier + setState, no Riverpod / BLoC.
  • Persistence — Hive, single persistence branch.
  • Audioflutter_soloud (low-latency, avoids the 80–150ms hit from audioplayers).
  • Puzzle pipeline — Python + Z3 solver. Packs are generated and verified offline before shipping.
  • Accessibility — Okabe-Ito color-blind-safe palette + optional symbols, reduced motion, haptic toggle.

Project Details

ItemValue
RoleSolo dev — design, code, audio, content, marketing
Timeline5–6 weeks full-time to TestFlight
StackFlutter, Dart, Python (puzzle gen), Z3 solver
MonetizationFree with interstitial/rewarded ads · one-time $3.99 Remove Ads IAP
Statusv1.0.0 — TestFlight 2026-Q2
smartphone

Get the App

Experience native performance.

qr_code_2Scan to Download
Or view in browser

Project Details

RoleSolo Developer
Year2026