Procedural Node-based Modeling: Proof-of-concept

Procedural Node-based Modeling: Proof-of-concept

maruska
Advocate Advocate
1,258 Views
26 Replies
Message 1 of 27

Procedural Node-based Modeling: Proof-of-concept

maruska
Advocate
Advocate

I've always felt that somewhere between Fusion's Parametric Modeling and Direct Modeling there needed to be another option - something along the lines of Grasshopper or Dynamo. I've dabbled in developing my own add-ins, but vibe coding has allowed me to punch way beyond my weight. A few months ago I started scratching an itch - could I build a node-based modeling tool inside Fusion? The first test was to get a UI up and running - something simple like: could I build a box?

Screenshot 2026-03-25 at 9.38.02 PM.png


This first test was built in Python, HTML, JavaScript, CSS, and React using ReactFlow as the framework for the Node interface. I can dive deeper into how it works, but it essentially takes advantage of the lightweight Direct Modeling tools built into Fusion. Since the result is driven by the node graph, I can skip the complex parametric overhead. This allows me to build a lot of boxes near instantly:

Screenshot 2026-03-25 at 9.43.01 PM.png


The thing about working in a non-parametric space is that I could now manipulate the boxes in a way not typical of Fusion. Here I created a node type called a Falloff Effector - this uses a reference point in space to generate a field about which the boxes are moved:

Screenshot 2026-03-25 at 9.43.25 PM.png


I can chain these effects together to both move and scale the boxes within the radius of the point using a parametric falloff curve to define the rate of decay.

Screenshot 2026-03-25 at 9.44.26 PM.png


The next logical step was to try to pattern the boxes along a surface. I developed this test surface that has some very specific surface topology - things like convex to concave, and varying compression and expansion of the surface isoparametric features.

image.png

  

My surface patterning tools allow me to conform explicitly to the flow of the surface UV topology, or defy it to create regular grids on non-regular surfaces like below:

Screenshot 2026-03-25 at 9.46.53 PM.png

I also built a spiral tool specifically for patterning geometry around revolved surfaces. This example is taking advantage of the 3D Point node, which allows me to use sketch or construction geometry to define the point in space about which to apply the Falloff effect. This is but one of a handful of "math" nodes that can be used to drive various parameters.

Screenshot 2026-03-25 at 9.47.07 PM.png


All the above examples illustrate the capability by way of a procedural "box". I have a variety of primitive types that are natively supported, but I can also reference parametric geometries that exist in the scene. Here I built a little triad shape that can then be patterned and manipulated along a surface to make a car-grille-type-thing.

Screenshot 2026-03-25 at 9.49.24 PM.png

The add-in is built to be modular, and over the course of writing it, we (Claude.ai and I) developed a specification that allows new nodes to be added fairly easily and not break things (too much). I plan on adding to it - things like geometry masks, or mesh networks for multi surface pattering. For now, it's still very much a proof-of-concept. There are tons of convenience features that are missing - like node values only work in centimeters regardless of document settings, or viewport widgets that could help position things and help keep track of world space vs local space manipulations. There are some things that are flat-out broken - like graphs routinely lose track of references to things in the scene, such as a body that is to be patterned, or the surface it should be pattered upon. And I'm always running up against edge cases that break things - all the stuff that developers combat, I'm sure. But I have used it on projects, and I find it useful.

 

The main thing I wanted to do here was share what's possible and maybe start a conversation about a feature or new workspace that could be added to Fusion at some point if there's a need.

1,259 Views
26 Replies
Replies (26)
Message 2 of 27

TrippyLighting
Consultant
Consultant

As someone who enjoys tinkering with Geometry Nodes in Blender and occasionally dabbles with SideFX Houdini, I'd love to see this get traction!

I days just had more than 24 hours ...


 

Edit: You may want to rename the title to procedural, node-based modeling. 


EESignature

0 Likes
Message 3 of 27

maruska
Advocate
Advocate

changed the title - good call.

0 Likes
Message 4 of 27

maruska
Advocate
Advocate

(view in My Videos)

Here's a demo of me setting up a basic array in the add-in to get an idea of the performance. Adding an Effector reduces the efficiency of direct instancing - so there is overhead incurred, but not bad for 400 unique bodies.

Message 5 of 27

maruska
Advocate
Advocate

I've started to add the ability to interact and generate curves in the node networks. This is a simple Pattern on Path (not unlike the native implementation)

