SURIMA Compass
One phone scores the whole hanchan.
The Compass keeps score at a live table: rounds, riichi sticks, honba and chombo, then a final table with uma. It can also build the winning hand itself.
How a hanchan runs now
6 steps
- RoundEast 1, four seats
- RecordRon, tsumo or draw
- ScoreHan, fu, payment
- AdvanceDealer, honba, sticks
- FinalStandings with uma
- ShareA story card for the group
The next hanchan starts
One slip and the final table is wrong.
At the table, someone keeps score on paper: four scores per round, riichi sticks, honba, dealer repeats. It works until a number is written down wrong, and then nobody can reconstruct the round.
Score apps usually ask for han and fu and stop there. The hard part — working out han and fu from the hand — is left to the player, which is exactly the part beginners get wrong.
A finished game disappears when the phone locks or the page refreshes, and the story of the night is lost with it.
The scorer and the engine are one tool.
Most tools do one of the two: keep the table score, or work out a hand. The Compass treats both as equally defining.
Paper score sheet
One-phone scorer
Four seats, one thumb, an undo and a running log.
Han and fu typed in
The hand built from tiles
Yaku, han and fu are computed from the tiles, with ron tile and called melds marked.
Mental arithmetic
Round state handled
Dealer repeat, honba, riichi sticks, tobi kept on, chombo recorded.
Result lost on refresh
Local match history
The game in progress and the last 50 finished matches stay on the phone.
A score nobody sees
A shareable card
Final standings or a winning hand, rendered as a 1080×1920 story card.
Table speed first, engine-accurate always.
The core flow is one-handed, in fullscreen, at a live table. The scoring it shows has to be good enough to settle the table.
Table-speed entry
Ron, tsumo, exhaustive draw, riichi, honba and chombo with a running log and one-step undo.
A full scoring engine
The full yaku set including yakuman, dora and ura, fu calculation and limit hands from mangan to yakuman.
Two input methods
Han + Fu for speed, or Full hand to build the tiles and let the engine compute yaku, han and fu. Switchable mid-game.
Round state that holds
East and South rounds, dealer repeat, honba increments, riichi sticks, tobi kept on, and chombo recorded on the final table.
Two ruling presets
WRC by default, or the Online preset used by Tenhou, MJS and RC. Uma and starting points follow the chosen table.
Cards worth sharing
Standings and winning-hand story cards with a QR code back to the app. Photos stay on the device.
No build step. No backend for scoring.
The scoring app is static and runs from any static host. The only backend is an optional, opt-in contribution endpoint for the scanner beta.
- Static HTML · JavaScript
- One page, served from any static host, no build step.
- Inlined scoring engine
- The Academy engine ported to plain JavaScript, with the same fixtures.
- localStorage · IndexedDB
- The game in progress, match history and reviewed scanner crops.
- Vercel
- Static hosting, plus one optional function for opt-in scanner contributions.
The score is settled at the table.
One-phone table scoring: final scores worked out, match history kept on the device. A player can score a whole hanchan without paper or mental arithmetic.
- The engine computes the hand, not only the running total.
- Round, dealer and honba advance from the rules the player can see.
- A refresh does not lose the game in progress.
- The final table leaves the phone as a card the community can read.

Client
SURIMA
SURIMA is an Indonesian riichi mahjong community based in Surabaya. The Compass is the community's live scoring app at compass.surima.id, and it shares the Academy's scoring engine.
Send one workflow. We'll look at it with you.
Tell us the task that costs your team the most hours, and how it runs.
The first conversation is free, with no commitment.