Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

tetrahedral "mesh" for solids?

Developers
oct4
2010-09-16
2013-06-05
  • oct4
    oct4
    2010-09-16

    Random question, possibly a dumb one :)

    I do a fair bit of 3D design in AOI for 3D printing via STL files (awesome tool for this BTW) the one frustration is that often the surface will have a little flaw somewhere that breaks the whole thing. Usually between the solid editor, avoiding coincident faces in booleans, meshlab etc I can fix it after a while, but I got to thinking about the underlying problem. It seems to me that this idea of just keeping track of the surface and having the interior implicit - while effective for graphical purposes, especially non-transparent situations - is a bit "brittle" for solid object modelling. I was wondering if it would work to model solids instead as arrays of tetrahedrons. They would be done more or less the same way as triangular meshes are now, but with 4 vertices instead of 3, and neighbours would share 3 vertices and 3 edges (and a face, if they were tracked independantly), instead of 2 and 1 respectively. The advantage to this approach is that every tetrahedron has an explicit interior, and any flaws in a model that open a gap would only have local effects, rather than propagating as is the case when a surface mesh becomes non-manifold and pops like a bubble. I don't think this would add much overhead, you could pretty much convert existing triangular surface meshes by adding a minimal set of interior points such that each face has line-of-sight access to a point from the side opposite its surface normal, and make each existing face the base of a tetrahedron. I think it could also resolve the issue of coincident faces in booleans, as it would just be a question of "is there a gap, if no then it's one object". Would this work? Or is this one of those bad ideas that was dismissed years ago that I'd know about if I knew more about this stuff?

     
  • While I have less comment on the actual implementation, I have been keen for forever to have stronger solid-modelling abilities in AOI.

    I had assumed that Voxels were a good solution, and was happy to see support for them coming into AOI.

    However, the tetrahedron idea seems very interesting as well, although at first glance, I can't see any particular strengths or weaknesses compared to voxels.

    Hopefully this starts a discussion which allows us to get a better idea of how we'd like solids to be handled in AOI.

    Cheers!
    Nik

     
  • Peter Eastman
    Peter Eastman
    2010-09-17

    It's definitely a possibility.  If you want to do this, though, you pretty much have to implement your entire modeling pipeline in terms of solids.  If you keep having to transform back and forth between the two representations, you just create more opportunities for the surface representation to get messed up.

    This sort of representation gets used a lot in engineering applications, where it's known as "finite element modeling".  In those applications, they're usually interested in modeling not just the shape of an object, but also its material properties, so it's critical to model the entire volume explicitly.

    Peter

     
  • Hey Peter,

    Great response - thanks.

    Do you have any comments of the tetrahedral representation vs voxels?

    Cheers!
    Nik

     
  • oct4
    oct4
    2010-09-17

    RE mesh vs voxels, I was thinking the mesh would allow more efficient representation in terms of memory (i.e. a large high-res object could suck up a lot of voxels pretty quickly, even if you allow variable sizing). Also, theoretically zero-loss interconversion with surface meshes if you need them (subject to Peter's comment RE gremlins)…

     
  • Harald G
    Harald G
    2010-09-18

    I would say this depends.
    Since I`m going to compare 3D scan data vs. voxel data I can tell you that with usual parts (what is usual? Let´s assume parts of 150³ mm³) Voxel is the way to go!
    Not only that you can look through the parts, the resolution is on par or even better (I compare standard atos scanner to latest CT generation here - which seems to be unfair - but the pricetag of scanning is the same, while the CT is more than 10 times as expensive).
    Having the interiour is a 2nd advantage - for FEM you might not need building special struktures then, just playing with the resolution of those voxels depending on their importance - let´s guess Octree-reverse optimisation to keep calculation times down or something.

    What do I want to say (lost in concept)?
    Af - Mesh vs. Voxels: Having scanned data compared to AoI current voxel translation, I have prooved that voxel don´t thave the same memory footprint.  (http://img835.imageshack.us/i/voxelvstris.jpg/).
    Though it´s worse when you start game-character modeling - where every triangle counts.
    If you look at other implementations you see that all have special conversion tools for switching between representations.

    Personally I like the idea of reverse engineering (guess why). So from scanned data - may it be voxels or points or polys - back to BREP (STEP, CAD kernels) which is the best representation anyway (maybe not best but most precise).

    It depends on the workflow. For prototyping with printers or visualisation, a workflow with triangulated stuff is o.k. - even CNC milling is easily done with is.
    What for is  a precision for the is like 10E-06mm? The ACIS devs gave an example like: When you drill a hole of 0,5mm in a 500m long ship, than it might be necessary to be as precise as that.

    The things I miss in AoI are those fillets and radius on a model. This is so easy to do in CAD but often hard in polygonalmodeling.
    Trying the Rodin sand(ing) tools on a voxelbox I can make pretty good radius (very unprecise - but hey: it´s art!).  

    I do have high hope on the voxelmodeling - but if somebody came up with an cascade implemetation inside Art of Illusion…
    You may have a look at:

    https://sourceforge.net/apps/mediawiki/free-cad/index.php?title=Main_Page
    or
    http://code.google.com/p/heekscad/

    The question maybe: Is it better to integrate something like that in AoI or integrating something like AoI in these CAD tools?
    I guess: In any case: YES!  :)

    The advantage of integrating parts of Open Cascade maybe, that you get all those fancy curve tools…

    Harald