Part 0: A Brief Introduction
The Marionect project is an attempt to create a marionette that is operated via a mechanical system. This system is in turn controlled by a human operator standing in front of a Kinect. The Kinect and the puppet communicate via a computer which sends commands to an Arduino which positions servos to operate the puppet. It is inspired by a previous, similar endeavor by students Mathew Swartz, Teresa Dennis, and Jason Prasad. The goal of the project is to have the puppet closely imitate the movements of the user in real time. All components are open source—either having been built/designed/developed by me or borrowed from a few other open source projects.
Part 1: The Beginning
The Design Lab, a free-to-use, multi-disciplinary design space on the Duderstadt’s ground floor has a lot of resources available to University of Michigan students. We have an engineering workspace with hand tools, a soldering iron, and craft supplies. There are computers with software suites for videographers, photographers, musicians, and mechanical and software engineers. We host storage for class projects and offer a large, publicly accessible projector for presentations and group discussions. In a corner of the lab, there is even a photography lightbox and a large green screen—both available for free to anyone that walks in. In addition to our physical resources, the design lab is staffed by a collection of knowledgeable folk—consultants well-versed in the practices of their disciplines that are always ready to discuss design challenges with students.
There is a problem, however. The majority of students that walk by the Design Lab have yet to realize they are allowed to come in. I have regularly had very similar conversations with many wide-eyed students the first time they enter into our space. “I never knew this stuff was in here!” or “I didn’t know anybody could use this space,” are the two most common sentiments. We have posted signs and held open houses every week to lure students in—but both of these methods require students to read the signage. It seems like many students do not.
The Marionect is, in essence, a different attempt at signage. Engaging signage. The thought process is this: if students won’t read our signs willingly, maybe we can trick them into reading the signs! We plan to install the Marionect facing outwards through the Design Lab’s glass wall allowing students to see the display as they walk by. Hopefully, the puppet’s movements will capture an occasional passerby’s attention. Once we engage a user, we can deliver some not-so-subtle info about our space conveniently within the puppet’s informational plaque.
Part 2: 3D-Printing a Puppet
This project was fairly open-ended, starting only with the idea: “I want to build an autonomous puppet.” Since I am writing this blog as a sort of project post-mortem, it is not immediately clear the order in which I completed the necessary parts. But, in retrospect I believe there was a definite order in which I should have worked, and that is what I will try to capture here with some justification.
When considering the type of puppet I would build, my main concern was making something quickly, relatively cheaply, and following a few specifications: I needed something with articulated joints whose positions I knew to some deal of accuracy. It needed to be light because I was planning on being very cheap with my mechanical parts, and I wanted something whose dimensions I could easily control. Our previous puppet was CNC routed from wood; the joints were simple metal hooks driven into holes drilled in the wood. While the wood puppet felt very “puppet-like,” the manufacturing process did not leave much opportunity to control dimensions or create properly hinged joints. I opted instead to take advantage of the University of Michigan’s 3D Lab and print a puppet.
This blog is being written after the majority of the work on the puppet has been completed and as such is an attempt at retroactively documenting the steps I took to build this puppet. It is meant to serve not only as a “how-to” for those attempting something similar, but also to detail things I learned about managing personal projects, including the pitfalls I faced and my hindsight with regards to how to avoid/mitigate issues. To that end, I will include a few sections at the end of every post: “tl;dr” (too long, didn’t read), a quick synopsis of the post for those—”DO”—things that I learned were important to keeping the project on track, generic and unsurprising life advice, things I wish I had done—”DON’T”—habits to avoid, problematic problem-solving approaches, things I did that I wish I hadn’t.
tl;dr Marionect is a 3D-printed, Arduino-controlled puppet that mimics a user standing in front of a Kinect. It is an interactive art installment meant to engage students and pique interest in the tools and personal expertise available to them through the Design Lab. These blog entries are meant to retroactively document the process and provide insight into managing your own personal projects.
DO: Find a project that challenges you to learn things you want to learn. Build a timeline for your project with realistic and reasonable time estimations. Try as hard as you can to follow that timeline. Set aside time every few “project sessions” to write a little about what you’ve done, what you’ll do next, what you need to learn for next time, etc.
DON’T: Don’t try to attack every aspect of your project at once. Don’t give up. Don’t wait until your project is almost done to write a blog about everything you did.