Antiprism Up Next

wythoff - Wythoff-style constructions

Usage    |    Examples    |    Notes


Usage: wythoff [options] [input_file]

Read a file in OFF format and apply a specified pattern to generate polygon
tiles. The polyhedron faces are divided by a 'meta' operation into triangles
each having vertices which are a vertex V, edge centre E and face centre F.
A start point is positioned on one of these triangles, the next point is
found by using the pattern to step between triangles, leading to a circuit.
If input_file is not given the program reads from standard input.

  -h,--help this help message (run 'off_util -H help' for general help)
  --version version information
  -p <pat>  pattern in form: [Coords0:Coords1:...]Path0,Path1...
            Coordinates are barycentric, in form aVbEcF:
              VEF element letters, and a,b,c are barycentric coordinates
              corresponding to the following element letter. Ommiting a
              an element letter and coordinate sets the coordinate to zero.
              Ommitting just the coordinate sets the coordinate to 1. E.g
            V = (1,0,0), VE = (1,1,0), V2E3F = (1,2,3)
            Paths are in the form: TrisPidx0Move0Pidx1Move1...
              Tris: one of +-* (default +) indicating that paths should
                start for positive, negative or both kinds of triangles.
              Pidx: an index number of a point from the coordinates list
              Move: an operation for stepping to the next triangle, given
                as a series of characters from the following:
                  _     - no move, stay on the same triangle
                  v,e,f - step over side opposite V,E,F
                  V,E,F - step two trianglesi, rotating about V,E,F,
                          according to: V=ef, E=fv, F=ve
              Paths can start with either a move or a point, but cannot both
              start and end with a move
  -c <op>   Conway polyhedron notation operator, or 'list' to list all
            available operators with their corresponding patterns
  -R        reverse pattern, exchanges the signs of the start triangles
  -r        relabel pattern, exactly three letters VEF written in any order
            e.g. EFV relabels the pattern as V->E,v->e,E->F,e->f,F->V,f->v
  -M        input geometry is a 'meta' tiling, don't apply meta operation
  -C        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
  -u        output only one example of each type of tile (one per path)
  -a        add the 'meta'-transformed base
  -f <ht>   lift the face centres by this height
  -q        quiet, don't print report
  -o <file> write output to file (default: write to standard output)


List the Conway operators for lots of examples of the constructive notation
wythoff -c list

Wythoff equivalents to |pqr, p|qr, pq|r, pqr|, for (2 3 5). The base model schwarz_2_3_5p is already the 'meta' triangle tiling so use option -M.
wythoff -M -p [VEF]0V,0E,0F,0V0E0F schwarz_2_3_5p | antiview
wythoff -M -p [V]0E,0F schwarz_2_3_5p | antiview
wythoff -M -p [VE]0V,0E,0v0e schwarz_2_3_5p | antiview
wythoff -M -p [VEF]0v0e,0e0f,0f0v schwarz_2_3_5p | antiview

By default a polyhedron is processed by the Conway 'meta' operation before applying the constructive notation. Here is the equivalent of applying Conway notation 'ambo' to a cube
wythoff -p [E]0V,0F cube | antiview

If the base polyhedron is already like a meta tiling, i.e. 2-colourable triangle faces and even order vertices, then it may be used as-is by specifying -M. For example, the following unitle2d triangle-tiled torus is like a 'meta' tiling, but does not correspond to a polyhedron, and the snub operation is applied to it
unitile2d -s t -w 8 -l 24 2 | wythoff  -c s -M | antiview

Models may be coloured using the colours on the base model. in this example the faces of a dodecahedron are coloured randomly, the model is processed with Conway operations p and o4, and coloured by element association. The final model shows patches of colour corresponding to the original coloured faces.
off_color -f U dod | wythoff -c p -C a | wythoff -c o4 -C a | off_util -S | antiview -x ev


wythoff expands on the ideas behind the Wythoff symbol to create a specified tiling pattern from any suitable triangular tiling.

Triangle tilings are created, by default, from the input model by the Conway 'meta' operation. This consists of all triangles that join a face centre to one of its vertices and a neighbouring edge centre. With regard to starting triangles, the meta triangle (Vn, En, F) is labelled -/black, and the meta triangle (Vn+1, En, F) is labelled +/white. Alternatively, with option -M the input will be considered to be a suitable triangle tiling, and must be 2-colourable and all the vertices of even order.

The output tiling will not necesarily be planar, or have equal edge lengths. The output of 'spherical' tilings can be processed with the canonical program.

Two colouring types can be selected for the final model with option -C. A pattern-based colouring is the default: vertices are coloured according to which elements are involved in their pattern coordinates: V=0/red, E=1/green, F=2/blue, VE=3/yellow, EF=4/cyan, FE=5/magenta, VEF=6/grey; faces are coloured according to the position of their corresponding path in the pattern. The other colouring is by associating final vertices and faces with elements in the base model (see below), and inheriting their colours.

Comparison with corresponding Conway notation operators

Conway notation is applied to polyhedra, where vertices, edges and faces are clearly distinguishable. Constructive notation is applied to triangle tilings, derived from polyhedra by the Conway meta operation, and in these triangle tilings the three "element" types are equivalent.

Some Conway operators produce an edge with the same centre as an original edge. A corresponding constructive notation operation must produce a digon for this edge, because it is a polygon that wraps the element, and not just the edge of an adjoining face.

As a consequence, the Conway seed corresponds to a constructive notation 'seed' operator which, when applied to a polyhedron, generates the original polyhedron, but with digons along the edges.

As element types on the base tiling are equivalent, constructive notation operations that can be transformed into each other by permuting the element types can also be considered equivalent. Some equivalent Conway notation operators expressed in constructive notation are: seed/dual/ambo, truncate/zip/expand, kis/needle/subdivide. Some operators are symmetric with respect to the element types, for example snub, meta and bevel.

Element association

When the pattern paths are repeated to generate final faces, these faces may be associated with elements in the base model. A path may: cycle a base vertex, edge centre or face centre; not cycle (the path is the whole face); repeat by reflection; or "wander" around the model (the path doesn't cycle locally). The behaviour can be determined from the path specifier.

To analyse a path, write its reflections as a sequence, and remove sequential repeated reflections. It will then be in the form (step)association(step_back), where step is a series of mirrors (maybe none) and step_back is the same series of mirrors in reverse. The series of mirrors in association (which may be none) then determines the kind of element associated with the path, for eample it may be a rotation about an element of a type, etc. The step is the reflections to move from from the starting meta triangle to the meta triangle that contains the associated element.

As a example, the patternd fo truncate is [VE]0V0E,0V,0E. Write down the first path, remove the point specifiers, convert to reflections, and remove sequential repeats: 0V0E -> VE = (ef)(fv) = effv = ev this gives no step, and the association is ev, which is a rotation about a face centre (a reverse direction F). The final face will therefore cycle the face element of its starting meta triangle. Similarly, the second path will cycle the vertex element on the starting meta triangle, and the third path will cycle the edge element.

For the purposes of colouring, vertices are associated with base elements as follows: a final vertex is associated with a coinciding base vertex, or an edge if it coincides with an edge centre, otherwise the face element of the meta triangle it belongs to.

Replacement for twist program

The twist program created a model connected like a twisted struct zig-zag tensegrity. The wythoff program can create equivalently connected models with the following pattern.
wythoff -p [4V2E8F]0feEV0fe0E0V ico | antiview 

     Next: poly_kscope - polyhedral kaleidoscope
     Up: Programs and Documentation


Contact:      -      Modified 27.3.2019