Pooltool: a sandbox billiards game/tool

logo

Overview

  • pooltool is an open source sandbox game for pool/billiards developed for gamers and researchers alike
  • gamers can play different styles of pool (8-ball, 9-ball, etc.) in a 3D-rendered environment that emphasizes physical realism
  • researchers interested in pool physics, game theory, camera-projector systems, AI, robotics, and other billiards-related research topics can efficiently simulate shots using pooltool’s API, experiment with different physics models and shot evolution algorithms, and visualize programmatically-defined shots

Links

Implementation

  • Shots are evolved analytically, without the need for discrete time stepping (Leckie & Greenspan, 2005). This means that instead of collisions being detected, they are instead predicted, allowing the system to be advanced directly to the next collision/event. I discuss the algorithm extensively in this blog post
  • All physical interactions (ball-cloth, ball-ball interactions, ball-cloth, etc) are described in this blog post

Updates

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

blog1

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

blog1

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

blog3

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)

blog4

What’s next?

  • Learning Blender to make the graphics more appealing
6 Likes

This is pretty cool! And the physics do look quite well-handled, indeed! :slight_smile:

Nice work, I do think! :slight_smile:

1 Like

Great work, especially the attention to detail that you’re undertaking.

1 Like

Nice work, and impressive dedication to showing the math behind the body interactions. I also appreciate the YouTube video, it’s nice to see the original dev play around with a Panda3D game.

1 Like