Design Process
Once I polished up my starting code from the in-class lectures, I simply added more sections to the grasshopper program to make various kinds of transformations on the rings that define the vase. There weren’t really any designs in particular that I had in mind going in, so it was just a matter of coming up with new modifications and toying around with them.
The lectures already had us set up radius, height, gear/tooth shapes, and twisting, so I added a uniform x,y,z offset, tilt along an axis in the x,y plane, and a height offset as a function of sin(start + theta * speed).
The design process for the first two shapes wasn’t all too noteworthy, just experimenting with parameters to get something that looks interesting while showing off the new transformations. The first vase uses the height offset modifier to give it a crown-like top, while the second vase uses the x,y,z offset and tilt to make a malformed tube.
As for the third vase, I wanted to make something with the twist and gear modifiers, as they were the most interesting to me out of the original in-class modifiers. However, a small oversight in my implementation of the gear modifier caused there to be an extra segment in the rings, very nearly overlapping the existing curve. This led to several hours of troubleshooting and headaches, until I was able to find the overlapping vertices in Blender and tracked down the culprit to the gear implementation.
Images
Vase 1:
Vase 2:
Vase 3:
Misc:
(I forgot to get a pic of vase 1 mid-print :c)
Reflection
Unfortunately, most of my time spent with this assignment was wrestling with Rhino’s poor documentation and its stubbornness with (not) handling geometry in certain cases. Apart from typical blunders you’d expect from working with an unfamiliar program which were mostly resolved by messing around and searching the docs enough, there were two big hurdles giving me way too much grief. The first was that all-too-sneaky geometry issue with excess segments I mentioned earlier, but another was with Rhino just refusing to cooperate. For the third vase, the bottom refused to be capped despite being made from planar curves, rather simple ones at that.
So, I tried to make a separate surface by doing a straight-loft between the two bottom curves, and then join it to the rest of the vase. The bottom surface was created just fine, and fit perfectly in place, and jet Rhino still didn’t want to merge it. I tried a lot of different methods to fix it, including three different ways to mess with the unit tolerance without editing the main Rhino document, but nothing worked. In a last-ditch effort, I baked the two surfaces separately to see if I could join them manually in Rhino instead. It worked immediately. That means something’s likely broken with rhinoscript, and I had to modify the third vase’s grasshopper file by a bit more than just changing parameters (note the edits to the right-most python block), but I got there in the end.
Oh, and I had to import and re-export the .stl file with Blender as well, as Rhino somehow added some extra geometry out at infinity when it exported. So that was fun. The filament usage report threw me for one hell of a loop when I first saw it.
Rhino wrangling aside, it was an interesting experience making models via code and parameter tweaking rather than traditional methods. Of course, that line can get rather blurry when software like Blender have all sorts of parameter-driven tools like array modifiers, special transformations, and common shape generation. It’s taken to the extreme here though, requiring a fair bit of extra setup time before you can see any decent results but after that you can make all sorts of wildly different shapes in just a few seconds, or tweak things to be just right.
I wouldn’t say the shapes I made here aren’t particularly inspired or creative, but after messing with things some more I do have some ideas for some much more interesting shapes I might make with my grasshopper program later on, where I’m not beholden to time or size requirements (aaaand after I get a special type of filament…)
As of now, working with Rhino and Grasshopper is extraordinarily slow, clunky, and frustrating, but then again when has anyone ever not said that about a massive programming library or modeling software that they’ve never used before? I’m sure I’ll build a proper appreciation for Rhino as I use it more.
Grasshopper Files
The blocks/scripts for all of these are the same, save for the input parameters being changed and the right-most python block of vase 3 being modified slightly to deal with Rhino refusing to cap the bottom. It likely still has a mess of commented code snippets from previous attempts at fixing it, so heads up on it being a bit messy compared to the rest.
I like how you used the height offset modifier on your first print to create the crown. I quite like how that turned out. It is a shame you had such issues with grasshopper and rhino, but that final print turned out great. It is impressive that you were able to use different programs to diagnose the issue you were having. Are you more experienced in blender? You mention using a ‘special type of filament’ next time you play around with parametric vessels, what type of filament are you going to use?
Hey Logan, your designs look amazing! I see that you had some problems getting the base to join with the rest of the vessel shell though. I had the same issue. All I did to fix it was to check the Group “Yes, Please” when the bake menu pops up. I’m not sure if this would solve your issue but let me know if you ever try it out! How long did all your prints take? For your second vessel, was it a pain getting the tree supports out from the middle?