Gray-Scott Diffusion Reaction in OpenCL

zanroversi's picture

Hi there !

It's been a long time... I would like to share a fresh composition, as an exercise with OpenCL. It's a (another...) simulation of Gray-Scott diffusion reaction system which exhibits generation of interesting patterns and structures. You may play with parameters f, k, ra, rb but the MODE index splitter will give some interesting combinations.

I learned the most I know on this subject from there : Many thanks to the author ! he wrote a very powerful simulator too :

As a beginner with OpenCL, I would be interested if any obvious improvement is possible.

Thanks for trying, have fun !

PS : I wrote firstly a Javascript / canvas based simulator, you can compare performances... :

Box2D plug-in

benoitlahoz's picture

Happy to share these 3 Quartz Composer plug-ins bundles:

  • oz.Box2D (11 patches): a "port" of some of the functions of the Box2D physics library, that let the complex polygons limitation be transparent, amongst other things;
  • oz.Geometry (21 patches): some custom geometric functions.
  • oz.Strings (5 patches): a new version (0.33) of my previously released plug-in, aimed to output easily configured text.

Download at: (under construction like ever)

Bullet 'Hello World' example

pascal's picture

I've just put together a sort of "Hello World" example of using the Bullet game physics engine in a QCPlugin :

The folder contains : - a QCPlugin : tLBulletHelloWorld.plugin - a QCComposition : tLBuller_HelloWorld_b1.1.qtz - the related XCode project ( with all Frameworks , and sources included )

To start a project from the scratch you'll need to :
- copy the bullet-2.78/src in your project directory ( and include this in the project search paths ) - import/link the bullet frameworks ( from the Frameworks folder in the Xcode sample project ) .

Voila , sure there might be smarter ways to do it ..just thought this could interesting .


reactive flower box (Composition by dust)

Author: dust
License: MIT
Date: 2011.03.31
Compatibility: 10.6
Required plugins:

so i was messing around with some orbiting physics and noticed some real nice geometric shapes coming from my particle simulation. so i decided to see what this would look like as a mesh filter. turns out a box model gives you this flower like simulation. you can try it with any model. i'm going with the name box flower as sound flower is all ready taken. ;)

multi-touch music box

dust's picture

so this is a comp i have been working on. it is a pretty intensive process as i am using quartz composer, unity3d, and ableton live. in future versions im pretty sure this will have to be a multi machine set up one for rendering one for audio etc..

any thought on how a 3d osc/tuio/midi node graph type of program should work. its all experimental at the moment so i'm making it up as i go along.

the basic idea is to be able to place these nodes or units i'm calling them in chains on the screen to be able to make up graph that produces usable midi data for synthesis. the quick low down is, this patch is sending the position, rotation and scale vectors as midi control messages as well as a randomized arbitrary midi note map to ableton.

this is currently in progress but if anybody is into experimental ways of making music and wants to try this. i'm happy to supply the binary quartz builder and unity files as it seems things run smoother from the binaries.

here is a more detailed explanation from vimeo...

this is an early experimental multi-touch music project, i am working on. it is inspired by the reactable and utilizes the tuio protocol to transmit cursor data to unity via xTuio. in addition to being rendered in unity, quartz composer is being used to parse the spectrums peak amplitude for each instrument that is also being feed into the unity render engine via osc to visualize the waveform between the 3d music box nodes.

there are two types of nodes that both transmit midi note and control data to ableton live for synthesis. the two type of nodes are a synth unit and fx unit. although the nodes act as two different classes they are inherently the same objects transmitting the same data to live.

meaning the fx unit nodes also can act as a synth node and utilize its midi note data and like wise the synth unit nodes also send midi control messages. the nodes are transmitting a random note in the range of 0 to 8. this note is subsequently parsed and retransmitted to live in a particular scale. in addition music box is also sending 8 harmonic notes based on transformation logic as well as transmitting the subsequent rotation, position and local scale vectors for each node as midi control message.

so what this means is you could use a two finger pinch zoom to scale the node up which in turn can be mapped to an instruments amplitude or what ever parameter you would want scale to be used for. although this video is only showing positional usage both position and rotation vectors are sent to live as midi cc. doing a pinch zoom pivot rotation will give the xyz rotational messages to subsequently map.

the fx units are chained to the synth unit nodes via a spring joint so that the position of the fx unit can modify the location and rotation of the synth node by utilizing rigid body physics. meaning that the control messages of the synth unit can also be effected by the fx unit and vice versa. this is all experimental and there is no right configuration at the moment.