Disturbed gradients

3 05 2013


Simple gradient studies. I have been experimenting with different methods, how to use a simple (2 components) gradient to generate more complex structures.


Please Click on this image to see the full size (there is a really disturbing vibration) and use the magnify.


Please Click on this image to see the full size (there is a really disturbing vibration) and use the magnify.


(this one is not vibrating)

animated gif -remixes

18 05 2012

This post is about quartz composer and animated gifs. Here is the story:

1. couple of days ago i saw this post. The author says: “But this seems to be a bit harder as QC doesn’t support Animated GIFs either.” i started to think about that but after i needed to do other stuff. But fortunately i was not alone with this problem.

2. that afternoon lov from coge, wrote me, he had a strict idea about how to solve this problem and he made a small presentation. Let me paste the video here. (and he used my gifs-thanks:)

3. after that i was thinking about the frames. Because animated gif contains frames, but these frames are more like images with time delay. Here you find more information about gif.

So my question was (and lov gave me the answer to that question as well): is it possible to import gif files to quartz composer, but as a sequence of frames (structure)? Here is the default solution:

Pretty simple, and from this point we can animate gifs with linear speed or random or whatever. But there is a small ,tiny problem. If we would like to use the patch for more complex projects, we need to be able to load files without the “image loader”, because the image loader will store the file inside the composition and there is no real input field option for the image (no input splitter for example). So i was looking for other solution and i found it.

this patch is using some commercial, third party components, thats the reason why iam not going to upload it. But on the image you can see everything.

This gave me an impulse to sit and remix some of my gif animations. Result is here. Iam really up to make a pure, animated gif based visual performance. Iam so excited:)


2 05 2012

In the last 3 weeks i was experimenting with different feedback based face distortions. Here is a small preview:

Birds and others

24 01 2012


Half year ago i started to work with broken 3d forms and artifacts. I used many different parameters for the animation, and i got a random result, it was like a bird. After half year when a friend of mine mentioned this image i reworked that project and i started to generate directly birds. The animated versions you can see on my “anigif” site.


and a reindeer…

and a dead dog (not so optimistic closing image, sorry for that)




pixel clown…

25 08 2011


Iam experimenting with different image processes (quartz composer + databending+extrafile).

more examples are here.

please click on the image to see the animated version.

animated gif

25 05 2011

I have started to play with animated gifs and 3d glitches. Few results are here:

what a difference- with generative content

6 05 2011

I just updated my ‘what a difference’ project with some generative content and more random values.

At the final feedback i put a simple transform to push the translation horizontally.

See the demo video here:

what a difference- a very useless tutorial 2.

26 04 2011

This post is going to be another super useless tutorial. 


here are the steps:

1. we will make a  a basic motion detection with random resize.

2. we will change the  motion image in to a mask

3. we will use this mask in a feedback loop to produce this glitchy movement.

During this tutorial i will use a fix resolution (800×600), it is possible to use different size or use a ‘rendering destination image’, but i prefer the fix size.

1. lets use a ‘video input’ as an input video signal and lets resize it randomly, i used two simple ‘random’ nodes one to the pixel wide and one to the pixel high. I used 10-400 and 10-300 for the min and max values of the random. Now lets stop here for a while. when i scale down the image the result will look like this:

this image is a bit blurry and for the more glitchy result i want to see more the pixels. Like this:

Both image is downscaled to 80×60 pixels, but at the first image i used the default pixel interpolation, at the second result i used the nearest neighbor. A simple ‘core image’ node is able to solve this problem without writing code. Lets click on the ‘core image’ node and at the inspector window lets go to the ‘settings’ (command + 2) and lets use the  ‘Show Advanced input options’. Now click back to the ‘input parameters’ (command+1) and change the ‘linear’ to ‘nearest’. Now we just need another resize to uniform the image to 800×600.

Then lets work on the motion detection part. There are many solutions to do this(optical flow by Vade) , but i would like to use the simplest solution. Lets get the difference of two frames, for this lets use a ‘queue’ node (size 2) and a structure index member (index: 0). How does it works? I put my video signal in to the queue, so it will generate a structure of images, in this case a structure with two members (0 and 1), after i will choose the first image from the structure. Now i just need to compare with the original image, for this i will use a ‘different blend’. So i will put the original image as background and the structure index member output as the other image. Voila we have the motion image.

As you see, there is a ‘signal’ node connected to the ‘Filling’ input of the queue. For me the motion image was a bit vibrating so i put the ‘signal’ to give a ‘bang’ at every .1 seconds. Not necessary but handy for the better result.

