User:HooglyBoogly/Reports/2021
< User:HooglyBoogly | Reports
All Reports
December 20 - December 26
This week I mainly worked on cleanups, some performance improvements, a merge by distance node, and code review.
I worked on some performance improvements, and got some good numbers there-- freeing and copying a large node tree is 25 and 7 times faster, and I observed a 4.4x speedup for calculating the bounds of a large mesh.
I'm happy with the progress of the cleanup of the node editor, I removed 8 more bytes of runtime information from both bNode
and bNodeSocket
, and removed an extra loop over all nodes and links when drawing the editor.
On Sunday I started a mesh-based implementation of an extrude node-- I just really don't like the idea of adding a BMesh
round trip just to implement something that should be very fast.
Changes / Features
- Mesh: Parallelize bounding box calculation 6a71b2af66
- Geometry Nodes: Parallelize mesh grid primitive cb96435047
- Nodes: Add link drag search support for map range node c593db5a2f
- Nodes: Improve performance when freeing a node tree bdbd0cffda
- Nodes: Improve node tree copy performance dbbf0e7f66
- Docs: Add to and cleanup attribute API docs dd3a72f275
- D13649: Geometry Nodes: Basic point cloud merge by distance node
Bug Fixes
- Fix T94232: No selection with set material node empty material list 8f89196be2
- Fix: Potential use after scope in curve to mesh node 14621e7720
- Fix: Missing update when toggling node mute b4f978e901
- Fix: Wrong node link drag search menu items for attribute statistic dca5be9b94
- Fix T94357: Node Ungroup operator copies current node tree 81b3933abb
- Fix: Curve trim node test failure 1931387799
- Fix T94344: Incorrect size for edge vertices node output 35bd6fe993
- Fix: Extra space at the front of "Sample Curve" node name 9033d270d5
- D13660: Fix T94334: Area close operator crash in 3D view menu
Cleanup
- Cleanup: Remove spline add_point method, refactor mesh to curve node 60c59d7d61, rBL62774
- Cleanup: Avoid adding points to splines sequentially 0fd72a98ac
- Nodes: Refactor to remove node and socket "new" pointers fdc4a1a590
- Cleanup: Use simpler loops in weld modifier 7acd3ad7d8
- Cleanup: Move customdata.c to C++ 85abac7e87
- Cleanup: Move hair object type files to C++ 582f6032fc
- Cleanup: Use vector instead of linked list d48fc7d156
- Cleanup: Remove unused UI button definition functions 05f900e346
- Cleanup: Remove misleading comments 291d2a2222
- Cleanup: Remove outdated comment 2df912466c
- Cleanup: Use more common variable name ceed8f7c06
- Cleanup: Use consistent order for custom data mesh masks 79012c6784
- Cleanup: Use span instead of raw pointer 5457b66301
- Cleanup: Remove unused arguments 1d25ba175e
- Cleanup: Comment formatting in node.cc 82fa2bdf3f
- Cleanup: Clang tidy, restore alphabetical sorting d2bf60cc17
- Cleanup: Remove mesh valid assertions in debug builds bdb5852e28
- Cleanup: Remove unused node type flag 76cb11e332
- Cleanup: Return early 6b662ebdb9
Review
Requested changes
D12743: Geometry Nodes: Accumulate Function NodeRequested changes
D13625: Geometry Nodes: Add Integer Mode to Attribute StatisticsAccepted, committed
D13445: Fix T94144: Duplicate edges in dual mesh nodeRequested changes
D13664: Fix T94113: Local view + Geometry Nodes is broken for instancesRequested changes
D13647: USD Preview Surface material export.Accepted, committed
D13620: Fix assert conditions in NURBSpline::knots method
Tracker
- Investigated: 11
- Resolved: 4
- Archived: 3
- Confirmed: 4
- Known Issue: 1
Next Week
(Like I said last week) I'll try to finish up the merge by distance node. Also on the list are making progress on a rotation data type, working a bit on the named attribute nodes, and hopefully finishing up this extrude node that I started, at least an initial version anyway.
December 13 - December 19
This week I committed the link drag search patch I've been working on for a few weeks, worked on some other smaller patches, and started cleaning up the weld modifier in order to use it in a merge by distance node soon. I also did a fair amount of bug triaging and code review, and worked on a few performance improvements.
Changes / Features
- UI: String Search: Add an optional weight parameter 0606adceb3
- Geometry Nodes: Support point clouds in the set material node da2c564bb0
- Geometry Nodes: Add a note about the nested instancing limit rBM8782
- Geometry Nodes: Add vector map range node tests rBL62771
- D13572: Mesh: Parallelize bounding box calculation (WIP)
- D13565: Geometry Nodes: Support instances in the delete geometry node
- D13601: Spreadsheet: Add material column for meshes
- D13605: Geometry Nodes: Remove "normal" from the spreadsheet
- D13617: Geometry Nodes: Parallelize mesh grid node
- D13626: Geometry Nodes: Support warnings from field inputs (WIP)
Bug Fixes
- Fix various cases of incorrect filtering in node link drag search b265b447b6
- Fix: Crash in nodes modifier with missing node group 49311a73b8
- Fix T94173: Missing update for frame node size d15d512a68
- Fix T93920: Wrong field inferencing state with unavailable socket b44a500988
- Fix T94082: Curve to point empty evaluated NURBS crash 67b657f07c
- Fix: Build error from missing include 491b9cd2b9
Cleanup
- Refactor: Simplify spreadsheet handling of cell values 474adc6f88
- Cleanup: Remove runtime uiBlock pointer from nodes d56bbfea7b
- Cleanup: Move weld modifier to C++ 8a91673562
- Cleanup: Simplify node group input and output socket verification fdd41ac49e
- Cleanup: Remove no-op node preview function calls 43875e8dd1
- Cleanup: Use signed integers in the weld modifier 0aabaa4583
- Cleanup: Move curve.c to C++ bd12855110
- Cleanup: Simplify logic in set material node b7e151d876
- Cleanup: Use const arguments, references aa55cb2996
- Cleanup: Remove more no-op node preview code c27d0cb7b9
- Cleanup: Remove more texture nodes preview handling cc367908cd
- Cleanup: Const arguments, remove unused argument eac6aff741
Review
Accepted
D13446: Geometry Nodes: Support instance attributes when realizing instances.Accepted
D13246: Nodes: Refactor node tree update handling.Requested changes
D11664: Accurate NURBS circle and sphereRequested changes, accepted
D13520: Geometry Nodes: Add Selection Input to Attribute Statistics NodeCommented
D13560: Geometry Nodes: Selection Expand / ContractAccepted, committed
D13451: UI: Fix nodes sockets alignmentAccepted, committed
D13554: Remove CU_CARDINAL and CU_BSPLINE from code baseCommented
D13581: Fix T94078: Wrong Bound Box calculated for curvesRequested changes
D13373: Geometry Nodes: Segment Length NodeRequested changes, accepted
D13445: Fix T94144: Duplicate edges in dual mesh nodeUpdated
D6540: Remove node->offsetx/offsety [WIP]Accepted
D12760: Nodes: Add Vector Map Range nodeCommented
D13625: Geometry Nodes: Add Integer Mode to Attribute StatisticsAccepted
D12990: AssetsBrowser: Add ID Properties to Asset IndexerAccepted
D13523: Nodes: Begin splitting composite node buttons into individual filesRequested changes
D13050: Address Multifunction API warningsCommented
D13472: Geometry Nodes: Transpose Splines NodeCommented
D13431: Nodes: Pointer from socket to node for faster lookupsAccepted
D13571: Geometry Nodes: Simplify using selection when evaluating field.Accepted
D13620: Fix assert conditions in NURBSpline::knots methodAccepted
D13611: Fix T94162: Incorrect handling when there are multiple group outputs.Commented
D13553: Geometry Nodes: Add Is Empty NodeAccepted
D13585: Fix T93975: Add more nested instance limit checks.Accepted
D13558: Fix T86200: Properties editor rearranges columns poorly when very wideCommented
D13586: Paint2D: Performance
Tracker
- Investigated: 29
- Needs Information: 3
- Resolved: 3
- Archived: 11
- Confirmed: 3
Next Week
I'll try to finish up a merge by distance node, do more code review of geometry nodes features, and finish up some of the small projects I started towards the end of this week (the patches at the bottom of the "Changes / Features" section. I'd also like to work on a rotation or 2D vector data type, and update the named attribute nodes patch.
December 6 - December 12
This week I mostly focussed on code review, finishing up the node link drag search menu, and cleanup. I was travelling on Wednesday, but I decided to start some cleanup of runtime values in node DNA and other various node editor code improvements, which I continued a bit later in the week.
I also spent a bit of time working on my refactor of mesh vertex normals.
And as usual, a couple of tasks I made this week:
- T93830: Move GeometrySet and CurveEval to blender::bke namespace
- T93817: Convert Triangulate node input to a selection
Changes / Features
- Geometry Nodes: Remove unnecessary copy when replacing data dffd032bc9
Bug Fixes
- Fix T93521: Single point NURBS crash in resample node ee4ed99866
- Revert recent changes to ImBuf transform 5a3d5f751f
- Fix: Attempt to fix build error on macOS 86d520f268
- Fix: Compile error in field input 5705db5bb3
Cleanup
- Docs: Add more comments to geometry set header 7fbb767259
- Docs: Add comments to Mesh header, rearrange fields 5ca38fd612
- Docs: Add comment to spline lookup factor method 03015a9b22
- Docs: Extend a few comments in BKE_spline.hh 5568455d63
- Cleanup: Remove includes in node_util.h header d9d4b9899e
- Cleanup: Remove unnecessary generic includes from headers b91ac86cfc
- Cleanup: Remove unused includes aa23e870ec
- Cleanup: Use const arguments 23be5fd449
- Cleanup: Use const argument, rename variables a8b730e04c
- Cleanup: Use C++ types for multi input socket sorting 78ae587649
- Cleanup: Use float2 for node view functions 5b06759473
- Cleanup: Add macro and functions for node storage 2309fa20af
- Cleanup: Point cloud vs point-cloud in comments 80f1527762
- Cleanup: Return early in null check 1a02c0d7dd, 74a566d211
- Cleanup: Remove unused node flag 01779970c2
- Cleanup: Fix warnings about copied Map loop variables c3c69fee09
- D13518: Nodes: Refactor to remove node and socket "new" pointers (WIP)
- D13543: Cleanup: Simplify node group input and output socket verification
- D13540: Cleanup: Remove runtime uiBlock pointer from nodes
- D13517: Node Editor: Refactor node tree drawing, avoid runtime data in DNA (WIP)
- D13519: Cleanup: Remove unused "init" node tree flag
Review
Requested changes
D13246: Nodes: Refactor node tree update handlingRequested changes, accepted
D13446: Geometry Nodes: Support instance attributes when realizing instancesRequested changes
D12550: Geometry Nodes: Add Curve Curvature NodeRequested changes
D12990: AssetsBrowser: Add ID Properties to Asset IndexerAccepted
D13548: Geometry Nodes: Move up destruct instructions in procedureRequested changes, accepted
D13504: Geometry Nodes: Mesh Island Field Input NodeAccepted, committed
D13474: Fix T93591: Make 'Random Value' node in Integer mode spit out evenly distributed numbersRequested changes
D13546: Set Spline Type node - better conversion from NURBS to BezierCommented
D12155: Curves: Curve PenCommented
D12746: Geometry Nodes: Add Random Spherical Distribution nodeAccepted
D13489: Geometry Nodes: Reduce code duplication with new GeometryFieldInput.Commented
D12936: Geometry Nodes: Add HSVA separate and combine nodesAccepted
D10980: UI: Add curve handle buttons to CurveMap interfaceRequested changes
D13451: UI: Fix nodes sockets alignmentAccepted
D13455: Geometry Nodes: Scene Time Input NodeAccepted
D13500: Geometry Nodes: New Geometry to Instance node.Commented
D13516: UI: Separate Snap option for 3d viewport, UV edit and Node editorsCommented
D13496: Shader Nodes: Convert bump node to use new socket builderCommented
D13310: UI: Individualize option to use snap by space typeCommented
D13539: UX: Prevent click-through panels and used header areaCommented
D13523: Nodes: Begin splitting composite node buttons into individual filesAbandoned
D12080: Geometry Nodes: Mesh Auto SmoothAccepted
D13509: Fix T93728: Greasepencil separate will loose all vertex groupsAccepted
D13487: Fix T93611: Curve modifier crash in editmode in certain situationsCommented
D13502: Allocator: Simplify using guarded allocator from c++.Commented
D13486: Expose the "mute" property of the node on sidebar in Node Editor
Tracker
- Investigated: 15
- Needs Information: 1
- Resolved: 2
- Archived: 6
- Confirmed: 2
- Duplicate: 4
- Known Issue: 1
Next Week
Hopefully I can land the link drag search menu after finishing responding to the feedback, and start on something like finishing up a couple of the procedural modeling nodes.
November 29 - December 5
This week was mostly about work on the node link drag search menu from last week. At the end of the week, that work turned into some more significant cleanup of node editor files. I made a good start there, but there are so many possible cleanups (and O(N^2) algorithms to fix!).
I also did some bug fixing/triaging and code review. And here are two new tasks I made:
Changes / Features
- Geometry Nodes: Propagate attributes in Instances to Points node 386b112f76
- UI: Add an option to display the node editor context path 70a7685d04
- D13442: Geometry Nodes: Use mutable input for the resample curve node
- D13358: Geometry Nodes: Add Factor and Size to Index Input
Bug Fixes
- Fix T93525: Crash with curve/text armature bone gizmo 594656e7a3
- Fix T84710: Instances with only mesh edges or vertices are invisible b869da0c10
- Fix: Missing handling of dynamic instance attribute size c822e03e2a
- Fix: Instances component does not copy attributes bc48da3235
- Fix: Remove incorrect asserts for empty attributes 128ebdb062
- Fix: Add tooltip translation marker to disabled hints ca9cdba2df
- Fix: Updating geometry nodes test results fails 2b6c01d98c
- Fix: Missing min value for set spline resolution node f9add2d63e
Cleanup
- Cleanup: Use references in node editor, other improvements 2d8606b360
- Cleanup: Store instances id attribute with other attributes f8dd03d3dd
- Cleanup: Remove unnecessary node type callbacks for drawing 338c1060d5
- Cleanup: Remove unnecesary node type draw callback 9a312ba192
- Cleanup: Const, use references, C++ types d1f118d228
- Cleanup: Remove unused next and prev pointers in bNodeType 0a8a22fc04
- Cleanup: Rename curve struct fields 218360a892
- Cleanup: Move public docs to BKE_spline.hh header a1f0f2eacb
- Cleanup: Use typed enum for node resize direction cb0fbe1fde
- Cleanup: Avoid using C++ keyword as variable name 27b70428c1
- Cleanup: Comments and ordering in node editor header be3f3812dc
- Cleanup: Use LISTBASE_FOREACH macro 56ed4c14d3
- Cleanup: Remove unused code ca0dbf8c26
- Cleanup: Move node_shader_util.c to C++ fed4fc9c42
- D13454: Cleanup/Docs: Add comments to Mesh header, rearrange fields
Review
Requested changes, accepted
D12949: Geometry Nodes: Dual Mesh nodeRequested changes
D12155: Curves: Curve PenRequested changes, accepted
D13343: Geometry Nodes: 4 Mesh Data Input NodesAccepted, committed
D13444: UI: Fix scaling of HSV cursor when zoomingAccepted
D13480: Shader Nodes: Declare nodes in their own namespaceAccepted
D13417: Geometry Nodes: Deduplicate join geometry codeAccepted
D13365: Geometry Nodes: Add Domain Size NodeRequested changes, accepted
D13228: Geometry Nodes: Generalized Compare NodeAccepted
D13429: Geometry Nodes: Propagate attributes in Instance on Points nodeCommented
D12936: Geometry Nodes: Add HSVA separate and combine nodesAccepted, committed
D13092: Fix Group Output nodes having different padding from Group Input nodesCommented
D13156: UI: Don't use different active color for icons without an embossCommented
D13466: Nodes: Declare compositor nodes in their own namespaceCommented
D13433: Node editors: Add overlays for grid and breadcrumbsAbandoned
D13251: "Mesh Info" and "Point Cloud Info" Geometry Nodes
Tracker
- Investigated: 17
- Resolved: 2
- Archived: 6
- Confirmed: 2
- Duplicate: 5
- Known Issue: 1
Next Week
I'll finish up the link drag search menu, do some other smaller tasks, and hopefully get started on another larger task.
November 22 - November 24
A short week because of the Thanksgiving holidays. I still made some nice progress with the node link drag search menu. It has some issues still but it's looking much closer to finished.
Apart from that, I spent time reviewing patches, mostly from Jacques and Johnny. I also got the mesh vertex normal refactor to a point where code review comes next.
Changes / Features
- Tests: Add simple test for geometry nodes writing to vertex group rBL62757
- Tests: Add test for corner domain attribute transfer in delete geometry node rBL62759
Bug Fixes
- Fix T92120 (partially): No bone custom shape with curve object meshes a07089dcb1
- Fix T93250: Crash in spreadsheet tree view after recent commit 77ddc6e350
- D13390: Fix: Missing handling of dynamic instance attribute size
Cleanup
- Cleanup: Deduplicate instances component in spreadsheet f7f558e293
- Cleanup: Simplify geometry node function names fab39440e9
- Cleanup: Else after return, other simplifications 62b50c612f
- Geometry Nodes: Rename legacy node files cc6bcb53b2
Review
Accepted
D13384: Geometry Nodes: Add utility to set remaining outputsAccepted, edited, committed
D13089: Updated Addon Themes for Spreadsheet WorkspaceRequested changes
D13228: Geometry Nodes: Generalized Compare NodeRequested changes, accepted
D13256: Geometry Nodes: Show node execution timeRequested changes, accepted
D13307: Geometry Nodes: UseValueOrField
type in geometry nodes evaluator.Accepted
D13340: Geometry Nodes: Fix logging socket value to group input socketRequested changes
D11272: Initial modifications allowing Text object (OB_FONT) boolean targetsRequested changes
D13365: Geometry Nodes: Add Attribute Domain Size NodeAccepted
D13338: Geometry Nodes: Fix attribute propagation in Delete Geometry nodeAccepted
D12282: Fix T90808: Undo curve selection recalculates boundbox based on curve dataAccepted, committed
D13216: Fix T92631: Fix regression with negative thickness in complex solidifyRequested changes
D13343: Geometry Nodes: 4 Mesh Data Input NodesRequested changes
D13100: Geometry Nodes: Add Arc Mode to Circle NodeRequested changes
D13279: Geometry Nodes: Add Spline Point Count to Spline Length NodeRequested changes, accepted
D13275: Geometry Nodes: Change Curve Parameter to Spline Parameter & add IndexAccepted
D13335: Geometry Nodes: Decouple Delete Geometry node from Mask modifierAccepted
D13326: Fix T93231: Crash when overwriting vertex group with other domainAccepted
D13319: Fix T93090: Crash with data transfer modifier and geometry nodes.Accepted
D13333: Fix T93296: Raycast node uses wrong domain for face corner attributesAccepted
D13330: Geometry Nodes: Add file namespaces.Accepted
D13362: Fix T93362: Crash when capturing attribute after fillet curve nodeAccepted
D13315: Fix T92654: Missing padding in spreadsheet cells.Accepted
D13321: Fix: Const warning in editmesh_knife.cAccepted
D13308: Fix (unreported) broken handling of constraints reordering with liboverride.Accepted
D13318: CurveEval: Add Point Size and Total Length functionsAccepted
D13192: GPencil: New Shrinkwrap modifierAccepted
D13348: Geometry Nodes: Add utility to show debug messages in node editorCommented
D13399: BLF WIP: Outlines from FontBLFClosed
D13363: Fix T93159: Particles don't emit text
Tracker
- Investigated: 10
- Resolved: 2
- Archived: 3
- Needs Information: 1
Next Week
I have a normal full week next week. I'll do code review and look into making more significant progress on our 3.1 targets, especially continuing work on the link drag search menu.
November 15 - November 21
I didn't finish much of anything this week, except for some cleanup. I made progress on lots of things, but I'm definitely spread out a bit too much right now. And there's still a lot of time dedicated to bug-fixing, though maybe that's slowing down now.
I didn't expect to work on this, but I revived the patch for a search menu when dragging a node link to empty space: D8286 It's been a while since I tested that out. I really like it!. It should be a huge usability improvement.
I also created/responded to some new tasks:
- T93203: Geometry Nodes 3.1 Targets
- T93098: Scene time input node
- T93233: Refactor Spline Attribute Storage
- T93268: Bezier Splines: Support different interpolation options
- T93267: Tangent normal calculation mode for curves
- T93208: Auto Smooth and Geometry Nodes
Changes / Features
- Geometry Nodes: Small improvements to object info node cf83719761
- Spreadsheet: Support instances component viewer node columns ba8dd0f24f
- rBL62752: Geometry Nodes: Add three more tests for the cube primitive
- D13248: UI: Add an option to display the node editor context path
Bug Fixes
- Fix T92857: Deadlock in geometry nodes curve multi-threading 25d30e6c99
- Fix T92682: EEVEE motion blur crash with curve objects 0f1a200a67
- Fix T93085: Incorrect geometry nodes modifier warning f30e1fd2f0
- Fix T93256: Instances to points node broken after recent commit fb470c256a
- Fix: Use the instances domain in instance transform nodes 1222c45544
- Fix: Exception in tree view code in new case a0780ad625
- D13301: Fix T93250: Crash in spreadsheet tree view after recent commit
Cleanup
- Refactor: Port spreadsheet data set to UI tree view 01df48a983
- Cleanup: Simplify node editor link dragging storage 51a7961e09
- Cleanup: Use vector instead of linked list 217d0a1524
- Cleanup: Simplify declarations in C++ header 3531021d1b
- Cleanup: Use canonical variable name cfbc9df60e
- Cleanup: Move menu search template to C++ d455eadcd8
- Cleanup: Use const arguments 67b4eecac9
- Cleanup: Use C++ matrix identity constructor 57ed435def
- Cleanup: Else after return 3baaab15fc
- Cleanup: Use bool instead of int 8290edefad
Review
Accepted
D12986: Geometry Nodes: Refactor virtual array system.Requested changes
D12746: Geometry Nodes: Add Random Spherical Distribution nodeRequested changes
D13256: Geometry Nodes: Show node execution timeRequested changes
D12949: Geometry Nodes: Dual Mesh nodeAccepted
D13149: Geometry Nodes: Support custom instance attributesAccepted
D13225: UI: Use a map for block name lookupsAccepted
D13207: Geometry Nodes: Optimize Cube primitive vertex calculationCommented
D12282: Fix T90808: Undo curve selection recalculates boundbox based on curve dataCommented
D13228: Geometry Nodes: Generalized Compare NodeCommented
D13279: Geometry Nodes: Expand Spline Length and Curve LengthAccepted
D13255: Node Editor: Skip drawing sockets if zoom is smallAccepted
D13254: Node Editor: Change minimum zoomAccepted
D13274: Fix T93184: Link color not used for custom socketsAccepted
D13261: Nodes: Add bf_nodes_geometry libraryAccepted, committed
D13219: Fix: Incorrect socket identifier versioning.Requested changes
D12636: Geometry Nodes: Finish off Distribute Points in VolumeRequested changes
D12035: Geometry Nodes: Add Easing Function NodeAccepted, committed
D13098: Fix time node using "Sta" instead of "Start"Commented
D13251: "Mesh Info" and "Point Cloud Info" Geometry NodesAccepted
D13271: Fix: Error when materializing curve point attribute.Accepted
D12928: GPencil: Add randomize options to Length modifierAccepted
D13092: Fix Group Output nodes having different padding from Group Input nodesCommented
D9586: UI: Fix disconnected and non-clickable checkbox labels in popovers
Tracker
- Investigated: 16
- Resolved: 3
- Archived: 7
- Duplicate: 1
- Needs Information: 1
Next Week
Next week will be pretty short for me, since it's the Thanksgiving holiday here. Hopefully I can still get a few things finished though. Anything to narrow down the list of possibilities at this point, there's just so much!
November 8 - November 12
This was a four day week, since I took most of Monday off. Even though I didn't really expect to, I spent most of the week triaging and fixing bugs. We also had some good design discussions though, including a bit of discussion about the simulations topic. Generally that's a relatively difficult thing to discuss though. Some tasks that came out of those discussions:
- T92967: Add rotation data type
- T93044: Single Point Node (Design)
- T92969: Automated performance benchmarks for geometry nodes/modifiers
- T92965: Refactor the spreadsheet data set region to use the abstract tree view API
- T92982: Display the execution time of nodes
Other than that, I spend more time working on various refactors-- mesh normals, C++ conversions, and the spreadsheet.
I also spent some more time on the manual, and added a page to describe fields at a high level: https://docs.blender.org/manual/en/3.0/modeling/geometry_nodes/fields.html
Changes / Features
- Viewport: Remove different outline color for instances aa13c4b386
- Geometry Nodes: Clarify modifier node group errors 20224369d9
Bug Fixes
- Fix T91826: Inconsistent node socket name identifier separator d845ba481c
- Fix T92636: Vector math node link disconnects when loading old file 6b4ca78108
- Revert "Fix T92636: Vector math node link disconnects when loading old file" (3.1) 738f4fbc5e
- Fix T89313: Attribute search crash with animation playback 22ffd69a91
- Fix: Incorrect transfer attribute error message with curves 888b879f5f
- Fix: Hide selection value in resample curve node, fix order aa440923c8
- Fix: Incorrect modifier warning with non-geometry input first f3bdabbe24
- Fix: Incorrect translation search for modifier error messages 67e5edbaa3
- D13170: Fix T87335: Object material slots do not work with new geometry (WIP)
- D13196: Fix T84710: Instances with only mesh edges or vertices are invisible
- D13197: Fix: Exception in tree view code in new case
Cleanup
- Cleanup: Move interface_region_search.c to C++ f1a8644121
- Cleanup: Move info_stats.c to C++ 1f6010e609
- Cleanup: Move remaning node editor files to C++ cbca71a7cf
- Cleanup: Use bool instead of int 35ae7ab933
- Cleanup: Improve comment 1e1c870001
- D13198: Refactor: Port spreadsheet data set to UI tree view
Review
Accepted
D13162: Fix T92908: Print warning when instance recursion limit is reached.Accepted
D13159: Fix T92928: Geometry nodes animation decorator wrong for vectorsAccepted
D13194: Fix: Attribute Transfer node does not work with a single index.Requested changes
D13149: Geometry Nodes: Support custom instance attributesRequested changes
D13199: Fix T92313: Adjust header to the centerAccepted, committed
D13107: Prevent use of uninitialized memory when constructing bezier spline.Accepted, committed
D13150: Update Minimal Dark community theme for node editor changesAccepted, committed
D13090: Updated Blender Light Theme for Spreadsheet WorkspaceAccepted, committed
UI: Update Minimal Dark community theme for node editor changes Aface67c72Accepted
D13097: Geometry Nodes: Add Points Selection Output to StarRequested changes
D12019: Geometry Nodes: Merge by Distance (Modifier port)Commented
D13116: UI: Add frame range theme optionsClosed
D11253: LineArt Icon patch.
Tracker
- Investigated: 28
- Resolved: 14
- Archived: 5
- Duplicate: 2
- Known Issue: 2
- Needs Information: 1
Next Week
Hopefully there will be fewer bugs and I can make some more progress towards the larger 3.1 goals. I'd like to make some good headway for patch review too.
November 1 - November 7
I spent the majority of the week working on bug fixes. It turns out having Nodevember during Bcon3 has been very helpful for uncovering bugs-- we made a lot of progress. There are still more to finish fixing, but I don't think there will be many other big ones.
I also spent a fair amount of time on code review, and made some design tasks. The first one is particularly important I think.
- T91668: How to deal with multiple volume grids in a geometry
- T92744: Add options to realize instances node
- T92729: More general "Compare" node
- T92765: 2D Vector Socket Type
Also, I can't see commits to the 3.0 manual branch on Phabricator, but I spent plenty of time checking on the documentation, making some final changes and additions. I still have a couple of things I think should be added there though.
Changes / Features
- Geometry Nodes: Support volumes in the set material node 348d7c35a9
- Spreadsheet: Display geometry volume component grids ccead2ed9c
Bug Fixes
- Fix T92815: Incorrect handling of evaluated meshes from curves 1bc655c5aa
- Fix T92652: Joining curves breaks point attribute order 18392cef17
- Fix T92848: Crash when joining curves with spline domain attributes 594ee5f160
- Fix T92850: Curve to mesh incorrect for single point profiles 616594fcb1
- Fix T92662: Curve to mesh start cap invalid topology b6c2deef05
- Fix T92532: Missing null checks in IDPropertyManager.update_from efcf36f2e9
- Fix T92316: Inconsistent name for Set Curve Tilt node 11392829ad
- Fix T92640: Crash with instance input to reverse curve node 55e68f1b70
- Fix: Startup file geometry nodes viewport inconsistent orientation a9bda98519
- Fix T92812: Startup has "Standard" View Transform Instead of "Filmic" b646846646
- Fix part of T89313: Attribute search crash during animation playback c473b2ce8b
- D13133: Viewport: Remove different outline color for instances
- D13141: Fix: Add tooltip translation marker to disabled hints
Cleanup
- Cleanup: Improve curve point attribute assert a72ed0bb7f
- Cleanup: Add function to get attribute ID from custom data layer 7aa311e539
- Cleanup: Decrease variable scope, rename functions 7a5b8cb202
- Cleanup: Grammar in comments 42df2a7b57
- Cleanup: Clang tidy 892da668dc
Review
Requested changes
D12155: Curves: Curve PenRequested changes
D12949: Geometry Nodes: Dual Mesh nodeRequested changes, accepted
D12831: Geometry Nodes: Selection outputs for cone and cylinder.Accepted, committed
D12640: Add node tooltips to Geometry Nodes primitivesAccepted
D13034: Fix T91862: Do type conversion when data enters or exists node group.Requested changes, accepted
D12842: UI: Improve scaling of widgets when zoomingRequested changes
D13097: Geometry Nodes: Add Points Selection Output to StarRequested changes
D12947: Geometry Nodes: Relative Handle Position ModeRequested changes
D13089: Updated Addon Themes for Spreadsheet WorkspaceRequested changes
D13107: Prevent use of uninitialized memory when constructing bezier spline.Accepted
D13044: UI: Use socket type info color to draw linksRequested changes, accepted
D13064: Geometry Nodes: Add Selection Input to Resample Curves NodeRequested changes, accepted
D13115: Cleanup: Move object.c to C++Commented
D13065: Add tooltips to MixRGB modesCommented
D12035: Geometry Nodes: Add Easing Function NodeCommented
D13062: Fix T89709: Avoid double node links after delete and reconnectAccepted
D12882: Geometry Nodes: Add Length to Curve Parameter NodeAccepted
D13075: Fix: Make sure geometry set owns mesh before taking ownership.Accepted
D13135: Fix T92864: Curve object does not sync correctly in cycles.Accepted
D13134: Cleanup: Move mesh.c to C++Accepted
D13085: Include node name for socket animation channel UIAccepted
D13108: Nodes: Add default link socket to socket declaration.Accepted, committed
D11097: Fix: Tool icon jittering in some casesAccepted
D9944: UI: Error in UI_GetThemeColorBlendShade4fv function when calculating AlphaCommitted
A684ef91c1: UI: Update Minimal Dark community themeCommented
D12356: Add jump to top and bottom operator in view panningCommented
D12738: Fix: Viewport stats not fully working for Geometry NodesCommented
D13112: Fix T92815: Wrong curve rendering in cycles (WIP).Commented
D13072: VSE: Remove separator lines between rowsCommented
D13119: Text Editor: Auto close relevant characters
Tracker
- Reported T92864: Cycles: Curve object evaluated mesh does not update
- Investigated: 29
- Resolved: 10
- Archived: 9
- Duplicate: 2
- Known Issue: 1
Next Week
I'd like to finish fixing the last of this set of bugs and start making some progress on the other new tasks. I also want to get my refactor of mesh vertex normals storage closer to finished.
October 25 - October 31
This week I almost finished the documentation for the changes to geometry nodes in 3.0, I worked on the final changes we wanted to complete before Bcon3, fixed some bugs, and did code review.
Changes / Features
- UI: Improve node editor breadcrumbs display 3371a4c472
- UI: Change node editor grid into a dot grid e463d2c16f
- UI: Improve layout of custom property edit panel 972677b25e
- Geometry Nodes: Add "Fill Caps" option to curve to mesh node bc2f4dd8b4
- Geometry Nodes: Handle multiple grids in the volume to mesh node 8ddfdfd2b2
- Geometry Nodes: Rename geometry sockets to add hints about supported types 87470169e0, 827d7e7d25
- Geometry Nodes: Get and set nodes for ID attribute 7d3d09b69c
- Geometry Nodes: Only create instance IDs when they exist 9fa304bf13
- Geometry Nodes: Show hint in empty output attributes panel 212b02b548
- UI: Hide labels for subdivision surface node enums b6bed63b5b
- UI: Make the mesh to volume node slightly narrower 8f1284ab78
- Nodes: Add translation markers to new socket names and descriptions 2383628ee1
- Geometry Nodes: Support instances in the remove attribute node b6d2bee28f
- Documentation
- Geometry Nodes: Complete curve nodes documentation rBM8545
- Geometry Nodes: Complete documentation in text category rBM8547
- Geometry Nodes: Set Position node rBM8526
- Add more geometry nodes stub files, started page for capture attribute rBM8513
- Geometry Nodes: Separate components and realize instances nodes rBM8527
- Geometry Nodes: Complete geometry proximity page with examples rBM8534
- Add back note about id to distribute points on faces rBM8518
- Geometry Nodes: Add "Fill Caps" option to curve to mesh node rBM8507
- Geometry Nodes: Fields version of the raycast node rBM8525
- Geometry Nodes: Get and set nodes for ID attribute rBM8524
- Small improvements to wording in transform node rBM8533
- Fix typo in curve tangent node, add more detail rBM8522
- D13037: Geometry Nodes: Support volumes in the set material node
- D13049: Spreadsheet: Support geometry volume component
- D13007: Geometry Nodes: Support volumes in the join geometry node
Bug Fixes
- Fix T92552: Spline evaluation with all points at the origin b43077ba3a
- Fix: Realize instances versioning fails for curve to mesh node defc1b8e18
- Fix: Show "new" attribute name typed in nodes modifier input search ef6e03c8e0
- Fix: Incorrect component type warning in points to volume node fcf1ba18f0
- Fix: Show node editor dot grid when there is no node tree c7b27f45ae
- Fix: Assert on startup from incorrect float property min f1a662c157
- Fix: Inverted normal for one curve to mesh cap be3e09ecec
- Fix: Typo in texture nodes documentation rBM8546
- D13038: Fix T92120: Bone custom shape does not work with curve object meshes
- D13024: Fix T92532: Missing null checks in IDPropertyManager.update_from
Cleanup
- Cleanup: Simplify logic for adding grid in points to volume node ae9052a33e
- Cleanup: Restore alphabetical order 35aa3bf22d
- Cleanup: Remove unused functions, make functions static 3be91d6da5
Review
Requested changes
D12986: Geometry Nodes: Refactor virtual array system (WIP).Accepted
D13031: Fix T92256: Rotate Instances node does not take scaling into account correctly.Accepted
D12938: Geometry Nodes: Support viewing field values in spreadsheet.Requested changes
D12990: AssetsBrowser: Add ID Properties to Asset IndexerRequested changes
D12882: Geometry Nodes: Add Length to Curve Parameter NodeRequested changes
D12640: Add node tooltips to Geometry Nodes primitivesAccepted
D13006: Geometry Nodes: Remove reference to anonymous attributes in socket inspection.Requested changes
D12035: Geometry Nodes: Add Easing Function NodeRequested changes
D12746: Geometry Nodes: Add Random Spherical Distribution nodeRequested changes
D12768: Geometry Nodes: Field Reverse NodeAccepted
D13005: Fix T92427: Adding nodes does no edge-scrollingAccepted
D12899: Geometry Nodes: Component type warning system.Accepted
D12947: Geometry Nodes: Relative Handle Position ModeAccepted
D13009: Geometry Nodes: Do cache invalidation after writing attributes.Accepted, committed
D11734: UI: Improve socket icon scaling in the node group input / output listCommented
D13051: Geometry Nodes: Curve Auto-CyclicCommented
D12761: Geometry Nodes: Index Offset NodeAccepted
D13025: Updates Blender manual to have clearer descriptions of Geometry NodesAccepted
D12968: UI: Use flat colors for NLA strip drawingAccepted
D13012: Geometry Nodes: Add Image to Switch NodeAccepted
D13002: Fix T92494: Node Editor dot grid not respecting display resolution scaleAccepted
D12994: Update images for: Distribute Points on Faces, Value to String, Slice String
Tracker
- Investigated: 13
- Resolved: 2
- Archived: 8
Next Week
Start planning for the next things we want to prioritize in 3.1 and beyond, bug fixing, and code review.
October 18 - October 24
This week I continued working on the final setps of the transition to geometry nodes fields for 3.0. At the end of the week there is still more work to do, but we're very close. At this point I'm definitely looking forward to finishing the fields changes and working on something new!
Changes / Features
- Geometry Nodes: Fields version of the raycast node 0a6cf3ed0c
- Geometry Nodes: Update bounding box to work on individual instances 7b9319adf9
- Geometry Nodes: Attribute search in the modifier 1d96a48267
- Geometry Nodes: Remove repeated instance attribute names in search 3e75f70acd
- Geometry Nodes: Make Random ID a builtin attribute, remove sockets 40c3b8836b
- Geometry Nodes: Fields version of Curve to Points node 334a8d9b3e
- Geometry Nodes: De-duplicate index input nodes during evaluation a3457704fb
- Geometry Nodes: Remove implicit realizing and conversion 219058c213, rBL62727
- Geometry Nodes: Optimize curve builtin attribute exists check 9f895fbb97
- BLI: Support removing keys from a set during iteration a76bb1a277
- Documentation
- Geometry Nodes: Add documentation for the remaining curve nodes rBM8490
- Update collection info node documentation rBM8491
- Update the rest of the geometry nodes input nodes rBM8492
- Add a note about instances to the convex hull node page rBM8493
- Cleanup: Improve wording of separate components note rBM8496
- UI: Turn on overlays by default in new node editors cf72b10075
- D12982: Geometry Nodes: Add "Fill Caps" option to curve to mesh node
- D12929: Geometry Nodes: Replace color separate and combine nodes
Bug Fixes
- Fix: Support swapped inputs properly in trim curve node 231d66d8ba
- Fix: Cyclic single point bezier splines have multiple evaluated points 1d9e2dc954
- Fix T92369: Raycast node crash with no target attribute 98c53f660a
- Fix T92345: Crash with only pointcloud in attribute transfer node 7a61916717
- Fix: Assert using selection in instances to points node 50e7645211
- Fix: Add missing TBB define to geometry module 7a0cad0989
- Fix: Curve trim crash on splines with no edges ff46afb4dd
- Fix: Assert for unused field evaluator in resample curve node 3e1fd26828
- Fix: Empty geometry nodes input menu with legacy nodes enabled 2a7a8a04e3
- Fix: Builtin curve attributes unavailable 3f8b45d8d1
- Fix: Display color sockets without labels correctly 85c8dd6c96
- Fix T92354: Missing raycast node in geometry nodes add menu d7b4350749
- Fix: Empty id attribute on curve control points 6b761c59d2
- Fix: Double calculation of UVs in cone primitive 8cd4cee0d5
- Fix: Crash when retrieving output "id" attribute 704d077d8f
- Small fixes to manual rBM8501
Cleanup
- Cleanup: Remove unused function 742b7adbad
- Cleanup: Use common define for menu separator arrow 3858bf5c6f
- Cleanup: Add check whether to remove an anonymous atttribute 990b912fd7
- Cleanup: Use simpler method to create attribute lookups 3cbe921899
- Cleanup: Rearrange code, rename function 9a8badc1e4
- Cleanup: Remove unnecessary constructor argument ec8a9a0d65
Review
Requested changes
D12709: Nodes: Support updating socket availability and labels in declaration.Requested changes
D12938: Geometry Nodes: Support viewing field values in spreadsheet.Accepted, committed
D12893: Geometry Nodes: Instances to pointsAccepted
D12827: Geometry Nodes: Add Image Texture nodeAccepted
D12886: Node Editor: Introduce color overlay and dashed wires theme settingAccepted, committed
D12721: Geometry Nodes: "Replace String" nodeAccepted
D12956: Fix T92371: Move AZONE_REGION When OverlappedAccepted, committed
D12858: warnings for inputs with instances in Geometry Proximity and Sample Curve geometry nodesAccepted, committed
D12828: Fix for T91979: Make String Length Output not a fieldAccepted
D12907: Geometry Nodes: Insert Instances in Name OrderRequested changes
D12947: Geometry Nodes: Relative Handle Position ModeRequested changes
D12753: Geometry Nodes: 2D PolyLine/Bezier Boolean [WIP]Requested changes
D12941: Geometry Nodes: Trim Curves with Cyclic CurvesCommented
D12640: Add node tooltips to Geometry Nodes primitivesRequested changes, accepted
{Phab|D12981}}: Manual: Rotate Euler, Align Euler to Vector, Subdivision Surface, Instances to PointsRequested changes
D12882: Geometry Nodes: Add Length to Curve Parameter NodeRequested changes
D11097: Fix: Tool icon jittering in some casesCommented
D12282: Fix T90808: Undo curve selection recalculates boundbox based on curve dataCommented
D12842: [WIP] UI: Improve scaling of widgets when zoomingAccepted
D12965: Fix panel pinning showing for instanced panels (e.g. FCurve modifiers)Accepted
D12931: Geometry Nodes: Rename node "String Substring" to "Slice String"Commented
D12760: Nodes: Add Vector Map Range nodeClosed
D12892: Bounding Box around instances (WIP)
Tracker
- Investigated: 4
- Resolved: 3
- Archived: 1
Next Week
I'll finish the final changes and updates for 3.0 in the first half of the week. Then whatever time is left should probably just be dedicated to bug fixing.
October 11 - October 17
This week I continued working on updating nodes for the field changes, started work on documentation, and did code review for those same changes. I also worked with Pablo to finish/review some of the patches for UI style changes.
The transfer attribute node was probably the most exciting thing I committed this week, I really like how it works as a field node.
Other than that, discussion about the named attribute nodes mostly petered out, and I was mostly finishing up patches from last week.
Changes / Features
- Geometry Nodes: Fields version of edge split node 366cea95c5
- Geometry Nodes: Fields transfer attribute node 76f386a37a
- Geometry Nodes: Field version of mesh to curve node 17b8da7196
- Geometry Nodes: Object info node optional instance output 19bab2a536
- Geometry Nodes: Make attribute capture work on instances 96876305e1
- Documentation or stubs for 20 nodes, screenshots for all nodes rBM8479, rBM8481
- Documentation for 10 curve nodes, other fixes rBM8480
- Functions: Generic array data structure b42ce0c54c
- Geometry Nodes: Order selection inputs after geometry inputs 2055ef107a
- Geometry Nodes: Create empty components less often 89c7c115ce
- Geometry Nodes: Add units to set radius node inputs 9e3c84a5d6
- Geometry Nodes: Add "XYZ" label to instance on points scale 53af51ad50
- Geometry Nodes: Use a separator in the add menu input category 4b31a21bcd
- UI: Reduce whitespace in custom node categories bb6cc67d05
- D12638: Geometry Nodes: Fields Version of Raycast Node (WIP)
- D12903: Geometry Nodes: Make Random ID a builtin attribute (WIP)
- D12867: BLI: Support removing keys from a set during iteration
Bug Fixes
- Fix T91809: Crash on undo with empty field inferencing f18ab3470f
- Fix T92160: Geometry Proximity node can produce invalid values 9d03990e32
- Fix T92192: Inconsistent curve circle primitive direction 988b9bc40c
- Fix T92180: Curve subdivide incorrect result for poly splines 1ae79b704a
- Fix: Field type inference considers unavailable sockets 4682aad432
- Fix: Incorrect error message in set spline resolution node 3a03d6c851
- rBL62722: Update geometry nodes test file for change in object info node
Cleanup
- Cleanup: Refactor use of implicit inputs in geometry nodes 47a72ac4fd
- Cleanup: Attempt to fix benign macOS compile warnings c1a1644db7
- Cleanup: Fix comment formatting and grammar eb56e8cd78
Review
Updated, accepted
D12814: UI: Visual style update to panelsRequested changes
D12870: Fix T92256: Rotate instances node scaling bugAccepted, committed
D12574: Geometry Nodes: Separate + Delete Geometry for fieldsAccepted, committed
D12681: Geometry Nodes: Scale Instances nodeAccepted, committed
D12682: Geometry Nodes: Rotate Instances NodeAccepted, committed
D12679: Geometry Nodes: Translate Instances nodeCommented
D12887: Geometry Nodes: Curve to Points Node Update - WIPCommented
D12884: Node Editor: Style update to nodesCommented
D12886: Node Editor: Introduce color and dashed wires overlayAccepted
D12832: Fix T92103: Update BLI hash_float_to_float functions to be shader compatibleAccepted
D12793: Geometry Nodes: Add Color input nodeAccepted
D12773: Geometry Nodes: Update the 'Set Position' node with offset inputAccepted
D12846: Geometry Nodes: Curve Endpoint SelectionAccepted
D12798: Geometry Nodes: Verb First Name Changes for 12 NodesAccepted, committed
D12883: UI: Remove padding around curve widgetAccepted, committed
D12830: Geometry Nodes: Subdivision Surface NodeAccepted, committed
D12881: Rotate Euler: Use "Local" instead of "Point"Accepted, committed
D12844: Overload float4x4 multiplication-assignment operator.Accepted, committed
D12838: Fix T92149: Missing check for empty componentsAccepted, committed
D12840: Fix T92150: Incorrect invert in Delete Geometry nodeAccepted, committed
D12824: Some Align Euler to Vector fixesCommented
D12842: [WIP] UI: Improve scaling of widgets when zoomingAccepted
D12837: Geometry Nodes: Material Index Get/Set, and Node NamingAccepted
D12847: Geometry Nodes: Add selection to Instance on PointsAccepted
D12851: Fix T92153: Use-after-free with anonymous attributes.Accepted
D12856: UI: Adjust header color when active instead of inactiveAccepted
D12876: Fix T92083: Crash renaming bone used in Armature modifier on curveAccepted
D12878: Geometry Nodes: Bring back lazy evaluation for field types in Switch node.Accepted
D12891: Fix: Subdivision Surface Node Crash with no EdgesAccepted
D12898: Nodes: Support sharing node declarations between nodes.
Tracker
- Reported T92252: User after free when opening file after Blender starts
- Investigated: 12
- Resolved: 4
- Archived: 5
- Duplicate: 1
- Confirmed: 1
Next Week
I'll continue working on the final changes necessary before Bcon3 and finish documentation for new geometry nodes features.
October 4 - October 10
This week I continued working where I could to make more progress on the fields conversion. Without Jacques around I didn't commit very much of it though. The design for a few other patches stalled a bit. On the bright side that means we should be able to make more visible progress next week.
On topic that took up a lot of time was the removal of the named attribute nodes. Currently the official plan is to only add the "Store Named Attribute" node, but not an input node. As users realized this, it became an important topic. Hopefully discussion about that can move forward next week.
Changes / Features
- D12770: Refactor: Move normals out of MVert, on demand calculation
- D12785: Geometry Nodes: Fields transfer attribute node
- D12788: Geometry Nodes: Attribute search in the modifier (WIP)
- D12805: UI: Improve layout of custom property edit panel
- D10413: UI: Improve node editor breadcrumbs display
Bug Fixes
- Fix T92037: Custom property edit issues with integer soft range 886196b888
- Fix: Missing field markers for curve fillet node inputs e9daca77d6
- Fix: Typo in UI error message 728e31e18a
- Fix: Unable to select left and right in set handle type node 301ee97b93
- Fix field type in curve resample node 18959c502d
Cleanup
- Cleanup: Remove unused DerivedMesh functions 432d5bc692
- Cleanup: Change variable name, comment formatting 6391949601
- Cleanup: Clang tidy 16e7a7b5b1
- Cleanup: Rename enum values 9708b1f317
- Cleanup: Remove unused variable and include ffa20de050
Review
Requested changes
D12753: Geometry Nodes: 2D PolyLine/Bezier Boolean [WIP]Commented
D12282: Fix T90808: Undo curve selection recalculates boundbox based on curve dataRequested changes
D12019: Geometry Nodes: Merge by Distance (Modifier port)Requested changes
D12574: Geometry Nodes: Separate + Delete Geometry for fieldsRequested changes
D12743: Geometry Nodes: Accumulate Function NodeCommented
D12687: Geometry Nodes: Add Nodes to Get/Set Built-in AttributesAccepted
D12721: Geometry Nodes: "Replace in String" nodeRequested changes
D12803: Geometry Nodes: Index Range SelectionCommented
D12784: Geometry Nodes: Curve Endpoints Node Update (WIP)Commented
D12760: Nodes: Add Vector Map Range nodeAccepted
D12744: Geometry Nodes: Add Fields Inputs to Trim Curve NodeAccepted
D12778: Nodes: Move texture nodes to C++Accepted
D12758: Geometry Nodes: Add default_value() to String socket declarationAccepted, committed
D12726: Geometry Nodes: Align Euler to Vector NodeCommitted
D12678: Geometry Nodes: Rename "String Join"-node to "Join Strings"Commented
D12802: UI: Default Fonts Folder for Mac and LinuxCommented
D12754: Geometry Nodes: Dimmed dashed linesClosed
D5336: Destructive Extrude Operator
Tracker
- Investigated: 6
- Resolved: 1
- Archived: 2
Next Week
I'd like to move forward on the named attribute input node discussion, i.e. present my viewpoint in a more final way, and make a big push to finish converting all of the other nodes, and add the last changes for Bcon2. It might be a lot!
September 27 - October 3
This week I mainly worked on code review, changing the behavior of how nodes act on instances, and attempting to fix some bugs. The bug I still haven't figured out has to do with keeping track of data through undo steps. Hopefully I can figure it out early next week.
I started working on a mesh based version of the edge split node. There is already some slightly similar functionality exposed as an API function for cycles to split edges based on normals, but this needs to use a selection. Figuring out which edges should actually be split based on the selection is turning out to be quite tricky though!
I also created some tasks:
- T91762: Updated versions of curve to points and curve endpoints nodes
- T91763: Updated version of subdivision surface node
- T91844: Selection outputs in primitive nodes
- T91845: Add "Offset" toggle to set position node
- T91852: Output UVs from mesh primitive nodes with anonymous attributes
- T91884: Add warnings for nodes that don't work with instances
- T91935: Support fields in the curve trim node
Changes / Features
- Geometry Nodes: Run nodes once on unique instance data 44e4f077a9
- Geometry Nodes: Mesh Point Cloud Conversion Nodes 262b211856, 827e30bd15
- Geometry Nodes: Expose Bezier handle positions as an attribute 81f552e9ad
- Geometry Nodes: Distribute points once per instance reference c75c08a737
- Geometry Nodes: Fields version of attribute proximity node 9f0a3a99ab
- Geometry Nodes: Only show attribute toggle for field inputs 797064544e
- Geometry Nodes: Move output attribute names to a subpanel 5d70a4d7ee
- Geometry Nodes: Use factor slider for distribution density factor e45ffce5fa
- Geometry Nodes: Do not realize instances in the material assign node f94164d896
- Data Transfer: Remove unnecessary noisy error message e863e05697
- D12579: Geometry Nodes: Field version of mesh to curve node
Bug Fixes
- Fix T91904: Assert when loading empty CurveProfile cc8fa3ee90
- Fix: Incorrect node socket name after recent refactor 11bfbc3337
Cleanup
- Cleanup: Move curveprofile.c to C++ adc084a3e9
- Cleanup: Add doxygen sections, rearrange functions c9af025936
- Cleanup: Make functions static 272a38e0c2, dfdc9c6219
- Cleanup: Replace macro with function b6195f6664
- Cleanup: Fix incorrect comments c53ffda8a4
- Geometry Nodes: Move more nodes to legacy f35ea668a1
- Cleanup: Sort node types alphabetically 87e315c237
- Cleanup: Add constructor for AttributeFieldInput eddc3f5bc8
- Cleanup: Fix unused variable warning 8d60ac2bb0
Review
Accepted, committed
D12463: Geometry Nodes: Add side and fill segments to Cone/Cylinder mesh primitive nodesRequested changes
D12482: Geometry Nodes: Add UV output to Curve to Mesh nodeAccepted, committed
D12669: Geometry Nodes: Rotate Euler NodeAccepted
D12650: Geometry Nodes: Add utility to process all instances separately.Accepted
D12644: Geometry Nodes: Support creating new attributes in modifier.Accepted
D12716: Fix T87536: Incorrect socket types in reroute nodes.Requested changes
D12574: Geometry Nodes: Separate + Delete Geometry for fieldsRequested changes, accepted
D12506: Geometry Nodes: Create New Version of Curve Reverse NodeRequested changes, accepted
D12559: Geometry Nodes: Fields Version of Select by Handle TypeRequested changes, accepted
D12531: Geometry Nodes: Fields Version of Points to VolumeAccepted
D12730: Geometry Nodes: Add option to enable attribute search in node socketsCommented
D12731: VSE: Sound add decorate buttons, sort and expose degreeAccepted, committed
D12718: Fix: fix warning icon on Curve to Mesh geometry nodeAccepted, committed
D12672: Geometry Nodes: Remove experimental option for fields.Accepted, committed
D12655: String to Curves VS2017 fixAccepted
D12717: Geometry Nodes: Port shader gradient texture nodeAccepted
D12712: Fix T91839: Incorrect active vertex group index.Accepted
D12683: Nodes: Add Float CurveAccepted
D12652: Geometry Nodes: Multi-threading for modify_geometry_sets.Accepted
D12646: Geometry Nodes: Use thinner link lines for fields.Accepted
D12678: Geometry Nodes: Rename "String Join"-node to "Join Strings"Accepted
D12677: Fix for T91756: String to Curves node produces NaN when size is zeroAccepted
D12522: Geometry Nodes: Update Set Spline Type Node for FieldsAccepted
D12534: Geometry Nodes: Fields Version of Curve SubdivideAccepted
D12735: Geometry Nodes: Resample Curve Fields UpdateClosed
D12551: Geometry Nodes: Fields Version of Point SeparateClosed
D9678: Bevel on curves does not create distorted geometry anymoreClosed
D9684: Fix T80979: Fixed the bevel distortion issue at bends
Tracker
- Investigated: 1
- Archived: 1
Next Week
Since Jacques won't be here, I won't take on many new things, my to-do list is already way too long. So I'll probably just use the opportunity to catch up on lots of things.
September 20 - September 24
This week I worked on finishing up work on the final curve nodes for 3.0, including review of the string to curves node and the curve fillet node. We also had some very productive discussions about instances and naming that I started to work on implementing in some places.
The other goal was getting ready to enable fields by default in master. I didn't quite finish up outputting attributes from the modifier like I had hoped though.
Changes / Features
- Custom Properties: Rewrite edit operator, improve UX bf948b2cef
- Geometry Nodes: Curve Sample Node 17021adcea
- Geometry Nodes: Curve Parameter Node 4d881d9dad
- Geometry Nodes: Curve tangent node 4d51af68ad
- Geometry nodes: Output curve normals from the normal node 05ce5276db
- Geometry Nodes: Fill instances separately in the curve fill node 6d162d35e2
- Geometry Nodes: Add legacy warning and "View Legacy" operator 41e3bf8a8e
- Geometry Nodes: Add versioning and legacy warning for random float node 2dd3968335
- D12623: Geometry Nodes: Only show attribute toggle for field inputs (WIP)
- D12579: Geometry Nodes: Field version of mesh to curve node
Bug Fixes
- Fix T12533: Simplify curve object to mesh conversion eb0eb54d96
- Fix: Incorrect field visualization for some shader nodes 0e039749e3
- Fix: Add versioning for geometry nodes attribute input toggle b37d36a60f
- Fix: Curve fill node doesn't fill real geometry with instances 26141664f0
- Fix T91661: Vector rotate output socket diconnects on file load 0f764ade1a
- Fix: Crash with single point bezier spline auto handles 4472a11017
- Functions: Fix incorrect assert for unused output 9e939a614e
- Fix: Incorrect versioning for float IDProperty default array fde9c3bc74
- Fix: Incorrect socket names after previous commit 6fb4c8f040
- Fix build error caused by typo c1b925f7ff
Cleanup
- Cleanup: Use new node socket declaration API for some shader nodes c99cb81452, 79bcc19240
- Cleanup: Move curve to mesh node implementation to blenkernel 3642e17428
- Cleanup: Remove debugging change, add comments 5eb505e368
Review
Requested changes
D12019: Geometry Nodes: Merge by Distance (Modifier port)Updated, committed
D12584: Geometry Nodes: Initial socket visualization for fieldsUpdated, committed
D11522: Geometry Nodes: String to CurvesCommented, accepted
D12536: Geometry Nodes: Point Distribute SurfaceAccepted, committed
D10202: Geometry Nodes: Attribute Statistic nodeAccepted, committed
D12603: Geometry Nodes: Fields version of Attribute Randomize as a Function NodeRequested changes, accepted
D12607: Add Tooltips to new Socket API and Tooltip DrawingRequested changes, accepted
D12573: UI: Tree-View API for easy creation of tree UIsAccepted
D12115: Geometry Nodes: Add curve fillet nodeAccepted, committed
D12532: String manipulation nodesAccepted, committed
D12620: Geometry Nodes: Special CharactersCommented
D12096: Curves: Cleanup set radius/weight operatorsAccepted
D12553: Geometry Nodes: Implicit Position input in Set Position node.Accepted
D12526: Geometry Nodes: Create New Version of Curve Set Handles NodeAccepted
D12506: Geometry Nodes: Create New Version of Curve Reverse NodeAccepted
D12598: Add Custom properties to Collection Properties TabRequested changes
D12587: Move Sculpt Color From Experimental
Tracker
- Investigated: 8
- Resolved: 2
- Archived: 3
- Known Issue: 1
Next Week
I'll start with code review, then making progress on converting the next nodes for fields.
September 13 - September 19
This week I worked on some converting some nodes to use fields, transferring attributes in the curve to mesh node, and adding special domain interpolation for selections, since before they weren't working like edit mode selection interpolations.
On the weekend I finished up a proper implementation of the curve parameter node and curve sample node, which I hope to get into 3.0. The curvature node ended up being a bit tricky, so I don't think I'll try to finish that this week. It may not be possible to find a definition of curvature that doesn't change when the curve resolution increases or when the curve scales up, so I'll probably have to expose both.
Changes / Features
- Geometry Nodes: Transfer attributes in the curve to mesh node f81bacd6f0, rBL62695
- Geometry Nodes: Add special domain interpolation for selections 5841f8656d
- Geometry Nodes: Add a toggle to use attributes as input values 8e21d528ca
- Geometry Nodes: Add fields version of material nodes 09f14b38f2
- Geometry Nodes: Hide values for selection inputs 525def99bc
- D12565: Geometry Nodes: Curve Sample Node
- D12548: Geometry Nodes: Add Curve Parameter Node
- D12500: Attributes: Add mesh edit mode operators for boolean attributes (WIP)
- D12454: Geometry Nodes: Add legacy warning and "View Legacy" operator
Bug Fixes
- Fix: Use after free in spreadsheet attribute column ID e6fa74ffed
- Fix: Spline length calculation fails with no evaluated points f973e0b75a
- Fix: Incorrect default values for the curve trim node c773443845, c9e835fec1
- Fix: Nodes modifier ignores input value with new property missing 633c29fb7b
- Fix: Division by zero in curve spiral primitive node acb8909021
- D12492: Fix: Custom property step value has 100x factor
Cleanup
- Cleanup: Remove duplicate warning from subdivision surface node 8c5d9fa929
- Cleanup: Use function to mark mesh normals dirty 28bd74c186
- Geometry Nodes: Simplify using OutputAttribute in a vector ddb7cb7e4a
- Cleanup: Rename curve node enums 257c7753e9
- Cleanup: Fix/improve variable names and comments 25aa943e8c
- Cleanup: Add built-in check for an attribute ID 31a0708cb1
- Cleanup: Remove unnecessary manual of move constructor db7fca3588
- Cleanup: Move mesh_convert.c to C++ 8e2e44b58b
- Cleanup: Pass const mesh argument a1c65748c4
Review
Updated, accepted
D11876: GPencil: Dot-dash modifierRequested changes
D12115: Geometry Nodes: Add curve fillet nodeRequested changes
D12478: Geometry Nodes: Instance on Points and Collection InfoRequested changes, accepted
D12471: Nodes: Cache node declaration on node.Requested changes, accepted
D10202: Geometry Nodes: Attribute Statistic nodeRequested changes
D12559: Geometry Nodes: Fields Version of Select by Handle TypeRequested changes
D11522: [WIP] Geometry Nodes: Text nodesAccepted
D12457: Geometry Nodes: Multi-threaded field evaluationRequested changes
D12532: String manipulation nodesRequested changes
D12536: Geometry Nodes: Point Distribute SurfaceRequested changes
D11664: Accurate NURBS circle and sphereRequested changes
D12506: Geometry Nodes: Create New Version of Curve Reverse NodeCommented, accepted
D11668: GPencil: Curvature support for length modifierRequested changes, committed
D12501: Create a Spline Method for Revering a SplineAccepted
D12485: Add a reverse method to MutableSpan
Tracker
- Investigated: 5
- Resolved: 1
- Archived: 2
Next Week
I'm narrowing down the list of things I'd like to get into 3.0-- I'd like to get the curve fillet, string to curve, curve sample, curve parameter, and hopefully the attribute statistic node committed. There's also general conversions and design discussions to do.
September 6 - September 12
This week I mainly worked on final cleanup on the first commit of the field changes with Jacques, fixed issues with the curve object geometry nodes support (and finally committed it!), and worked on more custom property issues. I ended up making a patch to improve the custom property edit operator-- the old one just didn't cut it.
On Saturday I also worked a bit more on refactoring mesh normal storage. It affects way more places than I thought, so even after a fair amount of work my branch still doesn't compile, but I think the refactor is very important for the future of data-oriented mesh processing in Blender.
Changes / Features
- Geometry Nodes: fields and anonymous attributes bf47fb40fd (With Jacques)
- Geometry Nodes: Support "Evaluated" mode in Resample Curve node d475f99460
- Geometry Nodes: Allow exposing color sockets to the modifier b4fd8750f9
- Geometry Nodes: Add versioning to change legacy node ID names e2f99c338b
- Nodes: Add vector min/max support to new socket builder API cb83313863
- UI: Remove label of mode in Point Instance node 1680c3d510
- D12435: Custom Properties: Rewrite edit operator, improve UX
- D12456: Geometry Nodes: Add fields version of material nodes
- D12454: Geometry Nodes: Add legacy warning and "View Legacy" operator
Bug Fixes
- Fix T91255: IDProperty UI as_dict() returns step as default value 4e91cd5c11
- Fix: Incorrect default for exposed geometry nodes vectors df65103bf0
- Fix: Incorrect file subversion for geometry node versioning 6a00e7a428
Cleanup
- Cleanup: Rename variables, simplify logic 6ae8de4742
- Cleanup: Move function to versioning_common.cc a392609ab6
- Cleanup: Remove no-op/unused code 15405685d9
- Cleanup: Split legacy node type defines 8745bb9628
Review
Requested changes
D11876: GPencil: Dot-dash modifierAccepted
D12416: Fix T91093: Off by one error in curve resample node.Commented
D12443: BLI: Add Cycles compatible Perlin noiseAccepted
D11396: UI: ActionZone Mouse Cursor FeedbackCommented
D12295: UI: Movie Clip: Cleanup Proxy SettingsRequested changes
D12347: Fix T90862: Texts in Outliner can have wrong iconCommented
D12451: VSE UI: Since functions in Effect menu only work on active strip, move them into the strip sidebar
Tracker
- Investigated: 4
- Resolved: 1
- Archived: 1
Next Week
Next week I'd like make some significant progress getting updated versions of nodes added to master. Since I didn't get to much code review last week, I'll do more of that. And I'll be working on more general field-refactor changes too, like allowing the modifier to switch between inputing a value or a named attribute. Speaking of named attributes, there is that design discussion to continue.
August 30 - September 5
Earlier this week I fixed more issues that came up after the IDProperty UI data refactor, but I mostly continued working in the fields branch.
I added a "Normal" node that gives properly normalized normals on all mesh domains, added support for fields and a selection in the point translate node, and did more cleanup and refactoring. I also made a list of the nodes we'll have to change, and we had discussions about visualization and naming of some of the new concepts.
I spent a bit of extra time on the level set patch, including adding info to a thread on devtalk for discussion.
On the weekend I spent some time investigating moving mesh vertex normals to their own data layer instead of storing them in MVert
. Here is a design task with some reasoning: T91186: Move mesh vertex normals out of MVert
Changes / Features
- D12363: Geometry Nodes: Transfer named attributes in the curve to mesh node
Bug Fixes
- Fix: Incorrect versioning for float IDProperty UI data 838b6ec48a
- Fix T91084: Missing versioning for object pose bone property UI data cfc674408e
- Fix T91088: Assigning custom property value in python resets UI data 60fba8202c
- Fix T91054: List of strings custom property cannot be edited 29590eec6e
- Fix T91054: Editing group custom property gives error 42546db490
- Fix T91119: Curve to mesh node inverted face normals 716682365c, rBL62692
- Fix: Output int for precision in UI data as_dict method 37943b00f2
Cleanup
- Cleanup: Remove redundant property UI data clear 99c981fd06
- Cleanup: Reduce variable scope 596f1878b6
- Cleanup: Grammar 4170668776
- D12402: Cleanup: Use C++ types and lambdas for mesh normal calculation
Review
Requested changes
D12115: Geometry Nodes: Add curve fillet nodeRequested changes
D12177: Geometry Nodes: Curve Connect Splines NodeCommented
D11522: [WIP] Geometry Nodes: Text nodesAccepted
D12335: Nodes: Add more flexible method to declare the sockets of a nodeCommented
D12289: Geometry Nodes: Helper functions for nodes that uses bmesh operatorsAccepted
D12345: Let rna_idprop_ui_create take "step" as a keyword argumentAccepted
D12377: Geometry Nodes: Most Remaining Nodes New Socket SyntaxAccepted
D12376: Geometry Nodes: Attribute Nodes New Socket SyntaxAccepted
D12373: Geometry Nodes: Change All Curve & Curve Primitive Nodes to New Socket FormatAccepted
D12374: Geometry Nodes: Change All Points Nodes to New Socket FormatCommented
D11209: [WIP] Reroute node improvementsRequested changes
D12381: Rename options for Quad View to be more readableCommented
D7946: [Scr-ops] Drag resize operatorCommented
D11925: UI: Increase Area Resize Edge Hit SizeCommented
D12379: Smart UV: search optimization
Tracker
- Investigated: 11
- Resolved: 6
- Archived: 2
- Duplicate: 1
- Known Issue: 1
Next Week
Next week the goal is to merge the initial changes in the fields branch. But there is still lots more to do-- the changes for all the nodes in the list above, discussions about making versioning possible, and other new features.
I'd also like to make progress on some of the other changes in my 3.0 targets list.
August 23 - August 29
This week I mainly worked on understanding the idea and prototype implementation of fields, and implementing the basic data structures and evaluation system in a branch. Jacques suggested I do this so I'd have a better idea of the internals. That was a great idea, because I definitely do! In the process I created a document with some of the things I learned: https://hackmd.io/@nodes/ByW_ZpzWt
I finally committed the IDProperty UI data refactor! (And sadly spent a large chunk of Friday searching for a stupid mistake in it that broke tests.)
I also made a quick list of my goals for geometry nodes 3.0: https://hackmd.io/@nodes/By1_orZWt
Changes / Features
- Refactor IDProperty UI data storage 8b9a3b94fc
- Update addons for D9697 "_RNA_UI" removal A104ba1c56
- D12100: Geometry Nodes: Level Set Nodes
- Add support for the Attribute Proximity node
- D11103: Generic array data structure
Bug Fixes
- Fix T90900: Crash when rendering geometry nodes created curve 5ef3afd87c
- Fix failing alembic test after IDProperty UI data refactor 276a862ebc
Cleanup
- Cleanup: Refactor proximity node to be more data type agnostic 70fbdcb6bf
- Cleanup: Remove unecessary variables a2e0f714f2
- Cleanup: Add comment about suspicious O(n^3) loop 41eb33794c
- Cleanup: Make function static, remove unused arguments f53cf5141d
- Cleanup: Remove redundant null check eae4e22518
- Cleanup: Simplify logic 9327c00f70
- Cleanup: Use shorter enum item names f80c39b74e
Review
Accepted, committed with tweaks
D11810: Cuboid Mesh Primitive Geometry NodeAccepted, Committed with tweaks
D11846: Geometry Nodes: Curve FillRequested changes
D11876: GPencil: Dot-dash modifierRequested changes
D11668: GPencil: Curvature support for length modifierAccepted
D11736: Nodes: Improvements to edge panning in the node editor.Commented
D8954: Add Bisect ModifierAccepted, committed
D11772: Geometry Nodes: Allow for one vertex in grid nodeAccepted, committed
D12152: Fix: Corrected edge flag for outer edges in the circle mesh primitive node.Commented
D11938: UI: Consistent Area Move Snapping LocationsCommented
D12305: Modifiers: export motion blur velocity through attributeCommented
D12217: VSE: Use the word "Hide" for all non-sound strip types instead of the counter-intuitive "Mute".Commented
D12035: Geometry Nodes: Add Easing Function Node
Tracker
- Investigated: 10
- Resolved: 2
- Archived: 5
Next Week
I'll finish up the fields data structure and evaluator, add tests, support building the fields network in the geometry nodes evaluator, and do code review. If I'm too slow with the fields stuff, I'll switch tasks with Jacques, since I don't want to hold things up (it's basically the first time I written code that needs to solve that class of problem).
August 9 - August 13
This week I reviewed all of the patches assigned to the geometry nodes project, spending more time on the curve fillet node, the connect splines node, the text nodes, and the cuboid node. I also worked on the fields branch, where I added a "Curve Parameter" node, and progressed farther in my level set patch, where I added primitive nodes, morphing between level sets, converting level sets to masks, and finished the sample volume node. The volume stuff has been a nice thing to work on while waiting for the attribute discussion to finish, I think it will end up being very useful! It's in the geometry-nodes-level-set-nodes
branch right now.
Also, Campbell and Sybren accepted the IDProperty UI data refactor patch (D9697)! I'll commit it when I get back after next week.
Changes / Features
- D12175: Geometry Nodes: Proof of concept lazy conversion to and from BMesh
Bug Fixes
- Fix T90447: 3D view transform locks do not use driver colors 8652e69d8b
- Fix T90547: Add node errors when compiled without OpenVDB or Bullet b04997cca4
- Fixed typos and errors for point separate geometry node rBM8300
Cleanup
- Cleanup: Variable names, formatting, reduce indentation 8f2b60ddbf
- Cleanup: Remove unused includes 1275ce61b1
- Cleanup: Remove unecessary RNA get and set functions 3b87fd376a
Review
Requested changes
D12115: Geometry Nodes: Add curve fillet nodeRequested changes
D12177: Geometry Nodes: Curve Connect Splines NodeRequested changes
D11522: [WIP] Geometry Nodes: Text nodesRequested changes
D11810: Cuboid Mesh Primitive Geometry NodeRequested changes
D11876: GPencil: Dot-dash modifierRequested changes
D11846: Geometry Nodes: Curve FillRequested changes
D12019: Geometry Nodes: Merge by Distance (Modifier port)Updated
D11639: Geometry Nodes: Curve Primitive Phyllotaxis SpiralRequested changes
D11713: Geometry Nodes: Curve Primitive ArcCommented
D12080: Geometry Nodes: Mesh Auto SmoothAccepted
D11841: Geometry Nodes: Initial support for geometry instancing (WIP).Commented
D11736: Nodes: Improvements to edge panning in the node editor.Requested changes
D12108: Geometry Nodes: InsetRequested changes
D11791: Geometry Nodes: Collapse Node, Dissolve Node, Unsubdivide NodeRequested changes
D11684: UI: Node Contents JigglingAccepted
D11835: Topology mapping mode for Attribute Transfer nodeAccepted
D11930: Nodes: Highlight entire link when connected to a selected nodeAccepted
D10417: Geometry Nodes: Add all UV Smooth and Boundary Smooth options to subdivision nodeRequested changes
D12079: Geometry Nodes: Curve Extract Spline NodeRequested changes
D12072: Geometry Nodes: Bridge Curve NodeRequested changes
D10795: Geometry Nodes: Using BMesh Subdivide Operation for the Subdivide NodeAccepted, committed
D11754: Add a label for texture socketsAccepted, committed
D12147: Fixed typos for point separate geometry nodeAccepted
D10505: UI: Freestyle UI UpgradeAccepted
D12191: Fix T89027: [2.93 only] pose slide factor wrong in redo popupAccepted
D10914: Add Extras Dropdown Menu to ConstraintsClosed
D11787: Geometry Nodes: Mesh Primitive TorusClosed
D10190: Geometry Nodes: Point Primitive NodeClosed
D10508: Rename "Point Distribute" to "Point Distribute Surface"Closed
D10355: Geometry Nodes: Add Invert option to the Transform nodeRequested changes
D10585: Geometry Nodes: Add shader Color Mix nodeRequested changes
D12035: Geometry Nodes: Add Attribute Easing NodeRequested changes
D10459: Geometry Nodes: Add alternative distribution options to the Attribute Randomize nodeRequested changes
D10883: Geometry Nodes: Attribute Randomize Spherical NodeRequested changes
D11541: Geometry Nodes: Add a minimum distance attribute to the Attribute Proximity NodeCommented
D11465: Adding Attribute Math Expression NodeCommented
D12025: Geometry Nodes: Geometry, Mesh, Curve & Point Cloud Info nodesCommented
D9949: Geometry Nodes: Yuksel's sample elimination algorithmCommented
D12201: UI: Add option to allow the display of the viewport axis gizmo while transformingRequested changes
D11575: Geometry Nodes: Solidify NodeCommented
D11875: Geometry Nodes: Curve Primitive Line -> Add 'Track To' modeCommented
D11942: Geometry: new geometry moduleClosed
D10905: Geometry Nodes: add Attribute Edge LengthClosed
D10888: Node: Merge by DistanceClosed
D10097: Geometry Nodes: Add rotation orders in the Transform NodeCommented
D11547: Geometry Nodes: New Attribute Processor.
Tracker
- Investigated: 4
- Resolved: 2
- Archived: 1
Next Week
I'll be away next week, no internet at all!
August 2 - August 8
This past week (and the weekend before at the end of vacation), I focussed on a few things:
- Cleaning up the current openVDB level set API and building nodes for level set operations (D12100)
- Adding features and support for nodes to the fields and anonymous attributes prototype branch
- Working on the IDProperty UI data storage refactor (now accepted by Campbell and Sybren!) (D9697)
- Code review, mostly for more geometry nodes features
Changes / Features
- Geometry Nodes: Select by Handle Type Node 1f8485ae82
- Mesh: Tag normals dirty instead of calculating 8b93265c19
- D12100: Geometry Nodes: Level Set Nodes (WIP)
Bug Fixes
- Fix T90087: Assigning object data doesn't copy vertex groups 263fa406cd
- Fix T90042: Spline tangent calculation assert with coincident points a4813379f9
- Fix memory leak from rB263fa406cd2b 99738fbfdc
- Fix build error in debug builds and uninitialized structs 54bd5efa68
Cleanup
- Cleanup: Remove unused/unecessary OpenVDB C API 67d56eb71e
- Cleanup: Use const mesh arguments 2f63303e25
- Cleanup: Remove unecessary helper function 17243337d7
- Cleanup: Voxel remesh function naming 37e2fec090
- Cleanup: Simplify logic, follow style guide for integer types 35894dc700
- Cleanup: Move remesh files to C++ a9ea310d30
- Cleanup: Sort node types alphabetically 79277986c2
- Cleanup: Remove unused includes 8063f10166
- Cleanup: Reorder functions 524908146c
- Cleanup: Remove duplicate special case check efd7c95bb2
- Cleanup: Make spline settings copy function public 4f6f445120
Review
Updated, accepted
D10202: Geometry Nodes: Attribute Statistic nodeUpdated, accepted
D12013: Geometry Nodes: Curve Set Spline TypeRequested changes
D11810: Cuboid Mesh Primitive Geometry NodeRequested changes
D10951: A Mesh Smooth node, as designed in T86903.Requested changes
D11984: Fix unexpected twist and asymmetry in curve using tangent modeRequested changes
D12108: Geometry Nodes: ExtrudeAccepted
D10943: XR Actions [part 2]: ActionmapsAccepted
D11923: Geometry Nodes: Add more warnings for out of bounds parametersRequested changes
D11980: Range filter for spreadsheet editorRequested changes
D11772: Geometry Nodes: Allow for one vertex in grid nodeRequested changes
D11907: Geometry Nodes: Remesh VoxelAccepted
D12152: Fix: Corrected edge flag for outer edges in the circle mesh primitive node.Accepted
D12136: Fix: Avoid FP error to accumulate when creating mesh primitives
Tracker
- Investigated: 5
- Archived: 2
Next Week
I'll work more on all of the ongoing projects, and maybe participate in some of the discussions about the attribute workflow changes.
I'd also like to make a simple system to lazily convert to and from BMesh
for the MeshComponent
.
July 19 - July 23
This week I mainly worked on the curve modifier stack changes for the nodes modifier (I had to merge Jacques' geometry instancing patch to fix an issue), investigated bugs, adding notes or committing fixes directly, and did code review.
Apart from that, I discussed the IDProperty UI data refactor with Sybren and Campbell. After some disagreements we came to a nice conclusion that I'll implement when I'm back.
Changes / Features
- Geometry Nodes: Display Node Warnings in Modifier 49e68f15f2
- D12004: Geometry Nodes: Expose NURBS weight as an attribute
- D12005: Geometry Nodes: Expose Bezier handle positions as an attribute
Bug Fixes
- Fix T89979: Assert in edit mode with curve to mesh node 76a3ff70d5
- Fix: Bezier segment node adds handles incorrectly 76a3ff70d5
- Fix T89687: Curve to mesh node incorrect face orientation cf28398471
- Fix T89993: Failed assert drawing single point cyclic splines aeee7f390d
- Fix T89827: Attribute transfer node crash on mesh with no faces bfe6b55aa7
- Fix: "Bake" automatically calculated handles in set handle node 524d172742
Cleanup
- Cleanup: Use const arguments and less sequential iteration 1e063a0242
- Cleanup: Remove unused function, unused declaration ebe32e01e1, 0733926a34
- Cleanup: Make function static, use const object argument 59eb71afa1
- Cleanup: Add function to check a curve's spline types f76dfe8fb4
Review
- [Requested changes, accepted] D10700: USD Importer
- [Requested changes] D11999: GPencil: New Brush option to define Caps type
- [Requested changes] D10943: XR Actions [part 2]: Actionmaps
- [Requested changes, committed] D11992: Geometry Nodes: Set Handle Type Node
- [Accepted] D12007: Fix T89393: Crash when selecting edges when geometry nodes has "on cage" turned on
- [Accepted] D12006: Fix: Avoid creating improper rotation matrix
- [Accepted] D12009: Fix T89829: Wrong active context path check in spreadsheet
- [Accepted] D12008: Fix T90065: Disable attribute search in places where there is too little context
- [Accepted] D12019: Geometry Nodes: Merge by Distance (Modifier port)
- [Accepted] D11575: Geometry Nodes: Solidify Node
- [Accepted] D11905: Geometry Nodes: Remesh Blocks
- [Commented] D11886: Fix curve minimum twist producing wrong geometry
- [Accepted] D11972: Fix T89982: 'New' Button tries to create node tree on active modifier rather than context
- [Accepted] D11990: Make polls for removing mesh data layers consistent
Tracker
- Reported T89996: Resetting multi-button value does not work when active button value is the same
- Investigated: 13
- Archived: 1
- Known Issue: 1
- Duplicate: 1
- Resolved: 1
Next Week
Vacation next week, I'll be sailing, hopefully not thinking too much about this stuff ; )
July 12 - July 18
This week I continued working on supporting the nodes modifier on curve objects, on the vertex group refactor, and on the IDProperty refactor. I also spent a fair amount of time on code review, and I spent some time adding the new features to the manual.
The vertex group refactor caused a couple bugs, it turns out some edit mesh / dependency graph work caused some of the issues though.
Changes / Features
- Refactor: Move vertex group names to object data 3b6ee8cee7
- Python API: Add functions to ensure and clear IDProperties c202d38659
- Bezier Spline: Add a more generalized insertion utility 093074aefe
- Python API: Add functions to ensure and clear IDProperties c202d38659
- Updates to the manual
- Spreadsheet Editor: Dataset region rBM8206
- Spreadsheet Editor: Row Filters rBM8207
- Geometry Nodes: New Viewer Node (further changes) rBM8208
- Geometry Nodes: Curve Primitive Quadrilateral rBM8209
- Geometry Nodes: Curve Trim Node rBM8211
- Refactor: Move vertex group names to object data rBM8210
- Geometry Nodes: Curve Endpoints Node rBM8212
Bug Fixes
- Fix T89899: Crashes when accessing vertex groups from objects c4df8ac1a4
- Fix: Incorrect logic in spline lookup function 9eafdb985d
- Fix: memcpy overlapping region ASAN warning in curve trim node 83883ae66a
- Fix failing tests from vertex group name parameter copy 0cc2a72f94
Cleanup
- Cleanup: Make curve trim node code more semantically correct 75ae328d62
- Cleanup: Avoid duplication in line art stroke generation 2acebcae24
- Cleanup: Move gpencil_geom.c to C++ feba1fe974
- Cleanup: Simplify logic, use C++ types e7b441a05c
- Cleanup: Simplify realizing of pointcloud instances 118803893e
- Cleanup: Use C++ float3 type, use prefix for return argument d6b1d35bf8
- Cleanup: Remove redundant logic 802a59a58a
- Cleanup: Get vertex group names directly from grease pencil data 6025897cd6
- Cleanup: Remove use of designated initializers in C++ code a566dc25aa
- Cleanup: Clang tidy 7d618b4dde
Review
- [Requested changes] D11876: GPencil: Dot-dash modifier
- [Requested changes, accepted] D10700: USD Importer
- [Requested changes, committed] D11901: Geometry Nodes: Curve Trim Node
- [Requested changes] D11846: Geometry Nodes: Curve Fill
- [Requested changes] D11810: Cuboid Mesh Primitive Geometry Node
- [Requested changes, acceped] D11842: Geometry Nodes: Initial socket inspection.
- [Accepted] D11951: VSE: Fix truncated label
- [Accepted] D11958: Versioning: fix vertex group name loss in linked duplicates
- [Requested changes] D10787: Node Editor: Paste Node on mouse position
- [Accepted] D11813: Nodes: Dim links whose start and end sockets are not visible
- [Commented] D11736: Nodes: Improvements to edge panning in the node editor.
- [Committed] D11665: Geometry Nodes: Curve Primitive Quadrilateral
- [Updated] D11639: Geometry Nodes: Curve Primitive Phyllotaxis Spiral
- [Committed] D8877: Papercut: Flip driver debug UI
- [Commented] D11923: Add more warnings to Geometry Nodes
- [Commented] D11886: Fix curve minimum twist producing wrong geometry
- [Commented] D11875: Geometry Nodes: Curve Primitive Line -> Add 'Track To' mode
- [Closed] D9993: Geometry Nodes: Multiple dynamic sockets for the Join Geometry Node
- [Closed] D11659: Fix T89316: Boolean node does not transfer vertex group names
Tracker
- Investigated: 11
- Archived: 2
- Known Issue: 1
- Resolved: 5
Next Week
Next week I'll just continue focusing on the same couple things, and whatever smaller things we decide to focus on this coming week.
July 5 - July 11
This was just a two day week, so I didn't finish much, I focused on code review. While I was gone I kept up with the GSoC projects and conversations in the chat.
Changes / Features
- Geometry Nodes: Rename nodes for clarity between mesh and curve 0b1050bf09
- Geometry Nodes: Use same shape as mesh line in curve line node b66c21f8b0
- Geometry Nodes: Allow 3 points in curve star primitive 9182c882fe
Bug Fixes
- Fix: Crash when geometry nodes NURB spline has no evaluated points 40de5742af
- Fix: Curve Resample Node: Copy attributes to 1 point results 0521272ab3
- Fix T89702: Curve to points node assert on single point spline cd38daeff4
Cleanup
- Cleanup: Clang tidy, unused include de70bcbb36
- Cleanup: Use enum for UI block emboss type 61afbf55f1
- Cleanup: Sort nodes alphabetically 8f94724f22
Review
- [Requested changes, accepted] D11700: Geometry Nodes: Refactor logging during evaluation
- [Requested changes, accepted] D10912: Nodes: Add a button to change group socket types
- [Accepted with changes] D11830: Fix T89559: Outliner shows extra view layer column when it shouldn't
- [Requested changes] D11791: Geometry Nodes: Collapse Node, Dissolve Node, Unsubdivide Node
- [Requested changes] D11835: Topology mapping mode for Attribute Transfer node
- [Committed] D11719: Curve End Points Node
- [Committed] D11700: Geometry Nodes: Add explicit Float to Int conversion node
- [Committed] D11769: Geometry Nodes: Curve Primitive Line
- [Closed] D11674: Geometry Nodes: Curve Primitive Rose Curve
- [Closed] D11657: Geometry Nodes: Curve Primitive Polynomial Curve
- [Commented] D11792: UI: Fix time labels drawing
- [Commented] D11522: [WIP] Geometry Nodes: Text nodes
- [Commented] D11754: Add a label for texture sockets
- [Committed] D11711: Documentation for new Float To Int Node
Tracker
- Investigated: 4
- Archived: 1
Next Week
Catch up with review and responding to review on my own patches, then more general module development. I'll do the documentation for the spreadsheet row filters.
June 28 - July 4
This week I mainly worked on the same two tasks as last week-- moving vertex groups names to geometry, and getting the geometry nodes modifier working on curve objects. That has taken quite a bit of time, but I finally got it working!
Other than that I mostly spent time on code review.
I also made a design task for sampling data from a curve, like a curve deform node without the deformation, and more flexible: T89612
Changes / Features
- Curves: Avoid duplication of control points during evaluation f8d8f28e2c
- Geometry Nodes: Add mesh input warning to curve to mesh node 55f27617cf
Bug Fixes
- Fix T89350: Emboss color missing from icon buttons without emboss 6c97c7f767
- Fix name of UI emboss RNA enum item 0afe4e81cb
Cleanup
- Cleanup: Remove unused "for_orco" argument to curve evaluation d2e473a2dd
- Cleanup: Remove unused transform matrix from objects 5f5cf21a83
- Cleanup: Use const variables for object's evaluated mesh 9f5c0ffb5e
- Cleanup: Use const mesh to ensure BVH and triangulation cache 5f8969bb4b
- Cleanup: Add function to create a CurveEval from a nurbs list a0c45a2d54
- Cleanup: Further use of const when accessing evaluated mesh 8221d64844
- Cleanup: Move bvhutils.c to C++ 0ff1c38fcc
- Cleanup: Split curve and surface data evaluation functions, rename 3471ff1a5c
- Cleanup: Replace paranoid check with assert d0e6b59cd1
- Cleanup: Avoid freeing curve evaluation data twice a3a7e19f07
- Cleanup: Avoid ASAN report when converting displist to mesh 2271b9b584
- Cleanup: Use simpler method to retrieve attribute domain 2d146b61d8
- Cleanup: Fix variable redeclaration warning a1609340b4
- Cleanup: Clang tidy, remove typedef fd1fec5600
- Cleanup: Use bool instead of int, rename variable 4f3ec01101, 5a64c687dd
- Cleanup: Use function name for allocation strings 24c321cfe9
- Cleanup: Use const arguments dc0c81337d
- Curve: Add functions to retrieve const access to spline list 790cb28766
- Cleanup: Order return arguments last, use r_ prefix d6480167ad
Review
- [Commented] D11522: [WIP] Geometry Nodes: Text nodes
- [Accepted] D11786: Node Wrangler: Change shortcut to make viewer node work in geometry nodes.
- [Requested changes] D11719: Implement T89215 Curve Endpoints
- [Requested changes] D11700: Geometry Nodes: Add explicit Float to Int conversion node
- [Commented] D11684: UI: Node Contents Jiggling
- [Committed] D11650: Geometry Nodes: Curve Primitive Circle
- [Committed] D11609: Geometry Nodes: Curve Primitive Spiral
- [Committed] D11649: Geometry Nodes: Curve Primitive Quadratic Bezier Segment
- [Committed] D11648: Geometry Nodes: Curve Primitive Bezier Segment
- [Committed] D11653: Geometry Nodes: Curve Primitive Star
- [Requested changes] D11665: Geometry Nodes: Curve Primitive Quadrilateral
- [Commented, Accepted] D11759: VSE: Snapping feedback
- [Requested changes] D11688: Moving mesh_evaluate.c to C++
- [Commented] D11780: Various Boolean parallelizations and optimizations
- [Commented] D11754: Add a label for texture sockets
- [Accepted] D11738: UI: Custom free functions improvements.
- [Accepted] D11755: Cleanup: variable naming for texture/material SocketPropertyType
- [Accepted] D11732: Typo in function identifier: mutli -> multi
Tracker
- Investigated: 6
- Duplicate: 4
- Archived: 3
Next Week
Next week is only two days, so I won't plan much except hopefully finishing some in-progress tasks.
June 21 - June 27
Not too much new this week, I mainly focused on finishing up earlier projects, including:
- More work on supporting the geometry nodes modifier on curve objects.
- Trying to debug the curve deform node
- Supporting Johnny Matthews on his work on the Curve Primitive Nodes
- Researching optimizations I was thinking of for curve spline code (some successful, others were not)
- Fixing bugs
I also started working on moving vertex groups to geometry (mesh, grease pencil, and lattice data), which should solve a whole class of bugs, and improve code quality.
Changes / Features
- Geometry Nodes: Use multithreading for the curve to mesh node 445d506ac9
- Geometry Nodes: Join curve attributes when realizing instances 0b15353baa
- UI: Cleanup: Phrasing of tooltips in line art modifier 23c4854f45
- D11689: Refactor: Move vertex group names to object data (WIP)
Bug Fixes
- Fix T89343: Point cloud instances not transformed when realized ebfad93039
- Fix T89430: Realizing NURBS curve instances is broken 20e68d848e
- Fix T89327: Cube and ico sphere nodes do not create UVs ee8b284d11
Cleanup
- Cleanup: Refactor spline copying functions f3eecfe386
- Cleanup: Rename variables, use shorter names dc3b7602ee
- Cleanup: Use "size" instead of "points_len" in spline code e1d6219731
- Cleanup: Clang format 9586472b9a
Review
- [Requested changes] D11688: Moving mesh_evaluate.c to C++
- [Requested changes] D11700: Geometry Nodes: Add explicit Float to Int conversion node
- [Committed] D10810: Fix widget emboss: Also fade emboss on the right side
- [Commented] D11659: Fix T89316: Boolean node does not transfer vertex group names.
- [Requested changes] D11657: Geometry Nodes: Curve Primitive Polynomial Curve
- [Requested changes] D11653: Geometry Nodes: Curve Primitive Star
- [Requested changes] D11650: Geometry Nodes: Curve Primitive Circle
- [Requested changes] D11609: Geometry Nodes: Curve Primitive Spiral
- [Requested changes] D11649: Geometry Nodes: Curve Primitive Quadratic Bezier Segment
- [Requested changes] D11648: Geometry Nodes: Curve Primitive Bezier Segment
- [Requested changes] D11639: Geometry Nodes: Curve Primitive Phyllotaxis Spiral
- [Requested changes] D11665: Geometry Nodes: Curve Primitive Quadrilateral
- [Requested changes] D11674: Geometry Nodes: Curve Primitive Rose Curve
- [Accepted] D11656: Geometry Nodes: Curve Primitive Polygon
Tracker
- Investigated: 9
- Archived: 5
Next Week
My first priority is finishing the curve modifier stack work. Then I'll try to finish up some other tasks, and support Jacques on the node work where I can.
June 14 - June 20
This week I focused on finishing up more of the curve nodes, reviewing code for geometry nodes features, cleanup, and some bug fixing. There are a few contributors working on curve features, including the GSoC project, so I'm trying to keep all of that coordinated too.
I spent time working on trying to wrap up the IDProperty UI data refactor, getting closer there! And finally committed the spreadsheet row filter patch.
I also made some design tasks this week. That's quite fun!
- Tasks for new nodes:
- Some work on the "converting modifiers" task (I should write a blog post about this at some point)
- T86839: Converting Modifiers to Nodes
- And a couple TODO tasks for the spreadsheet editor after landing the row filters:
Changes / Features
- Geometry Nodes: Curve to Points Node for Evaluated Data fcbb20286a
- Geometry Nodes: Add Curve Subdivision Node ed4222258e
- Spreadsheet Editor: Row Filters f9aea19d98
- Curves: Multithread Curve to CurveEval conversion 0cd34967c0
- Geometry Nodes: Multithread curve resample node a1c3e45100
- Geometry Nodes: Parallelize curve reverse node bf7f918a0e
- Geometry Nodes: Allow int attribute input fields with single value 143a81ccce
Bug Fixes
- Fix: Spreadsheet selection filter crash on non-mesh components 6afafc46f6
- Fix T89302: Broken normals after mesh to curve node 2d75b39b64
- Fix T89233: Incorrect attribute remove warning for curves 94c4a9995e
- Fix T89310: Industry Compatible keymap not working 80083ac773
Cleanup
- Splines: Add resize method to CurveEval 732e8c723e
- Cleanup: Rename spline interpolation functions feb6fd632f
- Cleanup: Expose function publicly, rename c29afa5156
- Cleanup: Fix inconsistent parameter name warning 0b0c7ca017
- Cleanup: Refactor join geometry node attribute gathering fe0fa7cec6
Review
- [Requested changes, accepted] D11619: Raycast geometry node
- [Requested changes, accepted] D11291: Line Art: Cached calculation for multiple modifiers in the stack
- [Accepted] D10895: T86838 Geometry Nodes: Add Mesh To Volume Node
- [Accepted] D11073: Edge-scrolling for node editor
- [Committed] D11577: Geometry Nodes: Separate Components Node
- [Committed] D11538: Curve 'Switch Direction' Node (Change Direction, Reverse)
- [Requested changes] D11648: Geometry Nodes: Curve Primitive Bezier Segment
- [Commented, accepted] D11620: Documentation for Raycast geometry node
- [Accepted] D11624: BLI: Add threading namespace.
Tracker
- Investigated: 5
- Archived: 4
Next Week
Next week is general module development: I'm planning to tackle technical debt, some last important features for curves, and maybe some thinking/work on volumes.
June 7 - June 13
This week I (still) focused on finishing up the curve tasks on the workboard. Most of them are getting close, but there is still work to do. In preparation for supporting the nodes modifier on curve objects I did some cleanup to the file responsible for the curve modifier stack.
Changes / Features
- UI: Add the option to not display some socket labels ec98bb318b
- UI: Remove property descriptions exactly the same as names 1ef33be2d4
- Splines: Add API functions for interpolating data 675677ec67
- Geometry Nodes: Copy spline attributes in the curve resample node 93fd07e19c
- Geometry Nodes: Support curve instances in the bounding box node f5a2d93224
- Geometry Nodes: Rename bounding box mesh output to "Bounding Box" 22ee056c3a
- D11539: Geometry Nodes: Curve to Points Node
- D11596: Geometry Nodes: Curve Deform Node
- D11597: WIP: Geometry Nodes: Support nodes modifier on curve objects
- D11535: Geometry Nodes: Support multi-input socket in bounding box node
Bug Fixes
- Fix T88934: Crash with line node count input < 0 a2ebbeb836
- Fix: Point translate and point scale don't execute on curve data a3226bdf3e
- Fix: Incorrect node bezier spline tangent calculation for end points 8c3f4f7edf
- Fix test failure caused by earlier cleanup commit 0abce91940
Cleanup
- Cleanup: Decrease variable scope 8cbff7093d
- Cleanup: Remove outdated/useless comments 7313b243f2
- Cleanup: Use const arguments, return by value d2aee304e8
- Cleanup: Remove unused function, make function private 1182c26978
- Cleanup: Fix uninitialized variable warning 7f1d1b03ad
- Cleanup: Order return argument last 84adc23941
- Cleanup: Reduce indentation from redundant check 54a03d4247
- Cleanup: Comment formatting 33c4eefabb
- Cleanup: Remove duplicate call to function a31bd2609f
- Cleanup: Make function static 1c6e338d59
- Cleanup: Order return argument last b0ec1d2747
Review
- [Committed] D10925: Geometry Nodes: Convex Hull Node
- [Requested changes, accepted] D11046: Spreadsheet: Dataset region for spreadsheet editor
- [Requested changes] D11522: Nodes: String to Curve, Value to String, String Join, String Substring, String Length
- [Commented] D11470: Geometry Nodes: New Viewer node.
- [Committed] D11560: Add Texture and Material options to switch node
- [Requested changes, accepted] D11538: Curve 'Switch Direction' Node (Change Direction, Reverse)
- [Commented] D10196: Alembic: add settings to control radius of imported curves and points
- [Closed] D10485: WIP:Geometry Nodes: Remesh Node
Tracker
- Investigated: 4
- Archived: 2
Next Week
More work on curve nodes, hopefully finishing all of them that I'm working on right now. Apart from that, some code review and feedback to other developers. Also, hopefully more conversations with GSoC students.
May 31 - June 4
This week I mainly focused on code review and various curve node tasks.
For code review, I did review rounds of the spreadsheet data set region patch, and reviewed/committed the geometry delete node and curve length nodes, among some other smaller patches.
I took a break from the subdivide node, since the implementation for bezier curves was giving me a headache. I'll come back to it again next week hopefully, after deciding whether to prioritize handle type or curve shape. I implemented two options for the "curve evaluation instancing". We had talked about a "Curve to Points" node for that use case, but after I thought about it more I thought of another option which I like more. I implemented a basic curve deform node, parts of which were quite simple with the code so far, but figuring out how exactly to change the position was harder than I expected, and I didn't quite finish.
I also made these design tasks:
- T88722: Curve Change Direction Node
- T88725: Curve Length Node
- Curve evaluation / to points for instancing
Changes / Features
- Geometry Nodes: Support curve data in the geometry delete node e5a1cadb2f
- Geometry Nodes: Skip calculating normals in transform node 17b09b509c
- Geometry Nodes: Allow reading converted attribute directly from spline 34f99bc6be
- Splines: Function to copy spline settings without data 21de669141
- D11491: Geometry Nodes: Join dynamic curve attributes in the join geometry node
- D11468: Geometry Nodes: Add "No attribute" warning to geometry delete node
- D11421: WIP: Geometry Nodes: Add curve subdivision node
Bug Fixes
- Fix T88732: Curve to mesh node crash with empty input curve 05b685989b
Cleanup
- Cleanup: Avoid duplicating node input retrieval 6b5bbd22d9
- Fix assert with geometry node output 711ddea60e
- Cleanup: Correct comments a55b73417f
- Cleanup: Add comment explaining assert c18675b12c
- Cleanup: Clang format ea6d099082
Review
- [Requested changes] D11046: Spreadsheet: Dataset region for spreadsheet editor
- [Accepted, commented] D10925: Geometry Nodes: Convex Hull Node
- [Accepted] D11439: Geometry Nodes: Add empty material slot to new meshes.
- [Committed] Geometry Nodes: Add Delete Geometry Node 464797078d
- [Requested changes, committed] D11459: Geometry Nodes: Curve Length Node
- [Commented] D11520: Function node: Value to String
- [Commented] D11415: Fix T88598: Support disabling task isolation in task pool.
- [Closed] D304: Solution for T37878 - Viewport normal drawing with constant length
Tracker
- Investigated: 2
- Archived: 1
- Dupliucate: 2
Next Week
I'll start by doing some code review, then I'll focus on finishing up the curve tasks on the workboard finally, which I actually think is possible now.
May 24 - May 28
This week I continued development for curve nodes, where the system is starting to get more complete. Once we have a proper way to evaluate splines I think it will be quite powerful. Apart from some design disagreements this project has been really satisfying.
Changes / Features
- Geometry Nodes: Add Mesh to Curve Node 11e32332dd
- Geometry Nodes: Draw curve data in the viewport ac833108db
- Geometry Nodes: Support interpolation between curve domains c97b6215a3
- Geometry Nodes: Expose texture and material inputs to modifier 3025c34825
- Geometry Nodes: Polish switch node UI 653bbaa246
Bug Fixes
- Fix T88452: Point Separate crash on curve component e5b51cb511
- Fix T88603: Crash with spline attributes after curve resample e5b51cb511
- Fix T88601: Attribute Compare boolean doesn't expose socket 20e250dae3
Cleanup
- Cleanup: Simplify spline point attribute materialize functions b132dd042e
- Cleanup: Convert to static type directly from CPPType c3c576c8c4
- Cleanup: Remove completed "TODO" comment a10e41b02e
- Cleanup: Use consistent variable names a12fd5c3ad
- Cleanup: Fix short comparison with bool warning c0bb7d9cb7
- Cleanup: Fix forward declaring class with "struct" 24b2482ad9, a3edf4a381
Review
- [Requested changes] D11046: Spreadsheet: Dataset region for spreadsheet editor
- [Commented] D10749: Geometry Nodes: Add node labels to Attribute maths nodes
- [Accepted] D11399: Fix threading issues with node ui storage, again...
- [Closed] D8167: Minor UI: Make the 'Snap to' dropdown inactive when the 'Snap' icon is off, in line with the operation of the 'Proportional Editing' icon and its related dropdown.
Tracker
- Investigated: 7
- Archived: 2
Next Week
Next week I'll do code review and continue curve nodes development and whatever else comes up. Maybe I'll make some other design tasks for ideas I've had recently.
May 17 - May 23
This week I mostly worked on curve attributes again. I committed support for dynamic attributes. The few left are NURBS weight and bezier handles, then that project is mostly finished. There are still other curve nodes I want to complete for 3.0, but I may have some work to do convincing others about my approach first.
I made changes to draw curve data in the viewport, though there are still some problems with it to fix before committing.
I also updated the manual for recently added changes to geometry nodes, and spent a bit of my own time prototyping a volume sample node, which I think would be awesome.
Changes / Features
- Geometry Nodes: Support for dynamic attributes on curve splines 627f357127
- Geometry nodes manual updates
- Add note about materials on join geometry page rBM8055
- Add note about attributes to the geometry join node rBM8056
- Add note about sharp edges to the curve to mesh node page rBM8057
- Geometry Nodes: Add Material Assign Node rBM8053
- Geometry Nodes: Add Material Input Node rBM8054
- Cleanup: Fix grammar, add term references rBM8059
- Geometry Nodes: Add Attribute Vector Rotate Node rBM8060
- Add more information to the curve resample node page rBM8058
- Splines: Optimize interpolation in special case virtual array d1c9a99c07
- D11351: Geometry Nodes: Draw curve data in the viewport
- D11353: WIP: Geometry Nodes: Volume Sample Node
Bug Fixes
- Fix T87316: No undo push for clicking on attribute name 991a1cdf5d
Cleanup
- Cleanup: Use consistent order for functions in node files 58893eaef8
- Cleanup: Use copy constructor for CurveEval 192a3f1a05
Review
- [Accepted] D11191: New Geometry Nodes evaluator
- [Commented] D11276: Initial attribute list for meshes
- [Accepted] D11155: Geometry Nodes: New Material Assign node
- [Accepted] D11324: Geometry Nodes: New Select by Material node
- [Accepted] D11303: Materials: Support materials when applying modifier
- [Committed] D11342: Fix T87357: Missing update after removing socket
- [Commented] D10358: Proposal: Improved feedback when dropping is not possible on drag 'n drop
- [Commented] D11300: Custom Properties: Copying Utility
- [Closed] D11270: Expose Sculpt Face Sets To Geometry Nodes
- [Accepted] D11305: Geometry Nodes: New material input node
Tracker
- Investigated: 5
- Duplicate: 1
- Known Issue: 1
- Archived: 3
Next Week
Next week I'll try to make more progress on curve nodes, commit the IDProperty UI data refactor, and fix some bugs.
May 10 - May 16
This week I worked on curve control point attributes, where the main complexity is exposing separate data from multiple splines as if it were a continuous set of values. I also worked on adding support for dynamic attributes to curves. In both of these cases I'm fairly happy with the result, though there is room for performance improvement.
On Saturday I made two nodes I had been thinking about during the week:
I also started reviewing Jacques' new geometry nodes evaluator patch. I'll have to put on my smart hat and do another pass on that though.
I abandoned D10712: Geometry Nodes: Optimize transform node for meshes-- we decided to just mark the normals invalid since you often do other operations after a transform node that may or may not use normals.
Changes / Features
- Geometry Nodes Curves: Expose first builtin point attributes 1892b131ed
- Functions: Add materialize methods for generic mutable virtual array 5613c61275
- Functions: Expose set_all method for generic virtual arrays c5d38a2be8, r01a614c69902
- D11251: Geometry Nodes: Support for dynamic attributes on curve splines
- D11265: Geometry Nodes: Add Curve from Edges Node
- D11268: Geometry Nodes: Add Curve Instance Node
Bug Fixes
- Fix T88262: Curve to mesh crash with vector last segment db59f0b943
Cleanup
- Splines: Convenience methods for point offsets of multiple splines r038c6e229c4f
- Cleanup: Update / improve comments e7e183aa2b, 9dabb342ba
- Cleanup: Move attribute code to attribute header 782ccbde70
- Cleanup: Sort node type definitions alphabetically 4226f19a03
- Cleanup: Splines: Add accessors to spline vector 50bf033d3f
- Cleanup: Simplify public/private specifiers 1a94ae9e47
- Cleanup: Use helper function for repetitive code 6b1034d520, r4da16a0707bb
- Cleanup: Whitespace, add doxygen sections a5761bbde2
- Cleanup: Reorder class variable declarations 4333991b7b
- Cleanup: Clang format 88aee2986f
Review
- [Commented] D11191: New Geometry Nodes evaluator
- [Requested changes] D11046: Spreadsheet: Dataset region for spreadsheet editor
- [Commented] D10925: Geometry Nodes: Convex Hull Node
- [Requested changes] D10787: Node Editor: Paste Node on mouse position
- [Accepted, committed] D11042: Geometry Nodes: Add Attribute Vector Rotate node
- [Accepted] D11231: Fix connecting wrong sockets when inserting node
- [Accepted] D11229: Geometry Nodes: Implement the validate_link callback
- [Commented] D10748: Geometry Nodes: Add a new Delete Geometry node
- [Commented] D9678: Bevel on curves does not create distorted geometry anymore
- [Commented] D11270: Expose Sculpt Face Sets To Geometry Nodes
- [Accepted] D11222: Geometry Nodes: Use texture socket in Attribute Sample Texture node
Tracker
- Investigated: 7
- Duplicate: 2
- Confirmed: 1
- Archived: 4
Next Week
I'm travelling a bit so I won't have quite as much time this coming week (still almost a full week though). I'd like to finish up the intitial targets for curves (then I still have some personal ideas I'd like to find time to work on-- volume sample node, 2D curve meshing, and some others).
I'm hoping it will be possible to commit D9697: Refactor IDProperty UI data storage this coming week.
May 3 - May 9
This week I kept working on curve support and curve nodes. On Monday I committed the first change to master. Then I worked from there to add tilt control and a resample node, which is the first actually useful thing about all of this. I haven't quite finished yet but support for curve point attributes is almost ready (though position
will take some more time, automatically adjusting Bezier handles adds a lot of complexity!). I fixed the few bugs that came up with the curve nodes, mostly unreported.
I also worked on performance for the point instance node (another 8x performance boost), and did some random reviewing. We also had a long UI meeting on Wednesday.
Not much cleanup this week, wow!
Changes / Features
- Geometry Nodes: Initial basic curve data support 8216b759e9
- Geometry Nodes: Curve Resample Node 3185084efb
- Geometry Nodes: Parallelize attribute nodes 1d7ee50fef
- Geometry Nodes: Improve point instance node performance 518c5ce4cd
- Nodes Splines: Apply tilt to normal evaluation d08cc63e2f
Bug Fixes
- Fix T88126: Curve resample crash for single point input 7029cc2f8a
- Fix: Incorrect type used for geometry nodes poly splines 441160930b
- Fix: Incorrect cyclic interpolation for nodes bezier spline 7ab7ae80c5
- Fix: Splines: Use consistent bezier linear interpolation method 1f5710326f
- Fix: Curve to mesh node fails with one point and no profile 5bfd5e77b7
- Fix: Curve to mesh node assert when last profile segment is vector e46b9de6ab
- Fix: Curve resample duplicates last point for cyclic splines f694321db0
- D11190: Fix T87316: No undo push for clicking on attribute name
Cleanup
- Geometry Nodes: Refactor point instance node 9569a522f2
Review
- [Commented] D11191: New Geometry Nodes evaluator (WIP).
- [Accepted] D11116: Drag & Drop: Use session id instead of name to identify dropped object
- [Accepted, committed] Geometry Nodes: Add Attribute Curve Map Node ba06bc16ae
- [Accepted] D11165: Switch Node Polish
- [Commented] D10700: USD Importer
- [Commented] D11073: Edge-scrolling for node editor
- [Commented] D11195: View3D: Add undo support for Lock Camera To View
- [Accepted] D11171: Fix T88030: operator showing options it shouldnt
- [Accepted] D11194: Geometry Nodes: Parallelize Attribute Curve Map node
Tracker
- Investigated: 8
- Duplicate: 2
- Needs Information: 2
- Archived: 2
Next Week
Next week I'd like to finish up builtin and generic attributes for curves, and maybe get to the other normal evaluation methods. At that point the base will be pretty solid. There are also some patches I'd like to review, and I want to push on the "Selection attribute" design.
April 26 - May 2
This week I spent most time looking through bugs and doing some fixing. I also did some review back and forth with Jacques on the curve patch to keep that moving. On Saturday I looked into parallelizing some of the attribute nodes, D11139. I expect it depends heavily on the computer, but 3-10 times faster with 8 cores in a linear situation is pretty nice. Really that's just earlier work paying off though, but it's nice to see.
I also updated an old patch, D9697: Refactor IDProperty UI data storage, hopefully we can get that reviewed and in master soon.
Changes / Features
- Geometry Nodes: Add a template utility to mix two attribute values ddaeaa4b98
- Spreadsheet: Add instance IDs from geometry set 1b5b4b067e
- UI: Change "Int" to "Integer" in enum item names 6a664cc945
- D11091: Geometry Nodes: Initial basic curve data support
- D11139: Geometry Nodes: Parallelize Attribute Nodes
- D11103: Generic array data structure (WIP)
Bug Fixes
- Fix T87401: Drop-down can apply the wrong modifier fe79935f00
- Fix T87702: Cannot generate one point with line node in end points mode 14b26fc976
- Fix T87165: Join geometry node doesn't copy instance IDs 7e678c3096
- Fix: Self object missing from geometry nodes evaluator params eecaa59513
Cleanup
- Cleanup: Replace modifyVolume with modifyGeometrySet e032ca2e25
- Cleanup: Mismatched array bounds in function declaration 45a14a20de, 1012e9bbfa
- Cleanup: Move displist.cc to C++ 7e17dbfcf3
- Cleanup: Make function static 77aac42fbc
- Cleanup: Fix unused variable warning in lite build 676ef58a89
- Cleanup: Remove unecessary variable 8dd5fdca3b
- Cleanup: Reduce indentation by returning early c9d1143b33
- Cleanup: Use const argument for context 38ebac86cc
Review
- [Accepted] D11037: Geometry Nodes: Initial Attribute Transfer node
- [Requested changes] D10951: Geometry Nodes: Mesh Smooth node
- [Requested changes] D11073: Edge-scrolling for node editor
- [Requested changes] D11042: Geometry Nodes: Add Attribute Vector Rotate node
- [Accepted] D11125: Geometry Nodes: Refactor instances component.
- [Accepted, committed] D10938: Nodes: Add a callback to check for valid socket type
- [Accepted, committed] D10932: Geometry Nodes: Add an "Auto" option for Attribute Convert data type
- [Accepted] D11085: Geometry Nodes: Improve geometry nodes evaluator api.
- [Accepted] D11086: Fix T85889: Recursive instances result in crash.
- [Accepted, committed] D11062: Fix T87749: Fix text jitter in buttons with icons
- [Requested changes] D10925: Geometry Nodes: Convex Hull Node
- [Commented] D11140: Adaptive Curve Resolution
- [Commented] D10862: Expose Face Sets to Python
- [Commented] D11121: Fix: Undo history for 3D viewport pivot dropdown
- [Accepted] D11108: Fix T87767: Spreadsheet not updating on texture changes.
- [Accepted] D11107: Fix T87876: Vertex groups missing when mesh is in edit mode.
- [Accepted] D11106: Fix T87526: Poor contrast in attribute search.
Tracker
- Investigated: 14
- Needs Information: 3
- Archived: 5
- Resolved: 1
Next Week
Maybe more of the same (fixing final bugs for 2.93, various smaller design topics, curve support, and general refactoring). That's my prediction anyway.
April 19 - April 25
This week I mainly worked more on curves. I got NURBS splines working, generalized some of the interpolation from control points to evaluated points, and planned how I'll implement more features in the future. I'm quite happy with how it's turning out. It's taken a while to get the base working well, but the result is quite nice I think. It should be faster and more understandable than the current curve code, and it lays the groundwork for more features like arbitrary attributes.
Curve evaluation in BKE_spline.hh
has three layers: the control points, the evaluated points (based on the resolution), and then on top of that, uniform/adaptive sampling.
One important thing to recognize is that the user generally cares about the evaluated points and not the mathematically exact spline. The user sees the spline with the given resolution, not the exact version, so evaluation, sampling, deform, etc. should be done with the evaluated points of the set resolution. The other benefit is that it's possible to approximate the mathematical spline very well if you increase the resolution, but using an approach based on resolution means everything can be faster when complete accuracy isn't required.
First the data is interpolated from the control points to the evaluated points. The method is different for the different spline types:
- Bezier uses a map of floats generated alongside the positions with indices and factors packed together.
- Poly just return the input data, nice and simple. This means that the data returned from the interpolation would ideally have optional ownership.
- NURBS Slightly more complicated. For proper interpolation you need to mix values from a few of the control points, so the cache for each evaluated point is a start index and a small vector of weights.
Next, this is my current plan for the third sampling step:
- When you just need a very small values, use the binary search lookup that returns two indices and a factor. Nice because it avoids having to build a large table and is accurate.
- When you need uniform samples, use a function that returns an array of "uniform-ed" parameters (could also use a callback)
- When you need to sample a bunch of arbitrary parameters (curve deform), sort them, then pass them to a function that "uniform-izes" them (this could also use a callback)
I've I also worked more on the spreadsheet row filters, that needs one more update before committing to master though.
Other than that, I spent time mainly on miscellaneous code review and bug fixing. We had a UI meeting too, the first in a while.
Changes / Features
- Geometry Nodes: Get attribute domain and type without allocation b9a7b40924
- BLI: Add "first" method to MutableSpan and Vector 16b2b33d01
Bug Fixes
- Geometry Nodes: Add initializer for attribute creation d1ccc5b969
- Fix T87392: Copy modifier to selected does not do anything 6f761c7110
- Fix T85223: Some modifier panels can dissapear in old files b8b7b47a00
- Fix T87567: Crash adding item in empty attribute search d7caae56c4
- Fix windows build: Don't use designated initializers in C++ 3a6f481d5a
Cleanup
- Cleanup: Clang tidy, clang format 68cbf0a2be
- D11078: Cleanup: Move displist.cc to C++
- D11080: Cleanup: Replace modifyVolume with modifyGeometrySet
Review
- [Requested changes] D11037: Geometry Nodes: Initial Attribute Transfer node.
- [Requested changes] D10895: T86838 Geometry Nodes: Add Mesh To Volume Node
- [Requested changes] D10914: Add Extras Dropdown Menu to Constraints
- [Requested changes, accepted] D10742: Line Art manual page
- [Accepted] D11029: Curve modifiers: Disable 'Apply on Spline' option if not available
- [Accepted] D10748: Geometry Nodes: Add a new Delete Geometry node.
- [Accepted] D11056: Spreadsheet: Combine vector/color spreadsheet columns.
- [Accepted] D11060: Partially fix T87749: Fix text jitter in buttons and spreadsheet editor
- [Accepted] D11021: Fix T87637: Dragging button value cancel not working
- [Accepted] D11011: Geometry Nodes: Support Geometry Nodes modifier on volume objects.
- [Commented] D10980: UI: Add curve handle buttons to CurveMap interface
- [Commented] D10938: Nodes: Add a callback to check for valid socket type
- [Requested changes] D10905: Geometry Nodes: add Attribute Edge Length
Tracker
- Investigated: 8
- Archived: 2
- Resolved: 4
Next Week
Next week will be a combination of bug fixing and working more on the curves.
April 12 - April 18
This week I worked on spreadsheet row filters, the final improvements to the attribute search menu, and I continued working on curves.
For the row filters I implemented drag and drop support, mostly just for the fun of it.
Some initial design documents for a few of the curve nodes:
Changes / Features
- Geometry Nodes: Add domain and data type to attribute search 71eaf872c2
- UI: Add a workspace for geometry nodes in the default startup file ac90c8a774
- Geometry Nodes: Realize instances when applying modifiers 788a28251b
- D10959: Spreadsheet Editor: Row filters
Bug Fixes
- Fix compile warning 06888a8970
- Fix text in startup file python console a4877f9e54
- Fix T87555: Incorrect view transform default in startup file b2a0f69275
Cleanup
- Cleanup: Use C++ types in object_dupli.cc 1e8a808910
- Cleanup: Nodes: Use consistent errors for nodes built without features 8d9fd0427d
Review
- [Accepted] D10994: Geometry Nodes: Use virtual arrays in internal attribute api (WIP).
- [Requested changes, accepted] D10931: Spreadsheet: Breadcrumbs and node pinning.
- [Closed] D4960: New Voxel Mesher Modifier
- [Requested changes] D10925: Geometry Nodes: Convex Hull Node
- [Accepted] D10921: Geometry Nodes: Add Attribute Curve Mapping node
- [Accepted] D10884: Nodes: Tooltip for Group Input properties
- [Accepted] D10962: Spreadsheet: Rename Point to Vertex.
- [Accepted] D10940: Fix T87356 & T87358: Small multi-input socket issues
Tracker
- Reported: T87526: Poor contrast for right aligned grayed text in search menu active item
- Investigated: 7
- Confirmed: 1
- Needs Information: 1
- Archived: 4
Next Week
This coming week I'm hoping to get some of the curve support into master, fix a few bugs, and do code review. I'd also like to create design tasks for a few of the volume nodes.
April 5 - April 11
This week I worked more on improvements to attribute search, row filtering for the spreadsheet, and various other tasks for geometry nodes. One area I focused on was volumes, where I refactored some code for more general improvements.
In my free time I also worked on curve nodes a bit, I've been having quite a bit of fun with that.
Changes / Features
- Geometry Nodes: Greatly improve speed of some mesh primitives 22ba85b510
- Geometry Nodes: Support instances in attribute search 1ec9ac2016
- Geometry Nodes: Bounding Box Node e0a1a2f49d
- Geometry Nodes: Rename grid output UV attribute 1a8db9ec04
- Geometry Nodes: Support volumes in the bounding box node 500045a0d3
- BKE: Add a utility to transform a shallow copy of a volume grid 0e2a1ef132
Bug Fixes
- Fix T87264: Button to remove physics modifier doesn't work 02a7289fe3
- Fix: Dragging a modifier to the same index recalculates modifier stack 2e3b0e8a99
Cleanup
- Cleanup: Remove unused includes, use consistent order 223093ed17
- Cleanup: Use const arguments for volume code fd414b4906
- BKE: Refactor volume bounding box code 57fe650b76
- Cleanup: Rename function, switch order of arguments 79ba4fde15
Review
- [Accepted] D10901: Spreadsheet: Persistent column storage and data source.
- [Requested changes] D10895: T86838 Geometry Nodes: Add Mesh To Volume Node
- [Requested changes] D10202: Geometry Nodes: Attribute Statistic node
- [Accepted, committed] D10900: Use distance property subtype for geometry node sockets
- [Requested changes] D10884: Nodes: Tooltip for Group Input properties
- [Accepted] D10921: Geometry Nodes: Add Attribute Curve Mapping node
- [Accepted] D10928: Fix T87167: Object dragged from Outliner into Geo Nodes doesn't auto update
- [Accepted] D10774: Node Editor: Show frame label only when a label is set
- [Accepted] D10910: Fix T87263: Animation decorator not working on Grease Pencil Build modifier Factor value
- [Accepted] D10926: Spreadsheet: Add spreadsheet width unit.
Tracker
- Reported: T87355: Crash using menu search from the top bar
- Reported: T87356: Bad offset for node link in multi-input socket after disconnecting
- Reported: T87358: Assert for boolean node multi-input socket
- Investigated: 7
- Confirmed: 3
- Archived: 1
Next Week
The next sprint will be focused on finishing up some improvements we want for 2.93, and as a nice surprise, curve and volume nodes, yay!
March 29 - April 4
This week I spent time on miscellaneous geometry nodes tasks, started work on row filtering for the spreadsheet, and finished up my work on the boolean node, including some cleanup of the boolean modifier at the end.
I also finally committed a change the UI team had talked about a while ago: returning hover shortcuts for mesh modifiers. I'm still not happy with the way it looks though-- The blue border around the active modifier makes it look like it's selected, but it has no effect on which shortcut the modifiers apply to. I brainstormed some ideas, nothing great yet though.
I moved the curve support in geometry nodes design document to the wiki. This weekend I started working on implementing this plan-- surprisingly it's not taking quite as much time as I thought. It's been quite fun.
Changes / Features
- Geometry Nodes: Improve speed of boolean node, use multi-input socket e8573a59f6
- Geometry Nodes: Separate grid primitive X and Y size 46d75052eb, rBM7918
- Geometry Nodes: Set default grid vertices to 3 by 3 b1380101df
- UI: Bring back hover shortcuts for mesh modifiers 9f323e9bf7
- Geometry Nodes: Rename "Grid" to "Density" 4fd7b1f3db
- Geometry Nodes: Change point translate and scale node defaults bd9c479475
- Geometry Nodes: Allow float input for point scale node 0e8fa1d44b, rBM7913
Bug Fixes
- Fix unused variable warning caused by recent cleanup a4b6c222fa
- Fix T87094: Transforming geometry instances component is broken 46ee9b599a
- D10870: Fix: Button to remove physics modifier doesn't work
Cleanup
- Cleanup: Remove unecessary C API for direct mesh boolean a0e1080428
- Cleanup: Remove remaining unused code for DispList "bevel_split" 910469eccf
- Cleanup: Remove unused code in boolean modifier d91fec1a85
- Cleanup: Use const arguments in curve code a641e08227
- Cleanup: Use float4x4 type and constructor d037fef3bd
- Cleanup: Move object_dupli.cc to C++ 3ca1cf2b51
- Cleanup: Decrease variable scope 7d467915a4
- Cleanup: Fix incorrect socket list name 73b5afd352
- Cleanup: Improve comment 6ea09db7a1
- Cleanup: Remove unused code 6be964e267
- Cleanup: Remove unecessary part of instances component C API c5d9968392
- Cleanup: Use const arguments 77f6857740
- D10881: Cleanup: Fix incorrect error in mesh validation code
Review
- [Requested changes] D9969: Geometry Nodes: Mirror node
- [Commented] D10506: Point Distribute Volume
- [Committed] D10847: Expose multi input socket in python API
- [Accepted] D10878: Fix T86874: Wireframe Overlay Mesh Primitives Grid, Circle. Add ME_EDGEDRAW, ME_EDGERENDER edge flags
- [Closed] D10866: Fix T86874: Wireframe Overlay Mesh Primitives Grid, Circle
- [Accepted] D10857: BLI: Rename resource collector to resource scope.
- [Commented] D10875: Spreadsheet: Show data of active node (WIP).
- [Accepted] D10871: UI: Align Spreadsheet Reals and Integer to Right
- [Accepted] D10876: Fix T86654: wrong Vertex Interpolation option default when importing alembic caches
Tracker
- Reported: T87138: Memory leak in boolean fast solver collection mode
- Investigated: 3
- Confirmed: 1
- Archived: 1
Next Week
Next week I'll finish up the row filtering for the spreadsheet, and work on some remaining issues I'd like to solve before Bcon4. On Monday I'm going to just work on curve support though.
March 22 - March 28
Since the focus for this past week was documentation, I made design tasks for porting a few modifiers to nodes. I'm finding I really like focusing on design:
- T86838: Mesh to Volume Node
- T86841: Mesh Bevel Node
- T86843: WIP: Attribute Transfer Node
- T86901: Mesh Screw Node
- T86903: Mesh Smooth Node
- T86970: Split Components Node
I also worked on a design task to clarify the idea of using boolean attributes as selections. I think the right approach is pretty clear, tried to think through pros and cons of different options: T86907: Selection / Tagging in Geometry Nodes
Earlier in the week I had a short meeting with Howard and Campbell going over my proposals for curve support in geometry nodes and for converting modifiers to nodes. That was actually very nice; reflecting on it a bit I couldn't imagine doing anything like that a year ago, and their reception was positive!
Lastly I worked with Antonio on getting the grease pencil I/O patch, D10482, ready for master, which we finally did!
Changes / Features
- UI: Remove text for add and remove buttons in cryptomatte node 1a7f9b5005
- BLI: Add "identity" constructor to float4x4 type 2d1120c171
- Geometry Nodes: Remove location and rotation from mesh primitives 23d2174d6b
- Geometry Nodes: Move mesh primitives to their own category 9f19d01e3c
- Geometry Nodes: Make plane primitive size consistent 83df354524
- Geometry Nodes: Rename "Plane" primitive to "Grid" 80530edcae
- Add an example to the Attribute Vector Math page rBM7894
- UI: Use correct property split ratio for node socket buttons a363d64b93
- D10599: Geometry Nodes: Improve speed of boolean node, use multi-input sockets
- D10834: Geometry Nodes: Support X and Y size for grid primitive
- D10420: Geometry Nodes: Bounding Box Node
Bug Fixes
- Fix T86875: "Show on Cage" crash for geometry nodes primitives 8060293656
Cleanup
- Fix build error and warnings in new grease pencil IO code bf0454b78b
- Cleanup: Pass instance group result vector as an argument 64ca286540
- Cleanup: Geometry Nodes: Allow using "Auto" domain to avoid adapting 3d25669486
- Cleanup: Remove unecessary enum funcs 9ad3d1d36b
- Cleanup: Use enum for "in" vs. "out" node sockets 35d5cc8982
Review
- [Requested changes] D10748: Geometry Nodes: Add a new Delete Geometry node.
- [Accepted] D10769: Fix drag and drop issues with Object Info for geometry nodes
- [Requested changes] D10742: Line Art manual page
- [Committed] Abcd08a950: Themes: Update the "Minimal Dark" theme preset
- [Commented] D4328: Boolean modifier: new option to set bevel weight / edge crease for new edges
- [Commented] D10745: Geometry Nodes: Use implicit conversion when writing to built-in attributes
- [Committed] D10822: Geometry Nodes: Center Plane primitive around origin and fix UV size
- [Committed] D10344: Geometry Nodes: add Attribute Map Range
- [Committed] D10650: Geometry Nodes: Add remaining operations of the Vector Math node
- [Committed] D9904: Cleanup: "Warning" in tooltips/description, use unified format
- [Committed] D10537: UI - Remove 'Enable physics for:' text
- [Commented] D10749: Geometry Nodes: Add node labels to Attribute maths nodes
- [Commented] D10639: VSE UI: Sidebar overlapping and transparent
- [Accepted] D10803: Geometry Nodes: Rename attribute domains.
- [Commented] D10831: Add Object: Point Primitive
Tracker
- Investigated: 6
- Confirmed: 2
- Archived: 2
Next Week
I'm not exactly sure what the next week's focus will be, but I expect bug fixing, review, and maybe some prototyping.
March 15 - March 21
This was a very scattered week. I was hoping to get to starting the attribute processor prototype, but I had to keep pushing that back in order to finish the mesh primitives, fix bugs, review code, and have design discussions. I'm still happy with it, it was just all over the place.
In order to make review of the mesh primitives patch easier, I split up some of the new implementations into a separate patch, D10730. Doing that I discovered that the new implementation for the sphere was over 4000 times faster in some cases. Regardless of whatever stupid reason causes that, it's a nice feeling!
I also spent a fair amount of time going over the line art commit for a UI pass, mostly for wording of tooltips, etc. That involved some discussion for figuring out what some of the options do.
I made a design task for a Geometry Delete Node after some discussion because Wannes Malfait wanted to work on porting the mask modifier.
Changes / Features
- Geometry Nodes: Add initial version of mesh primitives 9a56a3865c
- UI: Tweak labels, descriptions, and panel layout for line art be33d3eccd
- UI: Correct icon and description for "Object Line Art" 4de7dc42c9
- Geometry Nodes: Add geometry instances data to the spreadsheet 17a5db7303
- Geometry Nodes: Implicit interpolations to and from the edge domain 97b83b6a67
- Geometry Nodes: Don't create empty components when realizing instances 894e8b18e4
- Geometry Nodes: Rename "Subdivide Smooth" back to "Subdivision Surface" a41d3c0ebe, rBM7843
- Geometry Nodes: Use consistent default for cylinder node 1cc427ce2b
- Geometry Nodes: Move cone primtive to rest on its base by default dbe45073d2
- Geometry Nodes: Make cone primitive 2m tall by default eb7a601e1b
- D10730: Geometry Nodes: Greatly improve speed of some mesh primitives
Bug Fixes
- Geometry Nodes: Refactor / fix point separate node 9b806c49d0
- Add versioning code removed in 91561629cd0b 96abe8a3e8
Cleanup
- BLI: Add location, rotation, scale constructor to float4x4 36deb8a48e
- Cleanup: Remove commented code de6d6e171e
- Cleanup: Don't use class method to override equality operator 2a06657eca
Review
- [Requested changes] D10482: GPencil: New modules for Import and Export
- [Requested changes] D10506: Point Distribute Volume
- [Requested changes] D10345: Node Redesign: Dot Grid
- [Requested changes] D10417: Geometry Nodes: Add all UV Smooth and Boundary Smooth options to subdivision node
- [Accepted] D10526: Geometry Nodes: Add Attribute Clamp Node
- [Commented] D9678: Bevel on curves does not create distorted geometry anymore
- [Commented] D10755: Fix T86602: Redo Last Panel in the bottom left disappears on left click (regression)
- [Committed] Af04606087 Update the deep grey theme preset
- [Accepted] D10729: Documention for Attribute Remove node
- [Accepted] D10660: Geometry Nodes: Expose crease attribute
- [Accepted] D10726: Nodes: Fix crash after undo after recent multi-input-socket changes
- [Accepted] D10741: UI: Rename Init to Initialize Face Sets in menu
- [Accepted] D10725: Fix T86548: Sculpt: Mask by Color tool not working
- [Accepted, committed] D10763: Fix T86701 : Geometry nodes Cube and UV Sphere mesh size
- [Accepted, committed] D10595: Reset View (CurveProfile) function access for python
Tracker
- Investigated: 5
- Confirmed: 2
- Archived: 1
- Resolved:
Next Week
I have quite a bit of review piling up now: the grease pencil IO patch, line art documentation (which I'll probably only look at briefly for something like a "native speaker pass"), and others. Then I should really change back to the hover shortcuts for modifiers sooner rather than later, and there are a few UI bug fixes to get too as well.
On top of that there are some design discussions coming up that I'm dreading a bit since there's some disagreement about the answers. I'm trying to find the right balance of pushing back, but in some cases I just think it's important. Speaking of compromising, I'll remove the location and rotation control from the primitives as well.
Also I'll need to add the manual pages for the primitive nodes...
March 8 - March 14
This week I re-wrote the "normal" attribute, reverting the previous implementation which was a bit hacky and not properly thought-through. I also mostly finished the initial version of the mesh primitives and posted a patch for that.
I wrote down some design ideas for the attribute processor node, thought it seems we'll be heading in a different direction. I wasn't there on Friday when the latest design was presented.
I also wrote about some design disagreements for the "tools" task and the status bar for the spreadsheet editor. The need to do that comes partly from time zone differences, since it's harder to be involved in design discussions in real time. Sometimes that makes it feel like we're rushing with some design decisions.
Changes / Features
- Geometry Nodes: Improve performance of point distribute node 84a4f2ae68
- Geometry Nodes: Revert current normal attribute implementation 2966871a7a
- Geometry Nodes: Add "normal" attribute for face normals ba3a0dc9ba
- Geometry Nodes: Expose "shade smooth" as an attribute 0700441578
- Geometry Nodes: Add Attribute interpolation for polygon domains 80f7f1070f
- Geometry Nodes: Rename subdivision nodes 2e19509e60, rBM7808
- UI: Clean up sub-panel for new boolean modifier options 745576b16e
- Geometry Nodes: Add color to boolean implicit conversion 1e7b2d0bc6
- Nodes: Move group input and output to a consistent menu location 2c216413d5
- Nodes: Add distance float socket type 9f68f5c1e1
- D10715: Geometry Nodes: Add initial mesh primitives
- D10712: WIP: Geometry Nodes: Optimize transform node for meshes
- D10714: Add location, rotation, scale constructor to float4x4
Bug Fixes
- Fix geometry nodes implicit conversion to booleans reversed 8ab6450abb
Cleanup
- Cleanup: Move geometry component implementations to separate files 9ce950daab, d25ab68cf4
- Cleanup: Do not pass stack allocated string to MEM_callocN 996586860b
- BLI: Add "is_zero" method to float2 and float3 types c23da7a5c9
Review
- [Wrote alternate version, committed] D10624: Geometry Nodes: Add Attribute Convert node
- [Requested changes] D10460: Geometry Nodes: Switch Node
- [Requested changes] D10526: Geometry Nodes: Add Attribute Clamp Node
- [Requested changes] D10506: Point Distribute Volume
- [Accepted] D10566: Spreadsheet: New spreadsheet editor (MVP).
- [Accepted] D10681: Spreadsheet: Expose more domains and point cloud data.
- [Accepted] D10701: Spreadsheet: Support showing data from original/unevaluated object.
- [Accepted] D10556: Manual: Add Page for Attribute Proximity (Geometry) Node
- [Accepted] D10645: Spreadsheet: Add boilerplate code for new editor type.
- [Commented, accepted] D10689: Nodes: Fix drag link from output to already linked Multi-Input Socket
- [Requested changes] D10417: Geometry Nodes: Add all UV Smooth and Boundary Smooth options to subdivision node
- [Accepted] D10674: Fix (unreported) geometry node attribute search not working in the Properties Editor
- [Requested changes] D9678: Bevel on curves does not create distorted geometry anymore
- [Requested changes] D10622: Nodes: Add Refract function to Vector Maths nodes
- [Requested changes] D10585: Geometry Nodes: Add shader Color Mix node
Tracker
- Investigated: 5
- Archived: 3
- Resolved: 2
Next Week
Next week I expect an initial rush to get some changes into 2.93 before Bcon2, then I'll focus on working on some of the other things we planned for this sprint, like some of the prototypes we wanted to look into. I'd really like to progress on the "modifiers to nodes" design write-up I wanted to do too.
March 1 - March 7
This week I worked on attribute search for geometry nodes, exposing normals as an attribute, a design document for supporting curves in geometry nodes (T86243), and updating miscellaneous work-in-progress patches. I'm really happy to have the curve support design document mostly finished, I think it turned out well.
I also reviewed a patch for improved breadcrumbs in the node editor, but when I thought it was ready we received some feedback that it shouldn't be committed. The headless status of the UI module means it's not very clear what happens next there.
Changes / Features
- Geometry Nodes: Attribute search drop-down 85421c4fab
- Geometry Nodes: Expose vertex normals as an attribute f117ea2624
- UI: Allow translation for node error messages f53221bff7
- UI: Correct output attribute name in proximity node f4a9883294
- Geometry Nodes: Allow clearing an attribute text field dd43a37016
- Geometry Nodes: Sort attribute search items when menu opens becc36cce5
- UI: Expose an "is first search" boolean to search button callbacks 1a8aee0a7c
- UI: Remove extra blank space for decorators in FCurve modifiers e4a55b46c4
- D10596: Geometry Nodes: Use read-only instances in point distribute node
- D10619: WIP: Curve Profile Presets
- D10623: Geometry Nodes: Add domain and data type to attribute search (WIP)
Bug Fixes
- Fix Node UI Storage Threading Issues 5a3b7c5329
- UI: Rename search button variable a344f20346
- Fix crash when dragging nodes 4dd1068a57
- Fix crash with pinned geometry node tree with no active object f882bee431
Cleanup
- Cleanup: Use span and float matrix type in direct boolean code 023788ef9a
- Cleanup: Rename node UI storage function 3084f6a8e0, 8f2c3c63e9
Review
- [Requested changes] D10482: GPencil: New modules for Import and Export
- [Requested changes] D10566: Spreadsheet: New spreadsheet editor.
- [Accepted] D10413: Nodes: Breadcrumbs for node editor
- [Closed] D10573: Geometry Nodes: Point Array Node
- [Requested changes] D10506: Point Distribute Volume
- [Accepted] D10620: Refactor derived node tree.
- [Requested changes, committed] D10418: Fix: Fixes Bug with Multi Input Sockets picking wrong link if no link is selected
- [Accepted, committed] D10551: UI Cleanup: "Draw" to "Display"
- [Accepted, committed] D10561: Reset View (CurveMapping) function access for python
- [Accepted] D10634: UI: UVProject modifier: clarify aspect & scale are only for camera projectors
- [Commented] D10591: Add Root operation to math node (all Editors)
Tracker
- Investigated: 9
- Confirmed: 1
- Invalid: 2
- Resolved: 2
Next Week
Next week the next sprint will start, so I'm not exactly sure what I'll be working on. There are a fair amount of new features to wrap up for 2.93 though, I assume that may be the focus.
February 22 - February 28
This week I mainly worked on attribute search and code review. The initial version of the search is just waiting on code review now. I did a code review session with Julian on Wednesday, and after that I was able to commit some old patches, which was nice. I still have to work on actually finishing projects I start!
I also spent some extra time working on initial mesh primitive nodes, mostly for fun, but they'll be really nice to have in soon I think.
Changes / Features
- Improve the attribute reference page (for 2.92 and 2.93) rBM7785
- UI: Fix icon width and padding in search menus 6daff9a08e
- D10519: Geometry Nodes: Attribute Search Buttons
- D10527: UI: Add an option to search buttons to allow any string input
- D10528: UI: Expose an "is first search" boolean to search button callbacks
- D10538: Geometry Nodes: Expose "shade smooth" as an attribute
- D10541: Geometry Nodes: Expose vertex normals as an attribute
Bug Fixes
- UI: Reorder mesh merge operator types for consistent shortcuts bc0e121bce
- Fix T84953: Incorrect tooltip for dragging collections 81e795e7f0
- Fix T85963: Combine and separate XYZ nodes don't work on instances 17260c9b9a
- Fix T85979: Attribute missing warning with empty geometry 626a8e0f10
Cleanup
- Cleanup: Remove unused node editor button event defines 01e13e2c95
- Cleanup: Remove unecessary double negative 64c35769f9
- Cleanup: Clang tidy fixes 9ef2679ca9, 89196765ba
- Cleanup: Decrease variable scope af89c9f9a6
- Cleanup: Use bool instead of char 441c660270
- Geometry Nodes: Move node UI storage function to BKE b2c7ea6d82
Review
- [Requested changes] D10413: Nodes: Breadcrumbs for node editor
- [Accepted, committed] D10415: Geometry Nodes: add Location output to Attribute Proximity node
- [Requested changes] D10459: Geometry Nodes: Add alternative distribution options to the Attribute Randomize node
- [Requested changes] D10526: Geometry Nodes: Add Attribute Clamp Node
- [Commented] D10503: VSE UI: rework "Frame Overlay" panel to make it more user friendly
- [Accepted] D10511: Geometry Nodes: Improve accessing attribute meta data.
- [Accepted] D10514: Add documentation for Attribute Combine and Separate XYZ nodes.
- [Commented] D10342: Nodes Redesign: Colored Links
- [Requested changes] D10345: Node Redesign: Dot Grid
- [Accepted] D10215: Fix T83398: Fade inactive geometry overlay option not visible depending on the mode
- [Accepted] D10537: UI - Remove 'Enable physics for:' text
- [Accepted] D10551: UI Cleanup: "Draw" to "Display"
- [Accepted, committed] D10266: Fix T84796: Particle tools properties displayed for select/cursor tool
- [Accepted, committed] D10080: Nodes: Make Virtual Sockets better recognizable.
- [Accepted, committed] D9924: Cleanup: Fixes for labels and descriptions in various places
- [Accepted, committed] D9910: Cleanup: use of the term "Metaballs"
- [Accepted, committed] D9817: Cleanup: "Dupli" to "Instance"
Tracker
- Investigated: 6
- Confirmed: 2
- Invalid: 1
Next Week
Next week I'll continue work on what we have planned for the geometry nodes sprint. Earlier in the week I'll hope to commit the initial version of the attribute search and review the spreadsheet editor code. And again, I have way too many open patches and ongoing projects, I need to finish some of them.
February 15 - February 21
This week I focused on a few geometry nodes features. First is error messages, which also includes laying the groundwork for more information to be stored for the UI during the node tree evaluation, like a list of attribute names, which I worked on later in the week (no visual results yet though).
I worked on some other features: adding mesh primitives, speeding up some nodes with read-only access to instances, and adding the material_index
attribute. I wrote more about the "Attribute Processor" design, and worked on design for converting existing modifiers into nodes.
On Friday I was able to commit some UI patches that had been around for a while, which was really nice! I also reviewed and committed some geometry nodes patches.
Changes / Features
- Geometry Nodes: Node error messages 461d4fc1aa
- UI: FModifier layout updates, drag and drop 1f5647c07d
- Geometry Nodes: Expose material index attribute 53bf04f284
- Geometry Nodes: Support integer type in the Attribute Fill Node 2da0f3e523
- UI: Use property split in geometry node properties ee1c674775
- UI: Expand enum in collection info node 4604350eef
- UI: Use title case for label 2441886c58
- D10420: Geometry Nodes: Bounding Box Node
Bug Fixes
- Fix T83027: Incorrect outliner collection state after operator 34580748dc
- Fix T85664: 3D Viewport issues with curve poly splines ab484ff22f
- Fix T85716: "Applied Modifier:" report hides more important message 47a269745e
- Fix: Attribute randomize node broken for integer attributes f29a1d87e8
Cleanup
- Cleanup: Disentangle outliner active status "get" and "set" 2d5b89be89
- Cleanup: Compile node_draw.c with C++ 520d965c77
- Cleanup: Used derived node in geometry exec params eb2e260540
- Cleanup: Remove use of designated initializers in C++ c075b8bff2
- Cleanup: Comment formatting in node_draw.cc eeeb85baf8
- Cleanup: Comment formatting, spelling b8bf662cce
- Cleanup: Use Vector instead of of raw array fd75f7c135
- Cleanup: Return bool instead of int 585db47d99
- Cleanup: Use const argument, decrease variable scope 5fef212e31, 450ea1b755
- Cleanup: Use consistent order placement for include ba79b8013f
- Cleanup: Clang tidy 73f4dfa3c5, 27fd066baf, 2b8c2438e4, 55700ac390
- Cleanup: Remove type from global namespace in C++ header a7c1aa245f
Review
- [Requested changes] D10413: Nodes: Breadcrumbs for node editor
- [Requested changes] D10415: Geometry Nodes: add Location output to Attribute Proximity node
- [Requested changes] D10417: Geometry Nodes: Add all UV Smooth and Boundary Smooth options to subdivision node
- [Commented] D10355: Geometry Nodes: Add Invert option to the Transform node
- [Accepted, committed] D10316: Geometry Nodes: Add string input node (rBM7770)
- [Accepted, committed] D10409: Geometry Nodes: Add Simple Subdivision node
- [Accepted, committed] D10467: Fix T85410: Quick liquid domain alignment
- [Commented] D10459: Geometry Nodes: Add distribution option to the Attribute Randomize node
- [Accepted] D10432: Geometry Nodes: Realize instances before passing geometry to mesh modifier.
- [Accepted] D10451: Geometry Nodes: Convert point cloud to mesh vertices for other modifiers.
- [Accepted] D10461: Geometry Nodes: Use corner domain for density map in Point Distribute node.
- [Accepted] D10477: Geometry Nodes: Support float2 attribute in Python api and for rendering.
Tracker
- Investigated: 5
- Duplicate: 1
- Confirmed: 2
- Invalid: 2
Next Week
Next week I'll work with Jacques to finish the code for displaying a list of attribute name hints in the UI, and hopefully finish some of the other assorted geometry nodes tasks I've been working on.
February 8 - February 14
We spent most of the week on geometry nodes design, like we planned. Though we didn't have enough time to cover all of the topics we wanted to (simulation in particular we didn't really get to, though Jacques did share some thoughts with me). I wrote a document discussing how to convert existing modifiers to nodes, and worked on a mock-up to address some feedback from Simon.
With the rest of the time not spent on design, I worked on making instances work properly in the node tree, and supporting attribute domains besides "points" in nodes. I also spent a fair amount of time finishing up review for the multi-socket join node, where I ended up adjusting a few parts of the patch.
Changes / Features
- Geometry Nodes: Make instances real on-demand a4baedea91
- Geometry Nodes: Add dependency relation for collection objects 5393054a5d
- Geometry Nodes: Allow attribute nodes to use different domains d7c2c889a6
- Geometry Nodes: Add operation setting to attribute randomize node d4fd06d6ce
- D10393: WIP: Geometry Nodes: Material Index attribute, polygon domain interpolation
- D10420: WIP: Geometry Nodes: Bounding Box Node
Bug Fixes
- Fix Geometry Nodes: Broken built-in attribute exists check 328a8c68b7
- Fix errors in point separate page rBM7750
- Fix T85555: Geometry Nodes: Attribute Vector Math Wrap is broken 314525b8cf
- Fix ASAN report when creating attribute math node b0e483c373
- Fix T85633: Misspelling of "neighborhood" in description 7a608f88a7
Cleanup
- Cleanup: Simplify three functions in displist.c cdb3cbd644
- Cleanup: Register node property layout callbacks in files cfa48c84d0
- Cleanup: Decrease scope of RNA enum definitions dd2ff266ac
- Cleanup: Simplify geometry nodes attribute API usage 0bc281a6dd
- Cleanup: Remove unecessary padding from small DNA structs d72595a594
- Cleanup: Remove unused variable 6a5d17bfb2
- Add additional object to curve_to_mesh test file 85f6674241, rBL62561
Review
- [Requested changes, committed] D10181: UI: Multi-input node socket spacing and interaction
- [Accepted] D10341: Geometry Nodes: Refactor internal attribute access architecture.
- [Accepted] D10305: Geometry Nodes: Initial attribute interpolation between domains.
- [Requested changes, accepted] D10344: Geometry Nodes: add Attribute Map Range
- [Accepted] D10308: Geometry Nodes: Add Combine and Separate XYZ nodes for attributes
- [Commented] D9599: Preserve Layer Collections During Sync
- [Requested changes] D10316: Added New String Input Node
- [Accepted] D10387: RNA: Support bool attribute in RNA.
- [Accepted] D9678: Bevel on curves does not create distorted geometry anymore
- [Committed] D10378: Fix: T85493 move FLT_MAX fill outside of parallel_for
- [Committed] D10411: Cleanup: Fix clang compile warning
Tracker
- Investigated: 11
- Duplicate: 4
- Confirmed: 3
- Invalid: 2
- Resolved: 3
Next Week
Next week we'll be focusing on polishing the attribute workflow. So of course the first order of business is finally finishing the node error messages, because the socket inspection relies on that concept. Then, I'd also be interested in looking into the attribute spreadsheet idea.
February 1 - February 7
This week I worked on a few things:
- Implementing and implementing an API to support reading instances in geometry nodes and making them real when necessary. This project has been really enjoyable, and quite important for the project I think. Though the largest user-visible change will probably be "the collection info node works" for now.
- Node error messages. Unfortunately this is still in progress, but I know the next steps and they should be relatively quick.
- Code and design review for geometry nodes and the UI module
Changes / Features
- D10327: WIP: Geometry Nodes: Instances API, support in point distribute node
- D10290: WIP: Geometry Nodes: Node error messages
Bug Fixes
- Fix T85155: Vertex groups from object don't transfer to next nodes modifier a1c7cab06c
- Fix build error on windows after recent commit b3f9895ab0
Cleanup
- Blenkernel: Move node.c to C++ 198ff4703f
- Cleanup: Alphabetize function order eb7d9e2a1b
- D10352: Cleanup: Register node property layout callbacks in files
- D10289: WIP: Cleanup: Use Map instead of GHash for node type hashes
- D10335: Cleanup: Remove unecessary padding from small DNA structs
Review
- [Updated, committed] D10154: Geometry Nodes: add Attribute Proximity node
- [Requested changes] D10181: UI: Multi-input node socket spacing and interaction
- [Requested changes] D10308: Geometry Nodes: Add Combine and Separate XYZ nodes for attributes
- [Accepted, committed] D10067: Geometry Nodes: Multi Input Sockets
- [Requested changes] D10069: Geometry Nodes: Changes Join Geometry Node to use Multi Input Sockets
- [Commented, Accepted] D10243: Geometry Nodes: Add Volume to Mesh Node
- [Commented] D9599: Preserve Layer Collections During Sync
- [Commented] D10057: VSE: Draw function for add strip operators
- [Commented] D10316: Added New String Input Node
- [Commented] D10347: cleanup: fix source typos (API breakage)
- [Accepted] D10302: Geometry Nodes: New Is Viewport node.
Tracker
- Reported T85409: Quick Liquid has no effect until playback loops back on the start frame
- Reported T85410: Rotation of new object created by "Quick Liquid" affected by user preference
- Investigated: 11
- Confirmed: 3
- Invalid: 3
Next Week
This coming week we're going to try to work on "Everything Nodes Design", which should be quite interesting. I'm not quite sure how it's going to work though, since most people on the team are only working on the project for a day or two a week. I'll have to work on other stuff for much of the time anyway, because of the time zone offset. Hopefully I can wrap up a lot of my existing patches.
January 25 - January 31
This wasn't the most productive bug week, a few of my fixes are still in review, but I just didn't get to very many bugs. It's a bit hard to say in retrospect, but probably for a few reasons: time spent organizing the workboard (which can sometimes result in catching up on old design tasks), time spent working on design for geometry nodes, time spent on code cleanup, time spend on code review, and the difficulty of finding a good bug to work on.
Actually, when I look back on that list, the week doesn't seem unproductive.
Changes / Features
- Geometry Nodes: Support all operations in the "Attribute Math" node 1c4b0c47dd
- Geometry Nodes: Use highest complexity attribute in join node 89484e9754
- Geometry Nodes: Add attribute reference page to manual rBM7667
- UI: Fix ugly alignment of timeline popover buttons a6016bf5af
- Geometry Nodes: Add float2 to attribute complexity map e9e054b987
- D10269: Geometry Nodes: Upgrade Attribute Randomize node with operation
Bug Fixes
- Fix: Unable to animate nodes modifier exposed properties aa030d3459
- UI: Fix incorrect RNA percentage property definitions c71a8e8376
- Fix T83988: Active modifier outline uses search theme color 71cb6923f5
- RNA: Add warning to float percentage property definition 4c4ccdfa36
- Fix build error d9a63d40e2
- Fix incorrect RNA enum default e285765a6b
- D10240: Fix T83027: Incorrect outliner collection state after operator
- D10256: Fix T85155: Vertex groups from object don't transfer to next nodes modifier
- D10203: Fix T84953: Incorrect tooltip for dragging collections
- D10241: Geometry Nodes: Add "Group Input" and "Group Output" nodes to menu
Cleanup
- Cleanup: Reduce variable scope, use LISTBASE_FOREACH macro 0d9f79b163, 8d51c06611, 1f81195fb9, 7a62574338, ae1e68f514
- Cleanup: Comment formatting, grammar 733bcbed46
- Cleanup: Correct comments in ID type enum 70e064f111
- Cleanup: Use const arguments d7a2e0b83c
- D10232: Cleanup: Disentangle outliner active status "get" and "set"
Review
- [Requested changes] D10154: Geometry Nodes: add Attribute Proximity node
- [Requested changes] D10181: Geometry Nodes: Socket Growing and Link Spaceing
- [Accepted] D10194: Fix T84935: Boolean custom data layers not saved correctly.
- [Accepted] D10193: Fix T84907: Incorrect dirty mask after geometry join node.
- [Requested changes] D9849: fix preserving user selected exclude-state of nested collections.
- [Accepted] D10242: Fix for T84038: Improved Report Warnings
- [Accepted] D9817: Cleanup: "Dupli" to "Instance"
- [Accepted] D10217: UI: Current Frame Marker Cleanup
- [Accepted] D10080: Nodes: Make Virtual Sockets better recognizable.
- [Accepted] D9855: UI: Allow node editor wires to have alpha
- [Accepted] D9856: UI: Update community themes for node wire alpha
Tracker
- Reported T85124: Undo assert changing property in redo panel
- Investigated: 7
- Invalid: 1
Next Week
Next week is the first sprint of the second phase of the geometry nodes project. That's probably going to involve lots of little things with attributes and instances. Personally I'm looking forward to creating a proper API to retrieve instanced geometry, and to cleaning up the attribute API so that using it is a bit more intuitive.
January 18 - January 24
This was a relatively less productive week in terms of features and fixes finished and committed. I spent quite a while working on node error messages, which ended up being more complicated than I expected. I didn't quite get to the point of posting a patch for that this week, but it's basically finished.
I spent the remainder of my time doing code review and working on a few bug fixes for geometry nodes. I also spent a while looking into the attribute system, seeing if I could expose the normal
and material_index
attributes. The latter lead to me looking into attribute domain conversion, which is an interesting problem but sort of a big one!
Changes / Features
- D10180: Geometry Nodes: Expose normals as an attribute
- D10142: Geometry Nodes: Randomize random attribute seed socket
Bug Fixes
- Fix: Mouse presses in some areas do not set active modifier e845467d93
- D10175: Fix animating nodes modifier properties doesn't work
- Fix "use after scope" reported by ASAN bd4ed5ca9a
Cleanup
- Cleanup: Store runtime space node variables in a separate struct 6290091bac
- UI Code Quality: Use "params" struct for area and region callbacks 09c7c63890
- Cleanup: Use const arguments, explicit type da6dea5701
- Cleanup: Clang tidy else after return bfa083f873, 4b4aec2884
Review
- [Requested changes] D10069: Geometry Nodes: Changes Join Geometry Node to use Multi Input Sockets
- [Commented, accepted] D10121: Geometry Nodes: New Sample Texture node.
- [Accepted] D10124: Geometry Nodes - Object Info: Transformation Space
- [Accepted] D10121: Geometry Nodes: New Sample Texture node.
- [Commented] D10154: Geometry Nodes: add Attribute Proximity node
- [Commented] D10169: Geometry Nodes: New Points to Volume node.
- [Commented] D10144: Object Context Menu tweaks for consistency
- [Commented] D10148: Refactor modifier copying code.
- [Commented] D10074: VSE: Expose existing Transform Expand as a Select Tool toggle button
- [Requested changes] D10107: Fix T846224: Extra user for geometry nodes data-blocks
- [Requested changes] D9964: Geometry Nodes: Plane Primitive Node
- [Commented] D10131: Fix T84600: prevent bone groups operators on proxies/overrides
- [Commented] D10184: Better categorization in Grease Pencil Layers sub-panels
Tracker
- Investigated: 5
- Invalid: 2
Next Week
A bug fixing week. I'd like to look into UI and geometry nodes bugs, and hopefully finish up some of my previous bug fix patches.
January 11 - January 17
I spent the first half of the week somewhat frantically finishing up polishing changes to geometry nodes for 2.92. The team was only back together this week after holidays, so that left a fair amount of changes we wanted to make for 2.92 in a short amount of time. I'm relatively happy with how it's turning out. There are still some pretty significant usability challenges though.
The first of those is that there are no error messages when nodes don't work for some reason, which I spent some time on later in the week. Other than that I spent time on code review for geometry nodes and UI changes, worked on bug fixes, and participated in meetings, including an extra UI meeting this week.
Changes / Features
- Geometry Nodes: Attribute Vector Math Node ecdbd83a8d, rBM7565
- Geometry Nodes: Output the most complex attribute data type 719bea0d6d
- Geometry Nodes Point Distribution: Align points to face normals 5bd822dc46
- Geometry Nodes: Enable exposing object and collection sockets 89f490932f
- Geometry Nodes: Add "Point Translate" and "Point Scale" nodes 1f4c1c5fc7, rBM7586
- Bevel Modifier: Use angle limit method by default 6b5e4ad589
- UI: Update geometry icon files b9b59aa6de
- UI: Clarify the property name of "F-Curve Visibility" b9e02eace6
- Geometry Nodes documentation tweaks rBM7566, rBM7602
- Geometry Nodes: Rename boolean input sockets 80578a9d54
- Geometry Nodes: Rename "Rotate Points" to "Point Rotate" 8df0268e2b
- UI: Use capital letters for X Y and Z axes 7d749720ad
- UI: Draw socket type colors on the left in group sockets list b75552ebbb
- Bump file subversion after recent node versioning commit 9dab489d51
Bug Fixes
- Fix T84686: Node vector socket default values not animate-able cf9709fd1e
- Fix "Make Instances Real" to work with nodes modifier instances 6c840a2cb9, rBM7592
- Geometry Nodes: Use a default value in the point scale node 0b0e45252b
Cleanup
- Cleanup: Add const in various places in node code 237e27e161
- Cleanup: Fix incorrect function name bf5d45fd99
- Cleanup: Remove unecessary namespace prefixes ad4202a14f
Review
- [Requested changes] D10067: Geometry Nodes: Multi Input Sockets
- [Requested changes] D9964: Geometry Nodes: Plane Primitive Node
- [Requested changes] D10107: Fix T846224: Extra user for geometry nodes data-blocks
- [Requested changes, committed] D10123: Fix T84713: Implement the update function for geometry nodes
- [Committed] D10012: UI: Icon for Multires Displacement Smear Tool
- [Commented] D10074: VSE: Expose existing Transform Expand as a Select Tool toggle button.
- [Accepted] D10081: Geometry Nodes: New Align Rotation to Vector node.
- [Accepted] D10114: Geometry Nodes: Transfer corner and point attributes in Point Distribute node.
- [Requested changes] D9964: Geometry Nodes: Plane Primitive Node
- [Requested changes] D10107: Fix T846224: Extra user for geometry nodes data-blocks
Tracker
- Reported T84639: Scale attribute has no default value after distribution
- Reported T84624: Geometry Nodes: Node group data-block has phantom user
- Investigated: 11
- Invalid: 6
- Needs Information: 1
- Resolved: 5
- Confirmed: 2
Next Week
The second week of the sprint! Hopefully I can get the error messages finished up. I'm hoping to look into adding another data type to the node tree too, and I'm sure other things will come up.
January 3 - January 10
This was mostly a regular bug fixing week. I fixed some UI bugs and some geometry nodes bugs. Lack of communication and code review means it's a bit harder to make solid progress on bugs than it could be though. For example, I still have some open patches for bug fixes from weeks and months ago.
I spent some time advising contributors making patches for the UI and geometry nodes. It's been very satisfying to see their progress. I made a task for a UI inconsistency that the UI team discussed, T84535.
I also spent a bit of time cleaning up old patches for the UI module. Still at 218 open patches though.
Changes / Features
- UI: Improve node group input / output list interface 1d3b92bdea
- Corrections and clarifications to geometry nodes documentation rBM7543
- Geometry Nodes: Don't start with empty group nodes selected 69a22a70ac
- UI: Use the 3D cursor icon for the RNA struct 6ea01dc509
- Geometry Nodes: Gray out "New" button when curve object is active 7fd19c20e0
- Keymap: Enable repeat for "Make Edge/Face" operator 9c07454816
- D10059: Geometry Nodes: Make instances real when applying the modifier
- D10042: Change operators to add new "group" collections to the scene
- D10054: Geometry Nodes: New duplicate node group and assign operator
- D10056: Geometry Nodes: Enable Exposing object and collection sockets
Bug Fixes
- UI: Fix typo in operator description ec90dda318
- Fix T84382: Geometry Nodes: Vertex group attributes are removed 102eff0bd4
- Fix T83868: Disabled or inactive list items are not grayed out 61f1faac3f
- Fix T78681: "Add Primitive" icons are cropped in tool header c20e482714, rBL62537
- Fix T84326: No ID for geometry nodes instances after scattering 3db975f30d
- Fix T78017: Broken layout in "View Lock" panel with armature 5a6dfb7571
- Fix T84517: Two geometry node trees added with "New" button 3c1fcec652
- D10008: UI: Reorder mesh merge operator types for consistent shortcuts
- D10025: Fix T84455: Circle select tool cursor draws in overlapping regions
- D10051: Fix T84417: Common noisy terminal messages when entering numbers
- D10027: UI: Clarify the property name of "F-Curve Visibility"
Cleanup
- Cleanup: Remove unused variables in transform mesh skin code 9316cb33d8
- Cleanup: Use LISTBASE_FOREACH macro 09ea339a6c
- Cleanup: Reduce variable scope 4ade409a87
- Cleanup: Use bool instead of int 1bb530745f, 645298be29
- Cleanup: Declare variables where initialized 95c63babbb
- Cleanup: Use flag type explicitly 9b17e71c23
Review
- [Requested changes] D9949: Geometry Nodes: add method for Poisson Disk sampling on mesh
- [Commented] D9994: File Browser: select files and directories after renaming
- [Accepted] D9567: Gizmos: Keep navigation gizmo visible during modals
- [Commented] D9987: Fix T84367: Fix crash when showing invalid/legacy constraints
- [Committed] D9989: Fix T84183: Dark area in the bevel custom profile widget
- [Committed] D9947: Fix T83094: Alternate rows in the Sequencer are green (macOS)
- [Commented] D10012: UI: Icons for Sculpt Displacement tools
- [Commented] D9937: Fix NURBS Repeat for Extrude doesn't repeat extrusion.
- [Requested changes] D9948: Add fill to Grease Pencil Topbar Radius sliders
- [Committed] D9867: UI: Fix various issues with UI text
- [Commented] D9621: Configurable rotation angle increments
Tracker
- Reported T84530: Failing assert when choosing custom icon for brush
- Investigated: 23
- Invalid: 4
- Duplicate: 2
- Resolved: 2
- Known Issue: 2
- Confirmed: 3
Next Week
Next week may be the first "normal" week in quite a while. As far as I know, we're back to work on geometry nodes. Personally I'm excited to fix some problems with attributes and tackle more "edit mode like" features. I'll also spend time on code review and finishing up ongoing projects (really trying not to start new ones!)