2023-10-03 Nodes & Physics Module Meeting

Check the overview thread for more information about the meeting.

Present

  • Dalai Felinto
  • Hans Goudey
  • Hoshinova Nucleo
  • Iliya Katueshenock
  • Lukas Toenne
  • Sam Aldhaher
  • Simon Thommes

Since the Last Meeting

  • Filtering of nodes and tools in the node editor and modifier data-block selectors and modifier add menu was tweaked. Now any node group with the “Is Modifier” option shows in the add modifier menu, not just assets, and likewise for tools.
  • The node tools feature was moved out of experimental after several tweaks and design adjustments for 4.0.
    • The layout of tool options in the node editor header was improved.
    • The viewer node shortcut was disabled in the tool editor, since it isn’t functional.
    • The node editor’s tool node group is stored in a separate property to ease switching back and forth with the modifier mode.
  • Performance
    • The repeat zone uses lazy evaluation to avoid computing everything unnecessarily
  • Jacques finished the first iteration of the baking project, with support for baking individual simulations
  • Node panels received more quality of life features by Brecht
  • Jacques added a debug utility to help detect incorrect geometry element index dependence
  • The inline (pass-through) socket feature has been removed because the design discussions weren’t finished in time for 4.0.
  • The node editor has had a few small UX improvements
    • The “Move to Nodes” modifier operator no longer requires a geometry input to function.
    • Repeat zones now store an “inspection index” so socket inspection doesn’t always store the first iteration’s values
    • Float values to are moved to the “Value” node with link-drag-search

Meeting Topics

  • Node Tools “Types → Curves” rename.
    • Hair Curves is a compromise, but a welcome one for now.
    • Once we support the old curves, we then can call it “Curves” again.
  • Merge Musgrave and Noise Texture nodes
    • The combined node is slightly more complicated, but removing redundant functionality can also simplify things.
    • We don’t have artists involved at the moment to give feedback, but given that feedback we would be comfortable with the change.
    • Update: Simon is fine with this, let’s go for it.
  • #113175: Geometry Nodes: Add default input option for node groups
    • Overall positive
  • Geometry Nodes: Viewer Node Group
    • This is aligned with the current development targets.
    • Some time during 4.1 can be set aside to review its design.
  • Potential 4.1 roadmap targets
    • Grease Pencil 3.0 geometry nodes support
      • Field support, and viewer node
      • Layer domain
      • Curve nodes (Falk)
    • Rotations
      • Missing implicit conversion from-and-back vector to rotation.
    • Modifier Panels
    • Volume
      • Hair-related use case
      • Collision
    • Foreach zone
    • Baking
      • Material support for simulation.
      • Bake node.
      • Outliner baking overview.
    • Subframes (if straightforward)
    • Modal operator design
    • Real-time mode design and prototype
    • Asset Bundle:
      • Frozen Node groups
      • “private” node groups
  • Postponed targets:
    • Gizmos
    • Lists
      • They would be perfect “inputs” for Foreach Zones
      • Also important for collision.
    • Type Inference
    • Node Tools debug tools (e.g., play mode)
    • Bundled modifier node groups
    • Wrap-up unfinished projects
      • Curve refactor
      • Hair simulation
      • Ship Blender with simulation bundles
  • Bundled nodes
    • While these 4.1 targets are interesting, Simon raised an issue regarding how we are still not targetting enough the tooling required for bundling high level nodes in Blender.
    • This will be discussed again once everyone (Jacques) is around.
  • Ideas to bundle targets:
    • Scatter Node group
    • Scatter Modifier with enums and geometry socket
    • Curved caps modifier
    • Array group with gizmos
    • Selection nodes

Help Needed

Extra: Simon’s Feedback Corner

Simon’s 2 cents here …

  • 4.0 Mesh Boolean node
    • The changes in 4.0 feel like a regression.
    • The counterpoint is that the changes make the node more consistent with other nodes.
    • Proposal 1:
      • Warning when there is only instances.
      • Investigate “Self-Intersection” to work with realized instances.
    • Proposal 2:
      • Use top-level instances (not the nested)
    • Current 4.0 workaround
  • Search memory
    • The experience is not always great.
    • The current behaviour seems less reliable.
    • This leads to less predictable results, since the user now needs to read the result.
  • Menu Search
    • Context menus are not affected, simple menus like Delete (where you can do X, F to delete faces) neither, nor are enums.
    • So you can still do right click, S to quickly smooth something. For example.

Blender 4.0 Retrospective

Post-mortem

    Worked well:

    • Three concurrent projects yield good results on all fronts.

    Could improve:

    • Concurrent projects:
      • We can still keep single-developer per feature but try to switch major projects to help motivation.
    • Feedback:
      • Assume feedback would come naturally.
      • If we want a tight feedback loop we need to put the effort into it.
      • At the beginning of projects, define who the stakeholders are and what they are needed for.
      • For the node-tools for example.
      • Feedback should happen more publicly.
    • Design:
      • Trying to formalize design and approve it as much as possible.
      • Running three projects at the same time can lead to design and testing becoming a bottle-neck.
    • For projects that have a big design component (node tools, real-time mode, …), focus on nailing the usability first.
      • In other words, remember that usability can also be a high-risk component of a project, and as such tackle it first.
    • Little project involvement from the community:
      • More feedback threads on devtalk.
      • The participation on module meetings was ok.
      • Few community developer contributors.
    • Use geometry-nodes more (the developers)
    • Weekly planning worked well, although workboard wasn’t used much
      • Could be improved: gitea.
    • R&D Projects:
      • Worth acknowledging that there were inbetween projects happening.
      • Nothing to be done about that for now.

Appendix: Development Tracks

Important for planning moments. Could leave in the wiki page for the module.

Tracks:
    • Simulation
      • Volume
      • Solvers
      • Real-time mode
      • Baking
    • Usability
      • Modifier Asset
      • Panels
      • Rotation sockets
      • High level nodes
      • Enum socket
      • Panels
      • Gizmos
      • Context Setup Tool
    • Tools
      • Node Tools
      • Node Tools Debugging
      • Modal Operator
    • Missing expected nodes
      • Foreach zone
      • Camera node
      • Modeling nodes
    • Performance
    • Tehnical-debt
      • Curve Refactor
        • Support non-catmull-clark curves rendering
        • Create high-level groups for taper, bevel, …
        • Remove old curves
      • Hair
        • Animate hair
        • Hair simulation
        • Replacing old hair simulation
11 Likes