I’m a software developer with no professional graphic design experience and certainly no experience developing 3D models, but I’m always up for the next challenge. For me, the latest example was a recent endeavor to connect two pastimes I love – 3D printing and cartoons!

As a connoisseur of the finer things in life, I prefer the sleek feature set of my Lulzbot TAZ 6 3D Printer and visual appeal of Disney’s Phineas and Ferb, so one day last week I decided to combine them and attempt to create a 3D character from the show. Most of the characters seemed like they would be too ambitious for me to attempt, until I remembered the lawn gnomes featured prominently in one of my favorite episodes. The nearly, but not quite, lifelike shape would be a major challenge, but inanimate enough to avoid the precision required to create a realistic representation of some other characters.

Having selected my subject, I started researching (i.e., watching episodes not always related to the gnome) and gathering screenshots of the character from as many angles as I could find. I was surprised and intrigued to find that the show’s animators appear to have used the exact same front view asset in nearly every scene, but I did eventually find the only frame showing the gnome from the side and two frames of it from the back.

Then I embarked on my first adventure in 3D modeling. I had never done anything like this before, but after a few hours on YouTube, I had the basics of what I might be able to achieve with a 3D modeling tool called Blender. I started by Photoshopping out the gnome from the screenshots I had assembled and set them up as reference images in Blender’s 3D modeling space.

Then I started building the shape, vertex by vertex, beginning with the face. I know people are really sensitive at detecting any unrealism in the face, so if it looked unnatural, the character was not going to work. After a few hours, I had the face roughed out and it looked promising, so I continued expanding and building the overall shape. After nearly two full days of work, I had the character modeled out except small details like the ears and hands.

The ears nearly derailed the entire project. I had to completely delete them and start over several times before I got anything that didn’t look like a victim of some horrible accident or like an abstract shape jarringly out of place on my rotund character. All the ear models I found were either too realistic for a cartoon character or nothing like the appearance in the show. This is one of the areas which I had to largely work out on my own. Eventually, I had a model that looked great on screen.

When I felt accomplished, I realized I was only half way through the battle. 3D printing isn’t as simple as sending a shape to the printer and watching it emerge. There are a plethora of complex settings and design choices that can mean the difference between a beautiful result and an unrecognizable piece of trash. The major challenges for the gnome ended up being the bottom of the ears, nose and hands – which must hang in mid-air at first, and the cavity of the mouth. At first, I considered assembling the figure from individually printed components, but this did not work for such a complex shape. Eventually, I was able to find a solution by printing and then removing support materials.

When the gnome finally emerged, it was still missing the finishing touches. I gathered up some oil paints and painted some scrap parts until I found the right hues to match the colors used on the show. It was amazing to me how the final painting step really brought the character to life. 

How does this relate to software development? Well much of the process I went through is the same whether developing and application or a 3D gnome. An problem presented itself and I spent a lot of time initially trying to look at it from different angles. I went looking for the best tools and methods of others who had solved similar problems, but eventually had to embark into the unknown territory of unique challenges and new methods. After initial major successes, the project was threatened by spoilers in some of the minor details. Finally, after the code looked great on screen, you still have to see how it lives in production. There, the need for new details was discovered and added. Only after this full life cycle did a complete product emerge. 

A beloved 2D character now lives as a 3D printed reality on my desk. I know he’ll be a constant reminder that persistence is the key when I’m confronted with the day-to-day challenges in the applications I work on. 

Mike Cooper is a Senior Consultant at ResultStack. When he’s not working on software applications, he enjoys playing with lasers, watching cartoons and 3D printing.