Fridays for Fusion & Instancer2D: Foudini’s Copy to Points

For those who don’t know the tool: noVFX is Noah Hähnel’s VFX tools label, with a particular fondness for making compositing workflows less chaos-shaped. Instancer 2D sits inside OpenFX hosts and turns source imagery into procedural populations of sprites, text, graphics or footage, ready for further compositing and finishing without requiring a detour through a 3D package.

We Are Legion: Fusion & Instancer 2D

Motion graphics have always been very possible in Fusion. Even though the lack of layers takes some getting used to at first, nodes offer faster work in the long term, not just a clearer overview. One workflow has always been awkward, though: distributing one or more assets hundreds or thousands of times while controlling variation per instance.

The Shape tools offered some first approaches, but they are relatively static, hit their limits quickly and are massively inflexible. Particles with Replicate3D? A workable route, but building a particle system every time you want to instance in 2D is not really the answer.

That is exactly the gap Noah Hähnel’s plugin addresses. It brings a toolset reminiscent of Cinema 4D‘s Mograph and cloning or Houdini‘s Copy to Points: many high-performance 2D instances that can be controlled and varied through Fields. All of it lives in a single node, cleverly integrated with native Fusion. Our test looks at what it can do in detail and whether it has become a genuinely useful tool.

(Not so) Basic Setup

A single node sounds like very little in our world of social-media superlatives, but I am honestly grateful for the chosen approach. This solitary newcomer answers to the reasonably memorable name Instancer 2D and naturally does not live alone. It reaches cleverly and simply into existing Fusion nodes and their generated colour channels, allowing it to control all sorts of parameters.

Fusion workspace showing a scattered distribution and a FastNoise control
Step 1: A simple X is instanced in Scatter Grid mode; FastNoise controls the overall distribution. I will reveal how the nice blur is created later.

Distribution & Source

First, we feed it the elements to be cloned. This can be absolutely anything, including atlas textures, which we will return to later, and we choose a suitable distribution method in the Distribution field. These range from the simple Grid, Circle and Spiral to Random Scatter, Cluster and the diametrically opposed Blue Noise. The latter distributes objects randomly while maintaining a defined minimum distance, preventing clumping and gaps and producing an organic distribution pattern.

The basic distribution can be controlled with a Density Map. With a grey value of 0.5, an instance has a 50 per cent chance of being placed there. Any node that can output a colour channel is suitable for this, such as FastNoise or a Background node in Gradient mode, alone or combined, or imported footage.

Fusion workspace showing a red aircraft and a white scattered source
The same X is now instanced in Circle mode based on the aircraft’s Red channel.

Variants & Variation

Good scattering depends on two things alongside the distribution method: the variance of the sources themselves and their variation in terms of size, rotation, colour and position.

Variants, FrameSelected & Atlas

The first is solved in a frame-based way: every frame in a range we define serves as a variant. A Switch node can be used to set this up nicely. The selection itself can be sequential, random or controlled by Fields, which we will get to in a moment because there is a lot more to say about them.

One neat idea is the use of atlas textures, known in some circles as sprites: many small individual graphics in a single large image, saving memory and effort. You can create them from graphics yourself or import them from Quixel Bridge if required. In the current version, you only need to make sure the rows and columns are evenly arranged, otherwise the graphics may be cropped. The developer is working on automatic segmentation so that individual variants can be recognised automatically through the Alpha channel. A good idea.

Radial instances and a node graph in Fusion
Two typographic characters and a shape, distributed across three frames, are arranged in a circle. This plays no role in the later animation; it is simply the way the variants are created. The Red channel of a FastNoise defines the choice of variants.
Atlas texture and node setup in Fusion
An atlas texture with correspondingly configured columns and rows creates nice variation.
Sliced source graphic used as an atlas texture
It can of course also be repurposed to have a single graphic sliced like a butcher would.

Animated Instances?

If we want to instance only one source, that source can be animated directly. As soon as we want to work with variants selected by a frame range, however, we have to switch to Atlas Texture mode and quickly assemble an atlas ourselves. That simply means arranging things in rows and columns. It may sound more complicated than it is, but see for yourself.

Two rotating letters arranged as an atlas texture in Fusion
Two letters that rotate via expressions are placed next to each other using a Merge node. Now just activate Texture Atlas mode in Instancer 2D and adjust the number of Columns accordingly.

Variated Variation

