DynamicalBilliards v3.0 Logo: The Julia billiard

A Julia package for dynamical billiard systems in two dimensions. The goals of the package is to provide a flexible and intuitive framework for fast implementation of billiard systems of arbitrary construction.

CI codecov citation

If you have used this package for research that resulted in a publication, please be kind enough to cite the papers listed in the CITATION.bib file.


Please see the documentation for list of features, tutorials and installation instructions.


This package is mainly developed by George Datseris. However, this development would not have been possible without significant help from other people:

  1. Lukas Hupe(@lhupe) Contributed the lyapunov spectrum calculation for magnetic propagation, implemented the boundary map function and did other contributions in bringing this package to version 2.0 (see here).
  2. Diego Tapias (@dapias) Contributed the lyapunov spectrum calculation method for straight propagation.
  3. David. P. Sanders (@dpsanders) and Ragnar Fleischmann contributed in fruitful discussions about the programming and physics of Billiard systems all-around.
  4. Christopher Rackauckas (@ChrisRackauckas) helped set-up the continuous integration, testing, documentation publishing and all around package development-related concepts.
  5. Tony Kelman (@tkelman) helped significantly in the package publication process, especially in making it work correctly without destroying METADATA.jl.