Spiral

A few months ago I was wondering around the gardens of Burghley House and came across this really interesting geometric sculpture…

Eliocoide BG

Eliocoide BG – Michele Ciribifera

It was made by an artist called Michele Ciribifera and is one of those elegant structures that uses a simple rule to build a complex pattern. My head was mostly full of Wooscript at the time as I was planning the next steps with the scripting application, but I took the chance to take some photos and promised myself to spend a bit of time building the object procedurally.

Due to the simple pattern that’s repeated to build the sculpture it’s an ideal candidate for building a simple procedural script. First off I started by building a basic spiral. This is pretty easily done. First off I move the position to a place above the ground plane where I can start to build up the central spine.

The principle will be to add a single beam, then move the position along the axis, rotate a little around the axis, and place another beam. By doing this multiple times you can build up the basic spine pattern of the sculpture…

Spines only

Spines only

rule main {
pos.y += 5
pos.x -= 10
rx += 85
repeat (object, 41)
} 

rule object
{
diff = vec(0.3,0.3,0.3)
refl = vec(0.6,0.6,0.6)
gloss = 0.98
call(spoke) pos.x += 0.1 rx += 12
}

rule spoke {
scale = vec(0.1, 5, 0.1)
call(box)
}

From here it’s not too tricky to add the additional elements required to complete the sculpture. You’ll notice there are four segments between each of the major spines. These are slightly twisted to face the direction of curvature and then pinned together with a metal strut. For the purposes of reproducing the sculpture I’m ignoring the strut!

The modification to the script involves adding an additional spoke type which is placed four times between each of the major spines. I’ve taken the following screenshot from the same position as the photo above to test the rough proportions. Close enough for these purposes.

Aluminium proc

Completed sculpture

rule main {
pos.y += 5
pos.x -= 10
rx += 85
repeat (object, 41)
} 

rule object
{
diff = vec(0.3, 0.3, 0.3)
refl = vec(0.6,0.6,0.6)
gloss = 0.98
call(spoke) pos.x += 0.02 rx += 2
call(spoke2) pos.x += 0.02 rx += 3
call(spoke2) pos.x += 0.02 rx += 3
call(spoke2) pos.x += 0.02 rx += 3
call(spoke2) pos.x += 0.02 rx += 3
}

rule spoke {
scale = vec(0.1, 5, 0.1)
call(box)
}

rule spoke2 {
scale = vec(0.08, 0.8, 0.15)
pos.y += 3.75
ry += 5
call(box)
}

For the hero render I’ve set up a simple scene to highlight the geometry. This uses a low orange directional light with a small amount of directional spread, coupled with a uniform blue light to simulate daylight. I’ve also added a touch of depth of field to give it that cinematic feel.

If you’re waiting for the Wooscripter to be released then I can definitely say that things are getting closer. I thought I was weeks away 6 months ago, so no promises, but I’m in the bug fixing phase at the moment, and also adding some user features that will make the tool easier to use and significantly more stable.

Finally, thanks to Michele Ciribifera for coming up with this lovely object!

You may also like...

4 Responses

  1. Sam Swain says:

    He-he, I’m going to have to make this shape in MY procedural modelling tool now Dom. http://thesymbiosisofsoftwareandhardware.blogspot.ie/2013/06/approaching-phase-2.html

  2. Sam Swain says:

    Found a higher-res photo here: http://www.flickr.com/photos/faun070/8905516496/in/set-72157633850808882/

    Looks like extruded aluminium box section. Not sure what the fixings are but I can see two supports above the nearest end.

  3. Sam Swain says:

    Made :)
    https://plus.google.com/photos?pid=5971480272331031506&oid=101847136544348139473
    Barely any lighting model in my (real-time) engine, no surface properties either. Rendering is only a secondary goal to the procedural modelling.

  4. Dom Penfold says:

    I can’t see that image, do we need to be in the same circles? Very interested to have a look. :)

Leave a Reply

Your email address will not be published. Required fields are marked *

Spam Protection *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>