# Geometry Nodes Targets for Blender 3.5 _The topics are still being moved around._ ## Targets Topics we intend to work on and include in Blender 3.5. * Local Simulation * Opens up a huge amount of new possibilities that people are exploring already using hacks. * [Terrain Simulation by Simon](https://www.youtube.com/watch?v=H4nikXYGxYI&t=7s) * ['Alien Relic' by Sean](https://twitter.com/seanterelle/status/1590937785388920834?s=20&t=EsdLYV9i4nd60aAV7iSdRw) ([Tutorial](https://www.youtube.com/watch?v=zMODkMdc8Ec)) * [Particle solver by Shahzod](https://twitter.com/specoolar/status/1590413853434974209?s=20&t=KPylm_GCsHCI80I2wWxiTA), [2](https://twitter.com/specoolar/status/1591068894114238464) * [Particle solver by Brady](https://twitter.com/bradyajohnston/status/1562448269141164043) * Challenges: * Node UI code changes * Simulation cache management * Store caches to disk * Procedural Hair * To fully replace the old hair system, we need better support for procedural hair. * Challenges: * Find right low level nodes for efficient hair interpolation. * UV and surface should be more easily accessible. * Build node groups the encapsulate high level behavior like Clumping. * Distribute node groups with Blender. * Import Nodes * Removes the need for intermediate objects just for file import. * File path can be dynamic, making it easy to swap out files. * Some file formats support animation. Corresponding import nodes could import specific frames. * Challenges: * Hook up importers to nodes. * Cache loaded file in RAM. * Support instances that support file references to be able to pass the geometry around (and to the renderer) without actually loading it in Blender. * Still need to prioritize file types. * Alembic: * Very generic format, covers most common needs. * CSV: * Helps importing data in e.g. scientific visualization contexts. * Needs some more thought on how to load different columns exactly (every cell is just a string). * OBJ, STL: * Common interchange formats, but don't open up huge opportunities on top of Alembic. * USD: * Probably better to wait with this a bit more until a more concrete plan for Blender as a whole emerges. * Attribute Editing in Mesh Edit Mode * Exact editing of attribute values for mesh elements is not really possible currently. * This is necessary to provide inputs to procedural generators. * Challenges: * Choose which set of operators covers most use cases. * Add Menu * Add menu should be organized to be slightly less overwhelming. * Realisitically, the number of nodes in there will steadily increase, but that does not mean that very long lists of nodes should be shown to the user at the same time. * Instead, make more use of submenus. * Goal is to focus on discoverability for the menu and to focus on speed for the search. * Challenges: * Define exact submenus. * Just start typing to open the search. * Add multiple ways to access nodes with different properties in search. * Field Context Inspection * While it is possible to see what a field depends on by hovering over it, but is much harder to see how it is used. * That is made more complicated by the fact that a field might be used in multiple contexts. * Goal here is to add some additional information to the socket tooltip. * Challenges: * Decide what information to show exactly. * Decide how to present the information (when there are e.g. many contexts). * Figure out how to propagate that information to the tooltip. ## Bonus Targets Topics we may work on if time permits. For some of these we happily help contributors to tackle these. * Dynamic Socket Types * Many nodes have a data type dropdown. * However, generally it should be possible to detect the socket type based on the first link that connects to it. * Picking the type automatically makes such nodes faster to use and removes the need for the type dropdown in the node ui. * Additionally, this opens up new possibilities for generic node groups that can also have dynamic socket types. * The need to change socket types dynamically is also a good step towards dynamic socket amounts. * Challenges: * Visual indication that a socket has a dynamic type. * Integration with socket declarations and dynamic socket updates. * Support propagating dynamic socket types to node groups. * Support evaluation of node groups with dynamic socket types. * Spreadsheet Editing * The Spreadsheet *Editor* is currently just a *Viewer*. * Challenges: * Selection syncing with the 3d view. * Make some cells editable. * Visual indication of what cells a editable and what is derived data. * Capture Attribute Gesture * Idea is to add a gesture that inserts a Capture Attribute node similar to how reroutes are inserted. * Capturing Attributes is a fairly fundamental thing in geometry nodes. Having a gesture dedicated to that makes it faster to use and emphasizes the importance. * Challenges: * Placing of the Capture Attribute node. * What happens when many links are covered by the gesture? * Comments * To add comments to a node tree one can currently use named reroutes, annotations or frame nodes. * None of these options make it easy and convinient to just add texts explaining some aspects of the node tree. * Idea is to be able to search for a "Comment" node that is essentially just contains user-editable text. * Challenges: * UI for the node. * Multi-line text editing in node. ## Out of Scope Topics that would be nice to work on, but don't fit into the agenda for Blender 3.5 because there is not enough time. * Node Tools * Node Operators * Parallel Loop * Repeat Loop * Freeze Cache * Automatic Cache * Socket Compatibility Visualization * Node Panels * Menu Switch * Dynamic Socket Count * UVs ## Who works on what? * Simulation UI: Jacques * Simulation initial evaluation and cache: Hans * Curve Interpolation node: Jacques * Alembic import node: wait for [D11592: Alembic/USD: use geometry sets to import data](https://developer.blender.org/D11592) * CSV import: needs more design work * Add Menu: Hans * Attribute Editing in Mesh Edit Mode: Hans * Field Context Inspection: Jacques