There are various means to obtain new objects without having to type the data in a new file manually. Application surface defines many standard construction and transformation algorithms. Unfortunately, due to the preliminary state of `polymake` reconstruction, we can't supply a uniform, comfortable function-like interface to all of them. At the moment you still have to call the construction clients as separate programs from the shell command line.

## Producing a polyhedral surface from a polytope

poly2surf <out_file> <in_file>
Convert a three dimensional polytope to a polyhedral surface (sphere).

## Clients for internal use

These clients are called by `polymake` automatically via the rules. They compute some new properties of an object. You will hardly ever need to call them directly. They are documented here first of all for the sake of completeness.

triangle_free <file> <graph_section> <triangle_free_section>
Determine whether a (possibly directed) graph has triangles or not.
connected <file> <graph_section> <connected_section>
Determine whether an undirected graph is connected.
induced_subgraph <file> <graph_section> <subgraph_nodes_section> <subgraph_section> [ -nol ] [ -compl ]
Compute the subgraph induced by a given set of nodes.
The nodes are labeled with the original node indices, unless nol option is specified. If compl option is specified, the complement of the subgraph_nodes_section is used to select the subgraph nodes.
se_interactive <file> <port> [ -z-ordering <objective_section> -read-edge-weights -seed <s> -max-iterations <n> ] [ {-scale,-balance,-viscosity,-inertion,-eps,-z-factor} <x> ... ]
Driver for interactive graph visualization
greedy_coloring <file> <graph_section> <coloring_section>
Computes a coloring.
max_cliques <file> <max_cliques_section> <graph_section>
Computes all inclusion maximal cliques of a graph.
isomorphic_graphs <file1> <graph_section1> <file2> <graph_section2> [ <result_section> ]
Determine whether two given graphs are isomorphic.
The answer is written as a boolean property result_section of the first file. If the result section is omitted, prints the node permutation to the standard output.
connectivity <file> <graph_section> <connectivity_section>
Compute the connectivity of a given graph using the Ford-Fulkerson flow algorithm.
Responsible author: Nikolaus Witte
connected_comp <file> <graph_section> <connected_comp_section>
Computes the connected components. The connected components are encoded by their node sets.
hd_embedder <file> <hd_section> <embedding_section> <label_width_section> { -primal | -dual } [ -seed <s> -eps <x> ]
Create an embedding of the Hasse diagram as a layered graph.
The embedding algorithm tries to minimize the weighted sum of squares of edge lengths, starting from a random distribution. The weights are relative to the fatness of the layers.
The y-space between the layers is constant; in the -primal mode the whole-lattice node is placed on the top, in the -dual mode it is the empty node.
label_width_section should contain estimates (better upper bounds) of the label width of each node. The computed layout guarantees that the distances between the nodes in a layer are at least equal to the widest label in this layer.
-eps is the calculation accuracy.
option -seed effects the initial placement of the nodes.
bipartite <file> <graph_section> <bipartite_section> [ <signature_section> ]
Determine whether an undirected graph is bipartite.
Responsible author: Niko Witte
edge_lengths <file> <coords_section> <graph_section> <result_section> [ -redirect ]
Compute the lenghts of all edges of a given graph with assigned coordinates for the nodes. If the -redirect option is set then it is assumed that the graph has indices as node attributes which point into the coordinate section.
spring_embedder <file> <graph_section> <embedding_section> [ -z-ordering <objective_section> -read-edge-weights -seed <s> -max-iterations <n> ] [ {-scale,-balance,-viscosity,-inertion,-eps,-z-factor} <x> ... ]
Produce a 3-d embedding for the graph using the spring embedding algorithm along the lines of

> Thomas Fruchtermann and Edward Reingold:
> Graph Drawing by Force-directed Placement.
> Software Practice and Experience Vol. 21, 1129-1164 (1992), no. 11

The initial node coordinates are chosen randomly on the unit sphere. The optional parameter -seed controls the initial setting.
In the standard setting, the embedding algorithm tries to stretch all edges to the same length. If you prefer different edge lengths, store them as the edge attributes of the input graph, and put the -read-edge-weights option on the command line.
If the nodes already have an embedding in Rd and there is a linear or abstract objective function defined in the coordinate space, it can be used to rearrange the 3-d embedding along the z-axis corresponding to the objective function growth. This mode is enabled with option -z-ordering.
The embedding algorithm can be fine-tuned with several "black magic" options. All of them take double values, which are multiplied with internal initial settings, so all defaults are equal to 1.
-scale enlarges the ideal edge length. -balance changes the balance between the edge contraction and node repulsion forces. -inertion and -viscosity affects how the nodes are moved, and can be used to restrain oscillations. -z-factor changes the relative influence of the objective function on the embedding. -eps controls how far a point may move, to be considered standing still.
diameter <file> <graph_section> <diameter_section>
Compute the diameter of an undirected graph.
rotation_scheme <file>
Calculates the rotation of all vertices, i.e. the neighbors of each vertex in cyclic order, in a way, that is compatible with the orientation
Contributed by Dagmar Timmreck
neighbors_cyclic <file> { -primal | -dual }
Convert the combinatorial description of a surface to the form suitable for visualization tools.
The rows of the vertex-facet incidence and the facet neighborhood matrices are rearranged in the facet boundary counterclockwise traversal order, if seen from the outside of the polytope.
In dual mode, the notions of facets and vertices are interchanged.