Vector Table
- Project
- Self-initiated
- Role
- Simulation / Development
- Platform
- Three.js / JavaScript
- Year
- 2026
(Overview)
A playable pool table and a hands-on physics laboratory. Take a shot, slow time down and follow the maths behind the motion.
Vector Table uses Three.js to render the scene and a custom rigid-sphere engine to simulate the balls. It is more than a table to aim at: you can inspect individual balls, change the model settings and read the impulse calculations behind a collision. The demo below is bundled with this portfolio and runs directly in your browser.
(The idea)
The goal was to make the relationship between a shot and its underlying physics visible. A clean table view is paired with an inspector, playback controls and adjustable parameters, so the same interaction can be played casually or explored as an experiment.
Inside the project
(03)A solver under the felt
The simulation advances in fixed 1/480-second steps. Ball and cushion contacts exchange normal and tangential impulses; cloth friction turns sliding into rolling, and spin evolves through angular velocity and quaternion orientation.
Play with a keyboard or pointer
Aim with the arrows, lock direction with Enter and hold Space to pull back before releasing a shot. Pointer aiming, cue power and a contact-point pad offer another route, with camera switching, undo and re-racking close at hand.
Inspect the moving world
Pause, single-step or slow playback without changing the physics step. The observation deck exposes position, velocity, spin, energy and momentum, while the collision notebook retains the impulse arithmetic from each shot.
(Playable demo)
Take the shot.
Aim with ← / →, lock with Enter, then hold Space and release to shoot. Click inside the game first to use its keyboard controls.
Runs in your browser / All game files included / No account required
(The build)
Vector Table is an educational approximation, not a tournament rules engine. The interesting part is the connection between the playable shot and the model: change the friction or restitution, repeat an experiment and watch the result.
Tools & focus
- Three.js
- Rigid-body physics
- Linear algebra
- Quaternions
- Keyboard controls
- Live telemetry