Ukodus Sudoku, engine-first.
Rust engine • iOS • TUI • WASM

Sudoku with teeth.

Ukodus is a Sudoku app built on a shared Rust core: unique puzzles, human-style difficulty ratings, and fast hints. No trackers, no analytics, no weird “engagement” math.

Unique solutions
Human difficulty model
Local data by default
Same engine everywhere

Built like a tool, not a trap.

Fast, readable, and honest: if a puzzle is ambiguous, the generator throws it away and tries again.

Local-first

No analytics. No trackers. Your progress stays on-device (optional Game Center / iCloud).

Difficulty you can feel

The Rust solver simulates human techniques to assign a rating. Generation retries until it matches the requested level.

One engine, many shells

The same core powers iOS, a terminal UI, and a WASM build. Same puzzles. Same rules. Same difficulty model.

Demos

More builds that share the same generator and solver.

Terminal UI demo of Ukodus Sudoku
Terminal UI: keyboard-driven, instant feedback, same Rust core.
cargo run -p sudoku-tui --bin sudoku

wasm-pack build crates/sudoku-wasm --target web --out-dir crates/sudoku-wasm/www/pkg --release
cd crates/sudoku-wasm/www
python3 serve.py 8080

Engine Notes (Rust)

Puzzle generation starts with a full solution, removes givens while preserving uniqueness, then rates the result using a technique-based solver. If the rating is wrong, generation retries.

Generate
  1) Create a fully solved grid
  2) Remove givens (often in symmetric pairs)
  3) After each removal: verify exactly one solution exists
  4) Run the human-style solver to rate difficulty
  5) If the rating doesn't match the requested level: retry