[sharing / help ] Circular animation
Hi,
I'm working on the video for a dance project that will be presented in a planetarium. The video input for the planetarium is a dome master format: a square image mapped onto a half sphere (https://pineappleware.com/sub/domemaster.html)
Most of the content comes from a live camera which is not fisheye. Also the dome resolution is way bigger (4K x 4K)
So I had to find some way to display this video.
One method I use is to have multiple copies arranged circularly with jit.gl.multiple.
I attached a patch to demonstrate what I mean.
I'm struggling with a few features I want to implement, so this post is also to ask some help about that :)
(see inside the patch)
I have the feeling jit.mo might be very resourceful (I discovered jit.mo.circle a few minutes ago...) but I didn't have the time to investigate yet.
I hope someone will find this useful and thank you for every improvement you could make on the patch.
Yoann
Hi Yohann,
I don't have time to update your patch right now, but here's a suggestion; Currently, the [jit.gen] only uses the dimensions of the matrix your pass into it, but you have 3 floats/planes per item. You could use these alter the angular velocity, phase or scale (or anything) for each item individually, just by connecting up In1. The you can change these just by updating that [jit.matrix]. I would keep the rotation angle as a separate parameter though.
HTH,
Nick.
This is really inspiring! Thanks for sharing, Yoann.
Thank you Yaniki, don't hesitate to improve / expend the patch (and post the result back;)
Nick,
Thank you for the suggestion, but I'm not sure we talk about the same thing, or maybe I didn't understand your idea.
I'm interested in grouping the instances by ring / row, not really access each individually
For example rotate the outer ring clockwise at a certain speed and the next ring counter clockwise at a different speed... Same for the scale, one scale for the outer ring, another one for the next and so on.
Your codebox on the right seems very interesting because it gives me a fix number for every row.
If you have time, could you explain me with words what it does? I see the result but I don't really understand how to get there (well, I will spend more time on that tomorrow and it might get clearer)
Y
Hi Yoann,
The right code box just there to ensure that there are no items in the centre. We are using [norm]->[swiz y] as the basis for the radius of each of the rings. Normally, [norm] will return values from 0 to 1, but a radius of 0 would put the first item in each spoke at the centre, so I just squeezed them into (n-1)/n, and then subtracted that from 1, to ensure that 0 < radius <= 1 or more precisely (1/n) <= radius <= 1, where n is the number of rings.
HTH,
Nick.
Ok, thank you, it makes things clearer!
Some progress are being made !
-Scale all instances per ring.
-Rotate independently each ring.
-Adjust rings diameter.
So far it's made for up to 6 rings, but for my purpose that should be enough.
I was stuck on getting / knowing which row of the matrix I was looking at. Of course the answer was super simple and right in front of me: cell > swiz y
Anyway, here is the updated patch