Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



antiprism_python is a collection of geometry modelling programs written in Python3, and associated with the Antiprism project. The Antiprism programs may be used to view, process or analyse these models.

Some of these programs were written to solve a specific problem, some to solve a general problem, some were written as prototypes. The programs vary in quality, completeness and usefulness. They are all shared under the MIT licence.


Install the whole package with pip3 (or pip if that installs as Python3), either from the PyPI repository:

pip3 install antiprism_python

Or directly from the Git repository:

pip3 install git+git://

Alternatively, download the programs you are interested in and copy into the same directory.


To see the help for a program, run it with -h.

    Create a cyclic polyhedron with one or two bands of equatorial squares, oriented like diamonds.
    Create an antihermaphrodite with equilateral triangles
    Create coordinates for a higher frequency, plane-faced or spherical, icosahedron, octahedron or tetrahedron.
    Create a polyhedron with axial symmetry involving a golden trapezium bow-tie
    Make a variety of lattices and grids using integer coordinates.
    Create a lamella domes. Also, makes square barrel models and multiply-gyroelongated antihermaphrodite models.
    Create a jitterbug model for a general polygon base. The transformation includes, if constructible, models corresponding to the antiprism, snub-antiprisms and gyrobicupola for that base.
    Create a Johnson-based model, from J88, J89, J90, with a general polygon base.
    Pack balls in a sphere. The pack is seeded with two or more balls, then subsequent balls are added one at a time in three point contact in positions chosen by the packing method.
    Make a model with axial symmetry based on a belt of staggered pentagons
    Make a Jacoby-style dome, as described in . Project a tiling of unit-edged triangles, squares or crossed squares (unit edges), at a specified height, onto a unit hemisphere, by gnomonic, stereographic or general point projection.
    Place maximum radius rings of contacting balls around points on a sphere. Input is a list of coordinates, one set per line.
    Create cyclic rotegrity models, with 1 or 2 layers of rotegrity units
    Distribute points on horizontal circles on a sphere (like a disco ball). The sphere is split into equal width bands. Balls with a diameter of this width are distributed equally around each band. The number of balls is either as many points as will fit in the band, or a specified number.
    Distribute num_points (default 20) on a sphere using the algorithm from "Distributing many points on a sphere" by E.B. Saff and A.B.J. Kuijlaars, Mathematical Intelligencer 19.1 (1997) 5--11.
    Distribute points in a spiral on a sphere.
    Create a spirograph pattern.
    Create simple epicycloid string art patterns.
    Make a Temcor-style dome, using the method described in . The base model is a pyramid with a unit edge base polygon at a specified height above the origin. The axis to rotate the plane about passes through the origin and is in the direction of the base polygon mid-edge to the pyramid apex.
    Create a polyhedron which tiles the sphere with congruent triangles.
    Twist two polygons placed on symmetry axes and joined by a vertex
    Twist polygons, of the same type, placed on certain fixed axes and joined by vertices.
    Twist two polygons placed on axes at a specified angle and joined by a vertex.

Complementary Programs

Related Python programs in external projects

  • antitile
    Generates geodesic models by various methods.
    An OFF file viewer with export to PNG and SVG.


Miscellaneous geometry modelling programs written in Python







No releases published


No packages published