Random Puppet Generator

Author: Yvonne Summary: What started as a data visualization that ended up being a generative piece and then an exercise in physics. Abstract: I initially started out doing a data visualization on the movement of animals through Pittsburgh. I couldn't get the data, so I switched gears to use an existing online database. When this crumbled due to a combination of lack of interest and lack of coding expertise, I started working on a random critter generator. From there it was suggested I should make an interactive puppet generator. Nothing got finished. Moral of the story? Pick one project and stick with it. Repository: https://github.com/yvonnehidle/monster_generator

The idea started off pretty rad – a data visualization of the “underground” movement of animals through the city of Pittsburgh. No one really thinks of it, but animals move in and out of shelters, foster homes, and the like in large numbers. Anyone who knows me knows that I like cats more than people, minus a select few people, of whom I can count on one hand… so naturally I was pretty motivated. Getting that kind of information, however, proved more difficult than I thought. So, I stuck with an online data set I found for an animal shelter in Weatherford, Texas. They had documentation (abet very little) on every animal they had admitted to one facility from 2007. Last I checked that was 26,900 animals.

That’s a lot of data, so I figured I would make my first attempt at working with an API. After a lot of time struggling, I got it working… But boy was it slow, especially on CMU where the internet connection is just terrible. But I got it working. I figured at this point it was probably better, due to speed, to work with a small text file that had 20 animals in it. This was manageable, and since I was using arrays, it would scale up just fine. The data I had wasn’t the type of data I needed/wanted, so I revised my idea to do something that I thought of at the time to be a mix-mash between the Bjarke Ingels Group (BIG Architects) website and ToxicLibs particles. This exploded in my face, quite literally. Not only was I not very interested in the new idea, but it also was a pain to implement.

So, after I failed on my data visualization for IACD’s second assignment, I thought why not make some sort of monster generator! I mean, after all, I’m constantly drawing weird monster-like cat-dog things in my sketchbook. Anyone who has seen my sketchbook knows all the weird stuff that ends up in there. I thought initially that I would take my drawings, splice them, and have the computer randomly put parts and pieces together to form a new whole. Then when I had decided to do that, someone mentioned that would be too easy and that I should try to generate monsters from scratch just using code.

I begrudgingly took this advice. I mean, after all, it gives me an excuse to try and learn how to manipulate noise. Noise is a pain. It really is… Or maybe it’s just how I was using it. It’s probably that. Regardless, I managed to make a generator in about a day and a half that produced not-so-scary monsters. Okay, so maybe it’s a critter generator!

Okay, so it’s really simple. I know… But hey, I’m not some programming guru! I was pretty proud of myself writing this code as fast as I did. I was going to add some more variability, different legs, better body form etc. I was going to make it look like paper art – little bits of paper pasted together to form cute little critters. I was going to. And then it was suggested that I should make an interactive puppet out of these guys. This is when I should have probably stopped taking suggestions.

I attempted to integrate some sort of behavior into the randomly generated critters. At the same time I also tried to simulate fur using my existing noise code (bad bad bad idea). I had too many variables to deal with in the original code (number of legs, type of eyes, type of body, type of ears, type of antlers, tail etc.), so I stripped it down to nothing but a ball for a body, one set of eyes, and a pair of antlers. Then I attempted to code a realistic bounce with friction, acceleration, and squash-stretch. And that is where I spent way too much time obsessing over tiny details that I could have faked and no one would have known the difference. I could have used 1 line of code, but instead chose to use 10, why? Because I thought a more realistic squash and deceleration would make a difference – honestly, it doesn’t. …And I’m still working on it >_<;!

This entry was posted in project-2 on by .

About Yvonne

Yvonne Hidle is a first year MTiD (Master of Tangible Interaction Design) student at Carnegie Mellon University. She has a background in architecture and is interested in the way people interact with the built environment, not only visually, but tactically, acoustically, and emotionally as well. She enjoys creating architectural environments that stimulate the user’s imagination and evoke a broad set of emotions. Yvonne has some Processing and Arduino experience, as well as familiarity with scripting languages such as PHP, CSS, and HTML.

Leave a Reply