MIR can give you some interesting shapes but they are all made from points. It is possible to create a bunch of triangular paths, attach nulls to the corners, and then use expressions as simple as wiggle() to distort the triangles. Shift + Parenting can tie two points from different triangles together. I created this project to test a couple of workflows. Feel free to download it and monkey with the settings.
Here's the workflow:
- Create a bunch of triangles as shape layers (bezier Paths) or in Illustrator and then convert the vector files to shape layers - one triangle per layer
- Make sure the triangles are named so you can keep track of things
- Add a solid + Fractal Noise + Colorama and make adjustments to get an animated colored background layer
- Select the path for each triangle one at a time and use the Create Nulls from Paths script/Points Follow nulls to add 3 nulls to each triangle
- Figure out which nulls on which triangles share a common position (easier to do if you start changing the colors of the nulls) then Shift + parent the nulls to one of the common nulls, lock the child layers, and start moving the parents to the top of the layer stack
- When you can drag a null at the corner of each triangle and move all the right points parenting is complete and it's time to play with some expressions
- You can use sampleImage() to sample the colors of the Fractal noise to generate a random pattern, or you can take the easy way out and just add a wiggle() expression to the position of the first parent null
- I like this one using sampleImage():
target = thisComp.layer("Fractal Noise");
v = target.sampleImage(transform.position, [width, height]/2, true, time);
t1 = (v[0] - v[1] + v[2]) / 3;
t2 = (v[0] + v[1] - v[2]) / 3;
moveX = linear(t1, 0, 1, -100, 100);
moveY = linear(t2, 0, 1, -100, 100);
pos = [moveX, moveY];
pos + position
This expression averages the RGB values of the Fractal Noise/Colorama layer a little differently for X and Y and then uses a linear expression to move the X and Y position of the null up to 100 pixels in any direction. Select the position property, copy expression only, then select all of the other master nulls and paste. You'll get something like this:
