This tutorial gives an insight into the start of a new application used to treat polyhedral surfaces in R3. To convert existing Wavefront obj files to polymake application surface format we included a simple obj2surf script.

A very simple example: the 3-cube

A polyhedral surface consist of its combinatorial structure given by the FACETS and a GEOMETRIC_REALIZATION. So a file of a cube contains at least the following:

FACETS
{0 4 6 2}
{7 5 1 3}
{5 4 0 1}
{2 6 7 3}
{0 2 3 1}
{6 4 5 7}

GEOMETRIC_REALIZATION
-1 -1 -1
1 -1 -1
-1 1 -1
1 1 -1
-1 -1 1
1 -1 1
-1 1 1
1 1 1

The application polytope deals with the simplest kind of polyhedral surfaces, that is, polyhedral 3-spheres. To convert a polytope to a surface use the client poly2surf:

> poly2surf my_surf.surf my_poly.poly

To verify that this really was a sphere you may calculate its EULER_CHARACTERISTIC and GENUS

> polymake my_surf.surf EULER_CHARACTERISTIC GENUS
EULER_CHARACTERISTIC
2

GENUS
0

A simple example: A quad surface

An equivelar quad surface

The following example is an equivelar surface as described by McMullen, Schulz, and Wills, and later by Joswig & Schröder contained in the Schlegel diagram of neighborly cubical polytopes. The graph of the surface is the graph of a five dimensional cube. We may calculate the GENUS of the surface and have a look at the MORSE_MATCHING_CRITICAL_FACE_VECTOR. We observe that the MORSE_MATCHING is optimal, since it has exactly one critical node, 2×GENUS critical edges, and one critical two dimensional cell:

> polymake quad_surf.surf GENUS MORSE_MATCHING_CRITICAL_FACE_VECTOR

GENUS
5

MORSE_MATCHING_CRITICAL_FACE_VECTOR
1 10 1

To verify that this really is an equivelar surface of type (4,q), that is, all polygons are quadrilaterals and all vertices have the same degree, we ask polymake for the POLYGON_SIZES and VERTEX_SIZES:

> polymake quad_surf.surf POLYGON_SIZES VERTEX_SIZES

POLYGON_SIZES
{ (4 40) }

VERTEX_SIZES
{ (5 32) }

We see that all 40 polygons are quadrilaterals and all the vertices have degree five. Similarly to the application topaz there are several visualization methods related to the MORSE_MATCHING. The corresponding polymake commands are:

> polymake quad_surf.surf "VISUAL(FacetStyle => 'transparency .5')->MORSE_MATCHING->FACES(MORSE_MATCHING_CRITICAL_FACES)"
> polymake quad_surf.surf "VISUAL_FACE_LATTICE->MORSE_MATCHING->FACES(MORSE_MATCHING_CRITICAL_FACES)"
An equivelar surface with a Morse matching and its critical cells The face lattice of the equivelar surface with Morse matching and critical
cells