Note: This is an archived version of the Blender Developer Wiki (archived 2024). The current developer documentation is available on developer.blender.org/docs.

User:JacquesLucke/Reports/2021

Week 115: January 04 - 08

  • Fixed T84106: Attribute mix node worked incorrectly on float attributes (17be214).
  • Fixed T83876: Blender crashes when baking particles + smoke sim (5aab7f6).
  • Fixed T84142: Crash when mirroring hair emitted from vertices (c55b578).
  • Fixed T83282: Division by zero when creating psys tasks (357e519).
  • Fixed T83497: Missing relations update when group node changes (c26f46c).
  • Fixed T83942: Improve error checking when trying to render high resolution volume (e3ae7d1).
  • Fixed T83544: Cycles crash when rendering with Save Buffers enabled (d095411).
  • Fix: Tried to set error message on modifier that does not exist (39f99fd).
  • Scenes: Forbid deleting last local scene (bc78892).
  • Created T84369: Can be used as a common base task for missing cache invalidation for fluid simulation.
  • Partially fixed T83592: Crash when deleting or reloading linked scene (D10046).
  • Reviewed D9697: Refactor IDProperty UI data storage.
  • Investigated T84397: Creating and removing many objects very quickly causes a crash.

Next Week

Geometry Nodes sprint.

Week 116: January 11 - 15

  • RNA: Support range-based for loops in C++ api (c4286dd).
  • Cycles: Start simplifying some code based on the above api update (P1890).
  • Geometry Nodes: Refactored the Point Distribution node (d985751).
  • Geometry Nodes: Improved attribute handling when input and output attributes have the same name (e5ee7e9).
  • Geometry Nodes: Wrote initial documentation for Rotate Points and Align Rotation to Vector nodes.
  • Geometry Nodes: Improved support for float2 attributes and added related implicit conversions.
  • Geometry Nodes: Support accessing uv data through attribute system (33a558b).
  • Geometry Nodes: Support attribute interpolation for Point Distribute node (a51584d).
  • Created D10121: Geometry Nodes: New Sample Texture node.
  • Reviewed D9400: Add a Python template for image processing.

Next Week

Geometry Nodes sprint.

Week 117: January 18 - 22

  • Geometry Nodes: Initial volume support (793547e).
  • Geometry Nodes: Finished Sample Texture node (425e706).
  • Geometry Nodes: Started working on Points to Volume node (D10169).
  • Wrote documentation for some geometry nodes.
  • Various meetings related to geometry nodes.

Next Week

Bug sprint.

Week 118: January 25 - 29

  • Helped with D10198: Attempt to migrate Movie Clip Editor to new tool system.
  • Fixed T84907: Incorrect dirty mask after geometry join node.
  • Fixed T84935: Boolean custom data layers not saved correctly.
  • Simplified D10046: Fix T83592: Crash when deleting or reloading linked scene.
  • Cycles: Modernize usage of rna iterators (8a77019).
  • Cycles: WIP implementation for supporting custom mesh attributes (D10210).
  • Geometry Nodes: Started short discussion for how to handle shear (T85049).
  • Geometry Nodes: Wrote documentation for Points to Volume node.
  • Code Review.

Next Week

Geometry nodes sprint.

Week 119: February 01 - 05

  • Geometry Nodes: New Volume to Mesh node (16abe93).
  • Geometry Nodes: New pivot axis property for Align Rotation to Vector node (46e0efb).
  • Geometry Nodes: New Is Viewport node (e7af04d).
  • Geometry Nodes: Initial attribute interpolation between domains (D10305).
  • Geometry Nodes: Started refactoring internal attribute access architecture (D10341).
  • Rendering: Investigated why volumes are rendered with an offset and how to fix it (T85312).
  • DNA: Support structs with a size of 1 or 2 bytes (a0867f0).

Next Week

Geometry nodes sprint.

Week 120: February 08 - 12

  • Geometry Nodes: Refactor internal attribute access architecture (4601e3a).
  • Geometry Nodes: Initial attribute interpolation between domains (17672ef).
  • RNA: Support bool attribute (dabf96f).
  • Fixed T85492: Fix check if object has visible instances.
  • Fixed T85514: Exact match is not showing up in search menu.
  • Fixed T85420: Moving color ramp handles via position input does not work.
  • Fixed T85541: Crash when replacing an existing node link.
  • Fixed T85545: Changing position attribute does not tag normals dirty.
  • Fixed T84899: Instance ids are not unique in common cases.
  • Updated D10295: Volumes has an offset in Workbench, Eevee and Cycles.
  • Updated D10210: Support accessing custom mesh attributes.
  • Code Review.

Next Week

Geometry nodes sprint.


Week 121: February 15 - 19

  • Geometry Nodes: Realize instances before passing geometry to mesh modifiers (96da8e9, 55a69d5).
  • Geometry Nodes: Convert point cloud to mesh vertices for mesh modifiers (999abee).
  • Geometry Nodes: Support accessing vertex colors (e3f0b6d).
  • Geometry Nodes: Support adapting point to corner domain (72e2b50).
  • Geometry Nodes: Use corner domain for densities in Point Distribute node (51c2ee4).
  • Cycles: Support accessing custom mesh attributes (3a6d629).
  • UI: Fuzzy search in collection search (116cda6).
  • Fixed T84624: Node group data-block has phantom user.
  • Fixed T85697: Subdivision surface node output does not contain vertex group names.
  • Created D10439: Cleanup: Remove scene parameter from object_duplilist.
  • Created D10462: Geometry Nodes: Store available attribute names in node ui storage.
  • Created D10476: BLI: New FunctionRef type.
  • Created T85736: Incorrect volume rendering when enabling NanoVDB.
  • Updated manual and wiki page about attributes.
  • Code Review.

