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/2022

Week 166: January 03 - 07

  • Fix T94545: Support realizing instanced collections (d960c78693).
  • Fix T94707: Inverted output of separate geometry node incorrect (6c906b7c21).
  • Fix T94534: Dangling pointer in internal link after removing socket (d5e73fa13d).
  • Fix T94659: Crash when deleting instances (3e92b4ed24).
  • Assets: Disable automatic preview generation for node groups (b63f375775).
  • D13739: UI: Show recently selected items at the top of searches.
  • D13747: Assets: Add operator to create preview from active object.
  • D13748: Assets: Enable node group assets.
  • D13752: Add script to check namespace names for unity builds.
  • D13757: Geometry Nodes: Experimental Scale Elements node (WIP).
  • Code Review.

Next Week

General geometry nodes work.

Week 167: January 10 - 14

  • Fix T94766: Texture coordinates from other object do not refresh (8dd163160e).
  • Fix T94111: Nurb normal calculation does not work (39ba82f25d).
  • Fix T94812: Render layer sockets are missing after file load (145f1d1e0a).
  • Fix T94797: Crash when playing animation in eevee rendered view (1e61b759c7).
  • Fix T94867: Viewport render not updating when editing color ramp (c9a8975de5).
  • Cleanup: Add utility macro to simplify using std::enable_if (bd8fa07a3d).
  • Cleanup: Move attribute operators to c++ (0a3de0305c).
  • D13757: Geometry Nodes: New Scale Elements node.
  • D13825: Geometry Nodes: New Field at Index node.
  • D13828: Geometry Nodes: Improve domain interpolations.
  • D13819: Geometry Nodes: Add intermediate field node type. (WIP)
  • D13827: Geometry Nodes: Experimental new Face Vertex/Edge node. (WIP)
  • D13838: Attributes: Add operator to convert attributes to legacy attributes. (WIP)

Next Week

General geometry nodes work.

Week 168: January 16 - 20

  • Fix T95006: Missing modifier update after frame change (9f8ae130af).
  • Fix T94977: Muted link is not ignored in eevee (2486346f6f).
  • Geometry Nodes: Improve domain interpolation code (796e9d442c).
  • Geometry Nodes: New Field at Index node (b88a37a490).
  • Geometry Nodes: New Scale Elements node (d034b85f33)
  • Attributes: Add operator to convert generic attributes to other types (f6888b530a).
  • D13827: Geometry Nodes: New Face Vertex/Edge node.
  • D13739: UI: Show recently selected items at the top of searches.
  • Code Review.

Next Week

Workshop in Amsterdam.

Week 169: January 24 - 28

This week I was in Amsterdam to discuss various topics surrounding a new hair system. More details will be published later.

  • Assets: Allow creating preview image by rendering active object (12b26d21b0).
  • Assets: Enable node group assets (37848d1c8e).

Next Week

Geometry nodes and hair project.

Week 170: January 31 - 04

  • Fix T95205: Remove attribute only once (5257257539).
  • Fix T95314: Constant values not shown in spreadsheet (84dab8b597).
  • Fix T95262: Instances ignored in Frame Selected operator (217e0a2ce6).
  • Fix T95395: Dangling parent pointer when creating node group (2bd71b49e7).
  • Fix T95084: Evaluate all output attributes before changing geometry (a985f558a6).
  • Fix T94435: Remove anonymous attributes when applying modifier (4be87e97f4).
  • Fix T95489: Support writing to vertex groups with geometry nodes again (b8a634cb1d).
  • BLI: Fix memory leak in VectorSet (bf8597febe).
  • Cleanup: Avoid generating some functions in all translation units (b4563ab2df).
  • D14006: BLI: New C++ BitVector data structure (WIP).
  • T95472: Prototype for Node Layers / Modifier Tree.
  • Code Review.
  • Experimented with a new nodes evaluator.

Next Week

Geometry nodes and hair project.

Week 171: February 07 - 11

  • Fix T95578: Missing update when linking selected nodes (2f868e5647).
  • Fix T95543: Incorrect handling of implicit field inputs in ui (65d287a14a).
  • Fix T95570: Missing task isolation when computing normals (de71860555).
  • Fix T91840: Do not create invalid links when inserting a node (06ac599261).
  • Fix T95612: Only overwrite existing attributes with matching domain and type (7313a84c5a).
  • Fix T95664: Missing update after changing active output node (87d2de88fd).
  • Fix T95624: Video texture not refreshing when changing offset in node (720d653b41).
  • Fix T95613: Remove anonymous attributes when converting object (25c4000796).
  • Fix: Missing null check (eb071e3d3c).
  • BLI: Wrap parallel_invoke from tbb (7c10e364b2).
  • Geometry Nodes: Show indicator when realize instances node is in legacy mode (b38f40e904).
  • D14006: BLI: New C++ BitVector data structure.
  • Continued experimenting with a new geometry nodes evaluator.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 172: February 14 - 18

  • Fix T95749: Missing update when normal node changes (33dde170ce).
  • Fix T95815: Missing null check when computing dupli dimensions (0622d2ec61).
  • Fix: Removing anonymous attributes before adding mesh to bmain (257ba175fa).
  • Curves: Add initial sculpt mode (07032dd218).
  • Curves: Initial brush system integration for curves sculpt mode (61aaeb3745).
  • T95845: Use Copy on Write in more places.
  • T95842: Prepare custom data API for attribute sharing.
  • T95776: How to attach hair to a surface.

