Sunday, September 02, 2007

Computer assisted sculpture

I am going to show you a way of creating sculptures using Mathematica. For the time being, I will show you just one finished example that I prepared earlier, but I will return to this theme in the future to show more generally how you can do computer-assisted sculpture, and lots more besides.

Here is the finished object (i.e. the letter "X") displayed using Mathematica's tasteful 3D rendering:


The basic trick to creating this sort of sculpture is to start with a sheet of elastic "paper", and to then stretch and fold it to the required shape. The allowed moves are basically the same as in origami, except for the fact that the "paper" used here is elastic. Also, in the example shown here the sheet starts off curled round into a cylinder.

The simplest way to see how the cylinder is deformed into the final letter "X" is to see a video of the whole process:


The various steps shown in the above video are:
  1. Start with a cylinder.

  2. Pinch the top and bottom of the cylinder to bring the front and back sheets of its surface together. The aim of this is to create two separate tubes that will eventually become the left and right halves of the "X". At this point in the video there is an artefact where the front and back sheets of the surface pass through each other; this is a side effect of the interpolation method that I used to create intermediate frames in the video.

  3. Fill out the waist of the above surface to compensate for the fact that the pinching operation (2) has made the front and back sheets of the surface touch all of the way from top to bottom. The aim of this is to recreate a 3D volume contained between the front and back sheets of the surface.

  4. Vertically stretch the left and right tubes of the surface. The aim of this is to begin to make these tubes look a bit more like what they need to be to make an "X".

  5. Bend the top and bottom ends of the left and right right tubes outwards. The aim of this is to make these tubes look even more like what they need to be to make an "X".

  6. Vertically constrict the middle of the surface, and stretch the tubes vertically. The aim of this is to accentuate the left and right tubes of the surface, which makes them look like the required "X".

  7. Sharpen the edges of the surface. The aim of this is to make the final shape of the "X" cleaner and crisper.
Each of the steps above is a simple deformation of the surface, and the sequence of steps is carefully arranged so that the surface gets gradually deformed towards the required shape, i.e. the letter "X". More generally, in addition to the basic deformation operations used above, a different starting shape for the surface could be used (e.g. a plain 2D sheet), or more complex operations could be used such as cutting/gluing the surface to create any sculpture that you want.

In the future I will return to this theme to describe it in more detail. I will also post a link here to a more detailed desciption of the steps, including complete Mathematica code.

No comments: