🏆
You win!
Setup & controls
🎯
Inning 1 Shot 1  
Setup & controls
🎯
Inning 1 Shot 1
Loading...

Aim View

Power: —

Cue Ball Contact Point

Neutral
Click/drag · Ctrl+↑↓←→

Practice Positions

Pos 1
Pos 2
Pos 3
💾 Export · 📂 Import · localStorage
Recall restores aim & spin

📖 How to Play — Quick Start

New here? These are the basics. When you want the full rules, the Vs AI match guide, or the physics, open ℹ Info from the ⚙ menu.

Pick a game

Use the tabs under the table: Carambole or Dansk Kegel. In Carambole you can pick the Free or 3-cushion form in the panel below.

Aim

Drag the cue ball to aim. The faint ghost ball shows where it will strike. Use the ‹ › buttons (top right) to fine-tune the angle.

Set the power

Adjust with ↑ / ↓ or the power bar (top right). Tap ±1% for fine steps. The power shows in the Aim View.

Add spin (optional)

Click or drag inside the Cue Ball Contact Point circle: top/bottom for follow/draw, sides for swerve. Centre = neutral.

Read the paths

Toggle 📍 Paths. Cyan dots = sliding, yellow = rolling. Dot spacing shows speed.

Shoot

Press ▶ Shoot (or Space). The result and your score appear in the scoreboard below the table.

Save a layout

Use Practice Positions (right): Save/Recall a position, or 💾/📂 export/import a file to share or print as an exercise.

Play the AI

Press 🤖 Vs AI to start a match against the engine. Full details are in ℹ Info → Vs AI Match.

💡 Tip: 💡 Suggest shows the engine's recommended shot from the current layout — a quick way to learn lines and spin.

ℹ Information & Help — CaromSim Beta 8.13

Carambole rules

  • Cue ball: alternates between White and Yellow each inning.
  • Carom: cue ball must hit both object balls and touch at least one cushion. +1 point.
  • Free form: any carom with ≥1 cushion scores.
  • 3-cushion: cue ball must touch ≥3 cushions before reaching the second object ball.
  • Carom without the required cushions = 0 points.
  • Red ball = fixed object ball — never used as cue ball.

Scoring — Carambole

Valid carom+1 point
Carom, cushions short0 — shot counts
Miss0 — turn passes
New InningInning pts reset, cue ball switches

Dansk Kegel rules

  • Red ball = Cue ball. White + Yellow = Object balls.
  • All 5 pins set before each shot. Green blink = scoring pin, red blink = foul pin.
  • The pin on the cue ball's spot is not set (cannot stand under the cue ball).
  • Warning: 2 consecutive True Reds without a pin → the next True Red without a pin is a Foul.

Scoring — Dansk Kegel

True Red (carom)+4p
Pin (white/yellow ball)+2p per pin
True Red + pin(s)4p + 2p/pin
Cue ball knocks a pinFoul → New inning
0 points / no cushionNew inning
3rd True Red without pinFoul → New inning

Starting a match

  • Pick a mode, set the Distance (target points) for You and the AI in the panel, then press 🤖 Vs AI.
  • You open: White cue ball in Carambole, Red cue ball in Dansk Kegel.
  • Score → you keep shooting. Miss → the turn passes to the other player.
  • First player to reach the Distance wins — a summary with averages is shown.
  • The active player's row glows so you always see whose turn it is.

The AI's turn & getting help

  • The AI thinks, draws its planned shot, then waits. Press ▶ Continue (or tap the table) to fire it.
  • A short guard stops a stray tap from skipping the drawn lines before you have seen them.
  • 💡 Suggest (on your turn): shows the engine's recommended shot from the current layout — great for learning lines and spin.
  • Difficulty: the AI aims with a small variation, prefers calm, controlled shots, and plays a safety when no score is available.
  • The search runs in the background, so the table stays responsive while it thinks.

Prediction paths & spin

  • ● Cyan dots = sliding phase: the contact point slides on the cloth; friction builds toward natural rolling.
  • ● Yellow dots = rolling phase: the ball rolls freely; side spin curves the path.
  • Dot spacing = speed (close = slow, spread = fast). Outer ring = ball colour.
  • Contact point: top/bottom = follow/draw, sides = swerve, centre = neutral.

Practice Positions (💾 📂)

  • Save / Recall: store & restore ball positions, aim and spin (localStorage).
  • 💾 Export / 📂 Import: a .json file you can share or print as an exercise card.

Physics model

  • Han 2005: sliding → rolling via friction integration.
  • Side spin (wz): curves the path during rolling (Coriolis).
  • Top/back (ws): modulates rolling deceleration.
  • Cushion e=0.86, tangential friction, spin coupling.
  • Scale: 952 px = 2840 mm → 1 px ≈ 2.98 mm. Substeps: 15/frame.

About

CaromSim Pro Beta 8.13 — educational tool for Carambole & Dansk Kegel. Self-contained HTML, no external dependencies.

  • Han, B. (2005). Spin and the Coriolis Effect in Billiards.
  • Alciatore, D.G. — Illustrated Principles of Pool and Billiards.
  • Leffringhausen, W. (1966). Billard.

Keyboard (desktop)

↑ / ↓Power ±5%
Shift+↑↓Power ±1% (fine)
Ctrl+↑↓←→Move contact point
Shift+Ctrl+arrowsFine contact point
Shift+dragMove any ball freely
Space / EnterShoot / Continue
‹ › buttonsRotate aim ±0.125°
EscClose panels

Touch / Tablet

Drag cue ballAim shot
Long-press (0.5 s)Move any ball freely
± / ±1% buttonToggle coarse/fine power
‹ › buttonsRotate aim
▶ Shoot / tap tableFire / Continue (AI)