The Boat Project, Part 3: Rapid Prototyping

After a year of sporadic modeling and two blog posts, finally, it was time to actually build something… sorta. A prototype boat model; Derek Zoolander’s Boat for Kids who Want to Learn to Boat Good and Do Other Stuff Good Too. The real one would need to be at least 3x larger.
The importance of rapid prototyping might be my single biggest learning from engineering in the real world. The 80/20 problem is real. In engineering contexts, it usually means “80% of your problems come from the last 20% of technical details” or perhaps better put, “The first 80% is the easy part”.
Perfectionists (aka time wasters) let this principle sink them. A smart engineer knows when it’s time to put down the pencil, light the fuse, hide behind plexiglass, and see what happens before engineering further.
“One test result is worth a thousand expert opinions” -Wernher von Braun
Of course, rapid prototyping can itself be time consuming and expensive, depending on the project and the tools at your disposal. But modern robotically-driven machining processes have dramatically reduced the barrier to entry, and it’s really amazing the things you can build quickly and cheaply today that were completely infeasible even 15 years ago.

Enter: The San Francisco Tech Shop. I have to admit, I’d been a bit judgey over the years of the “Maker Culture” embodied at these shops. But like all good prejudices, a little exposure tends to be the best medicine. The people, equipment, and their damn Maker optimism have dramatically increased the velocity of this project.
For those unfamiliar, Tech Shops are big facilities loaded with all the expensive machinery needed to build things: 3d printers, CNC routers, laser cutters, you name it. You pay a monthly membership, take classes for the machines you want to use, and then you’re basically off to near-unlimited access. And there’s lots of people around who are knowledgeable and eager to help.
This is perfect for rapid prototyping. While the plan is still to use a large CNC mill for cutting the final, full-scale parts, it turns out the laser cutters at the Tech Shop were ideal for scale modeling. Much faster and easier to use, more available, and for my purposes no difference in the final product.
I had originally reached out to a professional shop to prototype this boat for me, but that was a terrible idea in retrospect. It would have cost hundreds of dollars per iteration, had turnaround times measured in weeks, and kept me completely out of the loop/fun. At the tech shop, I can literally walk in with my laptop, upload my design, laser cut parts in minutes, assemble, inspect, tweak the code, and then re-cut in the same evening. I can do this almost as many times per week as I have the energy for, and the total wood costs are about $15 per prototype.
Combating the 80/20 problem is my belief/observation that with each prototype/real world test, an engineer gives themselves the opportunity to roughly halve their remaining issues. Meaning, if I’m remotely worth my salt, I should be able to have ~95% of my design issues sorted out within 3–4 prototype iterations. So far, I think I’m pretty much on track with that rule of thumb.


I knew going into this that the hardest initial hurdle would be the curvature of the hulls. I wasn’t using a traditional metal/woodworking CAD program to “flatten” 3d shapes to millable parts for me. I figured it couldn’t be that hard.
… If you want to go hurt your brain for a few hours, Google the complexities involved in writing a general algorithm for that purpose. It’s barbarically complicated, and makes me question how we even live in 3 dimensions.
Given all this, I guess I shouldn’t have been that disappointed that v1.01 came out as… an imperfect creation. While the rest of the parts came together as intended, it was obvious from the first two hull planks that I had biffed the flattening of the hull. The shapes didn’t fold into place nicely, no matter how hard I tried to make them (and believe me I tried), and after several frustrating hours and a lot of loctite glue everywhere, it was clear that the total surface area and proper geometry of the hull was not represented in these parts.
Back to the drawing board.
The following weekend was largely spent soaking up the beautiful sunshine of late SF summer, and not thinking about hull shapes at all. With a beer and a babe…

……..

Hahaha, yeeeah right. I locked myself in the apartment all weekend (except for when I ran out of beer) and worked through math. And told my friends I had family visiting.

←Let me take a moment here to repeat a truism so old and overused, yet still so commonly ignored in software engineering… until it bites you in the ass: Unit tests are meaningless if they don’t test the right things.
That accompanying screenshot occurred at hour two of debugging the hull planks. I figured an easy check would be the perimeter and area of each plank. These shouldn’t change as I flatten the 3d shape properly.
Now, it is possible that two very different geometric shapes can have the same exact area + perimeter, to 6+ decimal places. But given what I was doing, especially how irregular these shapes were, it seemed damn unlikely. I felt I had a reasonable error signal to track. So now just fiddle with the math until the 3d and 2d areas/perimeters are equal, then go laser cut again. Wernher would approve.
I realized pretty quickly what I had done wrong. I was projecting the entire 3d shape onto a fixed 2d plane (the sideview). Well, that’s bullshit for a shape arbitrarily twisted in 3 dimensions. I was basically casting its shadow. It would only come out right if the planks were perfectly aligned with in the XZ plane, and only bent inwards in Y, but that wasn’t the case.
Finally, I figured out I’d need to flatten the shape piece-wise, by stepping through small segments of the hull plank iteratively, and computing an irregular polygon using each segment’s surface normal; finally assembling these individual 2d polygons into the full plank shape. The planks were already discretized into these segments for practical CAD reasons anyway, I “just” needed to add up the shapes of each polygonal segment.
Once I did that, all my tests checked out and I felt confident. I ran back to the TechShop the next day after work and got back after it. After 20 minutes of laser cutting, I was off to assemble.

It’s funny how these things go. I’m already not particularly patient when assembling anything. I don’t have the mentality of a craftsman. And I already knew the remaining structures were right, so I was even sloppier than normal assembling those parts. All I cared about were these damn hull planks. But I had to exhibit some patience, and somewhat carefully assemble the floorboard and ribs before I could wrap a hull into place around it…
I felt like a kid on Christmas morning, impatiently ripping through his other presents, looking to see if his Nintendo-64 + Super Smash Brothers were there, or if he was going to throw a tantrum and ruin Christmas for everyone. Again.

By the time I finally assembled the whole model, it was nearing 11pm and the Techshop was mostly empty. I put the last plank in place, laid down the glue, and just sorta stared at it (somewhat disbelievingly) for a minute. It fit like a glove, every piece (minus my shoddy craftsmanship/rush).
This wasn’t a work of art, or some marvel of engineering by any measure, but I was stupidly proud of it. I guess it was just seeing in person the shapes I had been toying with digitally for months. “Holy crap, this is going to work” I told myself, and immediately texted my brother (who gets up at 4am daily and thus doesn’t appreciate 11pm texts) a dozen pictures.
Next Steps
The prototyping process was exactly as informative/useful as I thought it would be. I worked out some fundamental kinks, but more importantly, established a process that allows me to quickly gain confidence in something I’m about to build in the future. From here on out, every time I make substantial changes to a design, I’ll prototype it first, just to avoid any gotchas, and to gain confidence/familiarity with the new parts.
Next post will be about optimizing a sail and keel for a given hull shape. This gets back to my aeronautical engineering roots, and it’s what I’m most pumped about. This is all leading to the preliminary analysis I’m currently doing to determine stability criteria, which will culminate in the determination of a Safe Operating Envelope for a given boat design. I’m also working on a post where we’ll dive into a near-optimal way to automatically lay out boat parts for cutting, to minimize the amount of wood sheets we need to purchase, without any manual fiddling.
Loathe as I am to timeline an engineering project, I’m really starting to believe the initial design phase will come to a conclusion in the next 6–8 weeks. Then we’ll mill the full scale parts, and assemble through late fall/early winter. I’ll use late winter/early spring to fiberglass, paint, and finish. Plan is still to have a maiden launch in spring 2017 :)