Wings 3D Development Forum

Full Version: Openfoam surface
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I’m new to Manifoldlab and wings3d for that matter. ManifoldLab is awesome with what you can do with it!

ggaliens, I’ve watched alot of your videos to better understand how to use Manifoldlab. I’m trying to reproduce what you’ve made in this video with the stanford bunny and rod it to make an open foam surface.

https://www.youtube.com/watch?v=fN-jNg3Mbuo
https://www.youtube.com/watch?v=t6HezhFE0qw

I’ve been able to make a nice isotropic surface, subdivide it and removed hard edges and vertices. It looks like the next steps you've done is make the outer foam tidbits (extruded them maybe?) than later the inner foam was made. But how exactly I’m not sure. Could you explain how the process is done? Amazing tool ManifoldLab is!
"OpenFoam NOT-SURFACE" is a lot harder than OpenFoam Surface.

Yeah ... the dense lattice all the way through the body is created by ASSURING that tidbit centroids land exactly on the surface of the mesh. The way to do that is to create a "COFFIN" of tidbits around the object being foamed. Basically ... you take a double mesh ... a mesh nested in a mesh. And you make Tetrahedrons throughout both meshs but with a parameter than makes the TETS OBEY The surfaces. That's the key to making sure the outermost tidbits have nice shape. The innerones may or may not be so nicely shaped. You can see that in the bunny.

The outer coffin surface used to WRAP the target surface (bunny) could be an ellipsoid or maybe even a convex hull for the bunny. Then the hull or ellipsoid should be resized to be at least a few whole tidbits (diameter) larger than the bunny ... measured from surface to surface. This is a fudgy factor that will take time to optimize.

So the whole KEY is to pic the proper -a value for TETGEN to size da foam nice.

The next tricky step if to re-process the tetrahedron centroids to the voronoi function to use them as "SITES". This is the thing that guarantees that the foam tracks well or obeys the surface.

I hope this make some sense as a descriptive narrative for the how to.

You can e-mail me about this if you would like more information or would like to SKYPE me about the process.

And the final step is to BOOLEAN the carefully created tidbits the the proper surface so as to cut all the surface aligned tidbits in half.

Sometimes all this is JOB-SECURITY for me ... LOL. I get some folks wanting me to run the process for them ... even after I teach them.
That’s awesome, There are definitely a few steps involved and should be a bit of a challenge! A lot of the tools in manifold lab are much different to what I’m used to using. I’m going to try the process out as you described and see how far I get.

I’ll most certainly have some questions later on and be sure to ask them, but I think you've explained it enough to get started.
Send me intermediate files if you have an doubts and I can tell you if each step is valid.
I can dropbox. Of particular interest would be how you "coffin" your shape.
Wholly cow. I just stepped back to this to see if the workflow was sane/remember-able.

Man ... there are bunch of steps.

One step I think I forget ... Triangulate all the foam tidbits before doing Boolean / intersect accumulate.
The bunny hull was triangles. But all the foam tidbits must all be triangles too ... and later we remove
the unwanted edges doing diagonal across quads and pentagons and such. But they must be triangles for a good boolean result.
So the whole KEY is to pic the proper -a value for TETGEN to size da foam nice.

The next tricky step if to re-process the tetrahedron centroids to the voronoi function to use them as "SITES". This is the thing that guarantees that the foam tracks well or obeys the surface.
You got it James F.

But there is also "coffin-ing" the thing of interest so that the tidbits that fill the AOI are uniform. If you don't run the operation ... well past your AOI boundary ... you get different looking tidbits at the boundary ... spikes and un-bounded titbits ... which is not good.

So we use a "coffin" approach ... a buffer overrun. Which then means we need to BOOLEAN all tidbits with the actual AOI.

So ... our way is not that easy.