Bug in d.o.p.e

I have found a problem with Tetrahedralize: it is not creating any output for my input.

See attached patch, it shows how my input data is valid (by constructing a simple mesh out of the data manually). All configurations are copied from the original Tetrahedralize help patch, as it should not matter if I feed 6 rectangular faces of a cube, or 6 rectangular sidefaces of a prism.

Fun fact: If you take the help patch and simply replace the cube data with my data, vvvv crashes as soon as I hit Generate.

dope_bug.v4p (43.7 KB)

hey @velcrome, that’s actually expected behaviour: keep in mind that tetgen’s main purpose is to generate volumetric tetrahedrons, instead of triangulated surfaces- ie you can not tetrahedralize (non-volumetric) side walls without a bottom and a top side. If you do want non-volumetric side walls only you can use Triangle to do that, however, this won’t work with dope, as dope depends on volumetric information.

So to model this with tetgen you will have to give the side walls a thickness, which you do by

  • creating 2 6-sided facets for the bottom and the top. Each of these 2 facets consist of 2 polygons, one for the inner ring, one for the outer
  • create the inner 6 side walls
  • tag the inner volume as a hole
    (-tag the inner polygons of the top and bottom facets as holes. For some reason this works here without it)

cylinder_with_hole.v4p (23.5 KB)

Now, if you intend to deform an object like this with dope, you will have to tag the inner volume as a region instead of as a hole and remove the inner volume (vertices/triangles) and it’s blend weights after(!)
the blend weight computations; see partial cages in girlpower/3D for help.
Tbh I haven’t tested otherwise, maybe you can deform the model with the hole right away using (at least) cages, can’t recall having seen examples of that though.

Crashes can happen unfortunately, as tetgen easily crashes on input it doesn’t like. Afaik I can only prevent vvvv from crashing too by moving tetgen onto another thread, which is on my todo list.
What’s new to me is that vvvv sometimes crashes when I open one of the other tetgen examples from the links in the tetgen help patch- can you maybe try and confirm that for me?

ok, this explains the behaviour. does this mean, bodies always need to be completely enclosed?

and am I correct that if one wants to leave the body open intentionally, it needs to be defined as a facet anyway, and tagged a hole?

yes, in order for tetgen to “fill” the body with suitable tetrahedrons it has to be closed, i.e. have facets defined on all sides of the body. To leave one side open intentionally you will have to define a second, inner body and tag it as a hole, then, in order to see that inner (negative) body from the outside you will have to remove (a part of) the facet on the surface too by tagging it as a facet hole. Usually this requires defining 2 polygons for these facets, as in the example. See help patch 1facethole_2holes_2regions for another example of this.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.