Miracle Workshop

Miracle Workshop was a semester-long project at the Entertainment Technology Center in Spring 2018 in which we worked with Give Kids The World Village to revitalize an unused installation by converting a traditional bike cable driven puppet into an audio-animatronic figure and show. I was the mechanical design lead, responsible for all figure design, hardware selection, assembly, and maintenance plan.

Final Installation Product

CMU Published Article


Tom Foolery Design & Build

Full Project Description

Below is an in-depth description of the project and design process for Tom Foolery, broken up into the following sections:

  • Overview
  • Design Process
    • Reverse Engineering Existing Tom
    • Modeling Tom’s Foam Body
    • Pre-visualization Techniques
    • Range of Motion Studies
    • Graphical Linkage Synthesis
    • Design Iteration (Early Design Sketches and SolidWorks Assemblies)


Miracle Workshop is a collaborative project with Give Kids the World Village (GKTW), a nonprofit resort in Central Florida that provides cost-free vacations to children with life-threatening illnesses and their families.  Our goal was to retrofit Tom Foolery, an existing puppet at GKTW, and design him to be a robust animatronic figure that can be easily operated by a naïve user-which in the GKTW context would be their volunteers. Additionally, we re-imagined Tom Foolery’s story, created a more interactive show, and added show elements to develop a magical, immersive experience for the children who visit the village.

As the mechanical designer on this project, I was responsible for redesigning Tom into an animated figure, interfacing with the animator and show programmer to develop our pipeline, determining and interfacing with vendors, building the figure and testing the mechanics, and crafting a maintenance plan for use by the team at GKTW.

Understanding the Problem and Designing the Solution

The first step of this project was understanding the client’s needs as well as Tom Foolery’s current state.  We began the project with the information that Give Kids the World had an old puppet that wasn’t being used due to an access issue, and they wanted to start using him again.  Given such little information, we had to dig deep into who the client was as well as Tom’s character.

We started our semester by visiting the Give Kids the World Village in Central Florida.  We met the Entertainment Director, Abby Kracoff, and she helped to fill in the gaps as to how the village ran.  Tom Foolery lives in the Castle of Miracles at the village, which is also where the children’s stars are located.  Each child that stays at the village comes to the Castle of Miracles during their stay to decorate their star and it gets hung up on the ceiling.  Each star represents a child who struggled with a life-threatening illness, and some families come back years later just to see the star.  Besides the stars, there are other characters also living in the village.  Stellar the Star Fairy is an animated character that hangs up the stars at night, Grandfather Time is an animatronic clock that sings the children to sleep at night, and Buttons is an animated squirrel that hosts a dance party.

At the Village, we also met Tom Foolery for the first time.  Tom was a traditional bike cable-driven puppet housed at the top of a balcony in the Castle.  He was donated in 1994 and was exclusively puppeteered by a returning volunteer for years.  To be able to operate Tom from the balcony, a volunteer had to climb an old staircase, move around a moving carousel, and crouch down on the ground to reach the rod inside the puppet.  Tom’s main use was for Story Time, where he would introduce the event and a volunteer would read a children’s book with Tom following along.  Tom stopped being used in 2013, as Abby determined it was no longer safe for a volunteer who didn’t feel comfortable to operate Tom.

Besides the access issue that was presented by Abby, we also determined a few other reasons why Tom wasn’t being used.  Tom is a professional puppet, and it requires a great amount of skill to be able to properly operate a puppet.  Not only that, but it requires an even greater amount of skill to be able to do this while crouched on the ground up inside an attic and trying to sync movement with speech.

Give Kids the World Village is also heavily run by its volunteers.  Each week, a new group of 8,000 volunteers joins the village in running their operations.  Their volunteers could range from college students to retired Florida residents, so we knew that given their limited training that it would need to be easy and intuitive to understand.

Tom also had no content or character profile.  Toward the end of his use, volunteers would operate Tom and just have him call out at children, which only added chaos to the Castle of Miracles.  He was a character that didn’t really tie in with the Castle, and it was thus easy to cut him out of the overall experience.

All of this information helped us to narrow down our scope to creating a pre-programmed show in which Tom would be converted to an audio-animatronic figure.

Design Process

Reverse Engineering Existing Tom 

The first step to starting my design work was to reverse engineer the mechanism that was previously in Tom’s body.  Through taking Tom apart, I determined which parts had to remain in the new design, how Tom was previously controlled, and how many degrees of freedom each joint had.  For instance, we had to use the same shape for Tom’s mouth plates to interface with his foam puppet body, as well as keep the distance between those plates the same, creating an immediate constraint.  I modeled Tom’s old mechanism in SolidWorks as a starting point and referenced it for moving forward onto the new design.

This slideshow requires JavaScript.

Modeling Tom’s Foam Body

