Topology Issues Check plugin

Hi all,

I have created plugin for checking topology issues and possible mesh problems, just by selecting all problem zones of the mesh. I think that this plugin will be very helpful in modeling process.

Script and some screenshots attached.

Options and buttons description:

  1. Button “Check Topology Issues” - selects all polygons and vertices that seem to be issued.
    Options:
    a) Allow 5-edged poles - It means that poles with 5 edges will not be issues
    b) Allow triangles - Do or do not accept triangles in mesh
  2. Button “Show 5-edge poles” - selects all poles with 5-edges (Just useful helper, I think)

Additions:

  • Check orphan vertices
  • Check not closed meshes (edge is connected only to one polygon)
  • Check strange intersects (one edge belong to more then two polygons

Attachments



topology_issues_101.py.zip (1.8 KB)

nice, wanted to do something like this but had no time because of other projects. will give it a try when i get some time:D

Nice script

so i tried the addon on a mesh with ~60k triangles and it took a looooong time (like 40 minutes) till it completed… and then all vertices where selected:D
since the mesh was created with dynotopo and remeshing/trinagulation there were lots of n-poles so maybe it would be a better idea to let the user define the number of poles to search for?
and i think some timings wouldnt hurt to see what takes so much time. if you want i can take a look at this.

Kromar, this plugin is probably should be used for retopology models. If you want to check dynotopo models then probably you should set “Allow triangles” checkbox, cause dynotopo and other sculpting techniques creates a lot of triangles, poles, etc. and this model is probably need to be full recreated rather then checked by plugin.
You could probably look into code, but I think that it will not be more faster then it is now, cause one of the slowest part of the script is part of finding edges that belong to more then 2 polygons and the difficulty of such search is O(polygon count * edge count), I think that for your model it is about ~11 millions of checks. It is really very hurt I think :slight_smile:

Version 1.0.2 update:

Added additional options - weather to check or not strange intersects. (Cause this functionality really harms work time)

Here is the result. Issues were checked less then 1 second.


Attachments

topology_issues1.0.2.py.zip (1.86 KB)

that result looks similar to what i got. the thing is that i would not consider most of the selected verts as problematic on such a mesh.
can you tell me for what the script is searching on such a mesh?

i would rather see it detect like holes, disconnected verts, nonmanifolds and such things on this mesh.

Nice idea, gonna check it out and report back.
Thanks!

It will check holes if your set “Check strange intersects” cause it will count all edges connected to less or more then 2 polygons. It also will check disconnected verts, cause they are not connected to any edge and it will be pole with 0 edges - and this is problem.

As for dynotopo mesh it is selected at most half of the vertices cause they are 5-sided poles - and this probably is problem, also there are too many triangles - it is also problem.

I use this plugin when I already made retopology and I want to check that I did not create anything bad or I have not get too many 5-sided poles near each other cause it could probably issue animation.

with bmesh module, mode switching could be avoided, but dunno if that would make it much faster or rather a little slower…