OpenGL shell and horn generator. Exports Wavefront OBJ and POV-Ray mesh2.

jpg jpg jpg jpg jpg jpg jpg

Spiral 1. Geom. one of several plane curves formed by a point winding about a fixed center at an ever increasing distance from it. 2. A curve that lies on a cylinder or cone, at a constant angle to the line segements making up the surface. (Collins Concise English Dictionary).

The above definition is too general to be of use when modelling organic shells and horns that grow by accretion of material. The spirals of nature are of a very specific kind, and all follow one mathematical rule of growth: the size increases but the shape remains unaltered.

The only curve to obey this rule is the logarithmic spiral which has inspired artists and mathematicians for millenia.


The logarithmic spiral is known by different names. Descartes called it the equiangular spiral because the radius always cuts the curve at a constant angle; it is sometimes called the geometrical spiral because the radius increases in geometric progression. Bernoulli was so enamoured with its mathematical perfection that he described the curve as spira mirabilis.

I have been interested in the logarithmic spiral since art school days and my early ventures with turtle geometry (LOGO) were done principally to generate horns and shells - but all of these were in 2D. Enter Whelk...


Note: no “bump mapping” or textures are applied – all deformations are created in the actual mesh by supressing the generated waveforms.

Whelk might have been called Mollusc, except that “Mollusc” sounds too beefy, and Whelk is just a lightweight utility. Nevertheless, Whelk is quite versatile and powerful: it has been specifically designed to perturb mesh geometry and combine perturbations in layers. The addition of Perlin noise in Whelk-0-0-4 creates highly realistic and organic forms.

Links in progress

Sine Wave Perturbation

Perlin Noise

Profile Editor

Using Layers

Wave Supressor

Generator Controls

POV-Ray mesh2 export

Development snapshots 32 bit MS Windows. Tested on Windows XP 32 bit and Windows 7 64 bit.
Changes are documented in the Readme file.


MD5 sum: 76a1b8074553eb4811cc85968ab8edf3

Date: 5th April 2015