Next Week

Geometry nodes and hair project.

Week 173: February 21 - 25

  • Fix T93784: Text and curve objects have no motion blur (4e78a7360e).
  • Fix T95985: Crash when assigning a name for an output attribute (17e0634902).
  • Curves: Initial brush implementations for curves sculpt mode (226f0c4fef).
  • Curves: Add surface object pointer (6e11cfc56a).
  • Paint: Decouple op->customdata from PaintStroke (141d5851d7).
  • Paint: Pass operator to stroke update function (ed9f763034).
  • BLI: Support accessing nth last element in Array/Span/Vector (9be720d85e).
  • D14185: Nodes: Improve inserting nodes on existing links. (WIP)
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 174: February 28 - 04

  • rB37d2c774: Fix T96073: Don't remove links when inserting reroute nodes.
  • rB4a95c346: Fix T96085: Repeated evaluation of geometry nodes when nothing changed.
  • rB7935d366: Fix T95479: Geometry nodes crash with cage display.
  • rB2fb31f34: Fix T95692: Incorrect interpolated children particle hair.
  • rB45079b16: Fix T96160: Freezing when using multiple Handle Type Selection nodes.
  • rB9216cf9c: Fix: Dangling internal links after removing sockets.
  • rBc23ec04b: BLI: Add scoped-defer utility to add RAII-like behavior to C types.
  • rBac45540a: Curves: Add brush to add curves on surface.
  • rB9789a6c6: Search: Take word order into account in string search.
  • D14241: Curves: Initial comb/shrink/grow brushes.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 175: March 07 - 11

  • rB00f6e4c9: Fix T96180: Driver in node tree not updating in real time.
  • rB801d7b49: Fix T95738: Wrong "Bottom" selection for cone without base.
  • rB22a341d9: Fix T96292: Unable to set active material output using Python.
  • rBAc34f0b9: Node Wrangler: Fix node outline position with ui scaling.
  • rB57918356: Geometry Nodes: Fix spline length node after recent refactor.
  • rB4b598739: Curves: Disable stroke spacing for curve sculpt brushes.
  • rB94d2470c: Curves: Increase default viewport resolution for curves object.
  • rB10c11bb8: Curves: Add initial comb, grow and shrink brush.
  • rB3f91e7d7: Curves: Actually delete curves with Delete brush.
  • D14277: Curves: Initial geometry nodes support for curves object (WIP).
  • D14299: Fix T96278: Missing update after alpha socket connection.
  • T96259: Curves Sculpt Brushes.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 176: March 14 - 18

  • rB82e7956f: Fix T96396: Cannot set active node group output with Python.
  • rBbf5e9ef2: Fix T96402: Fix case when material output is contained in node group.
  • rB79ae5f50: Fix T96386: Crash when changing shader to node group in properties.
  • rB7509a741: Fix T96278: Missing update after alpha socket connection.
  • rBd0968a9c: BLI: Add probabilistic rounding utility.
  • rB3e16f3b3: BLI: Move generic data structures to blenlib.
  • rB87114836: BLI: Generalize converting CPPType to static type.
  • rB2252bc6a: BLI: Move CPPType to blenlib.
  • rBb6702aa6: Curves: Separate sculpt brushes into separate files.
  • rB46b35c68: Cleanup: Remove accidental shallow mesh copy.
  • D14340: Curves: New Add brush.
  • D14376: Curves: Improve Comb brush. (WIP)
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 177: March 21 - 25

  • rBceaa787e: Fix T96420: Set ID node not working for instances.
  • rBe0ce1c45: Fix T96577: Setting curve handles not working correctly with multiple curves.
  • rB87a0770b: Fix T96361: Missing update when changing texture mapping properties.
  • rBa58be397: Curves: New Add brush.
  • rBd67f9820: Curves: Improve Comb brush.
  • D14408: Curves: Improve Snake Hook brush.
  • D14441: Curves: Support converting curves to legacy hair system.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 178: March 28 - 01

  • rB1cdf8b19: Fix T96957: creating paint curve crashes
  • rB2202259e: Fix T96909: crash when assigning new node group to group node
  • rBfced604a: Curves: improve Snake Hook brush
  • rB3656e66a: Curves: support converting curves to legacy hair system
  • rBd7c64421: BLI: support value initialization in CPPType
  • rBc55afdf3: BLI: add utility to convert IndexMask to best mask type
  • rBa264dff4: BLI: optimize Map/Set/VectorSet.clear methods
  • rB3c6c15d6: Functions: move loops into function builders
  • D14474: Curves: New Grow/Shrink brush.
  • D14515: Curves: Operator to snap curves to surface. (WIP)
  • T96442: User manual entries for the first batch of curve sculpt brushes
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 179: April 04 - 08

  • rB9743f765: Fix: accidentally swapped value with itself
  • rBe40b0d52: Preferences: enable Duplicate Data for curves and point cloud objects
  • rBfd5e5dac: Geometry Nodes: avoid data copy in store named attribute node
  • rB50869b40: Curves: operator to snap curves to surface
  • rB434521a9: Curves: improve Add menu for new curves object
  • rB30f9ebb6: Curves: expose convert to particle system operator in sculpt mode
  • rB190334b4: Curves: new Grow/Shrink brush
  • rBee3f71d7: Functions: allow for better compiler optimization
  • rB120a17a4: BLI: add CPPType utility to copy elements to a shorter array
  • rBa5beca7b: BLI: inline fast path of IndexRange::as_span
  • rB384a02a2: BLI: add missing materialize methods for virtual arrays
  • rB2aff0491: Functions: parallelize materializing arrays after field evaluation
  • rB67c42e7f: Functions: optimize simple generated multi-functions
  • Started generalizing devirtualization for better performance and reduced code duplication.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 180: April 11 - 15

  • rBc7101308: Geometry Nodes: show used named attributes in nodes
  • rB2839fe9a: Curves: initial geometry nodes support for curves objects
  • rBc9574412: Curves: fix some issues with operator to convert to particle system
  • rBe0c8d091: Curves: remove Test1 brush
  • D14647: Auto-save improvements. (WIP)
  • D14628: Geometry Nodes: Refactor array devirtualization. (WIP)
  • Worked on a design for attribute name semantics.
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 181: April 18 - 22

  • rBdc7f88fd: BLI: prioritize detecting single values higher than detecting spans
  • rBa2d32960: BLI: optimize constructing new virtual array
  • rBed971a19: Curves: show sculpt tool settings in panels
  • rB0178e694: Geometry Nodes: show used named attributes in modifier
  • rBc196ca37: Functions: fix procedure executor not writing output in correct buffer
  • rBaca083fb: Nodes: raise exception when creating node group input/output fails
  • rBb9799dfb: Geometry Nodes: better support for byte color attributes
  • D14628: Geometry Nodes: Refactor array devirtualization.
  • T97443: Fix curves sculpt brush names ending with .001
  • T97452: Attribute identification and semantics
  • Code Review.

