# Pass editing data through geometry nodes.
Very common user request - allow partial result of geometry nodes to editing.
This very unreliable and destructive modeling type.
Problem:
- If user-defined data is changed (implicit way to change), how propgate this data? Examples:
- You create building model procedurally. That one have 6 windows.
- You edit one window.
- Now you want to back to geometry node tree and fix one mistake.
- Wow, now there is 8 windows. Choose your way, samurai:
- Edit this another time manually?
- Propagate canged position on nearest other window?
- Delete nearest points to deleted by user ones?
- Copy by indices? you create offset forward. new windows with same indices is look to left. Now you have windows, shifted along a wall and collided with other random window.
- ...
- By this reason, it going never be added. Its just hack to esea break really big project by lazy avoiding procedural modeling in some places.
# Mesh for editing.
If impossible to apply user-defined changes on procedural geometry, there it another way, just edit mesh with geometry nodes.
Problem:
- Just old mesh editing, but result processed by geometry node modifier.
- Select, hidden, ..., normals overlay is just attributes.
- Instances, static inspection, screen space text is just another geometry node result.
- Now isnt work in all cases (?).
# Values.
Editing value from node tree / modifier instance in edit mode directly?
Use casses:
- Reduce a lot of inputs for modifier by 3d-space input during editing?
- Why only for editing?
- Assets, dragged from store, immediately have an explicit way to edit them. No needed to entering into edit mode or looking into modifier panel.
- Just imagine: Dragging a chair from assets, tack down it on floor, and take some it settings to change it height.
- High level node groups example. Cloth simulation:
- Fabric cuts made by sewing blueprints.
- Combined as parts of character suit.
- For starting simulation, need to locate this much similar to the real positions on the mannequin.
- But each node group, generated cloth cut, have only input socket.
- Take random socket in node tree to change random cut.
- Create empty objects, and sample it positions.
- Same as empties, but for dummy mesh points.
# Gizmos editing.
Gizmos inputs allow to edit some generated things directly in 3d space.
But:
- Who is owner of gizmos data?
- Is there some ways to reset this data? How copy this?
# Gizmo nodes.
Gizmos, owned by modifier instance, have several problems:
- It not a data block.
- Modifier already overloaded by user inputs. All gizmos from all node tree (inlined node group instances) is really a lot of new datas to controle.
- For changed node tree, data will be reseted (some kind of heuristic to save the largest parts of the old data).
Other way. Node with property, changed from 3d view.
- Each node represend it own property and field to change.
- Nodes esea to copy, reset, ... .
- Is not a cow data block.
# Gizmo component.
There is some problem:
- If geometry can be changed in next nodes (transformed, delete, duplicate. instanced, ...), gizmos have to reproduce that.
- Gizmo should have attributes:
- Gizmo located in object space. After that, gizmo located in it own transformation space (to align to parent geometry part). And in that space gizmo is dragged.
- Gizmo can be colored.
- Gizmo is edited like other geometry (... -> get attribute -> save attribute -> change geometry -> use old attribute -> ...).
Final design:
![](https://i.imgur.com/a4UdOkb.png)
## In that example:
- Color is just captured colot attribute (in Chain Gen node group).
- Value input is template of gizmo nodes. It contain value.
- Output of gizmo nodes is it value and geometry component (There is a question about whether to sample the gizmo values from the geometry, or just have it as a separate output.).