Parting surface between cells

unhandled

(Laurent Delrieu) #1

Some weeks ago NERVOUS SYSTEM showed a new collection named Porifera.


https://n-e-r-v-o-u-s.com/shop/line.php?code=21

It is very interesting structure beacause it is based on the separation of a volume (made with cells) by one unique “surface” (not a Rhino surface). Here are the results of my first experiment to partition cells (Voronoi or cubes). It is not yet as good as I want but I have no more (:crossed_fingers:) cell just touching by edge or vertex. Not good because it is not a 50 % 50 % separation. But on one of the separation the skeletton is good.

Here a separation rough and smoothed on cubic cells

The process of construction (animated gif if it works !!!)
random_add

Cubic and Voronoi cells with differents type of volume generation (Sheet solid or Network solid ref at the end)

Minimal surface scaffold designs for tissue engineering


#2

Cool! :astonished:


(Daniel Piker) #3

Interesting work, thanks for sharing Laurent.
The thing about partitioning the points into 2 lattices in that article also caught my eye when I read it.

It seems to me there are many different ways you could approach this partitioning that would give quite different results.
I also think that by working with the point distribution separately from the partitioning they miss out on some of the more optimal surfaces that are possible here - for instance I don’t think a gyroid like geometry could ever result from this system. I was thinking this could tie into something @Dani_Abalde brought up recently about joining particles with a valence (Topology goal?), combined with having 2 types of points, which only snap to points of the same type…

Also, this reminds me, I saw a paper the other day about cellular materials that included some links to old Grasshopper forum discussions on ‘skeletal meshes’ in the references:


(Laurent Delrieu) #4

Daniel, I am happy you responded because I was now in the part to minimize the surface with sort of mean curvature flow so I was just trying to use your Amazing MeshmachineStatic. I will see where I can go with that.

For the surface building I do that

  1. Choose a Cell (say it is white color) and set the faces of this cell as a separation (with the rest that is black)
  2. For all faces that are a separation I look if they can grow on adjacent Cell (black one), they can if they doesn’t touch a white cell with just the edge or a vertex, it is not allowed to have an edge engulfed by white cells… It tooks me some hours to make all the topology class …
  3. Choose among all possibilities new cell,
    3.1) the first cell of the list or
    3.2) a random cell or
    3.3) the cell that maximize surface (I didn’t implement this feature yet) and
    go back to 2 until there is no more “free” faces.

Still work to do to replicate Nervous work.


(Daniel Piker) #5

Interesting approach of growing from an initial cell.

I suppose one advantage of working with Voronoi cells would be that since there are 3 cells around each edge, and 4 around each vertex (except in certain degenerate cases, such as the points being on a cubic grid), you don’t need to worry about cells touching only by an edge or a vertex.

My attempt at this was to randomly assign all cells to either black or white, then for each one (in a random order), count how many neighbours it has of each type, and turn itself into the type it has the fewest neighbours of.


#6

How nervous system keep track of neigbhours in thiat pointcloud?
Is there any graph behind where cells are not cubes?


(Daniel Piker) #7

They’re using the connectivity of the Delaunay graph of the points


(Laurent Delrieu) #8

I assume it is the 3d Delaunay graph with tetrahedrons ! As they are implemented in Mesh+ it could be used in Rhino/Grasshopper but I haven’t any idea for the logic of use.

I have also big problems to minimize the mesh with MeshMachine!!

I have also to implement the area maximazition to test if I can be better. One volume 35000 mm^3 and the other 64500 mm^3. If optimum volumes must be similar.