# 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.).