Next Week

Geometry nodes print.

Week 122: February 22 - 26

  • Spend most of the week working on the MVP for a new spreadsheet editor. The first patch will be available next week.
  • Geometry Nodes: Improve accessing attribute meta data (18be02b).
  • Spend a couple of hours reviewing the Sculpt Expand patch (D10455). I should finish this within the next few days.

Next Week

Mostly focus on the new spreadsheet editor and code review besides some smaller things.

Week 123: March 01 - 05

  • Created an initial patch for the spreadsheet editor (D10566). However, we took a step back and focussed on design a bit more.
  • Fixed T86172: Check if attribute is actually accessible.
  • Fixed T86204: Support multiple group inputs in node group.
  • Fixed T86172: Tag relations update when pasting nodes.
  • Fixed T86050: Use material count from correct data block.
  • Nodes: Improve NodeTreeRef (44ab908, 7d68539).
  • Nodes: Refactored derived node tree (d286994).
  • UI: Prefer shorter search items in fuzzy search (f951aa0).
  • BLI: Some memory management improvements (456d3cc, 7497945).
  • Finished review of the Sculpt Expand patch (D10455).
  • More code review.

Next Week

Probably work on spreadsheet editor and other geometry nodes related things.

Week 124: March 08 - 12

  • Spreadsheet: Add boilerplate code for new editor type (9cb5f0a).
  • Spreadsheet: New spreadsheet editor (3dab6f8).
  • Spreadsheet: Expose more domains and point cloud data (5f1f233).
  • Spreadsheet: Add status bar (b617b44).
  • Spreadsheet: Support showing data from original/unevaluated object (4ed208b).
  • Geometry Nodes: Expose crease attribute ([1]).
  • Geometry Nodes: Transfer polygon attributes to points in Point Distribute node (4fece16).
  • Fixed T86432: Missing check if an attribute is available.
  • Closed the blenloader decentralization task and created a couple of follow up tasks for different modules (T76372).
  • Code review.

Next Week

More work on the spreadsheet editor and the user manual.

Week 125: March 15 - 19

  • Spreadsheet: Improve separation of drawing and data separation (5ad4713).
  • Spreadsheet: Show number of filtered rows only when necessary (e7f59e6).
  • Nodes: Fix crash after undo after recent multi-input-socket changes (cf5cada).
  • Nodes: Improve handling of derived data in node tree ref (0ff3f96, 0021569).
  • Nodes: Implement dot graph exporter for derived node tree (3494946).
  • Geometry Nodes: Expose builtin crease attribute (3618948).
  • Geometry Nodes: Store domain and data type in attribute hints (e00a47f).
  • Geometry Nodes: Fix crash when inserting certain invalid links (2dd055b).
  • Geometry Nodes: Built a prototype for the tool system for nodes (T86395).
  • Geometry Nodes: Built a prototype for portal nodes and pages (T86583).
  • BLI: Provide a default hash for enums (ac60e64).
  • BLI: Improve implicit conversions of spans (bf62002).
  • BLI: Support equality operator on Span and Vector (e9eb08f).
  • BLI: Improve support for generic algorithms with C++ containers (98721c8).
  • BLI: Add macro to indicate unreachable code (D10780).
  • RNA: Support automatically mapping string property to allocated char pointer (D10773).
  • Functions: Refactor virtual array data structures (4fe8d04).
  • Code Review.

Next Week

Geometry nodes sprint.

Week 126: March 22 - 26

  • User Manual: Various updates for the spreadsheet editor and geometry nodes.
  • Wiki: Added some docs for the node tools prototype (T86814).
  • UI: Rename node editor sidebar categories (3b05311).
  • Spreadsheet: Show comma separators in number of rows (028ca67).
  • Geometry Nodes: Show domain in attribute fill node (9c7492e).
  • Geometry Nodes: Rename attribute domains (28cf851).
  • Geometry Nodes: Make random float node more consistent with other nodes (77887f9).
  • Geometry Nodes: Made a small prototype for more compact nodes (T87009).
  • BLI: Add macro to indicate unreachable code (433fb93).
  • BLI: Fix Set.lookup_key_or_add (9b42626).
  • BLI: Simplify using DefaultHash (1d7adb6).
  • Functions: Make multi-functions smaller and cheaper to construct in many cases (01b6c4b).
  • Functions: Devirtualize virtual arrays in simple functions (21268ad).
  • Code Review.

Next Week

General geometry nodes development.

Week 127: March 29 - 02

  • Fixed T86972: Transform node transforms shape keys.
  • Fixed T86966: Crash when rendering with geometry nodes.
  • Fixed T86876: Cannot modify float properties of geometry nodes modifier from Python.
  • Fixed T86298: Crash when loading "corrupted" geometry node tree.
  • Fixed T87087: Attributew were removed automatically even though they are still needed.
  • Geometry Nodes: Support multiple group input nodes (5da5a1c).
  • Geometry Nodes: Add socket value logging capability (2a5c0c3).
  • Nodes: Separate node name and display name in bNodeTreePath (b007279).
  • BLI: Renamed resource collector to resource scope (b5c2c3a).
  • BLI: Add call_safe method for FunctionRef (328b393).
  • Wiki: Moved some design docs for portals/pages to the wiki (T86816).
  • D10875: Spreadsheet: Show data of active node.
  • Code Review.

Next Week

General geometry nodes and spreadsheet development.

