Skip to content
Horulabs

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

  1. RoundEast 1, four seats
  2. RecordRon, tsumo or draw
  3. ScoreHan, fu, payment
  4. AdvanceDealer, honba, sticks
  5. FinalStandings with uma
  6. ShareA story card for the group

The next hanchan starts

The table loop from first deal to final standings. Chombo and tobi sit beside it.

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.

BeforeAfter
  1. Paper score sheet

    One-phone scorer

    Four seats, one thumb, an undo and a running log.

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

  3. Mental arithmetic

    Round state handled

    Dealer repeat, honba, riichi sticks, tobi kept on, chombo recorded.

  4. Result lost on refresh

    Local match history

    The game in progress and the last 50 finished matches stay on the phone.

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

  1. Table-speed entry

    Ron, tsumo, exhaustive draw, riichi, honba and chombo with a running log and one-step undo.

  2. A full scoring engine

    The full yaku set including yakuman, dora and ura, fu calculation and limit hands from mangan to yakuman.

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

  4. Round state that holds

    East and South rounds, dealer repeat, honba increments, riichi sticks, tobi kept on, and chombo recorded on the final table.

  5. Two ruling presets

    WRC by default, or the Online preset used by Tenhou, MJS and RC. Uma and starting points follow the chosen table.

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