Layer puzzle -- 2D weaving

I am trying to make a 2D weaving pattern using layers. I started with a mock up in After Effects, which allowed me to precomp one set of the animated pattern then repeat it and stagger the timing so it looks like it is weaving over/under from the upper left to bottom right of the window.

Now I am trying to do it in Vuo. I have one set of the pattern working in the attached comp. How can I repeat it across the window with the proper timing from upper left to lower right? (I am assuming the Schedule node is the way forward for timing). Can I precompose this and repeat it like I hoped? Or is there another method, like with Build List or Process List?

Related to this, if I go the precomp route I was wondering about using image protocol – is there a way to use Align Layers to Window using the Image Generator protocol? Or is there another way? I guess I should just use the center parameter on the layer and skip the align node?

Any help is appreciated, it’s a bit of a puzzle right now for me.

By the way, the original is a qtz, a different approach using iterators, and I sense that the Vuo way could be snazzy when it comes together. :-)

weave2D.vuo (16.6 KB)

Just to be sure I understand the goal correctly, you want to somehow tile the animation but each tile to start playing sequently ?
Like tile the animation first top left on the screen, then make it freeze and copy a tile next to it that starts to animate right ?

Hey, thanks, @Bodysoulspirit. Sorry for the convoluted description. You got it – I want the animated tile (in this case with two rows and two columns) repeating in succession to have the illusion of continuous weaving from the upper left to lower right.  

1 Like


Guess there could be several methods (save the frames, render in Image with frames, perhaps process list, or more schedules …).

Anyway, here is a method as a start, meant to be bettered.
It saves 248 layer frames of the animation (have to check out how many frames it creates depending on the duration) and delays it for each tile.

Enlightened the composition for a better view, so you might want to adapt the layer animation back to a “grow from side” instead of “grow from middle”. The Vuo built-in sample composition “Visualize Frequencies” demonstrates that too.


Weave2Db_02.vuo (13.4 KB)

1 Like

Interesting! Thanks! Enqueue had just come to mind as a possibility, but I hadn’t yet tried anything with it. Good to see this. The second Schedule timing setup is very clever!

Btw, as a case for using Build List or Process List, my qtz iterated rows and columns of sprites (with extra iterated sprite rectangles carefully placed to create the over/under weaving pattern). It was a different animation look than this idea, though I liked how it worked, fun variations more about color. Hopefully the Vuo version will end up even more fun when the solution arrives.  

1 Like

Keeping in mind @Bodysoulspirit’s clever use of Enqueue to store frames, I think getting a Build List involved solves some other problems for my purposes. Is there a way to offset the time for each item as the list is built (and possibly avoid using Enqueue and its delayed load time)? The attached comp has the basic Build List setup with all items starting at the same time.  

weave2D_v.2a.vuo (21.4 KB)

Here’s a revision of @Bodysoulspirit’s composition that uses Build List instead of Enqueue. It takes Build List : Build Item, divides that by 60 (for a 60 fps animation), and feeds that number into Schedule : Time. In other words, the Build List loop is passing fake times into Schedule to fast-forward through making the layers.

Weave2D_BuildList.vuo (15.6 KB)

1 Like

Thanks, Jaymie! Another piece of the puzzle, as it were.

The thing I am chasing is to have real time control over the tile parameters – to be able to change number and size of tiles, color, texture, width, gap/spacing, animation rate. I would also like to make this into an Image Generator / subcomposition.

So, the way I understand it, stage one is solved and the problem left to solve is in the second stage. That is, whether using Enqueue or Build List, the first stage of this technique right now involves making the animated “tile”, then packing each “frame” into a list (kinda like buffering a list of movie frames).

For clues with the second stage – playing the tiled animation at offset times – I’m looking at a smokris (sub)composition from the post, Grid of Movies? called “get layers at time”. Pretty sure the second stage also requires building a list – unless there’s another tricky way, the Schedule node won’t do the job here because of the limited number of outputs.  

Here’s my latest, using @jstrecker’s Build List and the clue from @smokris for adding a second Build List to handle time. It appears like progress, like the formula for stage 2/offsetting time just needs to be worked out.  

weave2D_v.3a.vuo (25.5 KB)

is there a way to use Align Layers to Window using the Image Generator protocol? Or is there another way? I guess I should just use the center parameter on the layer and skip the align node?

That’s what I’d do for now. Align Layers to Window wouldn’t exactly work since the Image Generator is not necessarily rendering to a window, but we plan to add some nodes and ports that will make it easier to align a node to a corner or side based on the Image Generator’s Width and Height published inputs.