2. Lets create the mask from this image. Lets use a threshold. As we can recognize very quickly, there is no built in threshold in quartz composer, so we have to find one. There are different custom plugins (2 of them are really cool) but we can use the simplest ‘Core Image’ code.

kernel vec4 multiplyEffect(sampler image, float threshold)
float a = (1==2/2)?1:0;
vec4 px = sample(image, samplerCoord(image));
// premultiply (px);
a = (px.r * px.g * px.b);
// Test if product of color compoonents is below threshold and set to zero if it is, else 1.
// float b = (a <threshold)? 0:1; alternative function
float b = step(threshold, a);
vec4 px_c = px *b;
px_c.a = b; // Alpha component for mask (unnecesary though)
return px_c ;

I found this snippet on the kineme forum, but i have no idea who put there.Sorry for that.
I would put an interpolation to the threshold amount. What is really important, the minimum value has to be 0 (this will clear the feedback loop).
The thresholded image will be our mask image. So lets turn to the final step (and a special thanks to wordpress for the different fonts).

3. for the feedback i will use a custom plugin from Noise Industries. They are writing effects for final cut pro, avid and after effects. They are using mostly QC based stuff, and they let us use several custom plugins.
Lets choose the one called ‘dissolve with mask’.

we have three inputs:
1. image: the output from ‘Accumulator’ (dont forget to adjust the pixel size), and lets hook the output of
‘dissolve with mask’ to the input of ‘Accumulator’. This will generate the feedback.
2. target image: the original image (rescaled to the right size, now 800×600)
3. mask image: the threshold’s output

special thanks to Andrew Benson who wrote a very similar tutorial to Jitter what i read a couple of months ago, and now i utilize it very deeply.

easy data-bending with quartz composer

27 03 2011

In this tutorial i will show how to make a small patch for easy data-bending.

The trick is very simple. I open the file in the built-in text editor of osx, copy the text to quartz composer , change several numbers and save the file with a new name.

The file type we want to use is an .obj file (3d object) – if you don’t have it just download from the net.

Why an .obj file? because the structure of the file is really easy, not disturbing captions like in the collada format, what i’ve tried earlier.

v  -23.041946 2.132653 4.222926

v  -23.768387 2.117765 3.861515

v  -23.290339 1.885496 3.681014

v  -23.290339 2.763085 3.681014

and more variations (i think these are the coordinates of the vertices).

So lets open the .obj file in the text editor and copy the text (all). Then in quartz composer lets put a ´string replace´node 2 or 3 times or as many time as we wish to modify the values. At the end lets hook a “kineme text file write” from the´kineme file tools´. Now lets paste the text to the first `string replace´string input.  If we take a look into the coordinates of the obj file we’ll find this: x.xxx , so my concept was to replace first all the 1 to 2 and then change all the .0 to .2. This is just one variation but it works well. I’ve tested with a sea-star, and i got a really nice abstract form. More variations are possible of course, its a good opportunity for further experiment.

For those who don’t know how to open the (data-bended) `.obj´file, there are two options:
Kineme 3d this is not free, but really cheap and you have the option to use some post process things like the ´Kineme 3D Object Blend´to make a nice morph between the original model and the modified one.
V002 Model Loader (from Vade), this one is free and has a lot of goodies (wireframe, texture options and more)

I would put one of those in a track ball macro and after in a lighting macro and done.

So the question is this: is it possible to use this solution with other file formats?

the answer: Yes, from the bitmap formats there is the ´.raw´file. The problem with the non raw based formats, there is this header thing, if we modify it, the file will be dead. The raw format is without header. Anytime i tried to do it with any other formats, quartz composer did something with all the text and i was unable to re-open the file.

so i randomly modified the letter “o” to the letter “p” in my raw file. After i reloaded in photoshop.

i would share two important links at this point:
1. the ´Vernacular file formats´
2. Stallio´s tutorial

happy bending!!!

the data-bend and the 3d models

25 03 2011

These are just the first steps of my experiment with 3d models. I used collada format (.dae), i didnt try with any other format, but iam sure that .fbx is not working at all.

I made the first test with a simple sphere, and maybe i was lucky, because it worked well. here is the result:

i really like the idea of the perfect spherical form going to be an abstract structure. I put some lights on, but i didnt touch the surface. The moire like failures on the surface are without any texture.

here is this moire like surface:

Afterwards i tested several complex models as sea-fish, cassette, skull, abstract structure of pipes and a tree. The models during the databend was totally destroyed, so i changed back to a simple form. It was a Icosidodecahedron.

This is the really perfect form, really difficult to destroy.

The next step would be to test a model with texture.