GALABET FAIR / A path you can read

Plinko.

Every left or right turn comes from a recorded fraction. Follow the ball, inspect a turn and count your way to the final bucket.

Interactive public-seed demonstration

A tethered fox inspects the feeder of a triangular ball machine.

RESULT / BUCKET

08

Turn 1: right
0.56117123
≥ 0.5

8 right turns → bucket 8. Read the calculation ↓

Public inputs. Real calculations.
Each new example advances the nonce and runs @galabet/fair in your browser. Results are reproducible, and the seed is visible to everyone.

Inspect this Plinko result · nonce 42

THIS EXAMPLE / NONCE 42

Keep the inputs.
Check the result.

This demonstration uses a public server seed. Its record checks the calculation; it does not establish when a live service published a commitment.

Client seed
galabet
Fractions consumed
16
Highest cursor
1
Server seed commitment
ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7
Open full verifier ↗

Revealed inputs and complete JSON
{
  "spec": "GFS/1.0",
  "profile": "single-player",
  "game": "plinko",
  "params": {
    "rows": 16
  },
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42,
  "commitment": "ab37723062965715c5e6eeb54816f909a8e787bd3bfaee67a3cc0a3b90707de7",
  "cursor": 1,
  "result": {
    "path": [
      1,
      0,
      0,
      1,
      0,
      1,
      1,
      1,
      0,
      0,
      1,
      1,
      1,
      0,
      0,
      0
    ],
    "bucket": 8
  },
  "at": 0
}
Professor fox inspecting a recorded route through a Plinko board

AN ANIMATION WITH AN AUDIT TRAIL

Find the turn.
Check the route.

When a ball animation and its recorded bucket disagree, the path identifies where they diverged. Select a turn in the demonstration to read the fraction that chose its direction.

↙

Below 0.5

The next step goes left.

↘

0.5 or above

The next step goes right.

REFERENCE PATHR L L R L R R R L L R R R L L L8 right turns → bucket 8

A path of sixteen decisions uses sixteen fractions. The bucket is the number of right turns, indexed from zero. A payout table can then assign a value to that bucket; the path mapper itself does not set the payout.

MANY ROUTES TO THE MIDDLE

The buckets are
not equally likely.

There is only one all-left path. There are many ways to mix left and right turns and reach a middle bucket. That difference explains the shape below, even though every individual turn uses the same 50/50 boundary.

Choose a bucket to inspect its probability and configured value.

BUCKET8
PROBABILITY19.6381%
TABLE MULTIPLIER0.63×
P(bucket 8) = C(16, 8) / 2^16

Calculated table return: 99.0577%, before whole-chip rounding. This is a probability model for independent left/right decisions, not a sample of played rounds.

RENDERER CHECK

If the ball lands in the wrong bucket, start at the first wrong turn.

Keep the returned path as the animation input. A renderer can play slowly, skip motion or recover after a backgrounded tab without asking for a second random result.

For QA, compare the selected turn with its fraction, count the right turns, then read the payout from the same row configuration. Those three checks locate a path error, an index error or a table mismatch.

recorded path → count of right turns → configured bucket value

REFERENCE EXAMPLE / NONCE 42

Give the renderer the recorded path

TypeScript · animation input
import { play } from '@galabet/fair';

// Public example inputs. Never publish an active server seed.
const seeds = {
  "serverSeed": "5c1f7d3e8a2b4c6d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d",
  "clientSeed": "galabet",
  "nonce": 42
};

const { result } = await play({
  game: 'plinko', ...seeds, params: { rows: 16 }
});
if (typeof result !== 'object' || result === null ||
    !('path' in result) || !Array.isArray(result.path) ||
    !('bucket' in result)) {
  throw new Error('Expected a Plinko path and bucket');
}
const path = result.path.map(turn => turn === 0 ? 'L' : 'R');
console.log(path.join(' '));
console.log('bucket', result.bucket);
EXPECTED OUTPUT
R L L R L R R R L L R R R L L L
bucket  8

The shape check narrows the library’s unknown result before the renderer reads its path. This example is valid TypeScript and JavaScript.

PUT THE GALABET PATH TO WORK

From the first bounce
to a replay on another screen.

01 / YOUR BOARD

Animate the returned turns.

Galabet returns the left/right decisions your board needs. Use them to guide the ball through your own artwork, with movement paced by elapsed time so the same drop plays consistently on phones and high-refresh displays.

02 / REPLAY

Return to the same drop.

Keep the path with the round record and replay it when someone revisits a result. After a tab switch, your interface can resume from a saved turn or show the final bucket using those same decisions.

03 / STILL VIEW

Show how the ball got there.

Use the recorded turns to draw a static route for readers who prefer less motion. The highlighted path, right-turn count and bucket label give them the same result to inspect, without waiting for an animation.

Inspect the turns in Galabet’s public example ↗