pooltool.interact

An endpoint for classes that enable interaction.

Classes

class Game(config=ShowBaseConfig(window_type='onscreen', window_size=None, fb_prop=None, monitor=False))[source]

This class runs the pooltool application

Base Classes:

Interface

Methods:

attach_system(system: System) None[source]
attach_ruleset(ruleset: Ruleset) None[source]
start()[source]

Functions

show(*args, **kwargs)[source]

Opens the interactive interface for one or more shots.

Important

For instructions on how to use the interactive interface, see The Interface.

Parameters:
  • shot_or_shots

    The shot or collection of shots to visualize. This can be a single pooltool.system.System object or a pooltool.system.MultiSystem object containing multiple systems.

    Note

    If a multisystem is passed, the systems can be scrolled through by pressing n (next) and p (previous). When using show(), press Enter to toggle parallel visualization mode where all systems play simultaneously with reduced opacity except the active one. In parallel mode, use n and p to change which system has full opacity. Note that parallel visualization is only available in show() and not when playing the game through the CLI run-pooltool.

  • title

    The title to display in the visualization. Defaults to an empty string.

  • camera_state

    The initial camera state that the visualization is rendered with.

Example

This example visualizes a single shot.

>>> import pooltool as pt
>>> system = pt.System.example()

Make sure the shot is simulated, otherwise it will make for a boring visualization:

>>> pt.simulate(system, inplace=True)

Now visualize the shot:

>>> pt.show(system)

(Press escape to exit the interface and continue script execution)