[Coding] Intersection Free Offset Surface

Mission:
Create intersection free offset surfaces of complicated models

Rationale:
The “solidify” modifier and “shrink-wrap” modifier create excellent offset surfaces in many cases, however sharp features, concave features or large offsets often result in mesh self intersections which create difficulty for CAM based processes like 3d printing.

Goals:

  1. A primary implementation in python
  2. Optimization of that implementation to achieve reasonable performance
  3. Implentation into blender source

Implementation:
http://www.mae.cuhk.edu.hk/~cwang/pubs/TASEOffsetting.pdf

Related:
Meshlab Remeshing->Uniform Mesh Resampling"

Discussion

I really like the paper above, however it has a broad array of components which may be individually too specialized to merit their inclusion into Blender source without creating redundancy with components blender already has or, requiring too many modifications to Blender’s existing components to fit in nicely. My plan is to follow this paper, however if good results can be achieved by other methods that is fine. The components of the above paper are.

-Distance Field calculation with some optimization filters
-A marching cubes algorithm to generate a volume
-A modified Dual Contour algorithm to generate the surface

Code will be hosted on public GitHub repository and GPL
If developer wan’t to polish code into a clean addon for the CGCookie market to generate revenue to maintain the code, they are free to do so.

Compensation:
Read the paper above, shoot me an estimate. This may not be achievable. Paid via paypal.

Initial Research, will edit occasionally



I was suggesting send to Meslab addon but I noticed its yours :slight_smile:

Patmo, isn’t the original paper problematic for modeling purposes as it uniformly resamples the resultant mesh destroying the original topology? Or is it not important?

The answer is it’s not always important. To my knowledge, most of the 3d manufacturing processes care very little about topology and more watertightness, good normals, and no self intersections.

However I can imagine there are some animation applications that would love for topology to be preserved where possible. So a different approach might be to do a “dumb” offset just using the existing topology and then post process to look for self intersections.

However the volumetric approach allows for a solidification of edges. Good for this kind of work.



If I could find a paper titled “Fast, Topology Preserving, Intersection Free Offset Surfaces” I would have put that one up there ha ha.