Week 128: April 05 - 09

  • Spreadsheet: Support showing data of specific node (c6ff722).
  • Spreadsheet: Persistent column storage and data source (75491fe).
  • D10931: Spreadsheet: Breadcrumbs and node pinning (WIP).
  • Cleanup: Enable modernize-use-equals-default check (19dfb6e).
  • Continued working on using virtual arrays for attributes.
  • Code Review.

Next Week

General geometry nodes and spreadsheet development.

Week 129: April 12 - 16

  • Fix T87348: Convert vertex colors to linear color space.
  • Fix T87308: Don't show columns when there are no instances.
  • Fix T87434: Spreadsheet shows same column more than once.
  • Fix T85691: Attributes used by geometry nodes were removed automatically.
  • Fix T87441: Don't remove custom attributes automatically.
  • Fix T87217: Improve impact of seed in point distribute node.
  • Fix T87169: Support attribute search on group nodes.
  • Fix T87522: Frame selected does not take instances into account.
  • Fix unreported: Instances disappear when instanced mesh is in edit mode (1266df8).
  • Spreadsheet: Breadcrumbs and node pinning (3810bcc).
  • Spreadsheet: Rename Point to Vertex (1f2a801).
  • Geometry Nodes: Realize instances in subdivide node (93d8c75).
  • Geometry Nodes: Refactor implicit conversions (05dbbd8).
  • Geometry Nodes: Use virtual arrays in internal attribute api (5cf6f57).
  • Functions: Extend virtual array functionality (3608891).
  • BLI: Support multiple arguments for value in *_as methods of Map (d0d8574).
  • BLI: Support multiple parameters in Stack.push_as method (eff2b89).
  • BLI: Add Vector.append_as method (686452f).
  • D11003: Cleanup: Replace .index_range() with iter_indices().
  • Started working on new geometry nodes evaluator.
  • Code Review.

Next Week

I want to work on a new geometry nodes evaluator this week. One important goal among a few others is to support a switch node efficiently (by computing its inputs lazily).

Week 130: April 19 - 23

Didn't get too far on the new geometry nodes evaluator this week unfortunately.

  • Fixed T87659: Crash when creating reroute loop in geometry nodes.
  • Fixed T87661: Attribute Combine XYZ node can't overwrite existing attribute.
  • Fixed T87582: Incorrect interpolation from edge to corner domain.
  • Geometry Nodes: Support geometry nodes modifier on volume objects (8c0f7d1).
  • Geometry Nodes: Skip attribute conversion if src and dst are the same (2125ee4).
  • Geometry Nodes: Extract mesh surface sampling functions to separate file (1dd1772).
  • Geometry Nodes: Initial Attribute Transfer node (D11037).
  • Geometry Nodes: Incorrect data in spreadsheet (71db02e).
  • Geometry Nodes: Warn when output attribute has not been saved (4cb8438).
  • Spreadsheet: Combine vector/color spreadsheet columns (D11056).
  • Depsgraph: Support depending on collection geometry (D11053).
  • Created T87620: Geometry Nodes Evaluator Improvements.
  • Functions: Add slice method for generic spans (d5309bf).
  • Code Review.

Next Week

General module work and bug fixing.

Week 131: April 26 - 30

  • Fixed T85889: Recursive instances result in crash.
  • Fixed T87526: Poor contrast in attribute search.
  • Fixed T87876: Vertex groups missing when mesh is in edit mode.
  • Fixed T87767: Spreadsheet not updating on texture changes.
  • Drag & Drop: Use session id instead of name to identify dropped object (D11116).
  • Geometry Nodes: Improve geometry nodes evaluator internal api (908bb03).
  • Geometry Nodes: Initial Attribute Transfer node (a022cff).
  • Geometry Nodes: Refactor instances component (D11125).
  • Depsgraph: Support depending on collection geometry (b67fe05).
  • Functions: Make copying virtual arrays to span more efficient (4e10b19).
  • Functions: Add method to create shallow copy of virtual array (4225a18).
  • BLI: Improve VectorSet data structure (7041568).
  • BLI: Support removing Map elements during iteration (313a1c0).
  • Code Review.

Next Week

General module work and bug fixing.

Week 132: May 03 - 07

Most of the week I spend investigating issues with material handling in geometry nodes and implementing a new much more capable geometry nodes evaluator. I also started working on (attribute panels), but keep running into technical issues, that needs more thought.

  • Geometry Nodes: Initial material handling (D11155).
  • Geometry Nodes: New Geometry Nodes evaluator (D11191).
  • Drag & Drop: Use session id instead of name to identify dropped object (D11116).
  • Code Review.

Next Week

General module work.

Week 133: May 10 - 14

  • Geometry Nodes: Finished patch for the new geometry nodes evaluator (D11191).
  • Geometry Nodes: Updated patch for new Material Assign node (D11155).
  • Geometry Nodes: Use texture socket in Attribute Sample Texture node (2871fadc).
  • Geometry Nodes: Remove some unnecessary updates (26b4ef6).
  • Created T88196: to get feedback on how to support changing material slots during evaluation.
  • Support changing materials during evaluation (D11236).
  • Nodes: Fix connecting wrong sockets when inserting node (65f9550).
  • Nodes: Add boilerplate for texture and material sockets (2074729).
  • BLI: Add initial wrapper for tbb::enumerable_thread_specific (8b87fc1).
  • BLI: Support looking up a key stored in Map or VectorSet (d288eeb).
  • BLI: Simplify supporting heterogeneous lookup for new types (b90fec5).
  • Added various changes from the last weeks to the user manual.
  • Code Review.

Next Week

General module work.