Next Week

Geometry nodes and hair project.

Week 182: April 25 - 29

  • rB26afa23b: Fix: use natural string sorting for attribute names
  • rB654bc35b: Geometry Nodes: improve ui when trying to remove built-in attributes
  • rB09710d5f: Geometry Nodes: show timing overlay above attributes overlay
  • rB2b3f7c64: Geometry Nodes: improve attribute dependency overlay
  • rB9a535991: Geometry Nodes: rename used attributes panel
  • rBae94e36c: Geometry Nodes: refactor array devirtualization
  • rB69637038: Nodes: show overlays in node editor even when nodes are collapsed
  • rBb7458f90: Curves: add "Curves" to brush names
  • rBf0f44fd9: Curves: support spherical delete brush
  • rB7b16ddeb: BLI: small optimization to retrieving CPPType from static type
  • D14764: BLI: Improve parameter devirtualization (WIP).
  • D14795: Curves: Support symmetry in curves sculpting brushes.
  • Code Review.

Next Week

Workshop in Amsterdam.

Week 183: May 02 - 05

  • rBbff9bf72: Fix T97774: don't crash when no brush is selected
  • rB54b29323: Fix T97375: changing node tree from Python is very slow
  • rB2ba081f5: Curves: disable Empty Hair operator when there is no active mesh
  • rBedc92f77: Curves: support converting legacy curves to new curves object
  • rBb1517e26: Curves: use old Add > Curve menu for new curves object
  • rB5b24291b: Curves: move curve sculpt settings out of advanced panel
  • rBad119d32: Curves: change default name of curves object to Curves
  • rB18bcd832: Curves: show warning when using Add brush without surface
  • rBdbba5c4d: Curves: control number of control points in new curves
  • rB09f769bd: Curves: show Front Faces Only option in tools panel
  • rB8d78c315: Curves: unify "Front Faces Only" name with mesh sculpt mode
  • rB8bd0ed6b: Curves: show direction in panel for Grow / Shrink brush settings
  • rB5162135e: Curves: add second experimental option for new curves tools
  • rB7dc94155: Curves: support symmetry in curves sculpting brushes
  • rBb54c6a20: Curves: fix brush position is not under mouse cursor
  • D14864: Curves: Deform curves based on surface node. (WIP)
  • D14877: Curves: Interpolate number of control points for new curves from neighboring curves. (WIP)
  • D14875: Spreadsheet: Support showing enum value strings instead of integers.
  • Code Review.

