Thursday, February 19, 2015

Intro to Curl Noise

I gave a small talk at the recent Sydney Creative Coding meet on Curl Noise.

It was an introductory talk with the goal of explaining the basics, so those interested can go off and look at other peoples work and hopefully understand what is going on.

I have put the slides up here. Throughout the talk I took breaks for questions and showed pictures of curl and miscellaneous mathematical facts, which is why those appear.

I also wrote the following apps as demos

curlgrid - This is a basic app to explore noise/vectors/curl and particles in perlin noise
gpu curl 2D - This is a 2D version doing particle advection and curl generation on the GPU
gpu curl 3D - As above but a 3D version

All of them require openFrameworks and the ofxGui addon which should come with oF.

Some links to others work

Robert Bridson - Wrote the original paper on the topic, has some code available
Philip Rideout - More comprehensive examples and explanations
miaumiau - More discussion and cool examples in WebGL

I did only really discuss the basics so if you are interested I would strongly encourage you to go check them out.

It did take me some time to get my head around things, so if you didn't manage to pick all of it up in the ~25 minutes I was speaking for, don't worry about it. Even now I am not 100% sure the 2D case is right, appreciate any comments.

The GPU versions use a transform feedback vertex shader, you can find more info about this here.

If you are interested in the math, you can find more info here

Some other links:

Cosine approximation to the normal distribution: here
A derivation of the volume on an n-sphere: here

Questions/Comments email me or post here

You can also find me on tumblrvimeo and twitter

Thanks!