Week 134: May 17 - 21

  • Materials: Support changing materials during evaluation (1a81d26).
  • Materials: Support materials when applying modifier (f3a0267).
  • Geometry Nodes: Take materials into account when joining geometries (5e6f3b8).
  • Geometry Nodes: New Material Assign node (f41a753).
  • Geometry Nodes: New Material Replace node (c154b07).
  • Geometry Nodes: New geometry nodes evaluator (b084b57).
  • Geometry Nodes: Initial attribute list for meshes (D11276).
  • Geometry Nodes: New Select by Material node (D11324).
  • Created T88460: Technical design for attribute ui list.
  • Started working on attribute processor for geometry nodes.
  • Code Review.

Next Week

General module work.

Week 135: May 24 - 28

  • Fixed T88250: Crash when instancing object in disabled collection.
  • Fixed T88588: Crash when muting node with multi input socket.
  • Attempted to Fix T88454: Incorrect handling of dupli-objects (D11402).
  • Geometry Nodes: Worked on attribute processor prototype in temp-attribute-processor branch.
  • Nodes: Fix threading issues with node ui storage (b67423f).
  • Investigated a deadlock that is apparently caused by task isolation (T88598).
  • Code Review.

Next Week

General module work.

Week 136: May 31 - 04

  • Geometry Nodes: Do not create unnecessary geometry components (26fb7b9).
  • Geometry Nodes: Add empty material slot to new meshes (6583fb6).
  • Geometry Nodes: Started working on viewer node (D11470).
  • Updated D11276: Initial attribute list for meshes.
  • Updated D11415: Support disabling task isolation in task pool.
  • D11438: Fix memory leak when python safety is on.
  • Cleanup: Moved some files to C++ (4f8edc8).
  • Add workaround for gcc 11 compiler bug (6cd64f8).
  • Updated the manual for recent changes.
  • Code Review.

Next Week

General module work.

Week 137: June 07 - 10

  • Fix T88719: Attribute Remove node input field does nothing.
  • Fix T88807: Crash when there are multiple links between the same sockets.
  • Fix T88578: Crash when loading value from group input node.
  • Fix T89001: Node search not working anymore.
  • Geometry Nodes: Enable multi-threading in evaluator again (933c2cf).
  • Geometry Nodes: New Select by Material node (08b0de4).
  • Geometry Nodes: New viewer node (D11470).
  • Geometry Nodes: New Attribute Processor (D11547).
  • BLI: Support disabling task isolation in task pool (ed1fc9d).
  • Depsgraph: Disable task isolation in evaluator task pool (D11531).
  • Id Properties: Update depsgraph id properties change (WIP) (D11572).
  • Nodes: Add utilities to check if there are undefined nodes/sockets (fe22635).
  • Nodes: Cache socket identifier to index mapping (605ce62).
  • Update geometry nodes manual.
  • Code Review.

Next Week

General module work.

Week 138: June 14 - 18

  • Fix T88947: Invalid normals when converting point cloud to mesh.
  • Fix T88494: Add missing depsgraph relation update tags.
  • Geometry Nodes: Improved viewer node patch (D11470).
  • Geometry Nodes: Fix z-up spline normal calculation (94084b2).
  • Geometry Nodes: Support minimum twist normal mode (7c1bb23).
  • Geometry Nodes: Improve node locking in evaluator (1388e9d).
  • Geometry Nodes: Fix ownership issue in spline to points conversion (56db09e).
  • ID Properties: Update depsgraph when id properties change (D11572).
  • BLI: Add threading namespace (45d59e0).
  • BLI: Add C++ wrapper for task isolation (b37093d).
  • Update geometry nodes manual.
  • Code Review.

Next Week

Node workshop in Amsterdam.

Week 139: June 21 - 25

  • Fix T89122: Crash when multi input is connected to multiple group inputs.
  • Fix T89390: Crash when Join Geometry node has only muted inputs.
  • Geometry Nodes: Some changes to the attribute processor prototype (D11547).
  • Was traveling to Amsterdam and back and had many nodes related meetings there (notes on devtalk).

Next Week

General module work.

Week 140: June 28 - 02

  • Geometry Nodes: Refactor logging during geometry nodes evaluation (D11785).
  • Geometry Nodes: Wrote proposal for attribute handling (Fields and Anonymous Attributes).
  • UI: Custom free function improvements (17a67bf).
  • BLI: Improve enum operators (f7e2559).
  • Functions: Improve CPPType (7d281a4).

Next Week

General module work.

Week 141: July 05 - 09

  • Fix T89397: Animation in geometry nodes modifier does not update.
  • Fix T89429: Instances are made real when the shouldn't be.
  • Fix: Crash when using empty attribute search (09082f6).
  • Fix T89734: Incorrect dependency cycle with id property on modifier (D11851).
  • Geometry Nodes: Refactor logging during geometry nodes evaluation (0153e99).
  • Geometry Nodes: Initial support for geometry in Point Instance node (D11841).
  • Geometry Nodes: Initial socket inspection (D11842).
  • Nodes: Dim links whose start and end socket are not visible (D11813).
  • BLI: Add conversion constructor for destruct_ptr (ded4dc7).
  • BLI: Wrap more features of tbb::enumerable_thread_specific (fb46c04).
  • BLI: Avoid calling deleted copy constructor in some compilers (af8fb70).
  • Functions: Add utility to create string from value of generic type (24a7774).
  • Cleanup: Fix variable shadow warnings (D11855).
  • Wrote documentation for Curve Line node, Viewer node and attribute list for meshes.

Next Week

General module work.

Week 142: July 12 - 16

  • Fix T89775: Geometry nodes logging crash during render.
  • Fix T89734: Incorrect dependency cycle with id property on modifier.
  • Geometry Nodes: Improved and gathered feedback for geometry instancing (D11841).
  • Geometry Nodes: Initial socket inspection (271f34f).
  • Nodes: Dim links whose start and end sockets are not visible (c27ef1e9).
  • Nodes: Highlight entire link when connected to a selected node (D11930).
  • Code Review.

