surface-dynamics: Dynamics with Surfaces#
The surface-dynamics package for SageMath provides functionality related to interval exchange transformations, translation surfaces, mapping classes and more. It is based on SageMath and relies heavily on:
GMP for arbitrary precision arithmetic
PARI/GP for number field computations
GAP for finite groups representation and permutation groups
PPL (Parma Polyhedra Library) and LattE (Lattice point Enumeration) for polytope computations
The development of surface-dynamics is coordinated on GitHub at flatsurf/surface-dynamics.
Installation#
The preferred way to install software should be to use your package manager
(e.g. apt
on Debian or Ubuntu, pacman
on Arch Linux, brew
on macOS,
etc). However, as of this writing, surface-dynamics has not been picked up by any
of the major distributions yet.
We therefore recommend to install the entire flatsurf suite from the sage-flatsurf Releases Page.
Detailed installation instructions:
Install the flatsurf suite with the pixi tarball for Linux and macOS (recommended)
Install the flatsurf suite with the installer for Windows (recommended)
If you are planning to work on the surface-dynamics source code, you can also build surface-dynamics from source. For this, please have a look at our Developer’s Guide.
A Tour of surface-dynamics#
Demos of some of the capabilities of surface-dynamics:
Module Reference#
The surface-dynamics source code is split into several Python modules. The
links below lead to the documentation for these modules with more usage
examples and the source code for all the classes and functions implemented in
surface-dynamics. (Note that you can also access this documentation from an
interactive SageMath session with ?
and ??
.)
Citation#
To cite surface-dynamics, please follow the instructions on our zenodo website.
See our References for everything that is cited in this documentation.