To model Tom’s foam body in both SolidWorks and Maya, we used Autodesk Recap software to convert 2D images into a 3D model.  The mesh that was generated was cleaned up using ZBrush and used as a reference during the design process.  We used this mesh model for a variety of couple of different uses.  I used it to confirm that everything I was designing would fit appropriately in Tom’s body as well as confirming that the pivot points for each function were placed correctly to produce the anticipated type of motion.  A visualization of the 2D images stitched into the 3D model can be found below.

Pre-visualization Techniques

We also used the mesh model as a way to pre-visualize what Tom would look like for each function, as our most important pillar was that we were not designing a robot, but rather that we were bringing a character to life.  This was helpful for me during the design process, as it helped determine where each pivot should be placed to have Tom look the most natural.  Working with our animator, she helped me to previsualize these movements using the mesh model in Maya to perform each function with its rotation points in different areas.

Range of Motion Studies

In combination with the previsualization techniques Niharika was helping me with, I also did a range of motion study with humans to find what looked natural for each function.  Studying three friends of different statures, I determined the total range of motion for Tom’s functions as well as compared the pivot points of rotation to what our animator created in Maya.

Graphical Linkage Synthesis

Graphical linkage synthesis is a technique used to design fourbar linkages with the appropriate crank, coupler, and rocker lengths to achieve sweeping through a specific angle.  I reached out to one of my favorite Rowan professors, Dr. Eric Constans, to help me tackle this design issue, and he referred me to his textbook which uses the drawing package in SolidWorks to accomplish this.  Using indirect drive for the mouth and head functions, determining the linkage geometry was crucial for meeting the desired range of motion.  It was also important in preventing binding, which can happen if the linkage is non-Grashof and reaches a position in which one of the linkages begins to go over center, causing the motor to have to spike in torque to reverse the motion.  I also used the equation below to check whether I was achieving the Grashof condition throughout the design process.

For each function, I started with the known of the rocker angle I wanted to sweep out, which was the total range of motion for the function itself.  For the mouth function, I measured the distance the mouth could open and backcalculated the angle at which the mouth would open.  Doing this, I found the angle for the rocker to sweep out to be 40 degrees.

For the two head functions, I used the range of motion study to find what would look natural for Tom to achieve; I landed on 80 degrees for both head turn and head tilt.

For manufacturing purposes, I set each crank length to be 1.5 inches.  Next, I allowed space constraints to determine the other knowns in my linkage synthesis.

For the mouth function, I tried to minimize the coupler length as much as possible to make everything fit appropriately in Tom’s head.  The minimum length I could make the coupler given the spherical rod ends and locknuts was 2.8”, so I stuck with that dimension.  To achieve the Grashof condition, I made the ground link the same distance and made the rocker a bit longer than the crank link.

This slideshow requires JavaScript.

For the head tilt function, the rocker distance was essentially predetermined by the design choices I had already made, using a clevis from McMaster Carr and placing the pivot point at the base of Tom’s neck.  Given the crank length of 1.5”, the rocker length of 2.33”, and the rocker sweep angle of 80 degrees, I used graphical linkage synthesis to help me determine the coupler and ground link length.  Doing this, I calculated the coupler to be 3” and the ground link to be 3.6”.  I ended up reducing the ground link to 2.4” due to space constraints, but I still achieved the Grashof condition using S + L < P + Q to verify the geometry.

This slideshow requires JavaScript.

For the head turn function, I constrained the coupler length to be at its minimum.  The minimum length I could make the coupler given the spherical rod ends and locknuts was 3.5”, so I stuck with that dimension as an input.  Given the crank length of 1.5”, coupler length of 3.5”, and rocker sweep of 80 degrees, I found the ground and rocker lengths using the graphical linkage synthesis technique.  Given my inputs, I found the rocker to be 2.25” and the ground link to be 3.6”.

This slideshow requires JavaScript.

Design Iteration

Design started with identifying constraints, which have all been discussed up until this point.  We were constrained to using the existing puppet’s foam body and chair, giving an immediate space limitation.  Tom also had an existing mechanism in his body, so taking the internal mechanism apart and reverse engineering it helped to determine a starting point for design.  Previsualization techniques, ensuring that Tom looked natural, and that his pivot points of rotation for each function were placed correctly also limited the design.  Using graphical linkage synthesis to determine the geometry for achieving each range of motion also helped in narrowing down design choices.  Using all of these tools, combined with brainstorming, hand drawings, and weekly design reviews helped to iterate the design and complete all design work in a 7-week time frame.

Mouth Open/Close Design Iteration

This slideshow requires JavaScript.

Head Tilt Design Iteration

This slideshow requires JavaScript.

Head Turn Design Iteration

This slideshow requires JavaScript.

Torso Forebend Design Iteration

This slideshow requires JavaScript.

Final Tom Design

This slideshow requires JavaScript.