The Randomize section provides the basic variation between instances. It genuinely randomises the usual values, such as Min Size and Max Size, and therefore is not really controllable, although that is not its purpose here. We naturally want much more control, animation and range selection. That leads us to the powerful Fields.

Fields

A Field is similar to an effector in Cinema 4D or Houdini: it acts spatially and over time. Here, it can be anything that ultimately outputs an Alpha or colour channel. The colour channels can act separately. The Red channel, for example, can handle scaling while the Green channel controls rotation.

There are hardly any limits to how we create Fields and what we do with them afterwards. Alongside the FastNoise already used, we can add an animated gradient, any shape, or an image, piece of footage or render, then deform, animate, dissect and transform it with all the available tools. Fields affect more than transformation parameters. They can also control Colour, divided into Hue, Saturation and Gain, as well as Opacity and the defocus effect.

Channel Boolean setup controlling instance variation
Channel Booleans assign a circle shape to the Red channel and a dash to the Green channel. The former handles only scaling; the Green channel controls rotation and opacity, supported by minimum and maximum values.

The Core of Animation

Fields are naturally useful, or especially useful, for controlling animation. As long as we can animate the Field itself, such as a wavering Noise pattern, that animation is transferred to the instancing. The result is an intensely interactive and reactive workflow.

Fields controlling colour, opacity and defocus in Fusion
Here, the colour values, Opacity and defocus effect are mainly controlled by Fields, all coming from the Krokodove Line Generator. The Green channel, rotated by 1810 with a Transform, defines the defocus range. Polished with the best glow in the whole wide world, XGlow from Reactor.

Colour Map

Alongside parameters such as size and instance selection, the input image can use a Colour Map to colour the instances and vary the result through Hue, Saturation and Gain using Fields. This makes relatively complex effects relatively easy.

Coloured instances and source imagery in Fusion
One for everything: the fly controls not only size, distribution and instance selection, but also serves as the basis for colouring the instances via Colour Map.

Look at me and go away

Two native effectors are found under Transform: Aim at Center and Push from Center. The first aligns all instances towards an animatable target; the second pushes the instances away from a freely selectable and animatable point. Both combine beautifully and can be strengthened or weakened with Fields.

Aim and Push effectors shaping an instance field
Aim and Push combined. A simple gradient modifies the strength of the Aim effect.

Debug Mode

If something looks strange, such as cropped atlas textures, Debug Mode helps. Alongside various pieces of information about the instances, it shows how the tool segments the atlas texture.

Debug Mode showing atlas texture segmentation
Debug Mode reveals it: with this Quixel texture, we have to intervene manually or get chopped poultry.

Choose Your GPU Adventure

What can we do to make it run even more smoothly? Naturally, it is possible to optimise yourself to death and back here too. In keeping with that, we take the new DP logo and test not only the number of instances but also how we inject our sources into the system. The editor’s approval is still pending, but I am confident.

Our test object is a Text+ node outputting a simple “0”. We distribute it 10,000 times using different distribution methods, which turn out to be more interesting than expected, and apply an animated scale Field and Aim.

We generally land between 19 and 25 fps with a maximum GPU load of 67 per cent on an RTX 4090 under Windows 11, which allows completely interactive work. Performance does not care whether the Text+ node is 128×128 pixels or 1920×1080.

If we replace the Text+ node with the logo from disk, we get almost identical figures. Size and source therefore make no difference for the time being. Animated instances, rotating here through a Transform node and a time expression, also have no effect.

Three variants defined through FrameCount reduce the frame rate to a still respectable 18 fps; a 3×3 atlas drops it to 15 fps. These are all still workable figures. Note: an additional GPU has no effect on performance.

Ten thousand animated instances and GPU performance in Fusion
10,000 instances with an animated scale Field and animated Aim: between 19 and 25 fps. That moves. The GPU has work to do, even though it lets the second one sleep.
Animated instances with Motion Blur, Depth of Field and Aim
Whether text node or new logo, performance stays the same. Even with Instancer’s own Motion Blur, DoF effect and Aim enabled, the machine manages about 10 fps with 10,000 instances. The last-mentioned parameters are a very powerful design tool, by the way.
Source resolution and antialiasing comparison
Speed does not matter; antialiasing does. The source on the left is 128×128 and the one on the right is full HD, so it contains an enormous amount of nothing. The Rendering tab’s Super Sampling can counteract that a little. There is no need to keep the source size tiny at all costs.

