[NetBehaviour] Crystalline Chlorophyll
Joseph Gray
josephgray at grauwald.com
Thu Sep 3 02:06:55 CEST 2009
This is a piece created in the last few months being shown at
Bumbershoot in Seattle. It involves projection mapping, camera
tracking and pseudo-organic growth scripts.
http://grauwald.com/art/crystallinechlorophyll/
Below is a description of how the thing was built, with links to the
project files, just in case anyone might stumble upon this and be
interested in the technique.
Cheers,
-Joe
Working Files:
The working files, digital sketches and conceptural renderings for
this piece are being "open-sourced" under a Creative Commons license.
Below are links to folders containing all files generated in the
production and realisation of this piece.
Sketches >
http://grauwald.com/art/crystallinechlorophyll/sketches
These are the original concept designs. The original object was
designed in Blender, it's facets were unfolded using the "unfold"
python script. The key to using this script is to break the triangles
up in rows and unfold those rows as individual objects. The unfolded
meshes are then exported as .svg UV maps. More information on the
technique of going from 3D model to papercraft can be found in this
tutorial.
Production >
http://grauwald.com/art/crystallinechlorophyll/production
These are the files used for production. Mostly open-source software
was used for this piece (albeit running on OS X), however Adobe's
Illustrator program was used to convert the .svg files exported from
Blender to .pdf files for print. The various facets of the physical
sculpture were printed on standard tabloid sized paper (11x17 inches)
at a local copy shop.
The individual triangles were cut-out by hand with tabs on the edges
that were folded under and glued together.
Code >
http://grauwald.com/art/crystallinechlorophyll/code/
The code is written in Processing and uses the Saito .obj loader
library to import the 3D object which was exported from Blender as
a .obj file with a .mtl file. Texture maps were also created in Adobe
Illustrator and exported in .png format, though other, open-source,
programs may have worked just as well (i.e. Inkscape).
The software also allows for rotation, scaling and positioning of the
object so that it can be aligned to the real world object. This is a
bit of an awkward portion of the tool, but essentially holding x y or
z on the keyboard while dragging the mouse changes position. Shift+x y
or z changes rotation. w d and h keys change scale. In early versions,
and then later added back into the most current version, the l key
changes the virtual cameras field of view which is very important for
matching the real-world video projectors lens properties to the
virtual cameras lens properties.
Camera tracking is done with a simple difference algorithm. Each
channel (RGB) of each pixel of the camera image is tracked for the
amonut of change from the previous frame. If the number is above a
certain threshold a random number is generated to determine if the
associated pixel in the real-time texture map should change. A height
map generated in Blender partially determines the probability of a
pixel changing from the static "ice-crystal" texture to a "mossy" one.
Other influences are neighboring pixels values and the amount of
change in the camera pixel.
Promotion >
http://grauwald.com/art/crystallinechlorophyll/promotion
These are promotional materials for the Bumbershoot show.
Images >
http://grauwald.com/art/crystallinechlorophyll/images/
Images of the process of constructing the piece and other documentation.
More information about the NetBehaviour
mailing list