Make your own free website on

raytrace tetrahelix

raytrace double helix

Here are my attempts to render the tetrahelix and the double tetrahelix so that both the strut and sphere versions are visible simultaneously. Both pictures were constructed using POV-Ray, one of the world's great software bargains (free) available at

In the rendition of the double tetrahelix, the copper-colored struts are slightly longer than unit length (1.08866:1) and at a few places are visible outside the spheres. Otherwise, the length of all struts is the same as the diameter of the spheres.

The appearance of the struts in these diagrams suffers from being distorted by the refraction and damping of the light by the spheres. The renditions of the spheres suffer from being transparent instead of opaque. The transparency makes the spheres harder to see. However, there is the advantage that the spheres behind are relatively more apparent than they would be otherwise.

Withal perhaps the diagrams throw some light on the relation between agglomerations of equal-diameter spheres and the corresponding toothpick models. I've also put together VRML models for the tetrahelix and double tetrahelix that try, in a somewhat more primitive fashion, to do the same visualizations in a VRML context.

Some statistics on the helices:

Professor Mikhail Dzugutov's (Dept. for Materials Science and Engineering, Royal Institute of Technology, Stockholm, Sweden) student Tomas Oppelstrup provides the following recursive formulation for generating coordinates for these structures:

     T(a,b,c) = (a+b+c)/3 + (b-a)x(c-a) * sqrt(8)/3
where a,b,c are 3D coordinates, and x denotes cross product. If a,b,c is an equilateral triangle, then a,b,c,T(a,b,c) is a tetrahedron.

Now, if c(1),c(2),c(3) is an equilateral triangle, then the recursion
     c(i) = T( c(i-3) , c(i-2) , c(i-1) )
generates the simple tetrahelix.

Letting c(0),c(2),c(3) be an equilateral triangle, the double tetrahelix is generated by
     c(i  ) = T( c(i-4) , c(i-1) , c(i-2) )
     c(i+1) = T( c(i  ) , c(i-2) , c(i-4) )
The chirality depends on the ordering of the points in the initial triangle.

The function T needs to be implemented with some care to avoid numerical instabilities when long helices (more than 60 tetrahedra or so) are generated. Normalizing the cross product will do the trick:
       p  := (a+b+c)/3
       q  := (b-a)x(c-a)
       q' := sqrt(3/4) * (q / ||q||)
       return p + q' * sqrt(8/9)

Except for i, all the variables in the above set of recursive formulae are three-dimensional vectors rather than scalars, and T() and c() are vector-valued functions.

I find this an interesting approach since it exactly duplicates the procedure used to assemble one of these structures. Of course in the process it hides the data on the rate of spiral. That's the real surprise in assembling either of these helices is the graceful, well-articulated spiral that results merely from gluing together tetrahedrons. The spiral is synergetic -- a quality of the whole not predicted by the parts.

Professor Dzugutov's interest is in "testing stability of this structure in a computer simulation with a set of specifically designed interaction potentials."

Previous Index Next