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.

bipartite <file> <graph_section> <bipartite_section> [ <signature_section> ]
Determine whether an undirected graph is bipartite.
connected <file> <graph_section> <connected_section>
Determine whether an undirected graph is connected.
connected_comp <file> <graph_section> <connected_comp_section>
Computes the connected components. The connected components are encoded by their node sets.
connectivity <file> <graph_section> <connectivity_section>
Compute the connectivity of a given graph using the Ford-Fulkerson flow algorithm.
diameter <file> <graph_section> <diameter_section>
Compute the diameter of an undirected graph.
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.
greedy_coloring <file> <graph_section> <coloring_section>
Computes a coloring.
hd_embedder <file> <hd_section> <embedding_section> <label_width_section> { -primal | -dual }
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.
induced_subgraph <file> <graph_section> <subgraph_nodes_section> <subgraph_section> [ -nol ]
Compute the subgraph induced by a given set of nodes.
max_cliques <file> <max_cliques_section> <graph_section>
Computes all inclusion maximal cliques of a graph.
se_interactive <file.poly> <port> [ -objective <section> -read-edge-weights -seed <s> -max-iterations <n> {-eps,-scale,-balance,-viscosity,-inertion,-objective-factor} <x> ... ]
Driver for interactive graph visualization
spring_embedder <file> <graph_section> <embedding_section>
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 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 objective.
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. objective-factor changes the relative influence of the linear objective function on the embedding. eps controls how far a point may move, to be considered standing still.
triangle_free <file> <graph_section> <triangle_free_section>
Determine whether a (possibly directed) graph has triangles or not.
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.
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