Give Kids the World Project

Give Kids the World Project

Our project is to revitalize an existing mechanized puppet at Give Kids the World Village in Florida and turn it into a show for kids. My role ranges from designing the animation pipeline to making sure that every piece of hardware can talk to each other.

 

Problem Statement

Give Kids The World Village is a nonprofit resort in Kissimmee, Florida for children with life-threatening illnesses and their families. They had a character in ‘Castle of Miracles’ in the village which wasn’t being used for two primary reasons. First, the access to the puppet was through an attic over a moving carousel ride, which was unsafe for volunteers. Second, since the organization is primarily volunteer-based, no one had the skills to operate a puppet made for professional use.

Current Progress

This is one academic semester-long project. We are two-thirds into the semester, and very confident that we will be able to deliver it. The scope of this project was a very big question for us. As of now, we have the design pipeline and the animation pipeline set up. As soon as the design is finalized, we will start ordering custom-made metal parts and assembly should ideally take less than a day. Show content is being developed simultaneously with regular playtests with children.

On the technical side, we are working on creating a UI that can be operated by someone with 5 minutes of training. The backend is ready. As soon as the show content is decided, we will be able to break it into smaller modules for UI development.

What I did?

My role at the start of the project was very vague. This wasn’t even close to what I had worked on previously. So I spent the initial month acquiring knowledge on what we are dealing with. Josh Danzig from my team had previously worked on show-controller systems and was extremely valuable in the learning process.

As soon as I had a good idea of what we are dealing with, I started making prototypes for network diagrams. As a team, we weren’t sure of which component goes where, but a basic network diagram gave us a base to work on. I spent a great amount of time building and correcting the diagram. Constant consultation with the college IT department and external vendors helped us navigate the right path. At the end of Week 10, we had a pretty solid understanding of which component goes where and serves what purpose. Most individual components have been tested and work fine. Now it’s just assembling them together as soon as the design is completed.

Since I am the only programmer on the team, it was up to me to figure out the programming pipeline and design animation pipeline with the animation department. With some help from Weigl, we were able to nail it down perfectly.

 

This was one of the initial diagrams I designed with Josh Danzig. This diagram wasn’t perfect but it gave us a solid foundation to work on. Before this, we were talking about hypotheticals and where it could be. I feel designing this was a very important step in our development process.

Next thing we had to work on was the design and animation pipelines. Initially, we decided that Josh will handle the design pipeline and I’ll handle the animation pipeline with rest of the team, but we soon realized that most of it was dependent on each other. Following was the pipeline that for our project; it gets somewhat complex, so bear with me.

  1. The designs are made in Solidworks.
  2. A similar working model is made in Maya
  3. The position of motors and mechanism are replicated in the Maya model
  4. Animations are made in Maya using blend shapes
  5. The animation in the *.fbx file are extracted by proprietary software into a *.csv format.
  6. The *.csv file is passed through a normalizer program(custom code) that checks it for odd values and normalizes them for our use.
  7. It is then imported into Conductor pro and further cleaned.
  8. Different CSV are joined together and synched with dialogues and made into a show file.
  9. Each show file is then stored in the show controller with a unique ID.
  10. The touch interface sends a ASCII command ovet ethernet to enable the show associated with the unique ID.

Since this process isn’t documented anywhere, it took us quite some time to get it right.

What I learnt?

I was never a fan of the hardware side of technology because I never understood it. This project introduced me to that side and I found out that it is incredibly fun and challenging at the same time. I also learned how to work with a very diverse team. It is a great project, and I am glad I selected this project.

If you have any questions in terms of Show Controllers or design decisions that I made, feel free to reach out!