Control Mode (Scroll Down for Usage Explanation)

Controls:
Coord Value Slider Text Input
   
   
   
   
   
   
   

Computed Properties of Induced Segmented Helix

The nodes of the segmented helix are,
for integers n:
y = r \cos{(n \theta)}
x = r \sin{(n \theta)}
z = n \cdot d

Parameters (unit object axis length)

Platonic Parameters (unit edge length)

A Zoo of Platonic Helices

The segment helix math allows us to compute a collection, or "zoo" of Platonic helices created by Platonic solids places face-to-face with the vertices touching. Some of these helices are physcially indistinquishable due to symmetry.
Action Row Num Num in Solid Platonic S. Analogs Face Twist (\tau) Radius (r) Theta (\theta) Travel (d) Helix Angle (\phi) Class

Basic Usage -- Test Discrete Helix Math

This is an interactive 3D simulation. To change the view, place your mouse in the view area, and hold and "drag" the mouse to rotate the image. The mouse wheel or a drag on your trackpad should zoom you in or out.

Creating a Helix

This is a test page in order to a math principle that came out of the Mathathon where we publicly developed a a lot of "generators".

We observed that every regular generator created a helix (though sometimes a a degenerate helix.) In fact, we now know every repeated transformation involving a translation and a similar change in angle produces a discrete helix. As far as I have been able to find, this has been articulated only by Eric Lord in a paper from 2002.

In nature, helical structures arise when identical structural subunits combine sequentially, the orientational and translational relation between each unit and its predecessor remaining constant.

The fundamental goal of this page is to be able to relate the intrinsic properties of the structural subunits and the rule for their placement to the radius, travel, and pitch of the resulting segmented helix. In the virtual world rendered above, the "structural subunit" is rendered as a prism with a triangular cross-section. The "rule" for the adjoining is face-to-face so that the normals of these faces are aligned in opposite directions through the centroid of the face of the prism. It is important to understand that the same math applies to molecules, which do not have flat faces, but where bonding forces constuct the relationship which generates the segmented helix.

In the view above, the segmented helix which matches the joints is drawn as a thin green line. You will note that it always intersects the joints, verifying its correctness, although it is computed in a completely different way---as a helix. The prism placement is NOT done this way---it is an iteration of laying the prisms face-to-face according to a fixed rule.

The "radius" of a segmented helix is the distance from a segment joint to the axis. "Theta" is the rotation about the axis between the two joints on one segment. "Travel" is the distance along the axis between two joints. "Phi" is the angle that a segment makes with axis.

Although a work-in-progress, at this repo you will find a technical paper describing the math in greater detail, and giving the Mathematica code that implements it. (The same math is implemented in JavaScript on this page.)

I have developed an algorithm---it is actually a closed-form expression, but too complex to be treated as such---which computes the intrinsic properties of the discrete helix from the intrinsic properties of a stacked object. This is closely related to an algorithm published by Peter Kahn in 1989.

I have extended Kahn's work by developing the math to apply his algorithm from the face-normals. The insight to do this is that the object can always be positioned in space so that the joints on either side are symmetrically arranged about an axis.

This page is my attempt to demonstrate this mathematics, and turn it into a tool that can be used by anyone withough Mathematica.

An Interesting Idea

This interactive tool makes clear that it is possible to use a single object with oblique faces and to wildly vary the coiling by changing only the "twist" tau.

This suggests that it may be possible to build an interesting tentacle that using only rotary servos at each joint. This would be very inexepensive to prototype on a small scale. Each segment would be a prism. The faces would be, for example, made out aluminum and lubricated with oil. The system would be controled only by N-1 servo positions. Obviously, lengthening and shortening the mast or tentacle would be easy by chaing all servos at the same time. However, it would also be easy to compute the Jacobian and use standard optimization techniques to position the tentacle in space.

Although mechanically this is not likely to be as stong as a tetrahedron based tentacle, it would be much cheaper to build, which is a tremendous advantage.

Licensing

All of the code on this site is released under the GNU General Public License, and I hope you will reuse it.

This project is part of Public Invention. To assist on this project, contact Robert L. Read < read.robert@gmail.com >