Refactor topology based symmetry/Add attribute based symmetry
There are two options in edit mode for symmetry editing: position based and topology. And the topology option, in theory very useful, is broken - at least from user view point.
What do I mean? It often doesn't work for many vertices in the mesh, even if it comes straight from the mirror modifier, and it's not considered a bug - official developer explanation is that it's based on "unique topology", but what does it even mean? Does it assign hidden attributes to the mesh? Does it compare faces and edges in real time?
This type of symmetry has weird and forgotten inner workings, and it seems like nobody actually knows how it technically works. And it creates many headaches for the user, because from their perspective it just doesn't work.
So what I propose is to refactor how it works or add another symmetry type based on assigned attributes (assign an ID to every vertex on demand and store it in attribute data, then use matching IDs to determine which vertices are matching for the symmetry) - to be more reliable to user, to have good solution for edit mode symmetry that doesn't depend on perfectly aligned positions.
3 Comments
I had exactly the same thought when I tried the topological Symmetry in Blender and I wrote an add on and I put together a set of Geometry Nodes to assist with symmetrizing a mesh. The add on is doing exactly what you are suggesting in this post. It is adding a mesh attribute in the point domain and for each vertex is storing the opposite one. I also decided to do something similar to Maya where you must pick the middle edge to track the symmetry. In case you have multiple elements in the mesh they will not be tracked and their value will be -1, but if you run the operator again you can track the symmetry one them and it will maintain the ones already tracked. If you want to give it a go you can download it for free here: mmemoli.gumroad.com/l/meshTopologyAttributeCreator There is also a video where I explain how to make it work
I think the topology mirror option is pretty well explained on the manual.
From Tool Settings - Blender 4.2 Manual :
What do you mean by "another symmetry type based on assigned attributes"? This isn't self-explanatory either.
The topology mirror is weird even in complex meshes - when I subdivided a mesh, it now makes one of front vertices in the middle edge loop snap to a vertex in the back. That description is still pretty vague, because doesn't explain what these relations exactly are and why it would fail in so many cases.
For attribute based symmetry (I'll add in the main post as well) - assign an ID to every vertex on demand and store it in attribute data, then use matching IDs to determine which vertices are matching for the symmetry. This can be achieved with geometry nodes, but it's not realtime or is restrictive - it must be a modifier or a tool that must be called every time to force symmetry.