Next Week

Workshop in Amsterdam.

Week 184: May 09 - 13

  • rB99131964: Geometry Nodes: use .a_ prefix for anonymous attribute names
  • rB2e8089b6: Workaround for msvc compiler bug
  • rB94a54ab5: Curves: add operator to convert hair particle system to new curves
  • T95776: How to attach hair to a surface
  • D14925: Attributes: Initial support for quaternion attributes.
  • D14942: Curves: Draw legacy hair particle system as curves object. (WIP)

Next Week

Hair project and geometry nodes.

Week 185: May 16 - 20

  • rBf517b3a2: Fix T98157: improve animation fps with better check in depsgraph
  • rB2e70af5c: Fix T97761: incorrect mixing of integers
  • D14942: Curves: Draw legacy hair particle system as curves object. (WIP)
  • D14972: Curves: New Pinch brush (WIP).
  • D14993: BLI: Use no_unique_address attribute.
  • T95776: How to attach hair to a surface
  • Code Review.
  • Worked more on design and implementation of a new more versatile evaluator for geometry nodes.

Next Week

Hair project and geometry nodes.

Week 186: May 23 - 27

  • rBa5409d2b: Fix T98316: geometry nodes stop updating after duplication
  • rB2f2d13b8: Fix T97237: dragging custom node group asset adds broken node
  • rBe07b1b83: Fix T98317: equal vs not-equal modes in compare node are not exact opposites
  • rB2ea6a0dd: Fix T98328: missing depsgraph update after adding node group
  • rB174c3ffb: Fix T98268: replace string node des not handle empty strings correctly
  • rBf29ff7fb: Fix T98152: Named Attribute node changes data type for non-existant attributes
  • rBa337e773: BLI: use no_unique_address attribute
  • D15016: Curves: Make tangent computation more robust against duplicate points.
  • D14934: Curves: Add float selection in sculpt mode
  • D14972: Curves: New Pinch brush (WIP).
  • D15033: Nodes: Add separately allocated run-time data for bNodeTree.
  • T98366: Active Attributes
  • T95776: How to attach hair to a surface

Next Week

Hair project and geometry nodes, and will be in Amsterdam half the week.

Week 187: May 30 - 03

  • rBdc389a61: Fix T98454: subdivision doesn't propagate int attributes
  • rB0f47506c: Fix T98501: setting node socket default value is very slow
  • rB899ec8b6: Curves: use uv coordinates to attach curves to mesh
  • rB2f77b2da: Nodes: call init function for new node trees in ntreeAddTree
  • rBbb0fc675: Nodes: add separately allocated run-time data for bNodeTree
  • rB6a59cf05: Nodes: add separately allocated runtime data for nodes and sockets
  • rB5c80bcf8: Functions: speedup preparing multi-function parameters
  • rB9e43a57d: Cycles: fix missing attribute update
  • rBa094cdac: BLI: fix memory error when moving VArray_Span
  • D15082: Allocator: Improve allocator usage in C++ containers. (WIP)
  • D15101: Attributes: Store default uv map as string on Mesh. (WIP)
  • D15134: Curves: Prototypes for various features surrounding the new curves object.
  • T98492: Geometry Nodes Evaluator 3.0

Next Week

More hair and geometry nodes discussions.

Week 188: June 06 - 10

Was in Amsterdam still.

  • rBf49efed9: Curves: fix transforms in Add brush
  • rBb69aad60: Curves: use root/tip radius of the first curve in the viewport
  • rB1a71f9d2: Curves: use radius of middle point to determine curve shape
  • rBcc1cc460: Fix: incorrect curve parameter for catmull rom curves
  • D15134: Curves: Prototypes for various features surrounding the new curves object.

Next Week

Hair project and geometry nodes.

Week 189: June 13 - 17

  • rB49b068bc: Fix T98847: missing null check in versioning code
  • rBdc11e116: Fix T98796: avoid unnecessary mesh copy
  • rB30f244d9: Fix: curves have incorrect resolution attribute after realizing instances
  • rB75489b58: Geometry Nodes: tweak Volume to Mesh threshold declaration
  • rBb8bd304b: Geometry Nodes: speedup Separate XYZ node
  • rBe903403b: Curves: support adding keymap items for operators
  • rB133095ff: Curves: refactor Add brush
  • rBd48735cc: Functions: speedup multi-function procedure executor
  • rBb7e193cd: BLI: avoid unnecessary allocation when converting virtual array
  • T98845: Access original data from a geometry object
  • D15134: Curves: Prototypes for various features surrounding the new curves object.
  • T98940: Texture nodes CPU evaluation design
  • Helped with D15198: Geometry Nodes: Volume Cube node

Next Week

Hair project and geometry nodes.

