Complex {protein} mesh representation for fabrication - suggestions?


I have a question I’ve been meaning to ask but that I keep setting aside thinking it cannot be done.

I am most likely being ignorant, hence I seek suggestions from the diversity of expertise/creativity here upon hitting a wall.

Long story short, I am working with protein meshes, which I slice with a plane:

We do a bunch of ‘digital fab maneuvers’ to obtain an ‘illusion armature’ made of flat cutouts:

All fine until this point.

However, the next step (and wish) is to embellish these elements with a ‘ghost’ of what otherwise would be the highly complex isosurfaces of the proteins.

First we do a random reduction of mesh vertices so the rest of the process doesn’t take forever:

Then we project (flatten) these points and keep only what falls inside the slice curve (from the section plane shown above):

From here, our current, somewhat ‘simple’ approach involves deriving a population of 2D polygons based on proximity lengths:

These polygons are intended to end up as markings or perforations on what becomes one slice of the puzzle:

Ready to laser-cut:

Sooo, the real question (please pardon me for taking this long - we thank you forever if you’ve gotten this far) is:

Do you know of a way or trick to somehow obtain a Make-2D-like ‘graphic’ of the mesh itself? Something to ‘tattoo’ the part with and that could resemble the creases or contours of the shape itself (as denoted by the red markings in the image below)?
The problem is that this single piece will take ~ 44 minutes to cut on the laser, while it’s only one slice out of 6, out of 24 parts making up the entire armature, out of 18 armatures…yup, you don’t need to do the math to determine we’ll dig our own graves in the shop waiting for all parts to finish cutting. Therefore, embellishing the parts with a bunch ‘make 2D texture lines’ coming from the shape (instead of perforations) would very significantly reduce cutting time(s).

*Edit: Although we can further reduce the amount of points/perforations, you’ll reach a point the isosurface detail(s) won’t translate anymore.
Those red markings are simply a result of highlighting the mesh against the points in grasshopper, somewhat of an ‘illusion’:

Meanwhile, I saw this post from many years ago where the OP asks about Make2D details coming from the mesh. It’s quite similar to what we want in terms of graphic details.

If I do a manual Make2D on Rhino, I get what you see below - seems I can’t get away from getting the mesh wires, which is simply too much data.

Rhino 7:

Rhino WIP:

I don’t think it’s possible to obtain the desired details via isolation of result types from the Make2D component, though:

Thanks for looking.

1 Like

Hi @_RC ,

Do you happen to have a file you can share to test with?

I’m thinking you can leverage the planes you get from your “slices” to set views for each slice and run a psuedo make2D operation from that.

Potentially, it may be better to create shaded views oriented to each slice and then use the shading values as an image sampler map to then populate points/curves/hatches at the shading locations based on black values to get details on the flattened slice areas.

1 Like

Hi @michaelvollrath

Thank you for checking this out - I was about to delete the post, haha - not trying to make anyone work, so greatly appreciated :slight_smile:

I will prepare a simplified file, bear with me.

In the meantime:

Yes - quite promising

Very interesting and makes sense - we have done something similar to this where I use the RGB colors from lidar pointclouds to to turn into and dictate sizes of perforations - equally insane when it comes to machining time, but it’s beautiful:



I imagined I could ‘colorize’ the protein mesh and use brightness values to dictate point groups and generate connectivity from there, but I felt like the surface details wouldn’t translate.

If I project the mesh slice onto the plane, do some clean-up, then grab the mesh dual, the hexameric-pentameric pattern is cool in that it looks ‘molecule-like’ and sort of transmits the shape artistically, but it’s still too crazy for the time it would take given the amount of perforations - we like it but it’s just too much:

Currently contemplating something related to ‘terrain slope’, like in this post, as a way to analyze the ‘topography’ features of the protein mesh and maybe derive my creases that way…

1 Like

Thanks Rene, I look forward to taking a look at the example!

Another thought is to take your projected/flattened make2D style mesh wires, get the vertices and then cull the vertices based on proximity overlap. If points have say 2 or 3 overlap occurrences it’s just a mesh wire intersection you can ignore but if you find say 10-100 overlapping points in a single area, keep those points as that means it’s a “shaded” area for lack of a better explanation.

You could then average/cull duplicates on the remaining points

1 Like

Alright here it is - thanks for the patience, it took a minute (484.2 KB)

Needless to say,


Thanks again!

1 Like

Yes that’s much easier to work with thank you!