Antiprism Up Next
Home
Programs
Examples
Album
Download
Development
Forum
About

EXTRA: rotegrity - make rotegrity models

Usage    |    Examples    |    Notes

Usage



Usage: rotegrity [options] [input_file]

Read a file in OFF format containing a roughly spherical polyhedron, or
previously twisted model, and try to convert into a rotegrity. Units
keep original edge colours. If input_file is not given the program reads
from standard input.

Options
  -h,--help this help message (run 'off_util -H help' for general help)
  --version version information
  -a <type> model type: rotegrity, nexorade, for nexorade followed
            by an optional comma and strut length
  -f <frac> fraction of length for end sections (default: 1/3)
  -t        input model is already twisted (produced by this program or
            'twist' program)
  -M <mthd> method of conversion from base model - twist, double, joined,
            or X (default: t)
  -O <type> output type for units: full (face), rotegrity (3 short struts),
            nexorade (long strut), Nexorade (long strut, direction vertices)
            (default: full). Only 'full' output can 
            be used as input with option -t
  -m <maps> a comma separated list of colour maps used to transform colour
            indexes (default: rand), a part consisting of letters from
            v, e, f, selects the element types to apply the map list to
            (default 'vef').
  -c <type> colouring type: edge (base model edges), symmetry, unit
            (according to shape), none (default: edge)
  -n <itrs> number of iterations (default 10000)
  -s <perc> percentage to adjust corrections on iteration (default: 98)
  -l <lim>  minimum change of vertex distance to terminate, as negative
            exponent (default: 15 giving 1e-15)
  -z <n>    status checking and reporting every n iterations, -1 for no
            status (default: 1000)
  -q        quiet, do not print status messages
  -T        reproduce output of former 'twist' program (see Notes), -f is
            twist factor, -O is output type, unused options silently ignored
  -o <file> write output to file (default: write to standard output)


Examples

Rotegrity Examples

See also, rotegrity examples with images.

Convert a geodesic sphere into a nexorade and colour by symmetry

rotegrity -c s -O r geo_3_1 | antiview -v 0.01


Make a rotegrity with double units. It has alternate winding around base faces and base vertices.
rotegrity -c s -O r -M 2 geo_2_1 | antiview -v 0.01


Make a rotegrity with triple units. It has alternate winding around base faces and base vertices.
rotegrity -f 0.2 -c s -O r -M 3 geo_2 | antiview -v 0.01


Add a central white sphere to make models easier to view
off_color -v invisible -e invisible -f white geo_10 -o sph.off
rotegrity -c s -O r -M 2 geo_3_1 | antiview -v 0.01 - sph.off


Class I and II geodesic spheres have edges related by mirror symmetry, and these appear to become rotegrity units of the same length (there are ten shorter edge lengths, and ten edge orbits in this example). The colours of the rotegrity here are taken from the edge colours of the base model
off_color -e S geo_3_3 | rotegrity | antiview -v 0.01
rotegrity geo_3_3 | off_report -C E
off_report -C O geo_3_3


The convex hull of a random collection of points will generally jam during solution.
repel -N 83 -n 100000 | conv_hull | rotegrity -O r | antiview


A previously processsed model can be processed again by specifying by using full face outout with rotegrity -O f and rereading with rotegrity -t
zono -P 10  | rotegrity -c s -s 1 -n 100 -O f | rotegrity -t -O r | antiview -v 0.02


Nexorade Examples

Convert a geodesic sphere into a nexorade and colour by symmetry
rotegrity -a n -c s -O n geo_3_1 | antiview -v 0.01


Having seen the report written to the screen by the previous command, recreate the model with the given radius (antiview -e 0.0078889) and a strut length slightly longer than the minimum (rotegrity -a n,0.45)
rotegrity -a n,0.45 -c s -O n geo_3_1 | antiview -v 0.0078889 -e 0.0078889


Make a nexorade with double struts.
rotegrity -a n,0.45 -c s -O n -M 2 geo_2_1 | antiview -v 0.0079 -e 0.0079


A previously processsed model can be processed again by specifying by using full face outout with rotegrity -O f and rereading with rotegrity -t
zono -P 10  | rotegrity -a n -c s -s 1 -n 100 -O f | rotegrity -a n -t -O n | antiview -v 0.02


Notes

There are some relevant threads on the GeodesicHelp group: Tensegrities, nexorades & rotegrities, Nexorades/Rotegrities - Frequencies 1 through 3 and New Nexorade/Rotegrity project.

The program will not solve all base models, and even models which appear reasonable may scramble, jam or contract to a point. Try reducing option -s if a model scrambles or contracts (e.g. -s 0.1), and use a low number of iterations to see how the model transforms before failing.

Option -M selects different model types, and makes arrangements of units that replace an original unit. Although, -M d produces attractive models it, along with -M X, does not produce especially unique models. -M d is like applying the Conway join operator, then forming a basic rotegrity, then reversing the openings corresponding to original face centres. -M X is like applying the Conway ortho operator, then forming a basic rotegrity, then reversing the openings corresponding to original face centres. Reviewing a number of other unit replacement schemes revealed they were all like applying a Conway operator, applying -M t or -M j, then reversing openings corresponding to particular "centre" types in the Conway operator pattern.

To produce attractive raytraced images of rotegrity models with the elements represented by straps, use the off2pov include file share/pov_inc/rotegrity.inc included in the Antiprism package. Control the strap width with off2pov -v and the starp thickness . Example command (must use rotegrity -O f to include faces data and off2pov -t no_tri to ensure that the faces are not triangulated)

off_color -e S geo_3_1 | rotegrity -O f | off2pov -t no_tri -v 0.02 -i rotegrity.inc -o rot_geo_3_1.pov
povray +a +p +H600 +W800 rot_geo_3_1.pov


To produce attractive raytraced images of nexorade models with the elements represented by rods, use the off2pov include file share/pov_inc/nexorade.inc included in the Antiprism package. Check the solution report to choose an edge radius and strut length. Example command, (must use rotegrity -O f to include faces data and off2pov -t no_tri to ensure that the faces are not triangulated).
off_color -e S geo_3_1 | rotegrity -a n -O f -o nex_geo_3_1.off
off2pov -t no_tri -v 0.00789 -e 0.45 -i nexorade.inc -o nex_geo_3_1.pov nex_geo_3_1.off
povray +a +p +H600 +W800 nex_geo_3_1.pov


Twist program compatibility

The functionality of the old twist program, now removed from Antiprism, is temporarily available through option -T.

The twisted model is like a zig-zag tensegrity, but without the zig-zag; the strut and its string loop lie on a plane.

An edge of a polyhedron has two vertices on the ends and is flanked by two faces. In the dual these faces are associated with vertices, and so an edge can be associated with four coordinates: two polyhedron vertices and two dual vertices.

An edge of a polyhedron can be associated, by the vertices above, with an edge in the dual. The planes through these two edges and the centre intersect in a line through the centre. The centre of a twist edge, the same size as the polyhedron edge can be put on this line and the twist edge rotated about the line by f*90 degrees. Finally, the twist edge is translated by the proportion f between the centre of the polyhedron edge and the centre of the dual edge.

Finally, the twist edge segment is extended to see where it intersects the planes through its edge neighbours, then the extended edge is scaled (using the model centre) back to the original size.


     Next: EXTRA: mmop_origami - multimodular polyhedron origami
     Up: Programs and Documentation


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

Contact: adrian@antiprism.com      -      Modified 5.4.2019