● onlinetty/0guest@bubucn:~$
utc+08static
PLAYABLE BUILD · 2026.09.01

VIBE MAHJONG
JADE TILE LOUNGE

A complete four-seat Sichuan blood-battle table in the browser. Read the wall, build the hand, call Peng or Gang, and keep playing after the first winner until the round is settled.

Take a seat live production build · mouse + touch
Vibe Mahjong 3D table, hand, and tile wall
PLAY THE TABLE

Tap Start, then tap a tile once to select it and again to discard. Use the on-table buttons for Peng, Gang, Hu, Zimo, or Pass. Fullscreen is recommended.

playable

MOUSE / TOUCH · TAP a tile to select · TAP again to discard · on-table action buttons · menu button to pause or mute

01 — the table contract

108 tiles.
No hidden shortcuts.

The deck uses the 27 numbered faces across characters, bamboo, and dots, four copies each—no winds, flowers, or Chow. One-fan minimum scoring covers Pinghu, Seven Pairs, Pure One Suit, All Pungs, and self-draw bonuses.

The deterministic core owns dealing, turns, claims, scoring, and tap geometry. Three AI seats choose from the same visible state, while a seed can replay the same wall and decision sequence for QA.

02 — reading the room

The hand stays legible.
The table stays alive.

The newly drawn tile sits apart from the sorted hand, the wall disappears as tiles are dealt, and every discard remains face-up in the correct river. Peng, Gang, Hu, and Ting prompts sit over the table instead of pulling play into a separate screen.

The jade lounge keeps the palette quiet—ivory tile bodies, restrained brass, soft particles, and short positional cues—so the changing hand and claim state remain the loudest information.

Vibe Mahjong self-draw prompt and table state
A self-draw decision stays in the same table view: the winning tile, claim state, opponents, remaining wall, and scoring choice remain visible together.
03 — what shipped

A full round.
One tap at a time.

The production build is a zero-runtime-dependency Three.js game with a deterministic rules engine, three AI opponents, authored GLB table and tile assets, file-backed sound effects, and one pointer-first control path shared by desktop and touch devices.

  • Four-player Sichuan blood-battle rules with Peng, exposed and concealed Gang, Hu, and Zimo
  • Deterministic seed, snapshot, event, scoring, and AI flow
  • Two-tap discard interaction with shared render and hit geometry
  • 1280×720 responsive WebGL table with fullscreen mouse and touch play
  • 24 core tests plus a live production discard-and-river smoke

Checked on 2026-09-01 against the private working tree based on commit 68a80eb. The exact 43-file runtime is recorded by manifest SHA-256 9d6b5a4bf0f0 and hosted directly inside Bubu Studio. Three.js is vendored under the MIT license.