Scripts to generate various types of polyhedra
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://github.com/antiprism/antiprism_python
Alternatively, download the programs you are interested in and copy anti_lib.py 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
Create cyclic rotegrity models, with 1 or 2 layers of rotegrity units
Place maximum radius rings of contacting balls around points on a sphere. Input is a list of coordinates, one set per line.
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 https://groups.google.com/d/msg/geodesichelp/hJ3V9Nfp3kE/nikgoBPSFfwJ . 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.
Related Python programs in external projects
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.