Generative FUI Technique 2022
Updated workflow using Blender3d and Geometry Nodes.
Intro.
In 2020, I have written an article named Generative FUI technique where I was exploring this topic using After Effects with particle system. There were many sketchy workarounds not very efficient to overall workflow, not to mention that, caching high resolution frames with big particle count and mirrors can take forever. Overall sluggishness of after effects these days, made me think about alternative, more fast and flexible solution to this task. I’ve decided to give blender a try.
Concept.
The base idea was the same, to distribute premade shapes on mesh, with distinct orientation to easily create mirrored parts by actually flipping them in 3d scene and not using mirrors on rendered layers in post.
Ver 01. The Wrong Way.
The first attempt was at the beginning of 2021 with blender native particle system and hair.
We achieved a certain result, but there were some issues along the way. To scatter particles on mesh was not a problem, pseudorandom distribution with seed numbers makes it easy to create mirrored copies of the system. But features of standard blender particles are very limited. For example, I needed to create 4 copies of my collection rotated to 90–180–270 degrees, to get all the needed rotations of shapes. Also, I needed to make additional copies of collections, manually set object naming and order on lists to keep the system working properly.
It was not a very versatile setup, with many things that needed to be done manually, the necessity of external controls and driver expressions to work with it. But then came blender 2.93 with geometry nodes, and I decided to give it another try.
Ver 02. Geometry Nodes.
Knowing the capability of geometry nodes is almost limitless, my goal was to fully automate all issues of the previous iterations, like manual orientation of object copies etc. System that can take one simple collection of objects and do anything inside.
Basically, the graph looks like this. We feed geometry into Point Distribute node, which creates points on the surface of the mesh using its normal information for point orientation. Then we randomize Scale attribute of each point in a given range. The second group of nodes is for adding a random 90 180 270 degree rotation on Z axis to each point. Then Point Instance node spawns a random object from a given collection on every created point. Now we can apply this geometry nodes setup to 4 flipped planes and use a single arrow as an object in the test collection.
Design.
It works as expected. The next step will be the creation of these collections with shapes and meshes. Here is the time to play with design, and find what works for you. In my experience, smaller and simpler objects work surprisingly well. My collections look like this.
Optimization and workflow.
Next, we can group the pre-rotation part of the graph, so we will not be touching it again. Copy this system several times to keep individual control on different collections. Feed frame number to Point Distribute seed with offset for each additional collection and have fun playing with parameters.
Next step.
Whilst we are using blender, it is not necessary must be only flat. We can apply this geometry nodes graph to any 3d shape and use meshes as objects in collections
Or make a procedural robot by applying this system to a simple mesh.
(and mint 10.000 of NFT’s lol)
There are many cases of use of this technique, and the process of playing with it is fun itself. Don’t forget that design of shapes is a crucial thing here. Don’t underestimate the importance of well-thought and logically separated collections.
Legacy nodes.
One thing is that geometry nodes keep updating rapidly, removing old and adding new nodes. As you can see, the exclamation mark on nodes in screenshots means they are legacy nodes and will be removed after version 4.0. But understanding this workflow, you can easily replicate it using current nodes, it is pretty basic stuff.
Patreon.
And at last, you can download blend-file with this node structure from my patreon if you need to. In the future, I’ll upload a few shapes and mesh packs for this generator and other various assets.
Contacts & links: https://taplink.cc/sashamartinsen
Patreon: https://patreon.com/sashamartinsen
Twitter: https://twitter.com/sashamartinsen