A Licence That Met a Render Farm

The free Demo has no time limit and exposes the complete feature set, but watermarks the result. Its licence limits it to evaluation rather than commercial delivery. The Indie licence is perpetual, intended for an individual below €100,000 revenue, and includes two activations. Its regular price is €149. The current EarlyBird promotion reduces that to €89.40 when the code is entered at checkout. Studio is also perpetual and provides three workstation seats. Its regular price is €349, currently €209.40 with the same EarlyBird code.

Studio’s more interesting trick is render-node deployment. A licensed workstation stores a token in Instancer 2D nodes, allowing render machines to process those nodes without separate activation or internet access. That is refreshingly sensible. The instances are supposed to multiply, not the licence bill. Details are available at the Instancer 2D product page.

Honourable mention: A genuinely good PDF manual is included. Not something you can take for granted these days.

Instancer 2D Demo, Indie and Studio pricing plans

Words with Noah

During our tests, we kept in touch with Noah Hähnel, the developer behind noVFX. Besides technical questions and bug hunting with a refreshing very fast response and fixing, we also wanted to know how Instancer 2D came about and where it might be heading next.

DP: How did you come up with the idea for Instancer 2D? And how easy or difficult was it to implement an instancing workflow inside Fusion or as an OFX plugin?

Noah Hänel: I came up with the idea for Instancer 2D because I had to create pseudo-realistic UIs for a television show. Many of these visualisations do not need real data, but they still need to be controllable in order to tell the story. Since I also work with Cinema 4D and Houdini, they were my first points of reference. For most 2D animation, however, they are not really necessary and add an extra step before you have the rest of the composition. In addition, 3D viewports quickly become bogged down with a lot of geometry, but not when you have many textures and graphics, especially when they are animated.

At first I tried to use Fusion’s Probe Modifier and even wrote a script for it. This created Transform nodes with Probe Modifiers. Here is a screenshot of the script prototype:

Probe Helper Pro script prototype window

It was too slow. With many Probe Modifiers, there were crashes and changing values was difficult. In the end, I had to return to Houdini.

But the idea would not let me go. Gradually, I first built a Fuse and then ported it to OFX. It took about a year to move from the Fuse to the released OFX, alongside my film and VFX projects. I also used the plugin frequently on those projects, for motion graphics, faking particles and creating UI visualisations.

The many quality parameters, such as Super Sampling, allow extremely fine graphics or particles to be rendered without running a simulation. Thanks to dozens of optimisations such as MIP maps, Super Sampling threshold, adaptive Motion Blur and much more, the performance remains interactive on most systems. It is considerably faster than creating graphics, loading them onto a material in a 3D application, setting up the instances, animating and rendering them, loading the result into the compositing application and adding more effects.

Overall, I tried to combine lessons from 3D DCCs such as Houdini and Cinema 4D, ideas from realtime rendering in games, and the optimisation and quality requirements of 2D motion graphics.

DP: What is planned for the future of Instancer 2D? Are there features or areas you would like to expand?

Noah Hänel: First, I want to respond to user feedback. What could work better, what should be simpler, and are there bugs that need to be fixed? I have my own roadmap with many ideas and plans for the future, but I would also adapt it. I am currently experimenting extensively with Viewer Widgets in OpenFX. I want to give users the ability to place or change each instance manually when necessary. Internal Fields are also high on the list. They would provide another speed boost by allowing an internal Noise to be used instead of an external one. This would be introduced together with a preset system.

Conclusion

Anyone who regularly repurposes a particle system or other node structures to replicate assets can breathe a sigh of relief. Everyone else can hold their breath briefly before enjoying a clever and efficient design tool for motion graphics, and certainly for VFX too. Noah has built a tool that really ought to exist natively in Fusion. Download the free Demo, try it out for a while, and see what it can do.

NOW GO AND SCATTER YOURSELF!

ProductInstancer 2D
DevelopernoVFX
CategoryOpenFX plugin for 2D instancing and motion graphics
Host compatibilityFusion, Resolve and other OpenFX hosts
Test systemRTX 4090 system running Windows 11
LicensingFree Demo, perpetual Indie and perpetual Studio editions
PriceIndie €149 regular, €89.40 with the current EarlyBird code; Studio €349 regular, €209.40 with the same code
Render nodesStudio token-based deployment without separate activation or internet access on render machines