2025-04-24 - Design Session: Essentials Assets

Attendees:

  • Dalai Felinto
  • Pablo Vazquez

As part of Blender 5.0 asset embed will encourage more high-level assets (node groups) to be shipped with Blender.

This design proposal tries to map out which assets and node-groups could be shipped with Blender and the related needed changes.

This proposal will still be presented to the relevant modules (Modeling, Nodes & Physics, User Interface, …).

Missing UI features

There are still UI behaviour that we see in existing modifiers which are not possible with node-group modifiers.

  • Icon for Geometry Nodes modifiers
  • Expanded enum
    image
  • Inlined booleans
    image
  • Inline toggle
    image
  • Node Options are not exposed as Menu Switch inputs.
    image
  • Catalog “root/path”
    • Allow to move Hair, Normals and the new node-group modifiers under the same catalog (Modifiers).

Primitives

Mesh Primitives could be replaced by parametric meshes.

When entering edit mode (or sculpt, …), user is prompted to apply the modifier.

This should work even for (non-essential) geometry-nodes systems as long as the object:

  • Has no data in any domain (points, …).
  • Has (geometry nodes) modifier.

World

It would be nice to migrate existing built-in viewport HDRi into World assets so they can be used for rendering and more easily managed by users.

Step 1: Duplicate built-in HDRIs as World Assets

  • Doing only this would already allow users to use those HDRis for final rendering.

Step 2: Replace Viewport Shading HDRIs selector by a World asset selector.

  • This shouldn’t bloat the .blendfile.
  • The display options (Rotation, Strength, Opacity, Blur) should still be possible.

Step 2.5: Operator to migrate user custom HDRIs into World assets.

Improved Modifiers

Modifiers are a good high-level interface for advanced functionality. There is much to be gained from using nodes though.

It would be interesting to convert some existing modifiers and have users using them as a start point to geometry-nodes customization.

While doing so we should:

  • Provide a full feature parity with original modifier
    • This allows for backward compatibility with existing files.
  • Enhance its functionality.
    • Technically this is optional, but it gives more reason to spend time on it.
  • Keep things as simple as possible
    • Use mostly “Single Value” inputs.
    • Leave the complexity for the node implementation, while keeping the UI simple.

Array Modifier

The array modifier would be a good first candidate to port to an asset.

  • Add randomness.
  • Circular control.
  • Mirror
  • Instancing

Feature Parity

Geometry-nodes assets can be used to bring feature parity to new parts of Blender.

Grease Pencil

There are missing features that could be brought back via assets:

  • Screen Space Stroke thickness
    (freestyle: Line Thickness: Absolute / Relative)
  • Line Art
    • Primitives with Geometry Nodes modifiers.
    • This could likely be composed by separate modifiers.

Curves

The new (hair) curves still don’t support the same functionality as the old object type. To bring back some of the functionality we could have:

  • Primitives using the new Curves object type with a geometry-nodes modifier
  • Separate modifiers or sub-panels for:
    • Bevel
    • Path Animation
31 Likes

Why? What would this accomplish?

That allows for using primitives for blocking, preserving their parametric-nature. Right now the moment you add an object, if you don’t tweak the parameters in the redo panel, there is no way to do this again.

25 Likes

I think this would already be a big step up. Parametric primitives are very useful in Houdini and Maya. Unfortunately having to apply the modifier to edit feels cumbersome If I didn’t actually need the parametric features

Maybe the redo menu should have an option to “make parametric” (which could be on by default)

since the redo menu options are saved between adding new meshes, I could see myself enabling or disabling it once and using it for entire parts of the process

I’d probably tick it on for the blockout and disable it later on in the project?

1 Like

This is honestly really exciting. Replacing modifiers with Geometry Nodes-based ones is a clear signal of what this software aims to become in the future. It feels a bit strange right now to have the same task accomplished by either a node tree or a modifier.

For example, I haven’t used the Array Modifier since I started learning Geometry Nodes because of how flexible it is, but I had to build a node tree from scratch every time. Having an editable base to start from is honestly a great improvement.

This also gives new users the opportunity to see what can be done with nodes and helps them learn through (relatively) simple or intermediate use cases. This is a thumbs-up on many levels.

