Grasshopper

algorithmic modeling for Rhino

bone microstructure and voronoi diagram... need help

Hello,

I would like to generate the TRABECULAR area in bone (on the picture) using Voronoi diagram (or cell, whatever) in the Grasshopper software.

I have a solid part file generated from micro CT data. 

Can I have your comments on how to generate trabecular-like Voronoi structure ? 

Views: 25229

Replies to This Discussion

Any existing mesh can be made finer quite easily in Grasshopper via subdivision etc. But if you mean smoother as in less irregular surface features, that's a bit trickier, and the Coccon Refine component can do that too, but it's hard to adjust to get anything at all, sorry. Super-fine meshes are huge though and I wonder if your analysis software can handle them?

A little hack has worked amazingly well, that using mesh face center vectors pointing inwards, and instead of extending them through the volume straight, all the way through the opposing side where they get trimmed, I just made stubby inner pointing lines and joined them in pairs with curve blending arcs, then trimmed out quite a few spurious wild ones that swerved outside the surface:

The arbitrary pairing of faces as they happen to be listed in whatever order they come out of MeshMachine affords arcs that by their wildly swooshing nature avoid the way straight plunging lines cluster together as they cross in the deepest interior.

There are several arcs that just randomly swerve beyond the surface, that I trim:

Inside they swerve all over the place, but unlike using random swirles in space, this one is surface curvature adaptive since I start with an adaptive mesh using MeshMachine.

The slow Cocoon mesh Refine component tends to blow up or fail so I have to run only a small number of curves to tweak it back to reality, and even then all the curve can find a failure mechanism the test group didn't suffer. Ugh. No refinement on this one then.

Circling way back to a simple cylinder, and internally resetting the curve blend component two bulge factors Fa and Fb to 0.5 instead of 1.0 gives much more uniform arcs and less or none outside the cylinder that must be trimmed:

...and baking even more lines by reducing the MeshMachine Length target input from 0.5 to 0.1, and running Cocoon surfacing:

So this is the simplest method so far to create a bone-like inner structure: create a uniform mesh via MeshMachine of Kangaroo, and throw inner arcs between arbitrary faces, not randomized, just the order they come in the mesh. Bake that and fire up the Cocoon surfacer, avoiding the Refine component to save you from slow failure cycles of tweaking. A Rhino file is 47MB for these fine meshes so I can't upload it.

The meshes out of Cocoon, even unrefined, are completely uniform so should be ideal for finite element analysis software.

Attachments:

That's cool.

Btw, where did you get that rabbit shape ?

how did you import into Rhino ? 

It's the oldest standard 3D file I know of called the Stanford Bunny. Stupid startup 3D printer companies all print the same damn bunny for their trade show booths, as if anybody wants a crappy plastic bunny!

Here is a NURBS version I made in very expensive Geomagic Freeform via their autosurfacing command, from an STL I found online.

Attachments:

wow awesome...

plus, can I get the link of the STL bunny you found online ? 

Google: Stanford bunny STL.

Thank you.

I really appreciate your help... 

Are you Grasshopper expert?? 

He's a Stanford Bunny expert

and probably he may not even like rabbit :) Nevertheless I feel more math invigorated because of nik's efforts. So here is my CBA,  (Cutest Bunny Award) to nik.......Its a special squeezable sponge bunny. 

I was trained by the best, but as a benchtop chemist and then nano/micro device maker, so my instincts are massive trial and error in seeking a simple, practical and robust "formula" for making something. It's worth answering forum questions since it adds to my personal toolkit in my "Grasshopper Tricks" folder. I'm thus a tinkerer, the natural enemy of "experts."

My biggest excitement today is having blundered into the Keyshot renderer velvet material that affords directional shading frosty highlights that is a superior way to illustrate such thorny geometry in a flat image. I can finally see inside without needing a magnifying glass to see mesh wires that were my other desperate kludge.

Using Weaverbird's Dual Graph (wbDual) to create lines of the dual mesh of the MeshMachine triangular mesh I used, I get a pent/hex surface structure too, which indicates how regular the little pegs are, and now each peg attaches to a surface strut, nearly all being three coming together:

would you have an example definition you would care to share for this last one? btw, the inner structure above looks more or less like a bone marrow channel, for example, interior of a tibia or fibia. If we would take the hex 'surface' mesh you have in the outer layer, and expand on that, to give veronai or spherical or other uniform packing from your hex exterior (leaving the interior intact, using your exterior above as a boundary layer), this would start to be much closer to an actual bone structure. Also, if we made the cell size smaller as we get closer to the 'bone' exterior surface, that also is closer to mimicking real bone. Great work, BTW!

RSS

About

Translate

Search

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service