Semi-Parametric Design in Blender

I'm an IT geek by trade, so I love working with parametric design in Fusion 360.  Precisely dimensioning my shapes and letting the computer figure out all the tricky details is right up my alley.  That said, when I'm making a model for something organic, I can't quite express the shapes that I want in the details that Fusion 360 needs, so I have to fall back on an artistic tool, rather than an engineering tool.

As I've been learning to 3D print and to design things to be printed, I've used 2 different artistic tools: Sculptris and Blender.  Sculptris is the free kid brother of ZBrush, which is a tool that serious artists use to sculpt incredible looking characters.  ZBrush is a little (ok, a lot!) out of my price range, but even Sculptris has been sophisticated enough to allow me to make a pretty cool Black Imp model for Gloomhaven.

Sculptris is a little too artistic for me though, as it can be difficult to make large scale changes to things like limb position or proportions after you start adding details in the tool.  If I were a better artist, I'd probably have a good idea about how my model's limbs should be positioned and proportioned before I got to the detailing phase, but I sadly don't always recognize that I have a fundamental problem until I see how funky things look while I'm adding those details.  And, at that point, it can be awfully difficult to fix it.

As I learn more and more about how to use Blender, I'm finding that I can do more and more parametric design-like work in the tool.  That's not to say that's the only or even best way to use Blender, but I think that it is the way that makes the most sense to me.  What do I mean when I talk about parametric design-like work?  I'm talking about doing everything that I can to use very simple geometry plus a whole stack of modifiers that describe the details that I want Blender to add to that geometry.  So far, I find myself using a few modifiers to great effect:
  • Subdivision Surface
  • Bevel
  • Skin
  • Solidify
I've been working on a skeleton design for Gloomhaven, and check out what I've got so far:

I know that I'm not the greatest artist, but I think that it's getting the point across!  And, since the whole skeleton is going to be 3D printed about 3 cm tall, any little details would be abstracted away anyway.  So, that model has a lot of geometry, with each rib individually modelled and all of those organic curves.  Each vertebra is modeled, and then there's the pauldrons (I had to permanently apply the modifiers on the one on the left, to draw the spikes)!  That's a moderately complicated model so far... or is it?  Check out the actual geometry that I've drawn to create this model:


Crazy, huh?  Each rib, from my design perspective, is actually just 4 vertices with edges between them; there aren't even any faces.  In fact, I didn't even draw out those 4 vertices for each rib.  I made it by making a cube, then adding a vertical loop cut through the middle of it and a few horizontal loop cuts.  Then, I grabbed a few edges and vertices and moved them around to get a general ribcage-like shape.  I made use of Proportional Edits to pull out the ribs together, instead of one at a time, and I merged a few vertices for the bottom-most ribs, but it didn't take much to create that basic shape.  Once it was there, I just went through and deleted most of the vertical edges (and their corresponding faces) from the model, leaving me with that framework.  Then, I did the magic.

First, I applied the Subdivision Surface modifier and increased the number of steps a couple of times.  This nicely rounded out the corners, creating the main curves that I associate with ribs.

Next, I applied the Skin modifier, which basically makes a square cross-section follow those nice curved lines.

Next, I applied another Subdivision Surface modifier (also increased by a few steps) so that it would round out those square edges that the Skin created.  At this point, I had a really solid foundation for my ribcage, so it was time to start tweaking settings.

The first thing that I had to do was to adjust the size of my Skin geometry.  I did this across the whole model by pressing a to select all of my vertices, then I pressed ctrl-a and started dragging my mouse around until things started looking good.  I ended up using a nonuniform skin (that's why the ribs are slightly flat) - while scaling, you can press x or y to limit the scaling to one of those dimensions (those are Skin dimensions, not Global dimensions, so just try one and see if you like how it turns out).

Next, I decided that I should create some vertebrae, so I selected the vertice at the top of my spine and ctrl-clicked to make another point.  I made those little cross bits coming off the top and the bottom, to eventually connect with a skull and a pelvis.  I then modified those vertices specifically (by selecting them and using ctrl-a) until I was happy with how the skin was being rendered over them.

Next, I figured that I needed a sternum (mainly to hide the uncanny "whole loop" ribs that I'd made so far).  Since the sternum is a pretty flat piece of bone I figured that I would be best served with a plane.  So, I added a plane to my model (as a separate object), then rotated it so that it was oriented correctly to become a sternum.  I think grabbed the edges and the corners and moved them around to make a kindof sternum shape, extruding another section upwards that I could flare outward.

With my sternum plane created, it was time to use it to make some 3D geometry.  I added the Solidify modifier to it, setting the modifier to make a .3 mm solid plane.  Of course, this perfectly sharp edged shape looked like garbage on my smooth ribs, so I added a Subdivision Surface to it.  This actually took things a little too far in the "organic curves" direction, so I fixed that with the Bevel modifier.

I applied the Bevel modifier, then moved it up the stack so that it came before my Subdiv.  Under Limit Method, I enabled the Weight option, which seems to turn off Bevel.  Then, I went back to my model and I selected two of the edges that I wanted to sharpen, and pressed n to open the details panel.  I found the Edge Bevel Weight setting and adjusted it upwards, allowing the Bevel modifier to apply to those edges.  I played around a lot with various bevel strengths and applying it to different edges, until I was more or less happy with the general curviness of the sternum.  Of course, the overall shape was still pretty awful, but that was really easy for me to change!

Because this newly organic curved piece of bone was actually defined by a few points in a plane, it was trivial for me to adjust its overall shape.  I slid edges around along all 3 axis until I was happy with the overall shape that the sternum had taken (so, I ended up with a 2D plane that was warped in 3 dimensions.  Suck it Euclid!), then scaled and moved the object until I liked how it was interacting with the ribs.  Then, I went back and did the same basic thing to the ribcage itself, grabbing those simple vertices and edges that I created and moving them around, to control the complex modifier-driven shape.

Next, it was time to make the pauldrons.  How'd I do it?  You probably guessed it - I used a plane with Solidify, exactly like I did for the sternum!  But what about those spikes?  Well, those were a bit trickier and, to be honest, I'm not super happy with how they were made, so I'm going to keep working on them and will write up whatever I come up with, once I've figured it out!  I wrote up that follow-up post, about more semi-parametric design in Blender.

Comments

Popular posts from this blog

How Much Filament Do I Have Left

Prusa MK3 Stringing at .05 mm Layer Height Resolved!

Using PrusaSlicer to Design Tree Supports for FDM Prints