Week 190: June 20 - 24

  • rB06b212c4: Fix: assert when deleting all curves
  • rB3237c6db: Fix: crash when converting zero legacy curves
  • rBd2e4bd79: Curves: extract surface brush sampling into separate function
  • rBb513c89e: Functions: avoid using Map for small values
  • rBef8bb8c0: Functions: improve span buffer reuse in procedure execution
  • rB22fc0cbd: BLI: improve support for trivial virtual arrays
  • rBaf983a3e: BLI: add min_inplace and max_inplace functions
  • rB2a8afc14: BLI: improve check for common virtual array implementations
  • D15134: Curves: Prototypes for various features surrounding the new curves object.
  • D14864: Curves: Deform curves based on surface node. (WIP)
  • D15280: BKE: New attribute API (WIP).

Next Week

Hair project and geometry nodes.

Week 191: June 27 - 01

  • rBc96f2778: Fix: sampling points on mesh surface generates too many points
  • rB416aef4e: Curves: New tools for curves sculpt mode.
  • rBeff62ea8: Geometry Nodes: remove warning in Points node
  • rBdfea5e24: BLI: add kdtree range search method that accepts c++ lambda
  • rBc51b8ec8: BLI: add Vector.append_and_get_index with rvalue parameter
  • rB5d9ade27: BLI: improve span access to virtual arrays
  • rBab444a80: BLI: refactor length parameterization
  • D14864: Curves: Deform curves based on surface node. (WIP)
  • D15280: BKE: New attribute API (WIP).
  • Looked into gdb pretty printing.

Next Week

Hair project and geometry nodes.

Week 192: July 04 - 08

  • rB05b38ecc: Curves: support deforming curves on surface
  • rBc46d4d9f: Curves: move curves surface transforms to blenkernel
  • rBb876ce2a: Geometry Nodes: new geometry attribute API
  • rBb98d1162: BLI: use a slightly less trivial reverse uv sampler
  • rB8f0907b7: BLI: add float3x3 * float3 operator overload
  • rB6636edbb: BLI: improve reverse uv sample in edge cases
  • rBba62e20a: BLI: make some spans default constructible
  • D15378: Functions: More clearly separate fields from multi-functions.
  • D15401: Cleanup: Remove unused get_cage_mesh parameter.
  • D15407: Curves: Sculpt on deformed curves (WIP).
  • Committed node wrangler patches.

Next Week

Hair project and geometry nodes.

Week 193: July 11 - 15

  • rB3935bf25: Fix T99677: crash when convex hull node is used on empty mesh
  • rB6e6da22e: Fix: crash when iterating over all attributes
  • rBd58072ca: Fix: missing geometry copy before modifying it
  • rB02aefa76: Fix: wrong node name in menu
  • rBd0a552b5: Fix: set dangling pointer to null
  • rB1c382a49: Curves: improve error checking in deform curves on surface node
  • rB44e530e1: Geometry Nodes: fix face corner to edge attribute interpolation
  • rB96cc6030: Geometry Nodes: update curve type counts after realizing instances
  • rBc8a07ef6: BLI: fix finding indices from virtual array
  • D15440: Geometry Nodes: New uv map based attribute transfer mode.
  • D15407: Curves: Sculpt on deformed curves (WIP).
  • D15460: Textures: Example for using field evaluator for texture nodes (WIP).

Next Week

Hair project and geometry nodes.

Week 194: July 18 - 22

  • rBbeb74613: Fix T99830: missing update after reordering node group sockets
  • rBd53ea1d0: Fix T99905: wrong toposort when the node tree is cyclic
  • rB5da807e0: Fix: Store Named Attribute node not working when attribute did not exist
  • rB2232855b: Curves: align surface and curves object in Empty Hair operator
  • rBecf4f4a7: Curves: fix uninitialized curve type when adding new curves
  • rB538da79c: Curves: fix applying materials when applying modifier
  • rB1f94b56d: Curves: support sculpting on deformed curves
  • rB2034e8c4: Geometry Nodes: add debug check for whether AttributeWriter.finish is called
  • rB3ea91cec: Cleanup: remove unused get_cage_mesh parameter
  • D15491: Nodes: Move NodeTreeRef functionality into node runtime data. (WIP)
  • D15493: Curves: Prototype for node group operators.
  • T99907: Support user defined crazy space for curves.
  • T99908: Crazy-space support for meshes in geometry nodes

Next Week

Hair project and geometry nodes.