Next Week

General module work.

Week 143: July 19 - 23

Took two days off.

  • Fix T89881: Ignore unavailable sockets when searching for link cycles.
  • Fix T89829: Wrong active context path check in spreadsheet.
  • Fix T90065: Disable attribute search in places where there is too little context.
  • Fix T89393: Crash when selecting edges when geometry nodes modifier has "on cage" turned one.
  • Fix: Avoid creating improper rotation matrix (6ac378e).
  • Documentation: Initial geometry nodes inspection docs (8220).
  • Started working on supporting modifier context in spreadsheet.
  • Code Review.

Week 144: July 26 - 30

This week I mainly worked on a prototype for the Fields and Anonymous Attributes proposal. The current prototype can be found in the temp-geometry-nodes-fields-prototype branch. Besides that I did some code review and merged community patches.

Week 145: August 02 - 06

This week I continued working on the attribute workflow prototypes. My main focus was the expandable geometry socket prototype.

Next Week

I'll be in Amsterdam for one week to discuss the prototypes and other topics.

Week 146: August 09 - 13

I was in Amsterdam from Monday to Friday. We had various meetings about the future attribute workflow for geometry and managed to make a decision on how to move forward. I only did very little development work during the week.

Week 147: August 16 - 20

  • Geometry Nodes: Add missing versioning for subdivision surface node (7d8c71e).
  • Geometry Nodes: Experimented with a Sample Mesh Surface and Evaluate Curve node in the fields prototype (devtalk).
  • Functions: Remove multi-function network (0081200).
  • Functions: Continued working on a more powerful replacement to combine multi-functions. The code for that can be found in the temp-multi-function-procedure branch.
  • Asset Browser: Started working on asset config loading a little bit, but didn't get really far because the design was unclear/questionable and the other relevant devs are on vacation.
  • Nodes: Experimented with different ways to define nodes in c++. Didn't get very far yet.

Next Week

Start implementing the fields proposal properly.

Week 148: August 23 - 27

  • Geometry Nodes: Prepared various tasks for the upcoming weeks.
  • Geometry Nodes: Updated initial support for geometry instancing (D11841).
  • Geometry Nodes: Implemented a small prototype for visualization of fields in the node editor (T90869).
  • Geometry Nodes: Added support for anonymous attributes in a branch.
  • Nodes: Add more flexible method to declare the sockets of a node (D12335).
  • Fixed T90248: Missing depsgraph update tag for node group.
  • Fixed T90959: Crash when hovering over empty data block socket.
  • Wrote a proposal for how hardcoded attribute names could be removed from geometry nodes (devtalk).
  • Code Review.

Next Week

Continue with fields implementation.

Week 149: August 30 - 03

  • Worked with Hans on finishing the initial fields and anonymous attributes implementation.
  • Participated in various design discussions in the geometry nodes module.
  • Code Review.

Next Week

Make fields branch master ready, and then continue working on various related topics.

Week 150: September 06 - 10

  • Geometry Nodes: fields and anonymous attributes bf47fb40fd.
  • Geometry Nodes: add field support for socket inspection 4e78b89e48.
  • BLI: Add default hash for shared_ptr and reference_wrapper e2bbb5b07e.
  • Nodes: fix incorrect id socket update a3ca973dec.
  • Geometry Nodes: support for geometry instancing 5a9a16334c.
  • Functions: store cursors to previous instructions aeeffb935e.
  • D12457: Geometry Nodes: Multi-threaded field evaluation.
  • Fix T91187: incorrect socket identifier 08593e46a3.
  • Fix T91238: crash when instancing geometry group input c2ce68a018.
  • Fix T91093: off by one error in when resampling curve 73ef2fc2f4.
  • Fix T91241: wrong labels and identifiers for id sockets 6bc6ffc35c.
  • Code Review.

Next Week

General geometry nodes work.

Week 151: September 13 - 17

  • Wrote a proposal for Explicit Instancing in geometry nodes (devtalk).
  • Geometry Nodes: Fix memory leak for multi input sockets 90a48fa064.
  • Geometry Nodes: Hide Attribute Remove node when fields are enabled 6b0aa7ae15.
  • Nodes: Move some texture nodes to c++ f6ebbfe7de.
  • Nodes: Cache node declaration on node edaeec3e72.
  • Nodes: Refactor socket declarations 46fff97604.
  • Functions: Support optional outputs in multi-function fd60f6713a.
  • D12478: Geometry Nodes: Instance on Points and Collection Info.
  • D12554: Geometry Nodes: Geometry preview in 3d viewport (WIP).
  • D12555: Geometry Nodes: Support Set Position node with instances.
  • D12556: Geometry Nodes: New Realize Instances node.
  • D12557: Geometry Nodes: New Transform Instances node (WIP).

Next Week

General geometry nodes work.

Week 152: September 20 - 24

  • Geometry Nodes: support Noise Texture node (fc4f82d200).
  • Geometry Nodes: implicit position input in Set Position node (32a4c7f188).
  • Geometry Nodes: use implicit position input in noise node (3b8d702a2f).
  • Geometry Nodes: add utility to print an attribute id (aadb7ef071).
  • Geometry Nodes: simplify looping over attributes in geometry set (38af29df5c).
  • Geometry Nodes: new Distribute Points on Faces node (e7ae2840a5).
  • Geometry Nodes: Initial socket visualization for fields. (61f3d4eb7c).
  • Nodes: make dot in socket shape circular (7e904139a3).
  • BLI: support initializing empty FunctionRef with nullptr (f893dea586).
  • BLI: make noise hash functions available in header (bc27bafa54).
  • Code Review.

