← Home

Billiards Lab Carom physics laboratory

Explore carom (3-cushion) billiards on an interactive 3-D table. Switch between match and large competition sizes, two cloth colours and three table styles.

A 3-D model of a UMB carom table — adjust size, cloth colour, stand and game markings using the toolbar in the top-left of the canvas. No simulation runs here, this is for inspecting the geometry.

Left-click + drag Rotate view Right-click + drag Pan view Mouse wheel Zoom in / out Touch 1 finger = rotate · 2 fingers = zoom
Horizontal0.0°
Vertical0.0°

Carom physics

A detailed walk-through of carom physics is in the works — cloth friction, cushion bounces, elastic ball-ball collisions, spin transfer, cue-tip squirt and swerve. In the meantime, here's the one element that has the biggest visual impact on how the game looks on the table: lighting and shadows.

Tournament-table lighting

The carom federation UMB (Union Mondiale de Billard) lays down precise lighting requirements in its Sport Code. The rules serve two goals: give every player the same conditions regardless of venue, and provide TV broadcasts with consistent images where the shadows under the balls look the same anywhere in the world.

Mandatory parameters (UMB Sport Code)

  • Illuminance on the cloth: at least 500 lux for casual play, 1,500 lux for a club tournament, 2,000+ lux for world championships and TV broadcasts.
  • Lamp height: bottom edge 80–90 cm above the cloth (high enough that a standing player can't see the bulb directly).
  • Position: a row of lamps parallel to the table's long axis, centred over it.
  • Colour temperature: 3,500–5,000 K (today typically 4,000 K neutral white).
  • CRI (Color Rendering Index): ≥ 80 for casual play, ≥ 90 for tournaments — needed for the white / yellow / red balls to read correctly.
  • Uniformity: no dark corners, no hot spots. Every millimetre of cloth equally lit.

Three standard setups

Three lighting variants are commonly seen above competitive tables around the world — our 3-D simulator implements all of them:

  1. Club lighting — 3 pendant lamps. Traditional European carom clubs (Belgium, Netherlands, France). Three metal shades in a row, halogen or LED at 40–60 W equivalent each. The shadow under each ball is three soft overlapping outlines that you can still tell apart — the classic "club" look.
  2. Tournament lighting — 5 pendant lamps (UMB World Cup). The standard at the World Championships and Three-Cushion World Cup. Five shades evenly spaced along the long axis. Higher total illuminance (1,500–2,000 lux) and the five overlapping shadows blur into a near-circular soft halo under each ball — exactly what you see on broadcasts.
  3. LED panel. Modern arenas (Korea since 2020, Vietnam, Turkey). One large diffused panel covers the whole table. Near-shadowless lighting; only a faint contact shadow the size of the ball remains. Reformist; purists argue that carom without strong shadows loses some of the spatial geometry that makes patterns readable.

How the 3-D scene implements it

The three modes in the toolbar swap entirely separate Three.js lighting models. Common to all is just a dim AmbientLight (~0.35) and a weak warm bounce from below (~0.16) — every hard shadow comes from the lamps themselves.

3 and 5 pendant lamps

  • Each lamp is a SpotLight with its own 1024×1024 shadow map.
  • Spread evenly across 70 % of the table length (lamps fall over the playing area, not the rails).
  • Height y = PLAY_H + 0.85 m (UMB-spec 85 cm above the cloth).
  • Cone angle 30°, penumbra 0.45 — soft cone edges.
  • PCF blur radius 4 — overlapping soft shadows produce the characteristic multi-halo effect under the balls.
  • Colour #fff4d6 (~3,800 K, slightly warm neutral — UMB-compliant).
  • Intensity 0.9 ea (3 lamps) / 0.65 ea (5 lamps), totals ≈ 2.0.
  • Visible fixtures: cone shade, glowing bulb beneath it, thin suspension cable.

LED panel

  • One DirectionalLight straight down at y = PLAY_H + 1.0 m.
  • 2048×2048 shadow map with PCF blur radius 8 — simulates diffused area-light.
  • Visible panel mesh: flat box L·0.75 × 0.04 × 0.55 m with high emissiveIntensity — reads as a glowing slab.
  • Shadow under each ball: gentle, near-circular contact shadow with no directional cue.

Auto-hide of visible fixtures

The fixtures (shades, bulbs, cables, LED panel) automatically disappear once the camera tilts above 45° from horizontal. At normal viewing angles the lamps hover above the table for atmosphere, but the moment you switch to top view or drag the camera straight overhead, they vanish so they don't block the playing surface. Shadows don't change — the lights stay active, only their geometry hides.

Cloth markings per discipline

Carom isn't a single game — it's a family of disciplines, each with its own geometric markings on the cloth. The UMB Sport Code specifies exact spot and line positions; our scene honours all of them.

Five spots are common to every carom table, regardless of discipline (UMB Appendix):

  • Top spot — on the long axis, 710 mm from the upper short cushion
  • Centre spot — exactly in the middle of the cloth (1420 mm from short cushion)
  • Bottom spot — on the long axis, 710 mm from the lower short cushion
  • Two starting points — on the bottom starting line, ±182.5 mm from the centre axis (365 mm apart)
  • Libre (free game). Five spots plus four diagonal corner lines that cut off asymmetric right triangles. On the championship match table 2.84×1.42 m each diagonal runs from 710 mm in from the corner along the long cushion to 355 mm in from the corner along the short cushion — i.e. legs of L/4 × W/4 = 710 × 355 mm. This triangle is the balk corner: classical rules limit consecutive caroms inside so the player can't lock up the game in a single corner.
  • Cadre (balkline). Five spots + balklines + anchors. Our scene auto-selects the variant by table size:
    • Match table (2.84×1.42 m) → Cadre 47/2: width 1420 mm split into three equal 473.3 mm bands; length split 473.3 / 1893.4 / 473.3 mm. Total 4 lines, 9 zones, 8 anchors.
    • Large table (3.10×1.55 m) → Cadre 71/2: one longitudinal centre line + two transverse lines at 710 mm from each short cushion. Total 3 lines, 6 zones, 6 anchors.
    Anchors (ancres) are 178 × 178 mm squares at every line-cushion intersection. They are tangent to the cushion and centred on the line — only their three inner sides are drawn (the fourth is the cushion itself). "/2" means at most two consecutive caroms inside one balk before a ball must leave.
  • Three-cushion (3-band). Five spots only, no lines. UMB Sport Code states explicitly that tables for cushion games must not have any balklines or restricted-zone lines drawn — the 3-band rule (cue ball must contact at least three cushions before the second carom) is restrictive enough on its own.

Implementation note: all dimensions match the UMB Carom Billiard Rules Appendix (1 Apr 2025). Libre diagonals, balklines and anchors are drawn in absolute millimetres per the rule book — anchors 178 × 178 mm independent of table size, Cadre 47 lines at 473.3 mm, Cadre 71 lines at 710 mm. Spots (¼ L, ½ L, ¾ L) scale with the table dimensions, as do the legs of the Libre corner triangles (L/4 × W/4). Line thickness is 2 mm — UMB doesn't fix a strict value, but tournament tables are drawn 1–2 mm wide (pencil, chalk, inlaid thread).

📐

Coming soon

Cloth friction, cushion bounces, ball-ball collisions, spin transfer and squirt — the full carom physics chapter unlocks once the simulator itself is implemented.

0 shots run