|
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 Antiprism Extensions: Further operations added. See https://en.wikipedia.org/wiki/Conway_polyhedron_notation 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 -s apply Conway Notation string substitutions -g use George Hart algorithms (sets -s, -p m or -p x cannot be used) -c <op=s> user defined operation strings in the form of op,string op can be any operation letter not currently in use string can be any operations. More than one <op=s> can be used Examples: -c x=kt,y=tk,v=dwd or -c x=kt -c y=tk -c v=dwd -t tile mode. when input is a tiling. unsets -g sets -p u set if seed of Z is detected -r execute operations in reverse order (left to right) -u make final product be averge unit edge length -v verbose output -o <file> write output to file (default: write to standard output) Planarization options (use canonical program to canonicalize output) -p <mthd> inter-step planarization method p - face centroids (magnitude squared) (default) m - mathematica planarize c - mathematica canonicalize u - make faces into unit-edged regular polygons (minmax -a u) x - none -i <itrs> maximum inter-step planarization iterations (default: 1000) -z <n> status reporting every n iterations, -1 for no status (default: -1) -l <lim> minimum distance change to terminate planarization, as negative exponent (default: 12 giving 1e-12) Coloring Options (run 'off_util -H color' for help on color formats) -V <col> vertex color (default: gold) -E <col> edge color (default: lightgray) -f <mthd> mthd is face coloring method using color in map (default: n) key word: none - sets no color n - by number of sides s - symmetric coloring u - unique coloring o - newly created faces by operation w - resolve color indexes (overrides -V) -C <mthd> colouring method for tiles: none, index, value, association (default: index) index and value methods use the path index, association associates tiles with base geometry element colours (when -f w is set) -R <opt> built in seed coloring: one=1, unique=2, symmetry=3 (default: 1) -T <tran> face transparency. valid range from 0 (invisible) to 255 (opaque) -O <strg> face transparency pattern string (-f n only). 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, for -g, m2) 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)
conway tk4Y4 | antiview
conway dmO -p u -f n | antiview
conway s geo_3 | antiview
conway s ant5/2 -p u | antiview
The Conway Notation algorithms were adapted from the Javascript on George Hart's Conway Notation page.
Antiprism Extensions: Further operations added. See
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
Up:
Programs and Documentation
Conway Notation was described by Mathematician John Conway to George Hart in
the late 1990's for a book they planned to coauthor. Due to an illness the book
never came to fruition and John Conway did not think there was enough a for a
separate publication. Conway gave George Hart permission to present it in
"Sculpture Based on Propellorized Polyhedra in the Proceedings of MOSAIC 2000"
The paper can be viewed here: http://www.georgehart.com/propello/propello.html
The project was expected to encourage more operations to be developed which has
happened in various places including here at Antiprism. (www.antiprism.com)
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. (Antiprism Extension)
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, abdegjkmoprst 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:
(Antiprism Extenstion: note that more operations have since been defined)
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. (Antiprism Extension: or "bn" where n is 0 or greater)
Note: bevel is also known as "omnitruncating" the polyhedron, or omnitruncation
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 (Antiprism: or "en" where n is 0 or greater)
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." (Antiprism Extension: or "mn" where n is 0 or greater)
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. (Antiprism Extension: or "on" where n is 0 or greater)
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.
Antiprism Extension: Further operations added. Also see
https://en.wikipedia.org/wiki/Conway_polyhedron_notation
c = chamfer New hexagonal faces are added in place of edges
J = joined-medial Like medial, but new rhombic faces in place of original edges
K = stake Subdivide faces with central quads, and triangles
All faces processed or can be "Kn" where n is 3 or greater
L0 = joined-lace Similar to lace, except new with quad faces across original
edges
L = lace An augmentation of each face by an antiprism, adding a twist
smaller copy of each face, and triangles between
All faces processed or can be "Ln" where n is 3 or greater
l = loft An augmentation of each face by prism, adding a smaller copy of
each face with trapezoids between the inner and outer ones
M = medial Similar to meta except no diagonal edges added, creating quad
faces. All faces processed or can be "Mn" where n is 0 or greater
n = needle Dual of truncation, triangulate with 2 triangles across every
edge. This bisect faces across all vertices and edges, while
removing original edges
q = quinto ortho followed by truncation of vertices centered on original
faces. This create 2 new pentagons for every original edge
S = seed Seed form
u = subdivide Ambo while retaining original vertices. Similar to Loop
subdivision surface for triangle face
w = whirl Gyro followed by truncation of vertices centered on original
faces. This create 2 new hexagons for every original edge
X = cross Combination of kis and subdivide operation. Original edges are
divided in half, with triangle and quad faces
z = zip Dual of kis or truncation of the dual. This create new edges
perpendicular to original edges, a truncation beyond "ambo" with
new edges "zipped" between original faces. It is also called
bitruncation
Orientation of the input model will have an effect on chiral operations such as
snub or whirl. The orientation mode is set to positive by default. Operations
have been added to control orientation mode. The mode will remain until changed.
+ (plus sign) = positive orientation - (minus sign) = negative orientation
Changing orientation mode can be placed anywhere in the operation string
Summary of operators which can take a number n
b - n may be 0 or greater (default: 1)
e - n may be 0 or greater (default: 1)
K -n may be 3 or greater representing faces sides
k - n may be 3 or greater representing vertex connections
L - n may be 3 or greater representing face sides, or 0
M - n may be 0 or greater (default: 1)
m - n may be 0 or greater (default: 1)
o - n may be 0 or greater (default: 1)
t - n may be 2 or greater representing face sides
Antiprism Extension: note that any operation can be repeated N time by following
it with the ^ symbol and a number greater than 0. Examples: a^3C M0^2T
Seeds which require a number n, 3 or greater
P - Prism
A - Antiprism
Y - Pyramid
Z - Polygon (Antiprism Extension)
R - Random Convex Polyhedron (Antiprism Extension)
Note: Antiprism Extensions will work on tilings. Hart algorithms (-d) will not
e.g.: unitile2d 3 | conway p -t | antiview -v 0.1 (-t for tile mode)
Regular tilings can be constructed from base polygons. The basic tilings are:
One Layer Two Layers Three Layers...
Square: oZ4 o2Z4 o3Z4
Hexagonal: tkZ6 ctkZ6 cctkZ6
Triangular: ktkZ6 kctkZ6 kcctkZ6 (kis operation on Hexagonal)
Name Vertex Fig Op String Dual Name String
Square 4,4,4,4 oZ4 Square do2Z4
Truncated Square 4,8,8 trunc toZ4 Tetrakis Square dto2Z4
Snub Square 3,3,4,3,4 snub soZ4 Cairo Pentagonal dso2Z4
Triangular 3,3,3,3,3,3 kis ktkZ6 Hexagonal ddctkZ6
Hexagonal 6,6,6 tkZ6 Triangular dkctkZ6
Trihexagonal 3,6,3,6 ambo atkZ6 Rhombille dactkZ6
Snub Trihexagonal 3,3,3,3,6 snub stkZ6 Floret Pentagonal dsctkZ6
Truncated Hexagonal 3,12,12 trunc ttkZ6 Triakis triangular dtctkZ6
Rhombitrihexagonal 3,4,6,4 expand etkZ6 Deltoidal Trihexagonal dectkZ6
Truncated Trihexagonal 4,6,12 bevel btkZ6 Kisrhombille dbctkZ6
Elongated Triangular 3,3,3,4,4 Non Wythoffian Prismatic Triangular none
Substitutions used by George Hart algorithms
P4 -> C
A3 -> O
Y3 -> T
e -> aa
b -> ta
o -> jj
m -> kj
t -> dk
j -> dad
s -> dgd
dd ->
ad -> a
gd -> g
aY -> A
dT -> T
gT -> D
aT -> O
dC -> O
dO -> C
dI -> D
dD -> I
aO -> aC
aI -> aD
gO -> gC
gI -> gD
Equivalent Operations
b0 = z e0 = d o0 = S m0 = k M0 = o
b1 = b e1 = e o1 = o m1 = m M1 = M
Next:
wythoff - Wythoff-style constructions