Next Week

General geometry nodes work.

Week 153: September 27 - 01

  • Geometry Nodes: Make field links thinner than other links (2bd0205215).
  • Geometry Nodes: Support creating new attributes in modifier (3d2ce25afd).
  • Geometry Nodes: Add utility to process all instances separately (0559971ab3).
  • Geometry Nodes: Multi-threading when modifying multiple geometry sets (e7b9423623).
  • Geometry Nodes: Move legacy nodes to separate folder (5d160dec3b).
  • Geometry Nodes: Remove empty mesh component in distribute node output (d2004326a1).
  • Geometry Nodes: Don't realize instances in Instance on Points node (3acf3e9e2f).
  • Geometry Nodes: Instance on points in instances (f51bef75f4).
  • Fix: Field inferencing fails when there are undefined nodes (7cd43a9d28).
  • Fix: Wrong field input deduplication with Material Selection node (9628ef4135).
  • Fix: Curve to Mesh node outputs original curve (3453b22b1e).
  • Fix T91767: Crash when instancing geometry coming from modifier (24a965bb16).
  • Fix T91802: Vertex color layer name collides with itself (eabb134840).
  • Fix T91756: String to Curve node produces NaN when size is zero (0c32e3b312).
  • Fix T91773: Improve numerical stability in Curve Spiral node (80d7cac22d).
  • Fix T91839: Incorrect active vertex group index (7843cd63d8).
  • Fix T87536: Incorrect socket types in reroute nodes (af0b7925db).
  • Fix T91872: Incorrect socket inspection on group nodes (eb3a8fb4e8).
  • D12688: Geometry Nodes: Add name to Geometry Set (WIP).
  • D12709: Nodes: Support updating socket availability and labels in declaration (WIP).
  • Code Review.
  • Started investigating compile time bottlenecks.

Next Week

Holidays.

Week 154: October 11 - 15

Didn't work on Monday and Tuesday.

  • Fix T92153: Use-after-free with anonymous attributes (d4e8390e95).
  • Fix T92030: Crash when hovering over socket (5e8775a8da).
  • Fix T92131: Handle node declaration in material properties (aca38148ad).
  • Geometry Nodes: Fix getting mutable geometry component (f834939ceb).
  • Geometry Nodes: Change field visualization when there is an error (6b0719c0f3).
  • Geometry Nodes: Bring back lazy evaluation for field types in Switch node (19740b25c7).
  • D12898: Nodes: Support sharing node declarations between nodes.
  • D12709: Nodes: Support updating socket availability and labels in declaration.
  • D12899: Geometry Nodes: Component type warning system (WIP).
  • Code Review.

Next Week

General geometry nodes work.

Week 155: October 18 - 22

  • Geometry Nodes: Decouple multi-function lifetimes from modifier (eb0d216dc1).
  • Geometry Nodes: Fix force-computing multiple non-output sockets (090be2775e).
  • Geometry Nodes: Disable attribute search for non-attribute string sockets (d1fcf93f03).
  • Nodes: Add default value to string socket declaration (f9fe755dba).
  • Nodes: Add utility to find NodeRef for node (6600ae3aa7).
  • Nodes: Fix link drawing for some socket types (675a22b341).
  • Fix T92387: Crash in legacy point distribute node (e79e86018e).
  • Fix T92327: Use default value when field is passed into data socket (cc388651eb).
  • Fix: Missing use-attribute property in geometry nodes modifier (6f76bcc12c).
  • Fix: Dangling pointer caused use-after-free (dd689eeda4).
  • Fix: Memory leak after type conversion in geometry nodes group (6f0dd4f0f0).
  • D12827: Geometry Nodes: Add Image Texture node.
  • D12957: Images: Cache failed load attempts in MovieCache instead of in ok flag.
  • D12938: Geometry Nodes: Support viewing field values in spreadsheet.
  • D12986: Geometry Nodes: Refactor virtual array system (WIP).
  • D12983: Geometry Nodes: Use vector socket for offset in Set Position node.
  • T91221: Document Python API for geometry instances.

Next Week

General geometry nodes work.

Week 156: October 25 - 29

  • Fix T92446: Node editor overlays reset automatically (1ecb4e6fd8).
  • Fix T92460: Crash when instancing on curves generated from string (b15e1861ac).
  • Fix T92505: Previewing specific node outputs did not work anymore (01d7211380).
  • Fix T92508: Cache invalidation bug in Set Position node (319de793d7).
  • Fix T92328: Crash during field inferencing when there is a link cycle (c06a86f99f).
  • Fix T92241: Curve radius and tilt swapped after resampling (051bb46c55).
  • Fix T92264: Incorrect field inferencing when muting link between reroutes (18b6f0d0f1).
  • Fix T92499: Duplicating geometry nodes modifier causes crash (7c860ab9d4).
  • Fix T92324: Crash caused by recursive instancing (2887d87232).
  • Fix T92256: Rotate Instances node does not take scaling into account correctly (945a99386b).
  • Fix T92476: Wrong context in spreadsheet when area is maximized (f13826a572).
  • Fix: Missing cache invalidation when there is only one spline (8b15b06b20).
  • Geometry Nodes: Use vector socket for offset in Set Position node (b3ca926aa8).
  • Geometry Nodes: New Image Texture node (039094c1ec).
  • Geometry Nodes: Support viewing field values in spreadsheet (5bfe09df22).
  • Geometry Nodes: Don't log full fields when not necessary (d20fa6c4d4).
  • Geometry Nodes: Remove reference to anonymous attributes in tooltips (fd477e738d).
  • Geometry Nodes: Geometry component type warning system (0bfae1b120).
  • Geometry Nodes: Change default raycast direction (9217f5c7a3).
  • Geometry Nodes: Use true as default in Set Shade Smooth node (059e5a8a4c).
  • Geometry Nodes: Use index field implicitly in Set ID node (383985a91b).
  • Geometry Nodes: Do cache invalidation after writing attributes (cf771807b7).
  • Spreadsheet: Fix updating active domain when component type changes (06ae3c98eb).
  • Spreadsheet: Use "id" instead of "ID" as column name (c1936be0c5).
  • Spreadsheet: Make id column a bit wider (62928b618a).
  • Nodes: Fix menu when there is no node tree (bbd6dc55d1).
  • D13020: Fix T91986: Incorrect syncing of geometry instances.
  • D13034: Fix T91862: Do type conversion when data enters or exists node group (WIP).
  • D12986: Geometry Nodes: Refactor virtual array system (WIP).

