Flat surfaces in Sage

Introduction

For general mathematic references see the Flat surfaces wiki. A flat surface can be seen either

This page is aimed to be a roadmap for the implementations of various algorithm related to flat surfaces and more generally geometry/combinatoric/dynamic of surfaces (Mapping class group, train track, pseudo-Anosov dynamic, ...). For the moment we share the sage-combinat repository with mercurial for the development.

For examples using the algorithm developed here see dynamics/examples.

This project take part in the wider dynamics development.

General architecture

For now the main structure is as follows

Where do we put

Roadmap

Port of other programs

Different representations/implementations for flat surfaces

Needed generic methods

Surface Group

They are needed from two point of vue: the group of the surface itself and its stabilizer under SL(2,R) or PSL(2,R) action. There must be some software for dealing with surface group. We need to look at

Hyperbolic geometry

This part is roughly implemented in trac #9439

The Experimental Geometry Lab (university of Maryland) published a lot of Mathematica package/worksheets to deal with Kleinian adn Fuchsian groups, hyperbolic tessellations, etc...