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.
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.
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