Mathieu Glachant, aka Thingiverse user Syvwlch, joined Thingiverse right when the site launched. He took my lasercutter class in 2008 and started making awesome things happen. At the Botcave, we’ve been really excited to see his latest project, a clock mechanism that is entirely 3D printable! I interviewed him about the project:
What inspired you to start working on a 3D printable clock?
I had recently become fascinated with escapements, a critical component of mechanical clocks… They synchronize the clock with the pendulum, while keeping the pendulum running, but without interfering with it’s natural period. All that in a little part first designed in the 14th century and still being improved to this day! I spent some time Wikipedia-diving and in my library’s online catalog. Since I only really understand something when I’ve taken it apart, rebuild it, or even better designed my own, (A common Maker trait, I believe.) I wanted a good way to draw and animate one in 3D. When I realized that I might have to draw many different escapements before I really understood them, parametric seemed the way to go. After a couple false starts with other tools, I started up OpenSCAD for the first time and had a first escapement proof-of-concept within a couple hours, and it was obvious it should go on Thingiverse… That was fourteen days ago.
It seemed to strike a nerve, and people were asking if it actually worked… which got me thinking: why not? The escapement is the difficult bit in a mechanical clock, so what is the point of stopping there? It just kinda snow-balled from there, with the clock slowly accreting around the escapement.
Walk me through the process you went through to get the clock to this point. What role did the Thingiverse community play in the design process?
There would be no printable clock project without the Thingiverse community. I don’t think the idea would have even occurred to me… People were asking me if I was planning to design a printable clock, and… I dunno… I just couldn’t say no to MakerBlock. It seemed so obvious after the question was asked. Of course I was designing a printable clock!
The process has been one of accretion, usually by repeating two steps: some rough hacking followed by some consolidation of the code into a library, and building outward from the first part in successive layers of complexity and functionality. By keeping everything parametric, and pushing mature code into the library, the difficulty level stayed about constant thru-out, early mistakes were an easy fix (even several steps later!) and community input was easy to incorporate.
I’m a firm believer in frequent, incremental releases: they keep you in synch with the community, they force you to keep making stuff, and to keep the goals realistic for each release. It started with a little test jig built around the escapement, with a rubber band wound around a drum as a power source, followed by its library version.
Then the next step was to put a gear-train between the power source and the escapement, so I reached for the excellent MCAD involute_gear library, and pretty soon, a few releases later, I had a proof-of-concept design for a clock: an escapement, a gear-train, a power source, and some hands.
At that point, the clock started showing up on Boing Boing, several community members were actively helping debug/improve the design (MakerBlock, DaveD, rustedrobot, barrychuck, just to name a few!) and the first prints were starting to appear, with photos and videos! From those first prints, we started to get some real-life experience about what was, and was not, working with the design.
My hope for the near-term is to see others take the code and the library, and run with it. I honestly don’t care whether I’m the one to publish the first design that works when it’s printed, and there is still a lot of work to get there! I want to see lots of different clocks, with different configurations, shapes and sizes, and I want people to realize how powerful this design method is, how easy this all was, and to tackle stuff that is even more complicated.
Was it frustrating to not have a bot, but be designing for 3D printabilty?
It’s frustrating to not have a bot, period. Just like it’s frustrating to not have a laser-cutter, or to live too far from the nearest hackerspace! For the design process, however, it had its upsides, and the community made up for much of the downsides. Because I didn’t have a bot, I didn’t get bogged down on printability or in the tweak/print/tweak/print cycle, early on. It forced me to ensure the gears meshed in the digital space first no matter what the parameter values where (which would have been a lot easier if OpenSCAD supported recursion, I’m just saying!), and in the end, that makes for a more robust design.
When it came time to chose values for the parameters for a first “printable” version, I got some good insight from the community (particularly from MakerBlock, again), and while I can’t say I wasn’t worried about how it would print… I was pretty confident. After that, again, community feedback from the early adopters’ prints has been really helpful and I fully expect them to be posting their own derivatives soon.
What kind of obstacles did you overcome?
I’ll be honest, the biggest road-blocks so far have been the limitations in OpenSCAD. Don’t take me wrong, it’s pure, awesome genius, but it’s not a full programming language yet. I kept expecting certain things to work (recursion, arrays of variables, heck… variables themselves) like they would in any descendant of C, and when they didn’t, I had to find work-arounds, or brute-force it. When we have a CSG modeler with a Turing-complete scripting language that can spit out STLs (either by extending OpenSCAD or by developing a robust STL exporter for, say, POVray), there will be no limits to what we can design except processing power, memory and the resolution of our printers.
Do you have any other ideas for other epic projects you’d like to take on in the future?
One of the culminations of the printable clock project, for me, would be to show it to the folks at the Long Now Foundation, and ask them for permission to start a new project for a printable model of the 10,000 year clock. In particular, I would LOVE to make an OpenSCAD library for that mechanical binary serial adder they have a patent on… with their blessing of course. I’m hopeful that, given their state aims, they may be receptive to ours. A related, but fully free-as-in-speech, project would be a printable orrery. Not a toy, something precise that a renaissance Maker would have been proud to own. There’s a couple side projects started already with other Makers on clock mashups, and I’d also like to help MakerBlock with his spider robot! Lastly, I’d like to keep exploring the limits of what can be done with this collaborative, parametric design process. I’m very excited by the possibilities in something like CloudSCAD… with a robust version-control system behind it, perhaps?
Thanks Syvwlch, keep up the good work!
Update: Due to the sheer awesomeness of the work and commitment to the community and open design, we’re going to send Syvwlch a MakerBot!