Blender extension for volume meshes


#1

Hello,

This is a call for Blender science/engineering community people: I’ve been wondering about possibility to use Blender for creating, viewing and editing of volume meshes. That would make Blender a preprocessor for finite volume or finite element analysis (for various kinds of scientific computing and simulations). Blender already has good capabilities for editing surface meshes (vertices, edges and faces), but I wonder how hard it would be to adapt the framework to include also polyhedral cells (volume elements). This involves the concept of “internal” faces, edges and vertices, which are shared by neighboring cells, and “boundary” faces, edges and vertices, which are not. Has anyone already considered or tried this?


#2

I´m not sure what do you mean with volume meshes, but if I´m right what you want could be done with the implementation of OpenVDB, there is some implementation going on made by Tangent Animation, and in theory it will be pushed to master at some point.

I´m not sure how much of the OpenVDB toolset is being implemented anyways, but if you know some developers that could help with this implementation this would be something very welcome by the community, since OpenVBD it´s awesome for some tasks :slight_smile:

Cheers !


#3

Thanks for the reference, but it looks like OpenVDB is using (more or less?) structured grids, which is great if your domain is a hexahedron. Unfortunately this is not the case for irregular shapes, which benefit from unstructured grids. Here is one example. Note: The inside of the volume is meshed (divided into small volume elements using different polyhedron shapes).


#4

I think I understand the idea you propose but I’m not familiar with the details. 3d primitives are traditionally vertex, edge and face, but a 4-vertex volume can be a beneficial data structure to utilise for some types of equations, notably, volume calculations and stress testing etc. Is this the idea you are proposing?

As for the suitability in Blender, since it is something which really only applies to the scientific field of 3d, it would be a difficult argument to make it enabled by default for everyone as it would likely end up confusing a lot of users. That being said, it would be very interesting to have something like this implemented.


#5

Roughly speaking, yes, that’s the idea. Although in addition to tetrahedrons (4-vertex volume elements) I’m thinking about all kinds of polyhedra, cause different simulation programs use those.

Currently, I just wonder if anybody has given a thought to using Blender like this, since Blender is powerful in 3D surface modelling and editing, also for precision modelling and not just free-form organic modelling. There are many many specialized software out there for volume meshing, but they all have their pros and cons, and no single software fits all cases. They tend to have their own 3D-modellers, which are buggy, and often not very powerful. Also, there have been times I have thought that if only I could be able to alter manually that one part of the mesh, then my problems would be solved, and I would not have to make trade-offs to make a volume mesher work right and wait overnight for completely new mesh being generated from scratch.

Certainly this is a niche application area and falls outside of Blender core target of artists, so most likely it would not be included in official source. Instead, it could maybe be a branch (patch set), or a separate add-on. That is, if the modelling framework bends to this task at all. If it doesn’t bend easily, then it’s a no go.


#6

This is my concerns as well. I don’t know that area of the Blender code very well, but it seems like a really cool idea. I think implementing the base structure might not be too hard, but then integrating it with everything else that exists in Blender would be a true nightmare, I think, given that everything is built around the assumption that ‘face’ is the highest-dimensional structure it has to deal with. I think this is difficult even if Blender was perfectly suited to it.

Anyway, I’m looking forward to hearing what others think about this - it seems interesting. Maybe it could be an addon or branch, as you said.