Fix Geometry Intersections SOP tries to fix a self-intersecting geometry.
The tool is free and currently needs some testing. So any feedback is very welcome especially regarding performance and usability.
HOW IT WORKS: It detects the intersecting primitives, then blur their point positions. This process is repeated iteratively inside a feedback loop.
FEATURES:
Up 3x faster Intersections Detection than vanilla Boolean Detect, thanks to parallel processing. This feature alone can save a lot of time with heavy geometries.
Manual Mode with caching implemented: You can run a number of iterations, and follow up with a second run of iterations to improve upon the previous work.
Automated Mode: auto-adjustments of the parameters on each iteration based on the performance in the previous iteration. The HDA aggression to the geometry can automatically increase or decrease.
Automated Mode: manual launch button. You can set the parameters and then launch.
Automated Mode: live-link. The process is automatically triggered at each geometry or parameter change. This is very useful for procedural and wedging workflows.
Status Report: directly on the parameter interface, so to facilitate the workflow.
Log for each iteration: in the geometry spreadsheet of the second output.
I'm developing a new module to help fix self-intersecting curves on a plane. This could be useful to automatically produce a lot random shapes or single-primitive patches.
The intersection detection of the lines at the moment uses the very slow (but reliable) Intersection Analysis SOP. I'm experimenting with a Vex based solution which is very promising (a way lot faster), but not as stable: the idea is that each point should throw a ray along the polyline and check for intersections.
I believe I fixed one of the 2 problems. For the second problem I filled a bug report with SideFX and meanwhile I had to erase the whole help page (which was generating the error message on mouse-over any parm). So, no more tool tips or documentation for now. Tell me if it's working for you.
Meanwhile, for the next release I'm working to implement the following features:
Refactoring the UI to make it simple and fix some UX error.
Caching support also for automated mode. So that you can run for (say) 50 iterations, and then start a new run from the previous result.
Support for fixing UV intersections! Which I guess would be a big deal?
Fix lines intersections, which is already working (see above post), but still relies on the slow intersection analysis sop.