After we figured out how to greatly simplify our 3d models, Sara and I turned out attention to creating different levels of elevation. As a concept this is pretty simple; we used different brightnesses in areas of our 2d picture to tell Blender which shapes we wanted to be the highest, second highest, etcetera., all based on assigning thresholds of pixel value to different “z axis” numbers, which in Blender would become the elevation of the sprinkles.
Thrilled with our success for all of half a day or so, we quickly came to the realization that because we were using sprinkles (which are square), even with a wide range of elevation options, making a smooth hemisphere with the Cupcake would be almost impossible. It’d be like trying to create a pyramid or a dome and getting a ziggurat instead.
So we began brainstorming ideas for creating half a sphere over the surface of our model in Blender, using only the Python scripts. This was problematic to say the least because a) most of Blender’s power comes from the manipulatable interface of the model itself, as well as the hotkeys. Both of which are useless when scripting; and b) There is no “create half sphere” handy hotkey period, even if we could use them. In a fit of creative delusion, frustrated hair-pulling and occasional trips to the local icecream shop, we came up with four ideas. (The last one worked, in case you were panicking on our behalf.)
Idea 1 went something like this: “If we create a whole sphere (Blender lets us do this pretty easily) and chop it in half, we’ll have half a sphere!” Not only did we fail to find a reasonable way of removing half a sphere’s vertices, but we also realized that we’d have to fill in the bottom of what would essentially be an overturned bowl shape. That idea was crossed out. I’m sure it’s possible to do, but our fate lay along a different path etcetera etcetera.
Idea 2: “There’s this cool modifier called ‘Subsurf’! It makes things all rounded!” I’m not quite sure why this one was a flop. I think it had something to do with my tendency to form vague ideas around nifty buttons in art programs.
Idea 3: “We could create branching arcs above the x-y plane, and just fill in the shell with vertices.” See “Idea 2”.
Idea 4 (The One That Worked): “Wait! Boolean expressions! Yes!”
The gist of what we ended up doing is that we realized boolean operations on different objects are pretty simple to script. Boolean options in Blender work just as they do in logic. “And”, “or”, and “not”. We used the Difference boolean operation on a cube and a whole sphere, after positioning them so that they overlap about halfway. What this did was create a sort of ghost mesh of a half-sphere, by telling Blender “remove all of object A that intersects with object B”. (“Difference” is the only Boolean operation in Blender where it matters what order you specify the two objects). So we ended up with a hemisphere (like we wanted), because the rest of that sphere shape overlapped with the dummy cube- which we deleted afterwards.
Now that we could create rounded surfaces wherever we wanted; the next step was to let the user specify where they wanted them, using a GUI.