Flat surfaces in Sage

Introduction

For general mathematical reference see the Flat surfaces wiki. A flat surface can be seen either

This page is aimed as a roadmap for the implementation of various algorithms related to flat surfaces and more generally geometry/combinatorics/dynamics of surfaces (mapping class group, train tracks, pseudo-Anosov dynamics, ...).

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 groups

They are needed from two points of view: the group of the surface itself and the flat surface's stabilizer under the action of SL(2,R) or PSL(2,R). There must be some software for dealing with surface groups. 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 packages/worksheets to deal with Kleinian and Fuchsian groups, hyperbolic tessellations, etc.