Render Geometry in 360 Cylinder, Cube Map To Equirectangular Projection (for cylindrical video infinity mirror)


I am working on a circular video infinity mirror where one end of the screen wraps around to touch the other end.

I am wondering if anyone has any insights into how to edit the particlesGpu component such that when a particles exits the frame, it enters the other side similar to transforming a texture with repeat turned on.

I am trying to get rid of the seam where one end of the circular screen meets the other. Any help would be greatly appreciated.

Is it essential that the simulation repeats, or are you just looking for the texture to mirror / wrap?

The transform TOP has a lovely hidden trick that you can se t the extend behavior on the texture to be mirror or repeat. If you both translate the your texture left or right 0.5, and also set your extend to mirror, you’ll end up with a texture that repeats itself and has the illusion of being seamless:

The catch is that this is just a reflection, and if you were using text you’d be caught in your sleight of hand here.

The tile TOP will give you something a little more like a kaleidoscope:

Combining both techniques can push that a little further:

Anyway - hope these help! Lovely portfolio by the way, make sure to share what you end up making :slight_smile:

Thanks for all the suggestions Matthew (and all the incredibly helpful tutorials, they have been a huge help in learning touchdesigner the last couple months).

I have experimented with both the transform extend repeat / mirror as well as tiling to create a kaleidoscope effect with some pretty fun results.

I have also been using a slow scrolling transform + LFO on top of everything to try and hide that I am using the mirror trick.

In the long run I am hoping to figure out a way to take a 360 cylindrical cross section of a 3d environment and map that to the screens (imagine the tube in your screenshots being a moving window into the 3d world). Anyways, I have a lot of learning to do to get to that stage as this is my first foray into creative coding outside of 2d processing renders.

Appreciate all the encouragement and for taking the time to check out my portfolio, I will make sure to post what comes out of all this.

Your secret weapon here is going to be thininking of the world as a dual paraboloid or cube map render. You could turn either of these into a equirectangular map which can be used for 360 videos wrapping back onto objects.

The idea is that your camera would be at the center of the world, capturing the particles moving around it. A cube map from this can be used to texture an object so that the world is projected back onto the surface of your target geometry. How you map that for your LEDs is a little tricky, but the idea here is that you’d want a render as cubemap that you can then use to do your texture lookup.


Three years later, better late than never I guess. Thanks for any advice you may have time to give!

I implemented a cube map / dual paraboloid render with an equirectangular projection and it looks pretty good. I am running into an issue when the geometry is close to the camera there is a slight warping of cubes. Is there a workaround to get the shapes to display properly?

Update: I was thinking about this incorrectly, this is how a 360 video should look if it is going onto bent displays.

I am working on updating this artwork to remove the need for reflection tricks.

Test File:
CubMapProjectionTest.toe (15.9 KB)