Ginger section
It’s always still a nice surprise to spot other people’s experiments with these libraries in the wild. Just came across this beautiful example of using volumeutils by mariusz0z0Bydgoszczy, a cross section of an imaginary plant. Unfortunately no further info is available about the actual growth process, though it looks like a semi-random particle walk or DLA method.
I especially like the amount & colours of the contour layers used to visualize different densities. A similar (only in principle) thought also lead to the concept for the V&A Decode Identity completed recently. Just create a VolumetricSpace instance, use one of the preset VolumetricBrushes (or create your own one through sub-classing), use it to manipulate the “density” in the space and then pass the space instance to a IsoSurface to turn it into a TriangleMesh. Et voila! Example code for this basic approach comes with the volumeutils library download.
UPDATE: There’s also an older, alternative version which is using sensor inputs to control its growth (so maybe the above process is related or even the same)…
“this rhizome grows only if PIR sensor doesn’t detect movement [either nobody is in the room, or you stay still] amount of light measured by photocell influences branches girth. in this way, resulting form is a diagram of changing environmental conditions.”

martor1yeria : Toxiclibs: http://t.co/SCQ32LEM
lgguts : testando processing+toxiclibs+verlet physics http://t.co/CnZhJSnF
thank you toxi. your libs are a kind of breakthrough in the community no?
a little bit more here: http://echoechonoisenoise.wordpress.com/
I’m curious, what method(s) would be a starting point for clipping the volume? Here it looks like a simple AABB is doing the clipping. intersectsRay?
Very cool though.
No need for that (in case of the AABB style clipping as above). The volumetric space itself is a cubic grid and what you’re seeing is simply the full space and the fact that he didn’t close the sides of the volume. You can also see the effect in the BoxFluid demo which comes with the libraries, only there I chose to close the sides by default (can be toggled on/off though). Online demo of that is here: http://www.openprocessing.org/visuals/?visualID=9673
As for clipping using a freely defined plane or other form: that’s something still outstanding (unfortunately), but since the resulting mesh is a standard triangle mesh you could at least do a simple culling of entire polygons by using the classifyPoint() method of the Plane class. If one (or all) vertices of a triangle are on the “wrong” side of the plane, simply don’t render it (or build a new mesh which only contains the triangles which are valid). That approach will create fuzzy borders for non-axis-aligned planes, but is better than nothing. If you want to spend more effort you can then also use intersectsRay() from triangle vertices outside to find the correct point on the clipping plane…
That’s great thanks so much!