Next Week

General geometry nodes work.

Week 157: November 01 - 05

  • Fix T91094: Missing update after collection changed (3a454beae7).
  • Fix T91862: Do type conversion when data enters or exists node group (b55bddde40).
  • Fix T92649: Incorrect copying of anonymous attributes in many places (ff4959eeaa).
  • Fix T92814: Improve automatic linking when inserting Float Curve node (be4478d1f8).
  • Fix T92799: Handle undefined node group type in field inferencing (b7260ca4c9).
  • Fix T91986: Incorrect syncing of geometry instances (c7fcc50842).
  • Fix: Make sure geometry owns mesh before taking ownership (2b12b4cd7d).
  • Geometry Nodes: Improve check if object has geometry set instances (a96b2f39b8).
  • BLI: Avoid passing nullptr to strncmp (698b05fc58).
  • Nodes: Add preview image storage to node group (f315a46982).
  • Started working on enum sockets.
  • P2578: Unity build experiments for the bf_nodes module. Initial tests show a 3x build time improvement.
  • D13135: Fix T92864: Curve object does not sync correctly in cycles.

Next Week

General geometry nodes work.

Week 158: November 08 - 12

  • Fix T92934: Crash rendering with wrong image path (45bd98d4cf).
  • Fix T92864: Curve object does not sync correctly in cycles (47b8baa5c4).
  • Fix T92908: Print warning when instance recursion limit is reached (4f246b8bf9).
  • Fix T92950: Spreadsheet shows 0 instances when there are instances (09f1be53d8).
  • Fix: Attribute Transfer node does not work with a single index (bd734cc441).
  • Fix: Wrong field inferencing with unavailable sockets (393879f30c).
  • Fix: Wrong attribute propagation in Distribute node (cc949f0a40).
  • Geometry Nodes: Change selection output order in Cylinder node (0533f2851e).
  • Nodes: Store socket declaration reference in socket (fc373af8f5).
  • Started refactoring node updating.
  • D13188: Cleanup: Remove bNodeTree->interface_type (WIP).
  • D13215: Cancelable long running operations (Prototype).
  • D13220: Geometry Nodes: Sample Sound node (Prototype).
  • Devtalk: Loops in Geometry Nodes.
  • Devtalk: Portal Links Exploration.
  • Devtalk: Enum Sockets.

Next Week

General geometry nodes work.

Week 159: November 15 - 19

  • Fix T93054: Crash when deleting a missed linked file (de3fda29c7).
  • Fix T87912: Use session id instead of name to identify dropped object (04ec36f677).
  • Fix: Wrong assert in geometry nodes evaluator (00a9617f92).
  • Geometry Nodes: Refactor virtual array system (d4c868da9f).
  • Nodes: Add bf_nodes_geometry library (992634427e).
  • Functions: Use static names for multi-functions (6ee2abde82).
  • Functions: Use static string for parameter names (15011e0b70).
  • Cleanup: Use same function for updating internal links for all nodes (f5dde382af).
  • Cleanup: Change node socket availability in a single place (c2ab47e729).
  • D13219: Fix: Incorrect socket identifier versioning.
  • D13246: Nodes: Refactor node tree update handling (WIP).
  • D13271: Fix: Error when materializing curve point attribute.
  • D13289: Mesh: Faster way to compute edges from polygons (WIP).

Next Week

General geometry nodes work.