Week 195: July 15 - 29

  • rB72fb92de: Fix T99961: crash when spreadsheet shows volume grids
  • rB6f1cdcba: Fix T99929: lattice modifier looks up vertex group index in wrong place
  • rB5feb3541: Fix T99889: Fillet Curve node uses wrong radius
  • rB2c81b4d4: Fix T99880: no node timing for frames in node groups
  • rBb9e66af6: Fix T99851: Subdivide Curve node does not initialize attributes of end point
  • rB332d547a: Fix T99850: incorrect tangents on evaluated bezier curves
  • rBd5677856: Fix T99816: renaming attribute works incorrectly
  • rBc5712c67: Fix T99373: add some padding in spreadsheet vector columns
  • rBcaf90762: Fix T99271: modifier errors are not cleared
  • rBac1554bc: Fix T98982: cannot change default value of some node group input types
  • rB72f77598: Fix T98798: tag collection geometry when changing instance offset
  • rB5945a90d: Fix T98788: bad first curve tangent when first points have same position
  • rB6e5eb46d: Fix T100026: crash with zero-sized attributes
  • rB84272ce1: Fix: add missing return
  • rB84a3ff63: Fix: missing evaluated offsets in Resample Curve node
  • rB0dcfd93c: Fix: curves edit hints not propagated in Join Geometry node
  • rBcacdea7f: Fix: crash when accessing attributes from multiple threads
  • rB1c05f30e: Curves: add warning when invalid uv map is used when adding curves
  • rBaa7d1303: Curves: improve handling of empty surface meshes
  • rBccb9d5d3: Curves: enable density brush when first entering curves sculpt mode
  • rB53113a2e: Geometry: detect when the sample uv is in multiple triangles
  • rBL62979: Geometry Nodes: update curve tangent test
  • D15536: Curves: Add CurvesGeometry.radii()
  • D15545: Fix T99624: is_animatable of id properties is false
  • T100020: Curve and Mesh Topology Inputs

Next Week

Vacation.

Week 196: August 08 - 12

Attended Siggraph in Vancouver.

Week 197: August 15 - 19

Was sick this week.

  • rB16084066: Fix: nurbs basis cache not computed before it is used
  • D15491: Nodes: Move NodeTreeRef functionality into node runtime data.

Week 198: August 22 - 26

Still recovering from last week.

  • rB4fecf652: Fix T100568: triangulate node resets vertices to rest position
  • rB56205e9f: Fix T100579: internal links are drawn when sockets are hidden
  • rB5d67b524: Fix T100562: Realize Instances node crashes when there is an attribute name…
  • rB95464a84: Fix T99932: video in node group does not play
  • rB16635304: Fix T100318: handle custom nodes in field inferencing more gracefully
  • D15491: Nodes: Move NodeTreeRef functionality into node runtime data.
  • D15775: Nodes: Add persistent identifier to nodes (WIP).

Week 199: August 29 - 02

  • rBe3a6a2f4: Fix T99004: scaling volume down results in crash
  • rB34e30bae: Fix T100673: crash when using slide brush without attachment info
  • rB6177d9f0: Fix: reverse uv lookup fails due to floating point accuracy issues
  • rB25e307d7: Nodes: move NodeTreeRef functionality into node runtime data
  • Described a possible undo improvement in T98574.
  • Worked on the geometry nodes evaluation refactor.
  • Started working on an attribute overlay.
  • Fixed some issues after the NodeTreeRef refactor.
  • Spent a fair amount of time doing code review (e.g. D15488, D15617)

Week 200: September 05 - 09

  • rB8000d526: Fix T100796: wrong tangents on bezier splines with duplicate points and handles
  • rB1339fec2: Nodes: fix memory leak
  • rBd481fb10: Nodes: fix handling cyclic node trees
  • rB17d80281: Nodes: add owner_tree method to nodes
  • rB46642507: Geometry Nodes: improve printing geometry set for debugging
  • rB967664d1: BLI: new C++ BitVector data structure
  • rBfa0f18b3: Cleanup: readfile: use correct type
  • D15914: Geometry Nodes: New evaluation system.
  • D15896: Attribute Overlay (WIP).
  • Started getting used to the Vulkan API.
  • Experimented with a new ChunkList data structure.

Week 201: September 12 - 16

  • rB4d67a995: Fix: crash when evaluating geometry nodes after deleting an unlinked node
  • rBcf56b8be: Fix T101166: crash when creating group input socket
  • rB62cee240: Fix: crash when changing to viewer context in spreadsheet
  • rB4130f1e6: Geometry Nodes: new evaluation system
  • rB7549e0c5: Geometry Nodes: use stringref instead of string in logger
  • rB8b26349d: BLO: move blenloader to C++
  • rB5c4295ee: Workaround for msvc compiler bug
  • D15896: Attribute Overlay (WIP).
  • D15976: Geometry Nodes: Lazy threading.
  • Learned more about the GPU and Draw API in Blender.
  • Code Review.

Week 202: September 19 - 23

  • rBe746999a: Fix T101309: crash when executing geometry nodes without logger
  • rB2b4cb893: Fix T101214: hidden link can cause cycle in node tree
  • rBc8ee70c9: Geometry Nodes: decentralize implicit input definitions
  • rB5c81d3bd: Geometry Nodes: improve evaluator with lazy threading
  • rBe5d4afd5: Depsgraph: generalize passing parameters to depsgraph object iterator
  • rBe345686c: View3d: move space_view3d.c to c++
  • rB2fd63efd: BLI: simplify removing elements from containers with predicate
  • rBbc88f200: Cleanup: remove vector adaptor data structure
  • rBc6e70e7b: Cleanup: follow C++ type cast style guide in some files
  • rB2fffd7d7: Move overlay engine to C++
  • rB93964374: Move workspace.c to C++
  • D15954: Geometry Nodes: Viewport preview (WIP).
  • Code Review.
  • Experimented with an attribute api that could potentially replace CustomData (Github).

