Jitter Fractals

The image creation relies on a video feedback loop with rotation, zooming, position displacement and contrast/luminosity/saturation modifications. The input is the in-built webcam of the computer.

Lately, I modified the software to switch from CPU to GPU processing which really works faster and smoother, but I don’t get the same colors and textures…
I’ll try to find time to make another video.

The objects used in the CPU version are jit.op @op avg, jit.xfade, jit.rota, jit.brcosa, with matrix feedback.

Apr 16 2012 | 8:40 am

Looks amazing – is there a patch you can share?

Apr 16 2012 | 10:08 am

I prefer to share the idea more than an already made patch.
It’s very simple technically.

I don’t want to point people to one direction using feedback technique.
If you really don’t find a way to create a video feedback loop, I could share a way to do it…

Thanks for your attention and replay by the way.

William Graham
Apr 16 2012 | 8:44 pm

very filthy

Apr 20 2012 | 10:56 pm


Jan 22 2013 | 9:33 pm

Hey awesome patch, do you mind explaining how this matrix feedback works?

Jan 22 2013 | 10:56 pm

to create a feedback loop in jitter, there’s a little trick, like in msp you need [send~] and [receive~]
I just opened my CPU version and without doubt it’s way better (but way slower too)

so for the feedback loop you need [jit.xfade @in2_name x @out-name x].
the xfade message will control the feedback amount.

you connect your video input to [jit.xfade] in1 then its output to the video processing (in this situation [jit.rota @boundmode 4] and [jit.brcosa]) and the processing output back to [jit.xfade] in2.
a [jit.brcosa] on the output is useful to bring back the luminosity/contrast the feedback loop removes.

if you don’t get it, don’t hesitate to ask questions, if you find any nice results, show us.
have fun.

Jan 31 2013 | 3:06 pm

I just started using Max/Jitter and this has to be the coolest thing I’ve seen so far come from it. I just hope my projects turn out to be this sweet.

Feb 01 2013 | 4:24 am

thank you.

Oct 26 2013 | 10:37 pm

Hi Bertrand!

Kudos on the awesome patch. I have been interested in video feedback for quite some time now, and am finally trying to create ‘digital feedback’ as opposed to analog using Jitter. I’m just curious – did you manipulate the parameters (zoom, position displacement, etc.) in real time, or were they set to static numbers? I’m a Jitter newbie, so any tips you can provide are most appreciated. Keep up the good work!

Oct 27 2013 | 3:23 am

I can tell you quite clearly that the jit.rota was manipulated quite a lot in realtime.

Hope this helps.

Oct 27 2013 | 9:26 am

Thanks… I have copied the attribute buttons for the jit.rota object from the jit.rota help file, but I am unsure how to set things up so that these values can be manipulated in real time – right now I am only able to click and drag on the numbers, or enter them manually. I have a midi controller (M Audio Axiom 61) – is there a way to map knobs to control these parameters in real time? Or are there other objects in Max that are well-suited for this purpose? (I’m sure there are).

Thanks again for any insight!

Oct 27 2013 | 11:11 am

yeah, those attribute things are problematic, to say the least – they don’t save with presets either, IIRC. Great for prototyping, bad for patching…

do the traditional method instead; message box with "anchor_x $1" and integers coming in there.

Oct 27 2013 | 11:35 am

wow! great great trick! thanks a lot, awesome!!!

Btw, can someone please explain to me the function of "@in2_name x" and "@out-name x" in jit.xfade? Of course I checked the reference but can’t understand what is going on in this case…

@DCARDELLO: check Max tutorials—>MIDI—>Basics. Or check ctlin object.

Oct 27 2013 | 11:42 am

it seems it works in the same way without "@in2_name x" and "@out-name x" in jit.xfade…

Oct 27 2013 | 12:46 pm

@T the problem that DCARDELLO is describing is the attrui objects that Max creates. They’re great for somethings, but can’t really be controlled sensibly using anything other than a mouse.

Oct 27 2013 | 12:49 pm

Oh, and as a tip to the uninitiated, I think the key tweak here is [jit.rota @interp 1]

Oct 27 2013 | 9:18 pm

appreciate the tips, all. yes – I am a newbie. to be fixed soon >.<

Nov 15 2013 | 11:21 am

I’m also trying to get a fractal effect like this by webcam input, I followed the hints but cannot get the fracal effect. can somebody see what i’m doing wrong or hint me in the right direction?

  1. feedback.maxpat
Nov 15 2013 | 12:58 pm

don’t really know how exactly you’d get fractals out of video, but you can get video feedback like so:

-- Pasted Max Patch, click to expand. --


Nov 21 2013 | 6:31 am

I would say the fractals are working like this video but based on the buffering in max and changing the jit.rota function inputs. If someone makes something similar, do share!

Nov 21 2013 | 9:30 am

Wow, just did a small patch with xfade, rota and brcosa, here’s me playing only with the theta param of jit.rota:


Nov 21 2013 | 5:29 pm

Simple one using jit.op (max) and jit.rota. Boundmode seems to be key to me. https://www.youtube.com/watch?v=UQmwQtn0d9g

Nov 22 2013 | 8:18 am

Have fun !

-- Pasted Max Patch, click to expand. --


Viewing 23 posts - 1 through 23 (of 23 total)

Explore More

Subscribe to the Cycling ’74 Weekly Newsletter

Let us tell you about notable Max projects, obscure facts, and creative media artists of all kinds.

* indicates required