Spirals and Helices

Spirals and helices are curves that loop around and around without retracing the same path, preferably also avoiding self-intersection. In the plane, the only options are moving continuously outward or inward. In 3D space, there is also the option to move up or down, possibly combined with outward or inward motion. In this Demonstration, you can experiment with changing parameters on the displayed spirals or helices.
  • Contributed by: Tom Verhoeff
  • (Eindhoven University of Technology, Netherlands)


  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]
  • [Snapshot]


Use the "time" slider to loop the orange point around and around. The cyan tube is the path traced by this point as it loops times around, where is set via the the slider "number of loops". You can control the radial and vertical motion of the point to avoid retracing the same path over and over again.
Use the " dependence on " and " dependence on " setter bars for the radial and vertical motion dependence on time. Use the sliders "radial speed" and " speed" to set these speeds.
The "spherical" dependency constrains the spiral to the surface of a unit sphere by properly synchronizing the radial and vertical motions to loop times around while traveling from the south pole to the north pole.
The "toroidal" dependency constrains the spiral to the surface of a torus. Use the "torus radius" slider to set the thickness of the torus and the "through/around speed ratio" slider to set the speed ratio between the two circular motions involved: through the hole and around the hole. When using a ratio of two integers , the path closes on itself after loops. Use the irrational numbers GoldenRatio or 1/GoldenRatio to spread the spirals. With a number like , the path almost closes after seven loops because is well approximated by 22/7, and similarly, with , the path almost closes after 22 loops. Use the bookmarks to view these examples.
Use the "tube radius" slider to set the radius of the tube. Use the "show" toggler bar to enable various visual extras. Use the "surface" setter bar to select which surface to show. Use the "close" checkbox to force the path to close by adding a segment between the starting and ending points.
You are encouraged to experiment with all kinds of combinations. For example, try a constant radial dependency with a logarithmic, spherical or toroidal vertical dependency, or try having both radial and vertical dependencies set to linear. How about a toroidal radial dependency combined with a constant vertical dependency? For the toroidal dependency, it is interesting to try values for radius that are more extreme: 0.5 (horn torus), 0.6 (spindle torus) or 1.0 (double-covered sphere).
It is interesting to animate the sliders "time" and "number of loops" via the Play button. The sliders "time step" and "loop step" control the corresponding step size.
Various parameter combinations are set as bookmarks, accessible by clicking + in the top right-hand corner.
    • Share:

Embed Interactive Demonstration New!

Just copy and paste this snippet of JavaScript code into your website or blog to put the live Demonstration on your site. More details »

Files require Wolfram CDF Player or Mathematica.