Screenshot 2026-05-07 at 9.08.41 AM.png

Message 6 of 27

maruska
Advocate
Advocate

But the patterns can have other properties applied to them, like non-proportional scaling effects along their lengths

Screenshot 2026-05-07 at 9.09.06 AM.png

Message 7 of 27

maruska
Advocate
Advocate

this has a scale and twist modifier

Screenshot 2026-05-07 at 9.09.19 AM.png

Message 8 of 27

maruska
Advocate
Advocate

adding a "bank" modifier twists the pattern based on the acceleration of the underlaying input curve. Any rollercoaster designers out there?

Screenshot 2026-05-07 at 9.09.34 AM.png

Message 9 of 27

maruska
Advocate
Advocate

I'm also able to use input patterns to generate new curves. Here is a surface conformant grid. It uses the underlying UV layout of the reference surface, but normalizes the pattern in 3D space for a cloth/weave effect.

Screenshot 2026-05-07 at 9.07.55 AM.png

Message 10 of 27

maruska
Advocate
Advocate

A Spiral Array is transformed into a curve network, then Pipe features are applied.

Screenshot 2026-05-06 at 9.12.49 PM.png

Message 11 of 27

maruska
Advocate
Advocate

A similar spiral (fewer strands) but lofted instead of pipes

Screenshot 2026-05-07 at 9.30.54 AM.png

Message 12 of 27

maruska
Advocate
Advocate

I've also been adding noise function nodes that can be applies to various transforms and effectors

Screenshot 2026-05-07 at 9.27.03 AM.png

Screenshot 2026-05-07 at 9.27.36 AM.png

Screenshot 2026-05-07 at 9.27.56 AM.png

Screenshot 2026-05-07 at 9.28.29 AM.png

Message 13 of 27

maruska
Advocate
Advocate

adding Perlin noise to the curve output before curve generation and lofting...

Screenshot 2026-05-07 at 9.45.22 AM.png

Message 14 of 27

maruska
Advocate
Advocate

the same curve network as above, but but with all the lofts connected - if you're into ugly vases...

Screenshot 2026-05-07 at 9.49.44 AM.png

Message 15 of 27

TrippyLighting
Consultant
Consultant

@CGBenner I would love to have some feedback from the developers in this spot. With the powerful AI tools available today, I think we'll see a lot more of this, albeit I believe most projects will not be as advanced, or ambitious as this. Projects like this deserve all the support from Autodesk they can muster!


EESignature

Message 16 of 27

maruska
Advocate
Advocate

Thanks, Peter. I'd love to chat with some of the devs about this. It's a very niche tool but it was born out of a need I had for some projects and it's just kind of grown over time. I recently rearchitected how the data flows through the graphs which has made adding new node types much easier.

Message 17 of 27

maruska
Advocate
Advocate

I took the ugly vase and ran it through the falloff effector to reduce the noise as we get closer to the neck - less ugly now.  😀

Screenshot 2026-05-07 at 4.05.25 PM.png

Message 18 of 27

BrianEkins
Mentor
Mentor

This looks fantastic. Something to try that should improve the performance is to, instead of creating any persistent bodies, draw them using custom graphics. Then, when you've finished with the design, you can create the persistent bodies. The big overhead is parametrics, and you're already avoiding that by working in direct edit mode. It should be a fairly easy modification to test it out and see how much it improves the performance. There's a topic in the API User's Manual about custom graphics.

---------------------------------------------------------------
Brian Ekins
Inventor and Fusion 360 API Expert
Website/Blog: https://EkinsSolutions.com
0 Likes
Message 19 of 27

maruska
Advocate
Advocate

Thanks @BrianEkins . Performance is pretty good. The vases above take only a couple of seconds to generate all the instances. An early optimization I made was to just destroy the Base Feature every time you regenerate the graph - it sucks for Timeline reuse downstream, but it means not having to iterate through thousands of bodies either. The graph uses an Attributes system not unlike Maya, where each point instance stores metadata about the body it will later produce. That array of attributes gets compounded and computed only when you execute the graph. 


Early on, I was using custom graphics to pre visualize some of the effectors. I might revisit it at some point though and will certainly look at rendering the primitives rather than just dots.

Screenshot 2025-10-24 at 2.44.33 PM.png

0 Likes
Message 20 of 27

maruska
Advocate
Advocate

A quick render of the vase with gradient noise
untitled.348.png