Landing for the pooltool blog series

Pooltool is a general purpose billiards simulator crafted specifically for science and engineering (you can also play it as a game).

Its core design principles focus on speed, flexibility, and the ease of visualization and analysis. With an interactive 3D interface, a robust API, and extensive documentation, pooltool aims to be a systemic tool in billiards-related research. Continuously evolving through active maintenance and bolstered by a growing community, this vision for pooltool emphasizes not just its current capabilities, but also its potential for growth and adaptation within billiards simulation.

Much about pooltool has been blogged, particularly during its early days of development.

Blog summaries

Blog #1 - 04/21/2020

  • I do a literature review on the physics of billiards
  • I outline and explain the models I plan to use for each physical process


Blog #2 - 12/20/2020

  • I research different shot evolution algorithms
  • I discover the event-based shot evolution algorithm by Leckie and Greenspan
  • I describe in honestly excruciating detail the ins and outs of the algorithm


Blog #3 - 03/25/2021

  • I start pooltool
  • I develop a prototypical pool simulator that can evolve shots according to a discrete time stepping algorithm, or the event-based algorithm
  • I create a 2D, non-interactive visualization of simulated shots using pygame


Blog #4 - 08/11/2021

  • I graduate to panda3d
  • I render all essential objects and HUD (badly)
  • I implement all foreseeable user controls
  • I defined different game modes that the user can play (8-ball and 9-ball)


Blog #5 - 10/26/2021

  • I learn blender
  • I model a table, balls, a cue, and a room
  • I implement a collision resolver so the cue doesn’t intersect with geometry

drawing drawing

Blog #6 - 05/03/2023

  • A general update with lots of gameplay footage

Blog posts for "pooltool"