2021-11-1 - 2021-11-5 Geometry Nodes Sub-Module Meetings


Developers or artists interested in contributing are welcome to join at the links below.

Week starting 2021-11-01

  • Winter time starts, so the meeting time may change for some.
  • Possible 3.1 targets (in initial order of priority):
    • Simulations
      • Unlikely to get something releasable for 3.1.
      • Find an MVP goal in the next couple weeks
      • Talk with the HQ about first goals
    • Node group assets
      • Figure out if we can help the asset browser team with that
    • Socket types:
    • T89658: Support previewing geometry in the viewport
      • Override the normal display for the object
      • Only for the viewport, not render
    • Named attribute nodes
      • Patch that contains get, set, and remove and display which names are used outside of a group
      • Include an operator to expose names by default
      • Remove multi-input from the remove node
    • Dynamic attributes on instances
    • Procedural modeling (selections, extrude, …)
      • Mesh topology based field inputs
        • Boundary edges
        • Edge angle
        • Neighboring element counts
      • Modeling operations
        • Merge by distance
        • Store a BMesh optionally in mesh geometry components
          • Generally we would like to use Mesh over BMesh where possible, but re-implementing things like Bevel is just not feasible.
        • Extrude
        • Bevel, solidify, etc.
    • Performance profiling tools for nodes
      • Use node editor overlays
      • Which time should each node show?
        • The Set Position could show the time of the entire field evaluation and/or we can try to show the evaluation time of individual field operations.
      • Add time to every node, or colored area with a tooltip?
    • Geometry fields / geometry loops.
      • A proposal for each method on devtalk.
      • Goals:
        • The ability to generate unique geometry on every point
    • Levels sets (more volume nodes)
    • Cache Node / Checkpoints
      • Explicit freezing of the geometry.
      • Implementation is much simpler than automated caching
        • Same problem with anonymous attributes though
    • Node warnings for field inputs and functions
      • Add warnings to the nodes evaluating fields
    • UV Mapping nodes
      • Some method for UV to XYZ?
      • Unwrapping operators exposed as nodes
    • Performance improvements
      • Instances in the viewport
        • Create a design task on phabricator for a better Instances API for renderers.
      • Field evaluation improvements
        • Procedure optimization passes
        • Mutable parameters
        • Reusing buffers between different variables
        • Proper switch node branching for fields
      • Automated Caching
        • Goal: Faster feedback after changes, without a special Cache node.
        • Should be transparent to the user (except maybe a cache size in preferences).
        • Real problem here is the implementation details:
          • How to figure out what has changed (the depsgraph is not granular enough).
            • Either make depsgraph more granular or use some hashing based approach.
          • Anonymous attribute IDs are not consistent over redraws
  • Feedback from Entagma (Dalai).
    • Mostly aligns with the plans above, which is nice to hear.
  • T92729: More general “Compare” node (Hans)
    • Refactor add menu and allow searching for Add Floats, …
  • Simulation prototype
    • The proposal was to work in a real-time cloth simulation (waving flag) prototype.
    • Feedback from Ton:
      • Focus on design before considering prototyping.
      • Realtime clock exist within the context of realtime viewport.
      • Scene, View [port] and object times.
      • How to map the different times.
  • Behavior for merge by distance on curves
    • By default, merging spline endpoints shouldn’t be done, since it’s not a straightforward operation (so splines are handled individually)
    • However, since the node has a “Connected”/“All” option, the choice could tie into that.

An amazing and exciting list! Just had a question about the new Euler rotation sockets. Currently when connecting a combine xyz node to a rotation socket, the vector components are in radians. Having to use math nodes to convert degrees to radians gets old fast. Will the new sockets allow putting degrees directly into the combine xyz node? And if so, does this mean it will break existing setups that have many deg to rad math conversion nodes?

I would like to see matrix math / matrix inputs up there,

it’s quite handy to put points into the space of another object, or put world points into the space of a object.
Get matrix in bpy object
Matrix = bpy.data.objects[inputObjectName].matrix_world

#use matrix
Matrix_Transform_out_vec3 = Matrix @ vec3_input
and a checkbox for
Matrix_Transform_out_vec3 = Matrix.inverted() @ vec3_input

there is also methods to decompose a matrix into rot / scale / position
you can get the X / Y and Z axis from Matrix.col[0] Matrix.col[1], and Matrix.col[2]

it is Very essential


Simulation nodes are finally happening. :slight_smile: Just to be sure for hair nodes are already some design tasks available with an expert available. This could be an option too?

here is the task: ⚓ T68981 New hair object type

If simulations are next, I’d like to encourage the team to take advice from as many effects TDs as they can find !

1 Like