Antiprism Up Next
Home
Programs
Examples
Album
Download
Development
Forum
About

symmetro - polyhedra with regular polygons at symmetry axes

Usage    |    Examples    |    Notes

Usage



Usage: symmetro [options]

Symmetrohedra and Twisters are created by placing equilateral polygons centered
on the symmetry axes of Icosahedral, Octahedral, Tetrahedral, or Dihedral
symmetry. The sides of the polygons will be a multiple number of the axis
reflection number. Axes are numbered as 0, 1 and 2

It is possible to generate models such that the polygons intersect. If a
collision is detected, convex hull will be suppressed

options -k, -t, -s and -c cannot be used together but one needs to be specified 

Options
  -h,--help this help message (run 'off_util -H help' for general help)
  --version version information
  -v        verbose output
  -l <lim>  minimum distance for unique vertex locations as negative exponent
               (default: 12 giving 1e-12)
  -o <file> write output to file (default: write to standard output)

Program Options
  -k <s,l,m,n,a> Kaplan-Hart notation. Generate Symmetrohedra based on a study
            by Craig S. Kaplan and George W. Hart (http://www.georgehart.com).
            Url: https://cs.uwaterloo.ca/~csk/Old/projects/symmetrohedra/
            Pdf: https://antiprism.com/misc/kaplan_hart_bridges2001.pdf
            s: symmetry type of Symmetrohedra. sets {p,q,2}
               I-icosahedral {5,3,2} O-octahedral {4,3,2} T-tetrahedral {3,3,2}
            l,m,n: multipliers for axis polygons. Separated by commas, two
               multipliers may be * or 0, no more than two positive integers
            a: face rotation type: vertex=1, edge=0  (default: 1)
            example: -k i,2,*,4,e
  -t <s[p,q]i,m1,m2> Twister notation. Generate twister models.
            s: symmetry. I-icosahedral, O-octahedral, T-tetrahedral, D-dihedral
            p,q: rotational order of each of the two axes. may be swapped
            i: (default: 1): integer to select between non-equivalent pairs of
               axes having the same symmetry group and rotational orders
            m1,m2: an integer multiplier for each axis. i.e. m1*p and m2*q
               also can be entered as m1/d, m2/d fractional values
               e.g. T[3,2],1,2  I[5,2]2,1/2,3  D7[7,3],1,2  D11[2,2]5,2,2
                  Axis pairs are from the following
                  T: [3,3], [3,2], [2,2]
                  O: [4,4], [4,3], [4,2]x2, [3,3], [3,2]x2, [2,2]x2
                  I: [5,5], [5,3]x2, [5,2]x3, [3,3]x2, [3,2]x4, [2,2]x4
                  Dn:[n,2], [2,2]x(n/2 rounded down)
  -s <n/d:D>,s S symmetry twisters. denominator d optional (default: 1)
               optional D substitutes a polygon of n/D in place of n/d
               optional s: symmetry override c - C symmetry
  -c <n1/d1:D1,n2/d2:D2,s,v> C symmetry twisters
               optional d denominator (default: 1)
               optional D substitutes a polygon of n/D in place of n/d
               optional n2 can differ from n1. if not specified n2=n1, d2=d1
               optional s: symmetry: c - C (default), h - Ch, v - Cv, d - D
               optional v: vertex index of radial polygon to bring to z plane
                  v of -1 is original position (default: index of largest z)
  -M <opt>  mirroring (may create compound). Can be x, y or z (default: none)
  -a <a,n>  a in degrees of rotation given to polygon applied to optional
               axis n (default: 0). A suffix of 'e' may be used, where 1.0e is
               half the central angle of an edge. Then a is a multiplier. For
               example 2e. A suffix of x is like e but with a half turn offset
  -r <r,n>  set the edge length of the polygon on axis n (default: 0)
               to r. Must be non-negative. The default edge length is 1
  -A <a>    a in degrees is angle between axes (default: calculated)
  
Scene Options
  -C <mode> convex hull. polygons=1, suppress=2, force=3, auto=4 (default: 4)
  -q <args> include frame elements in output
               r - rhombic tiling edges, a - rotation axes (default: none)
  -O <dist> amount to offset the first polygon to avoid coplanarity with the
               second polygon, for example 0.0001 (default: 0.0)
  -x        remove any free faces that are produced

Coloring Options (run 'off_util -H color' for help on color formats)
keyword: none - sets no color
  -F <col>  color the faces according to: (default: i)
               a color value - apply to all faces
               n - color by number of sides
               s - symmetric coloring [,sub_group,conj_type]
               i - color by axis number
  -E <col>  color the edges according to: (default: lightgray)
               a color value - apply to all edges
               s - symmetric coloring [,sub_group,conj_type]
  -V <col>  color the vertices according to: (default: gold)
               a color value - apply to all vertices
               s - symmetric coloring [,sub_group,conj_type]
  -T <t,e>  transparency. from 0 (invisible) to 255 (opaque). element is any
            or all of, v - vertices, e - edges, f - faces, a - all (default: f)
  -m <maps> a comma separated list of color maps used to transform color
            indexes (default: axes), a part consisting of letters from
            v, e, f, selects the element types to apply the map list to
            (default 'vef'). use map name of 'index' to output index numbers
               axes:       red,blue,yellow,darkgreen
                  note: position 4 color is for faces added by convex hull
               kaplan:     approximating colors in the symmetrohedra pdf file
               colorful:   red,darkorange1,yellow,darkgreen,cyan,blue,magenta,
                           white,gray50,black (default when -F n)
               (default internal maps shifted '+-3' when -F n)
  -D        don't cover digons with edge color
  -Q <col>  frame color  (default: skyblue3)
               

Examples

See also, symmetro examples with images.

Make a Cuboctahedron (U7)

symmetro -k o,1,1,0,e | antiview
symmetro -t O[3,3],1,1 | antiview


Like a Rhombicuboctahedron, but scale the squares on the 4-fold axes by 2.
symmetro -k o,1,1,0 -r 2  | antiview
symmetro -t O[4,3],1,1 -r 2 | antiview


Make an approximate Snub Cube (U12)
symmetro -k o,1,0,1 -a 28.53243959961367 -C f | antiview
symmetro -t O[4,2],1,1 -a 28.53243959961367 -C f | antiview


Make a 'twister' by suppressing the convex hull and varying the twist parameter
symmetro -k t,1,1,0 -C s -a 15 | antiview
symmetro -t T[3,3],1,1 -C s -a 15 | antiview


Make an Small Stellated Dodecahedron (U34)
symmetro -s 5:2 -a 2e | antiview -v 0.03


Make an Icosidodecahedron (U24)
symmetro -c 5,5,d | antiview


Make an Pentagonal Orthobirotunda (Johnson Solid J34)
symmetro -c 5,5,h | antiview


Bowtie models from Kaplan-Hart paper Figure 3 in order of appearance
symmetro -k t,2,3,*,e -F n -m kaplan | antiview
symmetro -k o,2,3,*,e -F n -m kaplan | antiview
symmetro -k o,3,2,*,e -F n -m kaplan | antiview
symmetro -k i,2,3,*,e -F n -m kaplan | antiview
symmetro -k i,3,2,*,e -F n -m kaplan | antiview
symmetro -k t,1,2,*,v -F n -m kaplan | antiview
symmetro -k o,1,2,*,v -F n -m kaplan | antiview
symmetro -k o,2,1,*,v -F n -m kaplan | antiview
symmetro -k i,1,2,*,v -F n -m kaplan | antiview
symmetro -k i,2,1,*,v -F n -m kaplan | antiview


Jamnitzer models from Kaplan-Hart paper Figure 7 in order of appearance
symmetro -k o,2,2,0,v -r 1.06680419358835388 -F n -m kaplan | antiview
symmetro -k o,3,3,0,v -r 1.04966777114351 -F n -m kaplan | antiview -v 0.03
symmetro -k i,2,2,0,v -r 1.09818547139510914 -F n -m kaplan | antiview -v 0.03
symmetro -k i,3,3,0,v -r 1.0726110096817 -F n -m kaplan | antiview -v 0.05


LCM models from Kaplan-Hart paper Figure 8 in order of appearance
symmetro -k t,2,0,3,e -F n -m kaplan | antiview
symmetro -k t,2,0,3,v -F n -m kaplan | antiview
symmetro -k o,1,0,2,v -F n -m kaplan | antiview
symmetro -k o,3,4,*,e -F n -m kaplan | antiview
symmetro -k o,3,4,*,v -F n -m kaplan | antiview
symmetro -k o,*,2,3,e -F n -m kaplan | antiview
symmetro -k o,*,2,3,v -F n -m kaplan | antiview
symmetro -k i,3,5,*,e -F n -m kaplan | antiview
symmetro -k i,3,5,*,v -F n -m kaplan | antiview
symmetro -k i,2,*,5,e -F n -m kaplan | antiview
symmetro -k i,2,*,5,v -F n -m kaplan | antiview
symmetro -k i,*,2,3,e -F n -m kaplan | antiview
symmetro -k i,*,2,3,v -F n -m kaplan | antiview


Near miss models from Kaplan-Hart paper Figure 9 in order of appearance
symmetro -k o,*,3,*,e -F n -m kaplan | antiview
symmetro -k i,1,2,*,v -F n -m kaplan -r 1.07046626932,1 | antiview
symmetro -k i,2,*,3,e -F n -m kaplan | antiview


Appealing models from Kaplan-Hart paper Figure 10 in order of appearance
symmetro -k i,2,2,*,1 -F n -m kaplan -r 2.03614784182,1 | antiview -v 0.03
symmetro -k i,2,1,*,1 -F n -m kaplan -r 1.9021130325885 | antiview -v 0.03
symmetro -k i,2,2,*,1 -F n -m kaplan | antiview -v 0.05
symmetro -k i,4,3,*,e -F n -m kaplan | antiview -v 0.07
symmetro -k i,2,3,*,1 -F n -m kaplan | antiview -v 0.05
symmetro -k i,2,3,*,1 -F n -m kaplan -r 1.583841856265,1 | antiview -v 0.05
symmetro -k i,2,4,*,e -F n -m kaplan | antiview -v 0.07
symmetro -k i,2,4,*,1 -F n -m kaplan -r 1.05398768021455,1 | antiview -v 0.07
symmetro -k i,3,1,*,1 -F n -m kaplan | antiview -v 0.07
symmetro -k i,3,2,*,1 -F n -m kaplan | antiview -v 0.07
symmetro -k i,*,2,2,1 -F n -m kaplan | antiview -v 0.07
symmetro -k i,*,1,4,e -F n -m kaplan | antiview -v 0.06
symmetro -k i,3,4,*,v -F n -m kaplan -r 1.5665309813,1 -l 8 | antiview -v 0.03
symmetro -k i,3,4,*,e -F n -m kaplan | antiview -v 0.06
symmetro -k i,3,5,0,v -F n -m kaplan -r 1.3159206178527,1 | antiview -v 0.03 
symmetro -k i,4,2,*,e -F n -m kaplan | antiview -v 0.06
symmetro -k i,*,1,4,1 -F n -m kaplan | antiview -v 0.06
symmetro -k i,1,*,2,1 -F n -m kaplan | antiview -v 0.06
symmetro -k i,1,*,3,e -F n -m kaplan | antiview -v 0.06
symmetro -k i,2,*,3,1 -F n -m kaplan | antiview -v 0.06


Notes

symmetro was written by Roger Kaufman.


     Next: kcycle - kaleidocycle rings of polyhedron
     Up: Programs and Documentation


Home   |   Programs   |   Examples   |   Album   |   Download   |   Development   |   Forum   |   About

Contact: adrian@antiprism.com      -      Modified 14.6.2024