antiprism-python 0.2.5
Scripts to generate various types of polyhedra
License: MIT
Keywords: antiprism polyhdron polyhedra

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>`_
   Create 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 dome. 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>`_
   Create 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>`_
   Create 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>`_
   Create 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.