Week 160: November 22 - 26

  • Fix T93090: Crash with data transfer modifier and geometry nodes (6987060f70).
  • Fix T92654: Missing padding in spreadsheet cells (84be741329).
  • Fix T93092: Incomplete animation rendering of multi-layer exr composition (b02ac2d8be).
  • Fix T93231: Crash when overwriting vertex group with other domain (dab04bc053).
  • Fix T93296: Raycast node uses wrong domain for face corner attributes (436ce22194).
  • Fix T93297: Incorrect eevee motion blur with geometry instances (a6b7f32112).
  • Fix T93345: Missing null check for geometry nodes logger (f8dea3fe64).
  • Fix T93362: Crash when capturing attribute after fillet curve node (82808e18e6).
  • Fix T93367: Wrong attribute propagation in Delete Geometry node (d6646f7a8a).
  • Fix (unreported): Unlinked group input is not logged in geometry nodes (3844e9dbe7).
  • Geometry Nodes: Reduce overhead when processing single values (47276b8470).
  • Geometry Nodes: Add namespace for every file (1df8abff25).
  • Geometry Nodes: Fix attribute propagation in Delete Geometry node (cf266ecaa6).
  • Geometry Nodes: Decouple Delete Geometry node from Mask modifier (f5e5a0987a).
  • Geometry Nodes: Reduce number of scheduled nodes in evaluator (7ea4342e73).
  • Geometry Nodes: Add utility to show debug messages in node editor (65f547c3fc).
  • Geometry Nodes: Reduce thread switching in evaluator (e206a0ae96).
  • Geometry Nodes: Use simpler types when devirtualizing virtual array (cbe9a87d28).
  • Geometry Nodes: Avoid allocation when construct varray for single value (2cda65a35a).
  • Geometry Nodes: Better devirtualization for sliced virtual arrays (6b5e1cfaca).
  • Geometry Nodes: Refactor multi-threading in field evaluation (658fd8df0b).
  • Geometry Nodes: Deduplicate virtual array implementations (f86331a033).
  • Geometry Nodes: Optimize Set Position node (602ecbdf9a).
  • Geometry Nodes: Add utility to set remaining outputs (97465046c6).
  • BLI: Add slice method to index mask and generic span (499c24ce75).
  • BLI: Remove special cases for is_span and is_single methods (447378753d).
  • CMake: Add WITH_UNITY_BUILD option to improve compile times (050b205a97).
  • Tests: exclude anonymous attributes from mesh comparison (17770192fb).
  • Clang Tidy: Ignore some passes that changed or were added in version 13 (9159295c3c).
  • D13369: Fix T93310: Crash due to broken image paths.
  • Experimented a bit with LLVM again.

Next Week

General geometry nodes work.

Week 161: November 29 - 03

  • Fix T93555: Crash when muting nodes with multiple internal links (198e571e87).
  • Fix (unreported): Incorrect custom data layer created (aec56e562a).
  • Fix (unreported): Off-by-one error when setting curve handles (d19443074a).
  • Depsgraph: Remove shading parameters component (b67dca9b76).
  • Geometry Nodes: Propagate attributes in Instance on Points node (221b7b27fc).
  • Geometry Nodes: Deduplicate join geometry code (506d672524).
  • Geometry Nodes: Use array instead of map in GeometrySet (b32f9bf801).
  • BLI: Avoid invoking tbb for small workloads (e130903060).
  • D13246: Nodes: Refactor node tree update handling (WIP).
  • T93519: Auto-complete not working for ID templates.
  • D13446: Geometry Nodes: Support instance attributes when realizing instances.

Next Week

General geometry nodes work.

Week 162: December 08 - 10

  • Fix (unreported): Missing null check (74fa4ee92b).
  • Geometry Nodes: Improve memory reuse in procedure executor (92237f11eb).
  • Geometry Nodes: Move up destruct instructions in procedure (1686979747).
  • Geometry Nodes: Remove accidental exponential time algorithm (7b88a4a3ba).
  • Geometry Nodes: New Geometry to Instance node (565b33c0ad).
  • Geometry Nodes: Reduce code duplication with new GeometyrFieldInput (2d4c7fa896).
  • D13446: Geometry Nodes: Support instance attributes when realizing instances.
  • D13246: Nodes: Refactor node tree update handling.
  • D13497: Eevee: Refactor mapping geometries between frames for motion blur.
  • D13502: Allocator: Simplify using guarded allocator from c++.

Next Week

General geometry nodes work.

Week 163: December 13 - 17

  • Fix T93975: Add more nested instance limit checks (d79868c4e6).
  • Fix T94166: Set handle position node crashed after refactor (367b484841).
  • Fix (unreported): Missed running versioning code in some files (9690b7c91b).
  • Geometry Nodes: Aimplify using selection when evaluating fields (8e2c9f2dd3).
  • Geometry Nodes: Aupport instance attributes when realizing instances (f5ce243a56).
  • Allocator: Aimplify using guarded allocator in C++ code (a3ad5abf2f).
  • D13611: Fix T94162: Incorrect handling when there are multiple group outputs.
  • D13246: Nodes: Refactor node tree update handling.
  • Code Review.

Next Week

General geometry nodes work.

Week 164: December 20 - 24

  • Fix T94162: Incorrect handling when there are multiple group outputs (ba4b7b4319).
  • Fix T94322: Add missing updates after recent refactor (dd01ce2cd0).
  • Fix T94362: GPUMaterialTexture references freed ImageUser (28df0107d4).
  • Nodes: Refactor node tree update handling (7e712b2d6a).
  • Geometry Nodes: Improve multi socket handling in evaluator (d6224db8f1).
  • BLI: Fix Vector.prepend declaration (deb3d566a5).
  • Code Review.

Next Week

General geometry nodes work.

Week 165: December 27 - 31

  • Fix T93941: Geometry proximity breaks with high resolution mesh (644e6c7a3e).
  • Fix T94464: Video texture is not refreshing (d09b1d2759).
  • Fix T94416: Incorrect handling when nodes are linked in a loop (018272ee5b).
  • Fix T94408: Missing sockets after adding node group (b29e33caa2).
  • Fix (unreported): Missing relations update after adding scene time node (bb0da7dbbd).
  • Geometry Nodes: Add field node type for constants (8be217ada5).
  • Geometry Nodes: Small refactor towards supporting partially lazy nodes (4c46203cb5).
  • Nodes: Support linking to existing group input from link drag search. (31e120ef49).
  • BLI: Add utility to check if type is any specific type (51a131ddbc).
  • Render: move editor/render module to c++ (1c9d8fcb47).
  • D13677: Nodes: Initial very simple node group preview generation.
  • D13675: Nodes: Support linking to named reroute from link drag search.
  • https://github.com/JacquesLucke/throughput_analysis
  • Experimented with LLVM in temp-llvm-testing branch.
  • Code Review.

Next Week

General geometry nodes work.