---
# System prepended metadata

title: 'Dynamic Sockets [Proposal]'

---

# Dynamic Sockets [Proposal]

In the future we'd like nodes to be more dynamic in the following three ways:
* Dynamic socket type "category":
    * Currently we only have two type categories: single values and fields. However, more types may be added like lists, [volume grids](https://hackmd.io/7cr7MtT2RsaPgb62a7fiKA) or images.
    * Many nodes can work with any of these types (e.g. math nodes). So their sockets should be able to adapt dynamically to how they are used.
    * Possible solution: [asterisk socket shape](https://projects.blender.org/blender/blender/pulls/113608).
* Dynamic socket type:
    * Many nodes deal with data types in a generic way. For example, the `Capture Attribute` node can work with any attribute type.
    * Ideally, we wouldn't have to show a type dropdown in all of these nodes, but the socket could change it's color automatically.
    * Possible solution: use a black socket for undetermined types
* Dynamic socket amounts:
    * Nodes like the `Capture Attribute` or `Sample Index` node could work with multiple attributes at the same time. This reduces the number of required nodes and can also lead to better performance.
    * This was discussed at a previous [workshop](https://devtalk.blender.org/t/2022-10-31-geometry-nodes-post-bcon22-workshop/26491).

The tricky thing here is that all of these concepts are orthogonal, so they can be combined in arbitrary ways.

Another difficulty is that it should be possible to expose all of these features to the node group interface.