polymake is the right software tool for you if you are interested in convex polytopes in one way or
another.
Primarily polymake is a tool for research. In this context it satisfies several needs at the same time.
Firstly, polymake forms a general framework for working with polytopes. You can construct polytopes, check
for certain properties, and visualize them in various ways. You don't need to program in order to use
polymake. Secondly, polymake serves as a workbench: Packages developed by other groups can be
tested and compared. If you develop your own algorithms you can integrate your implementations seemlessly. Thirdly,
experimentation is encouraged, because you can access many algorithms without having to mess with technical details.
These algorithms can be combined freely.
The best way to get acquainted with polymake is to read the tutorial and to try a
couple of examples. The distribution contains programs which
produce polymake descriptions of standard polytopes. Further, you can browse through the examples. If you want to try polymake
without prior installation look at our web demo.
The following ingredients together form polymake.
A file format, which allows to describe polytopes and polyhedra with their geometrical and combinatorial
properties. Every polyhedron in the polymake system is represented by a single ASCII file. This file is
divided into sections. Each section describes one of its properties. The user is welcome to contribute to the standard properties as needed.
A set of rules, which describe the functional dependences among the properties. Each rule contains a piece
of Perl code that implements a particular function.
A user interface engine, which takes as input a file describing a polytope or polyhedron, a set of rules and
some target properties to be obtained. The engine plans a sequence of rules that leads from the description given
to the properties asked for. Then the rules of this sequence are applied one after the other. Finally the user
is given the result. The planning process is rather sophisticated. In particular, it offers ample possibility to
recover from all kinds of errors that might occur during a computation step.
Interfaces to a variety of programs for dealing with polytopes. You can exploit the combined features through
a common interface.
An STL based C++ interface, which allows to incorporate own programs into the polymake system. They can be
kept locally or they can be made public if desired.
The navigation panel to the left suggests the recommended sequence of reading. The first two parts (plus the
section on clients) mainly support the user's point of view while the other parts are more interesting for the
programmer and the administrator who wants to install polymake.
If you want to learn more about polytopes, you might want to browse through our Collection
of Links.
See "about ..." for the list of contributors and polymake references.