Polyfolding – Part 1

comments 7
Free Tutorials

This is the first part of a two part tutorial. Part two will be available soon.

Polyfolding is an interesting effect where you split up an object to individual bands and make them curl up. It can be used to disintegrate an object or make it appear from nothing. To achieve the curling behaviour some matrix math is needed. All primitives are treated like individual objects, with their own distinct transfomation matrix attached. Then, they can be put into a hierarchical relationship to make the successive curl happen.

Here’s the video by Elisha Hung that inspired me to implement the effect.

Download working file

Liked it? Take a second to support Manuel on Patreon!
Become a patron at Patreon!


  1. concerned listener

    You sound deathly ill, mate. If you haven’t already, please see a doctor.

  2. There are max() min() functions in vex that would return the biggest or smallest value in the array, just as a small optimization here. as always: thanks for sharing your knowledge Manuel!

  3. Instead of reversing the parents array and then removing the first index to remove the -1’s in the gather_parents wrangle. I think you could just check if the parent is >= 0 before the append…

    Not sure if that would improve performance or not but just a thought.

Leave a Reply