overview · features · requirements · documentation · screenshots · downloads · mailing lists · bugs · author · license


Billiards is a free cue sports simulator. It aims for physical accuracy and simplicity and should hopefully be useful for practicing billiards on your own and against your friends when a real pool table is not available. Currently both a pool table and a billiards table (that is with and without pockets) are implemented allowing you to play eightball, nineball and carom billiards games. Adding other kinds of games is trivial provided that they can be played on the existing tables (snooker for example requires some more work). Let me know if your favorite game is missing. Also be sure to read the revised manual for version 0.4 for more information on playing and configuring Billiards.

Billiards is written on top of Techne. Have a look at Techne's homepage for more information. While you're out be sure to check out Aviation and Airrace two more fine Techne products.


I generally dislike the common practice of summing up a piece of software into a list of ‘features’. It usually is merely an attempt to market it not in terms of quality (how well it fulfills its purpose) but instead in terms of quantity (how many bells and whistles it sports). This in turn tends to produce bad software development habits.

But then again feature lists are useful as quick summaries of a program, to check if some particular function you need is supported. With this purpose in mind Billiards:

Billiards nevertheless still lacks:


In terms of hardware you'll generally need a GPU with decent OpenGL support. It should support GLSL shaders (the GL_ARB_shader_objects, GL_ARB_vertex_shader and GL_ARB_shader_objects extensions) framebuffer objects (GL_EXT_framebuffer_object) and vertex buffer objects (GL_ARB_vertex_buffer_object). These capabilities are common even among cheap and relatively old GPUs so that I consider it reasonable to use them as a bare minimum. (Alas, supporting old hardware through multiple code paths is a nightmare and Billiards, or rather the system it runs on, is already complicated enough for one person to handle).

There's also a plain-GL cel shaded codepath which doesn't use the GLSL and framebuffer object extensions (and it can be made not to use vertex buffer objects as well) and this is the only way to go for ATI users I'm afraid (let me know if I'm mistaken). If someone can help in getting the GLSL shaders to run on ATI hardware let me know.

In terms of software you must have a working installation of Techne on your computer before installing Billiards. You can get the sources for Techne at its project page which you can find here. Apart from that Billiards also requires the Lua 5.1 compiler.


The manual can be found here in PDF format and here as a single web page. You can also build the manual from source when compiling the game. See the installation instructions. It has been freshly revised for version 0.4 so be sure to read it.

It would be cool if we could also have training material with instructions on how to play the game and with shots the player can practice on here.


This is the obligatory eyecandy section. The first two shots are taken from an eightball game with full shading. The third is a shot from a carom game and the last one shows what the cel-shaded version looks like. It may not be as fancy but at least it should run on all hardware with any kind of driver support.

Billiards also creates neat SVG shot diagrams for its graphical interface. These may be of use to some people so I'm including a couple of sample images here.


The latest release of Billiards is 0.4.1, released on May the 22nd 2012. This is mostly a port of Billiards to Techne 0.2.3 so no new features have been added but the GUI has been reworked a bit for better integration and some bugs have been squished.

Filename Size Description
billiards-0.4.1.tar.gz 2.9M Source tarball
billiards_0.4.1-1_amd64.deb 2.1M Debian unstable/sid (and Ubuntu Precise Pangolin) package
billiards_0.4.1-1_i386.deb 2.1M Debian unstable/sid (and Ubuntu Precise Pangolin) package

Older versions can be found here.

Other distributions

Apart from these, and thanks to the effort of their respective packagers Billiards is available in packaged form for various distributions including Arch Linux, Gentoo and Fedora.

Mailing Lists

Discussion on the various matters concerning the development and usage of Billiards can be carried out in the billiards-devel and billiards-users mailing lists respectively. Please use these instead of my personal e-mail address for matters that might potentially be of interest to other users as well. Also remember to use the support tracker if you're having trouble getting the game to compile and run properly.


If you're having trouble compiling, installing or running the game please submit a bug report using the support tracker at the project's home page which can be found by following this link. Also please search or browse the tracker first to make sure your bug hasn't already been submitted by another user.

I would also be interested in other suggestions or complaints about the game, particularly regarding the physical model. I'm not a particularly experienced billiards player so the current behavior looks relatively realistic to me (apart from the inability to perform jump shots). If you have any objections please let me know about them.


Dimitris Papavasiliou


Billiards is released under the terms of the GNU General Public License.

The manual is distributed under the terms of the GNU Free Documentation License. See the appendix for details.

All Lua scripts found in the scripts/imagery and scripts/meshes directories and their subdirectories are image data or geometry data and are distributed under the terms of the GNU Free Documentation License. See the appendix in the manual for details.