2023-05-30 Nodes & Physics Module Meeting

Check the overview thread for more information about the meeting.

Present

  • Dalai Felinto
  • Iliya Katueshenock
  • Jacques Lucke
  • Hans Goudey
  • Simon Thommes

Since the Last Meeting

  • The team continued polishing simulation features for 3.6.
    • Lukas added a “Calculate to Frame” operator to make it faster to see the result of simulation input changes.
    • The simulation bake path is now exposed in the modifier interface and editable.
    • Hans finished adding subframe mixing for better motion blur support.
    • Caching is now optional to better support realtime use cases.
    • Jacques made the behavior when skipping frames during playback more intuitive.
    • The visualization in the timeline was also improved with a toggle, and a theme option for the cache color.
  • Erik continued adding features to the experimental volume nodes changes, including a Sample Volume node to find voxel values at certain positions, and an input node for the default SDF grid.
  • Some performance improvements landed in the past few weeks as well.
    • Jacques finished the Indexmask refactor, changing the main type used to encode selections during operations to be multithreaded and use at least 4 times less memory.
      • Hans continued this work to make deleting points or curves in the delete geometry node significantly faster, with changes, and to slightly improve selection usage in curves sculpt brushes.
    • Some topology map computation can now be skipped in the extrude node, especially when there are no edge attributes.
  • Bevel weights are now a generic attribute that can be adjusted in geometry nodes.
  • New contributor Aliaksandr Sharstniou tweaked the Separate Components node output order to match the spreadsheet.
  • Some legacy behavior related to instances in the Realize Instances and Mesh Boolean nodes was removed.

Topics

  • Dalai is working on a “Tool, Gizmos and checkpoints” code.blender.org post about the last design workshop. It will be published soon.
  • Lukas’ investigation into Embree for BVH performance.
    • Having Embree as the only BVH solution is not doable in terms of platform support.
    • Embree is specialized for ray-casting, need to make sure it’s also an improvement for other use cases like nearest searches.
  • Jacques made a design task about storing materials in the simulation state. There are tradeoffs either way, it needs more discussion.
  • There are a few remaining tasks to polish simulations, but other than that, the simulation framework itself is basically finished:
    • Estimating how much memory is used by the cache
    • Putting volumes in the simulation state

Geometry Nodes 4.0 Targets

  • Custom normals
    • Reading and writing custom normals in geometry nodes. Associated with more breaking refactors that have to be in 4.0.
  • Legacy instancing replacement (#105321)
    • Internally this is an important change for further performance improvements with instances.
    • The proposal’s design should be clearer, and we need to make sure this isn’t a regression in usability.
    • There would be two assets: one for backward compatibility, and another for users to use moving forward.
  • Node Operators
    • The branch with simple behavior (and now inputs) is basically finished, that should be committed soon.
  • Usability (time-boxed)
    • Sub-panels in modifier UI
    • Parity with built-in and asset nodes: Menu Switch (enum sockets)
      • It wasn’t clear if this will fit into the available time yet.
  • Redo panel for node operators
    • The ability to add inputs to node operators will be handled separately from the initial commit.
  • Serial loops
  • Realtime mode (time-boxed)
    • Use-case: mode to iterate/design over simulations
  • Modifier context setup tool
  • Standalone node tool
  • Checkpoint
    • Freeze node
    • Import bake
    • UI overview/operators
    • Editing bakes
  • Physic nodes
    • Collision, …
    • This will wait until Project Gold physics use cases become clear
  • Rotation socket

This week

  • Node operators (Hans)
  • Workshop blog-post (Dalai)
  • Grease Pencil layer design integration (Dalai)
  • Subpanel design proposal (Jacques)
  • Realtime mode proposal (Jacques)
  • Look at modifier subpanel (and polling) (Lukas)

Postponed

  • Particles Preset + corresponding simulation nodes assets
  • Gizmo nodes
  • Usability
  • Closure Socket
  • Geometry Object
  • Lists

Pull Requests

  • None discussed in this meeting
20 Likes

Hi @HooglyBoogly, I’m just curious, what system/engine/solver is the new simulation node using? I can’t seem to find any information about this anywhere. There was a GSoC talk here quite some months ago about a new XPBD solver being in the works to replace the old physics system. Is that still happening?

1 Like

simulation node is just frame-by-frame loop to make possible handmade physic

1 Like

At least for now, we expect these solvers to be implemented with nodes. Other parts of the node system need to improve to make this work well, and we’d like to ship some builtin solver node groups in the future.

7 Likes

Are Serial Loops a priority for 4.0? Or is it semi-likely they get delayed further?

4 Likes

Agreed re: serial loops! If we had those, I could do anything I’ve ever wanted to do.

1 Like

Yes, serial loops are a goal for 4.0. You can see the 4.0 geonodes roadmap here:

Node Tools, Interface and Baking — Developer Blog (blender.org)

2 Likes

Is subframe mixing meant to be better motion blur handling only, or it is a more generic substeps in simulations for better precision?

It does mixing between cached/baked frames. So it would give better motion blur than the render engine can by itself in some cases, because it can mix in the middle of the node tree. For example, that allows you to do topology changing operations after the simulation and still get interpolation.

In the future we’ll support baking at sub-frames as well, but that’s not done yet.

2 Likes

The latter part sounds really interesting! Thanks!