Week 203: September 26 - 30

  • rBdb0ef8b0: Fix T101410: ignore dangling reroute inputs
  • rB2fc13642: Fix T101451: curve attribute overlay disappears when origin is out of view
  • rBb2115407: Fix: bump subversion to avoid corrupted files
  • rBb70b02ee: Fix: Spline Parameter node produces NaN when curve is a single point
  • rBc55d38f0: Geometry Nodes: viewport preview
  • rB5ffbabb2: Nodes: fix missing updates with muted nodes and reroutes
  • rB697e86a7: View3D: move view3d_draw.c to c++
  • D16069: Always show warning when opening files saved in a new version (Proposal).
  • D16070: Potential Fix T101378: Missing update with complex node update functions.
  • D15440: Geometry Nodes: New uv map based attribute transfer mode.

Week 204: October 03 - 07

Two weeks of vacation started on Tuesday.

  • rB72ceb7de: Fix: crash when linked geometry node group is missing
  • rBe65598b4: Geometry Nodes: new Sample UV Surface node
  • rB31ae3a50: Geometry Nodes: set viewer overlay opacity default to 1
  • D16137: Geometry Nodes: Separate Instances from InstancesComponent.

Week 205: October 17 - 21

  • rB7abd7939: Fix T101642: crash when deleting group output inside node group
  • rB91e85230: Fix T101660: crash when trying to propagate string attributes in some nodes
  • rB9d710374: Fix T101645: division by zero in fillet node
  • rB8415bc9c: Fix T101554: disable viewer node when corresponding modifier is disabled
  • rB4b30ee77: Fix T101316: workbench texture mode not working with geometry nodes
  • rB5e0e5b13: Fix T101215: Distribute Points in Volume node does not refresh on frame change
  • rBe5425b56: Geometry Nodes: separate Instances from InstancesComponent
  • rB619ce839: Depsgraph: wrong copy-on-write update after depsgraph rebuild
  • rBa2fcfcab: Cleanup: add missing CPPType for MStringProperty
  • D16283: Avoid pipeline stalls with lazy-evaluated caches (experiment).
  • D16289: Fix T101536: Missing node tree updates after remapping id.
  • D16304: Nodes: Restrict Python API on built-in nodes.
  • D16305: Fix T100988: Flickering when using sculpt brush in drag dot mode.

Week 206: October 24 - 28

  • rB53795877: Fix T101210: invalid internal node links lead to crash
  • Various meetings and was at the Blender Conference

Week 207: October 31 - 04

  • rBc29c61f8: Fix T102292: deadlock in geometry nodes evaluation with task isolation
  • rB06976319: Fix T102144: missing validation of spline resolution
  • rB25c6444b: Fix T102153: crash when muting node group with active viewer
  • rBf4e97bd6: Geometry Nodes: fix missing curve cache
  • Participated in geometry nodes workshop in Amsterdam. More notes will be available soon.

Week 208: November 07 - 11

  • rB79d8610d: Fix T102311: crash when opening node add menu with assets
  • rB8ff71acd: Fix T102324: reverse curve node breaks crazy space editing
  • rB52bd1981: Fix T100872: restrict Python API on built-in nodes
  • rBc842a5a1: Fix T101526: assert due to wrong node tree owner id
  • rB1140e001: Fix T102329: assert when cutting node tree link
  • rBdc609d9f: Fix T100988: flickering when using sculpt brush in drag dot mode
  • rB6295bdfd: Fix T102340: crash when adding image file in node group
  • rB84c66fe9: Fix T102406: OSL script node no longer updates its in and outputs
  • rB57dd1b77: Fix T102386: crash when trying to link sockets from different node trees
  • rBc73ae711: BLI: new basic CacheMutex
  • rBa6c82273: BLI: improve CPPType system
  • rB024bec85: Depsgraph: simplify scheduling in depsgraph evaluator
  • D16464: Fix T101979: Edge Angle node returns wrong sign (alternative)
  • Worked on propagating information backwards during geometry nodes evaluation.
  • Worked on refactoring field evaluation.

Week 209: November 14 - 18

  • rB5c42e54f: Fix T101536: missing node tree updates after remapping id
  • rB7b82d8f0: Nodes: move most runtime data out of bNode
  • rB0ebb7ab4: Geometry Nodes: disable unreachable nodes in evaluator
  • rBb4c3ea26: Cleanup: move internal links of nodes to runtime data
  • D16546: BLO: Use blender::Map in OldNewMap.
  • D16547: DNA: Support versioning between inline buffers and pointers. (WIP)
  • Moved a bunch of files to C++ to help with refactors.
  • Worked more in new field evaluation and value request backward propagation.