That said, how is this supposed to behave when you edit the node tree? If I edit a Geometry Nodes version of the Bevel Modifier, would it update every instance of the modifier? Or would it create a unique instance if you try to edit the tree?

Thank you for your work!

4 Likes

To be clear, you wouldn’t have to go to the modifiers panel, there would be some popup when you enter edit mode, and you could probably just press “enter” to move forward and edit the applied parametric geometry. But some option in the redo panel still might be helpful.

With asset embedding, this aspect will behave like linked data-blocks currently do. So you’d have to create a local copy before editing. The fact that editing these imported node group assets affect future imports is one of the main problems the asset embedding development will solve. For example it’s pretty easy to break the “Shade Auto Smooth” operator this way right now.

3 Likes

Wohoo! Very excited for this! Happy to help build essentials assets if needed.

Before more things get moved to assets, could we get some eyes on this issue (#123508)? It hasn’t been replicated by any developers and so is not triaged, but looking at the number of comments and references there is definitely something weird going on with correctly finding the built-in assets on some computers some of the time.

When entering edit mode (or sculpt, …), user is prompted to apply the modifier

I do agree that an extra popup for every single primitive added does seem cumbersome for quick modeling. An option to either disable parametric primitives or auto-apply only primitive modifiers would be awesome.

A “Mesh Edit” modifier here would probably be the fully procedural way, but that’s… extremely out of scope.

At the same time, having this popup would be great in other situations too. Could this be made more general for any object with no geometry data? Like collection instances? If you drag a collection instance from the asset browser and want to edit it, it’s at least four clicks before you can start doing anything. Or maybe that’s more of an asset browser thing to import collections not as instances, which is a totally different topic.

5 Likes

for a bcon presentation the melting effect one, a developer made an “influence” node its crazy useful and should come with blender imo

1 Like

For the Mesh Primitives can we have something like this, where old behavior is still there as it is now and then next to it there is a procedural icon. (like in image) User can then quickly select what it needs. This would be faster than having ability to create object and then decide if it should be procedural or the one that is destructive. For us who model a lot and need destructive workflows primitives, would mean another additional click when adding objects that can end up with dozens of clicks at the end of the day.

I was also wondering if there is any plan to do radial symmetry modifier? This was extremely useful modifier that I often use in one other 3D software but can’t replicate it in Blender. It basically preslices your object and then repeats it radially (array) and merges vertices if needed. This is not just an radial modifier, it is a symmetry modifier that can do radial array.

Higher levels geometry nodes would be amazing addition also. Can’t wait to see what you guys do for 5.0!

8 Likes

As a note, some modifiers have behaviours tied to edit mode in ways that are currently impossible to replicate :

  • the Mirror modifier’s clipping option prevents the user from moving vertices that lie on the symmetry plane (which is great, to be clear).
  • the “show on cage” modifier option allows the user to select elements from the mirrored side.

The first one is effectively the modifier controlling what happens above it (on the edit mesh) and I don’t see it happening at all because that’s not how data is designed to flow. It’s similar to how “limit” constraints affect transform operations in object or pose mode : instead of just clamping the values, they prevent transformations themselves from going beyond the limits.

Should this be possible ? how ?

15 Likes

A Mesh Edit initial implementation so that you can layer your modeling edits would be a a gamechanger. At least a poor man version of the Edit Poly of the you know who…! Imo node based workflows for advanced modeling is overkill. Modifier stacks workflows have never reach their true potential, neither in Blender nor in the comercial software that dabbled with them. Just look at Paul Neale work on both modeling and animation, almost completely procedural just by stacking some modifiers (I would post a link here but it concerns comercial software so…)

A Mesh Edit initial implementation so that you can layer your modeling edits would be a a gamechanger.

Yeah, at least something like Edit Mesh in Modifer List would be great! Still do not understand why its not a option? Every procedural modling software has it!

6 Likes

If I understand correctly, the old modifiers are being removed and replaced with Geometry Nodes versions? That’s actually a big problem — imagine declaring a variable in C++ as const, constexpr, or consteval, but the function still mutates it. Users would have no confidence in what’s happening under the hood with the modifier.
A better alternative would be to add a Convert to GN button instead.

2 Likes

One of the missing building blocks is the float curve type for the UI.
Could this be within the scope?

1 Like

“Grease Pencil
There are missing features that could be brought back via assets:
Screen Space Stroke thickness
(freestyle: Line Thickness: Absolute / Relative)”
This is what happening, this is a huge deal, for anime i can’t render the camera up close a character the line is too thick as is per 4.5 the lower value accepted is 1. I got a line too thick for upclose shots.
A producer form the Guilty Gear Anime on air as of this date just posted on Twitter that the whole anime is all made in Blender and he intends to help other studios.
I’ll be testing pencil plus, because i need this right away or i’ll get back to 3.6 as i remember i could thinner lines.
In the anime industry Blender is standard already, so lets try to pay attention, the flux of funds that Blender needs, Eevee of yore was fantastic for anime render, there were the shadows/light leaks problem it was almost perfect.
We can sculpt and model and paint, but rendering a anime in Blender have being difficult with Eevee Next, feature parity with grease pencil should have a increase in stats and become more of a priority. Grease pencil of now can’t render thinner lines for upclose shots or for shots of bigger areas as of 5km to 10km the limit value of 200 is not enough for the lines.
As Keroen Bakker fixes with Light leak makes possiible to render a large scene 5km+ without shadows popping up, Grease pencil parity should become priority.
I’ll leave two links Guilty Gear Dual tweet and for pencil+ lineart addon;
https://x.com/MatsuuraHiroaki/status/1913200145682076112

5 Likes

to mention some of my old thoughts regarding modifier assets becoming node group:

  1. GN Modifier Assets must also be a “Group Node” and it’s shown in the node group list.
    image image
    In the long run it may be tricky.
    While a modifier asset can definitely be used as a group node, there can be many cases they end up with different designs because of distinctive use cases.
    even in this meeting notes it’s mentioned “(modifier) use mostly single value inputs…”, etc.

I am afraid in the future we will have
a. assets specific to modifier
b. assets specific to group nodes
c. assets can be both modifier and group nodes.
While group nodes can exclude themselves being modifier, modifier can’t prevent them shown in the group node list.
Taking a possible cube primitive as an example,
image


as modifier it must include UV Map for materials, but when it’s used in node tree, you don’t want to keep storing the UV Map. There were specific reasons to separate UV Map generation into a sperate output socket. in the node tree it’s likely more encouraged just to use “Cube” instead of “Cube Primitive” modifier. It’s questionable if devs want to populate the list with this redundant function.
image
(note cube primitive is just an example. When it turns more complex then I think there definitely will be redundant node groups for different cases)

Therefore, if a modifier asset must be a group node shown in the list, it may unnecessarily populate the Node tree list a lot?
Are users really expected to keep digging into the modifier node tree for manipulation? or they can be more hidden to users, and exposed only if users requests?
I hope when working in node tree, there can be a way to prevent some “modifier specific assets” shown in the list.

  1. Another thing is more of issues to UI design.
    I hope the limitation that “first geometry input must be the first” can be lifted.
    image
    If a node group is meant to be both a Group Node and a Modifier, this modifier limitation is shaping how node group layout must be designed.
    While this is more of a minor personal obsession, Blender Node design doesn’t always have geometry input at first. (in fact Most of time this may not be the case at all)
    An example is “Distribute Point on Face”. Although the enum input is not exposed for modifier yet, you see it violates the modifier rule already in terms of design. Can devs imagine how the future will look like if all these node group must have “first geometry input must be the first”?
    image
3 Likes

I’ve been looking at what it would take to convert the Array modifier, and one thing that would be very helpful is an option like “Hide When Unused”. It’s really nice that unused inputs are now grayed out, and we have the ability to hide in modifier, so an extra option to combine those would help in cases where a menu enum should switch which options are displayed. Also giving this to panels as an option if all inner inputs are disabled would be even better.

04-29-07-48-32_195

4 Likes

Could be a socket option maybe. Made a quick PR to try it out: #138142 - Nodes: Add option to hide in modifier if unused - blender - Blender Projects

6 Likes

That is perfect!! Thank you!

I think that for entering edit mode on parametric objects, the best option would be to show some info text when an object is converted from parametric to editable, similar to this:

image

This doesn’t slow down experienced users, while still providing information for newer users.

4 Likes