Class 4 - Special topics

Curl noise

A clever observation by Bridson and others lets us calculate the 'curl' of a noise field at each particle in a particle system.. Create a particle system with an omni/directional emitter, and specify this 'runtime after dynamics' expression.

Crack networks from instancing a lattice template

A crack pattern on an equilateral triangle ("prototile") can be instanced over an entire trimesh to create a seamless crack network. Select a polymesh, then run

vorTess "test";
using this program, to create a crackable mesh called "test". The resulting mesh can be subjected to 'vorTess("test2")' for a second round, and so on - the results are repeatedly recrackable.

This S2007 poster describes the idea.

Halton (LDS) sequence

LDS sequences are "predictable but random enough".. This program creates (x,y) points based on the Halton sequence.

source Halton;
genGridPts 16;
genRndPts 16;
testHalton 256;

Alternate Voronoi-like diagrams

Load this .obj polymesh into Maya. It is a Delaunay triangulation of a small set of points. To create a Voronoi diagram and Voronoi-like alternatives from these triangles, use this program.

select -r DelaunayShape ;
source computeTriCenters;
computeTriCenters;
Edit the program, look for the calcCen() proc, and uncomment one alternative at a time to create the variations.

   // computeBarycen($fanList,$msh,.33333,.33333,.33333); // centroid, if equal wts

   // computeBarycen($fanList,$msh,.55,.15,.3); 

      computeCircumcen($fanList,$msh);

   // computeIncen($fanList,$msh);

   // computeOrthocen($fanList,$msh,.0005,.001,.002); // same as circumcen, for 0 wts

   // computeOrthocen($fanList,$msh,0,0,0); // same as circumcenter..

   // computeTwirledCircumcen($fanList,$msh,.5);

   // computeWeightedcen($fanList,$msh);
The point is that the classic Voronoi diagram is just one of many ways of creating a cellular network from a random set of points on a plane.

Here is the S2007 poster on this idea. Also, these two animations show transitions between alternatives:
Movie1
Movie2