Week 210: November 21 - 25

  • rBa87d7886: Fix T102693: adding shader node group to geometry nodes crashes
  • rBb43bdd8b: Fix T102751: missing tree update with muted nodes
  • rB848dff1e: Fix: assert when converting between types in geometry nodes
  • rB3648fd99: Fix: node frame boundaries incorrect when opening files
  • rB82653597: Nodes: add non-const utility to find socket by identifier
  • rB86ade3df: Nodes: move node registration to nodes module
  • rB4f028173: Nodes: remove bNodeTree->interface_type
  • rB9f83ef21: BLI: make different pointer types compatible in hash tables
  • rB01e479b7: Cleanup: simplify removing asset code
  • rB356373ff: Cleanup: move some data from bNodeSocket to run-time data
  • rB5f626ac3: Cleanup: use more concise function names in function nodes
  • D16596: Nodes: Refactor how socket positions are determined. (WIP)
  • D16580: Cleanup: Remove ui linker hack.
  • Moved some files from C to C++.

Week 211: November 28 - 02

  • rB99c5146e: Fix T101433: crash when deleting hierarchy referenced by Collection Info node
  • rBeae2917f: Fix: crash in node poll function due to missing null check
  • rB57613630: BLO: use blender::Map in OldNewMap
  • rB7b082989: BLI: use no_unique_address in BitVector
  • rB85d9f123: BLI: increase default inline buffer capacity in BitVector
  • rB39615cd3: BLI: add atomic disjoint set data structure
  • rB88c6d824: Nodes: ensure that node identifiers are larger than zero
  • D16668: Fix T102882: Crash when there are link cycles and a viewer in a node group.
  • D16647: BLI: Experiment with specializing hash tables for special key types. (WIP)
  • D16666: Allocator: Try using OS to determine (peak) memory usage.
  • D16667: Example for impact of atomics in allocator.
  • D16637: Geometry Nodes: Output uv map from primitive nodes as anonymous attributes.
  • D16642: Geometry Nodes: New Interpolate Curves nodes (WIP).
  • Updated my Gcov Viewer extension for vscode to give better insights into the coverage data.
  • Moved some files to C++.

Week 212: December 05 - 09

  • rB83077d36: Fix: wrong pivot point output in String to Curves node
  • rBccae00c9: Fix: memory leak in curve circle primitive node
  • rB122d6d67: Fix: Points to Volume node crashes with too small radius
  • rBa55c356a: BLO: shrink old-new-map when it is cleared
  • rBbf1791ba: BLI: add clear-and-shrink method to more data structures
  • rBa45284b8: BLI: remove deduplicated memory utility functions
  • rB05bf5c4e: Nodes: simplify handling of function nodes in declaration
  • rBc2ca30ea: Cleanup: avoid calling generic node update functions from versioning code
  • D16711: BLI: Add TinyMutex class (WIP).
  • Added many new regression tests for various nodes that had low test coverage before.
  • Finished up Blur Attribute node from community contribution.
  • Started working on anonymous attribute lifetime analysis.

Week 213: December 12 - 16

  • rB5ffcd877: Fix: socket tooltip not showing when there was no type conversion
  • rB28511ac6: Fix T103294: bring back modifyMesh function for geometry nodes modifier
  • rBf0dc4d67: Geometry Nodes: support storing 2d vector attributes
  • rBf879c20f: Geometry Nodes: output uv map from primitive nodes as anonymous attributes
  • rBc37e07bc: Geometry Nodes: improve dot graph export of lazy function graph
  • rB3aca0bc6: Geometry Nodes: simplify handling of invalid group interface sockets
  • rBea757098: Cleanup: add utility method to get group input nodes
  • rB719513dd: Tests: make mesh comparisons more strict
  • rBL63139: Geometry Nodes: update tests with uv maps
  • Continued working on anonymous attribute lifetime analysis.
  • Code Review.

Week 214: December 19 - 23

  • rB288d4c95: Fix: asset handle in context is always none
  • rBb0245774: Fix: dangling attribute name pointer
  • rB844b6e39: Nodes: use CacheMutex to protect topology cache
  • rBddd24186: Geometry Nodes: avoid some overhead during field inferencing
  • rB8fab53c0: BLI: add last time to scoped averaged time
  • D16858: Geometry Nodes: Deterministic anonymous attribute lifetimes (WIP).
  • D16862: Allocator: Improve multi-threaded allocation performance.

Week 215: December 26 - 30

  • rB72b4f919: Fix T103526: crash when subsurface connects to Shader to RGB
  • rBcc48610d: BLI: improve support for using vectors as hash table keys
  • rB7e4f9880: BLI: improve node graph export in dot format
  • rBb6ca942e: Functions: support cycles in lazy-function graph
  • rB4d39b6b3: Geometry Nodes: skip logging socket values for invisible trees
  • rBa09accb4: Geometry Nodes: speedup compute context hash generation
  • rBdba2d828: Geometry Nodes: avoid using enumerable thread specific on single thread
  • D16858: Geometry Nodes: Deterministic anonymous attribute lifetimes (WIP).