antiprism-0.23
Up Next

# conway - Conway Notation transformations

Usage | Examples | Notes

## Usage

    Usage: conway [options] [Conway Notation string] [input_file]

    Conway Notation uses algorithms by George W. Hart (http://www.georgehart.com)
    http://www.georgehart.com/virtual-polyhedra/conway_notation.html

    Read a polyhedron from a file in OFF format.
    If input_file is not given and no seed polyhedron is given in the notation
    string then the program reads from standard input.

    Options
      -h,--help this help message (run 'off_util -H help' for general help)
      --version version information
      -H        Conway Notation detailed help. seeds and operator descriptions
      -d        don't simplify Conway Notation string
      -r        execute operations in reverse order (left to right)
      -t        use truncate algorithm instead of simplifying to "dkd"
                  also used in ambo as a truncation of 1/2
      -u        make final product be averge unit edge length
      -v        verbose output
      -o <file> write output to file (default: write to standard output)

    Canonicalization and Planarization options
      -p <mthd> inter-step planarization method
                p - conway notation planarize (face centroids reciprocal) (default)
                q - conway notation planarize (face centroids magnitude reciprocal)
                l - mathematica version of planarize
      -c <mthd> canonicalize final product using:
                n - conway notation version of canonicalization
                m - mathematica version of canonicalization
                or planarize final product with p, q or l above
      -n <itrs> maximum number canonical iterations (default: no limit)
      -l <lim>  minimum distance change to terminate canonicalization, as negative
                   exponent (default: 12 giving 1e-12)
      -i <itrs> maximum inter-step planarization iterations (default: no limit)
                   i = 0, no inter-step planarization
      -z <n>    status reporting every n iterations, -1 for no status (default: -1)

    Coloring Options (run 'off_util -H color' for help on color formats)
      -V <col>  vertex color
      -E <col>  edge color
      -f <mthd> mthd is face coloring method using color in map
                   key word: none - sets no color (default: n)
                   n - color by number of sides
                   s - symmetric coloring
      -T <tran> face transparency. valid range from 0 (invisible) to 255 (opaque)
      -O <strg> face transparency pattern string. valid values
                   0 - map color alpha value, 1 -T alpha applied (default: '1')
      -m <maps> color maps for faces to be tried in turn (default: m1)
                   keyword m1: red,darkorange1,yellow,darkgreen,cyan,blue,magenta,
                               white,grey,black
                   keyword m2: red,blue,green,yellow,brown,magenta,purple,grue,
                               gray,orange (from George Hart's original applet)

## Examples

A truncated octahedron

    conway tk4Y4 | antiview

A Great rhombicuboctahedron with coloured faces

    conway -c m -f n dmO | antiview

A snub geodesic sphere

    conway s geo_3 | antiview

A snub pentagrammic antiprism

    conway s ant5/2 | antiview

## Notes

conway was written by Roger Kaufman. It uses algorithms by George W. Hart, http://www.georgehart.com/.

The Conway Notation algorithms were adapted from the Javascript on George Hart's Conway Notation page.

Canonicalization and planarization may not always converge on a convex polyhedron.

George Hart has a page on canonicalization. The 'Mathematica' algorithms have been written to follow his Mathematica implementation

The following extended help for the program may be displayed with conway -H

    The following is a description of Conway Notation edited from the Conway
    Notation web page by George W. Hart (http://www.georgehart.com)
    More detailed information and examples can be found at
    http://www.georgehart.com/virtual-polyhedra/conway_notation.html
    and at
    http://en.wikipedia.org/wiki/Conway_polyhedron_notation

    Basics: In this notation, one specifies a "seed" polyhedron with a capital
    letter. Operations to perform on any polyhedron are specified with lower-case
    letters preceding it. This program contains a small set of seeds and operators
    from which an infinite number of derived polyhedra can be generated.
    Note: This C++ port of Conway Notation can also operate on OFF files from
    standard input if the seed polyhedron is not specified.

    Seeds: The platonic solids are denoted T, O, C, I, and D, according to their
    first letter. Other polyhedra which are implemented here include prisms, Pn,
    antiprisms, An, and pyramids, Yn, where n is a number (3 or greater) which you
    specify to indicate the size of the base you want, e.g., Y3=T, P4=C, and A3=O.

    Operations: Currently, abcdegjkmoprst are defined. They are motivated by the
    operations needed to create the Archimedean solids and their duals from the
    platonic solids.  Try each on a cube:

    a = ambo   The ambo operation can be thought of as truncating to the edge
    midpoints.  It produces a polyhedron, aX, with one vertex for each edge of X.
    There is one face for each face of X and one face for each vertex of X.
    Notice that for any X, the vertices of aX are all 4-fold, and that aX=adX.
    If two mutually dual polyhedra are in "dual position," with all edges tangent
    to a common sphere, the ambo of either is their intersection.  For example
    aC=aO is the cuboctahedron.
    Note: ambo is also known as "rectifying" the polyhedron, or rectification

    b = bevel  The bevel operation can be defined by bX=taX.  bC is the truncated
    cuboctahedron.
    Note: bevel is also known as "omnitruncating" the polyhedron, or omnitruncation

    c = chamfer   New hexagonal faces are added in place of edges.

    d = dual   The dual of a polyhedron has a vertex for each face, and a face for
    each vertex, of the original polyhedron, e.g., dC=O.  Duality is an operation
    of order two, meaning for any polyhedron X, ddX=X, e.g., ddC=dO=C.

    e = expand This is Mrs. Stott's expansion operation.  Each face of X is
    separated from all its neighbors and reconnected with a new 4-sided face,
    corresponding to an edge of X.  An n-gon is then added to connect the 4-sided
    faces at each n-fold vertex.  For example, eC is the rhombicuboctahedron.  It
    turns out that eX=aaX and so eX=edX.
    Note: expand is also known as "cantellating" the polyhedron, or cantellation

    g = gyro   The dual operation to s is g. gX=dsdX=dsX, with all 5-sided faces.
    The gyrocube, gC=gO="pentagonal icositetrahedron," is dual to the snub cube.
    g is like k but with the new edges connecting the face centers to the 1/3
    points on the edges rather than the vertices.

    j = join   The join operator is dual to ambo, so jX=dadX=daX.  jX is like kX
    without the original edges of X.  It produces a polyhedron with one 4-sided
    face for each edge of X.  For example, jC=jO is the rhombic dodecahedron.

    k = kis    All faces are processed or kn = just n-sided faces are processed
    The kis operation divides each n-sided face into n triangles.  A new vertex is
    added in the center of each face, e.g., the kiscube, kC, has 24 triangular
    faces.  The k operator is dual to t, meaning kX=dtdX.

    m = meta   Dual to b, mX=dbX=kjX.  mC has 48 triangular faces.  m is like k
    and o combined; new edges connect new vertices at the face centers to the old
    vertices and new vertices at the edge midpoints.  mX=mdX.  mC is the
    "hexakis octahedron."

    o = ortho  Dual to e, oX=deX=jjX.  oC is the trapezoidal icositetrahedron, with
    24 kite-shaped faces.  oX has the effect of putting new vertices in the middle
    of each face of X and connecting them, with new edges, to the edge midpoints of
    X.

    p = propellor    Makes each n-gon face into a "propellor" of an n-gon
    surrounded by n quadrilaterals, e.g., pT is the tetrahedrally stellated
    icosahedron. Try pkD and pt6kT. p is a self-dual operation, i.e., dpdX=pX and
    dpX=pdX, and p also commutes with a and j, i.e., paX=apX. (This and the next
    are extensions were added by George Hart and not specified by Conway)

    r = reflect   Changes a left-handed solid to right handed, or vice versa, but
    has no effect on a reflexible solid. So rC=C, but compare sC and rsC.

    s = snub   The snub operation produces the snub cube, sC, from C.  It can be
    thought of as eC followed by the operation of slicing each of the new 4-fold
    faces along a diagonal into two triangles.  With a consistent handedness to
    these cuts, all the vertices of sX are 5-fold.  Note that sX=sdX.

    t = truncate  All faces are processed or tn = just n-sided faces are processed
    Truncating a polyhedron cuts off each vertex, producing a new n-sided face for
    each n-fold vertex.  The faces of the original polyhedron still appear, but
    have twice as many sides, e.g., the tC has six octagonal sides corresponding to
    the six squares of the C, and eight triangles corresponding to the cube's eight
    vertices.

    x = null   Null operation. Nothing is changed. A planarize step is performed

Up: Programs and Documentation
Next: poly_kscope - polyhedral kaleidoscope