# 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