antiprism_python icon indicating copy to clipboard operation
antiprism_python copied to clipboard

Miscellaneous geometry modelling programs written in Python

README

antiprism_python

antiprism_python <https://github.com/antiprism/antiprism_python/>_ is a collection of geometry modelling programs written in Python3, and associated with the Antiprism <http://www.antiprism.com>_ 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


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 <https://github.com/antiprism/antiprism_python/blob/master/anti_lib.py>`_
into the same directory.

Programs

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

  • barrel.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/barrel.py>_ Create a cyclic polyhedron with one or two bands of equatorial squares, oriented like diamonds.
  • eq_antherm.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/eq_antherm.py>_ Create an antihermaphrodite with equilateral triangles
  • geodesic.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/geodesic.py>_ Create coordinates for a higher frequency, plane-faced or spherical, icosahedron, octahedron or tetrahedron.
  • gold_bowtie.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/gold_bowtie.py>_ Create a polyhedron with axial symmetry involving a golden trapezium bow-tie
  • lat_grid.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/lat_grid.py>_ Make a variety of lattices and grids using integer coordinates.
  • lamella.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/lamella.py>_ Create a lamella domes. Also, makes square barrel models and multiply-gyroelongated antihermaphrodite models.
  • njitterbug.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/njitterbug.py>_ 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.
  • njohnson.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/njohnson.py>_ Create a Johnson-based model, from J88, J89, J90, with a general polygon base.
  • packer.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/packer.py>_ 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.
  • pentabelt.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/pentabelt.py>_ Make a model with axial symmetry based on a belt of staggered pentagons
  • proj_dome.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/proj_dome.py>_ Make a Jacoby-style dome, as described in http://www.google.com/patents/US7900405 . 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.
  • ring_place.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/ring_place.py>_ Place maximum radius rings of contacting balls around points on a sphere. Input is a list of coordinates, one set per line.
  • rotegrity_models.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/rotegrity_models.py>_ Create cyclic rotegrity models, with 1 or 2 layers of rotegrity units
  • sph_circles.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/sph_circles.py>_ 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.
  • sph_saff.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/sph_saff.py>_ 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.
  • sph_spiral.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/sph_spiral.py>_ Distribute points in a spiral on a sphere.
  • spiro.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/spiro.py>_ Create a spirograph pattern.
  • str_art.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/str_art.py>_ Create simple epicycloid string art patterns.
  • temcor_dome.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/temcor_dome.py>_ 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.
  • tri_tiling.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/tri_tiling.py>_ Create a polyhedron which tiles the sphere with congruent triangles.
  • twister.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/twister.py>_ Twist two polygons placed on symmetry axes and joined by a vertex
  • twister_rhomb.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/twister_rhomb.py>_ Twist polygons, of the same type, placed on certain fixed axes and joined by vertices.
  • twister_test.py <https://github.com/antiprism/antiprism_python/blob/master/anti_lib_progs/twister_test.py>_ Twist two polygons placed on axes at a specified angle and joined by a vertex.

Complementary Programs


Related Python programs in external projects

- `antitile <https://github.com/brsr/antitile>`_
   Generates geodesic models by various methods.
- `view_off.py <https://github.com/brsr/antitile/blob/master/bin/view_off.py>`_
   An OFF file viewer with export to PNG and SVG.