Audio clip from the film What About Bob?

Audio clip from the film Wedding Crashers.

My first lip-sync ever! I like this part of the animation task best, I think — minimal drawing with quickly satisfying results!

If you like creating simple melodies and finding harmonies…

I’ve always enjoyed the simple music-making applications with available notes on a grid that the user can turn on and off. Often these applications use a pentatonic scale (i.e. just the black key notes) so that nothing the user does can sound dissonant. But I prefer the challenge of finding something that sounds good, tripping over awkward chords on the way.

As a kid, I learned insane amounts from just playing around with the software my parents gave me or happened to have installed on our machine. I developed La Pastorale with these experiences in mind, aiming to create a setting in which people can learn about music theory simply by exploration and trial-and-error.

Have fun!


Maybe you’d like to see some the of the functionality explained. Here is a script for the brown bar that moves across the grid, responsible for triggering the notes.

Since each row of notes is a different color, I can associate color with the notes that I want Scratch to play. The variable called ‘speed’ is a value that changes when you press allegro, andante, or presto. I needed to have the note length and wait time adjust with each speed so that the note would play only once per beat.

Lots of people have asked how I make the melody to switch from major to minor. It’s easier than it seems! There is an adjustment to just one note that makes that happen: the third note in the scale. In our case, it’s an E. To make the entire melody sound minor, the E shifts down to become an E flat. So because the value of E changes, I used a variable for this row of notes.

The value of the variable changes when the user clicks the ‘major’ and ‘minor’ button sprites. Here are some scripts attached to the ‘minor’ button. The one on the left tells the button to appear to be off as long as E has value of 64 (its major value). On the right, you can see that clicking the button sprite changes E to its minor value and makes the minor button appear to be on.

This all essentially switches in the scripts for the ‘major’ button sprite.

This is my first political cartoon. I began thinking about the issues surrounding the tenth anniversary of the attacks on the World Trade Center, and “Islamophobia” strikes me as one of them. I am bothered by the image of the Muslim culture to which the majority of Americans (including myself) often subscribe. We need to understand that violent extremists are not representative of the Muslim people any more than American serial killers are poster children for America (although both point to serious deficiencies in our respective cultures).

On a purely technical note, drawing in a cartoon style was hard! The extreme economy of line and anatomic liberties escorted me far outside my comfort zone. I tried to copy the style of Mike Smith, who draws for the Las Vegas Sun. Of all the editorial cartoons I looked at, I particularly fell in love with his line quality and the human appeal of his characters.

When it comes to political cartoons, the broad range of historical styles are interesting. I particularly noticed the changes in the way cartoonists tend to draw people. Is it just a tendency towards greater efficiency, or does the progression reflect something about the way we as a society see ourselves? Hm. Forgive me for not appropriately crediting these Google Image search results, but they quickly illustrate my point.

Pac-man enthusiasts, rejoice! I have you made you one attractive and fully playable level.

The end results of Programming are, of course, all lollipops and rainbows. But I’m here to tell you about the frustration that precedes the satisfaction.

Behind-the-Scenes Hair-Pulling Moment Number 1: Designing a stage.

I knew that Pac-man’s maze needs to be not too basic and not too complex. It should be symmetrical and nice-looking. It needs to accommodate moving characters and fit within 480 x 360 pixel screen area. And since would be controlling movement with numbers of pixels, I knew it would be to my advantage to make the most mathematically regular system of paths units as possible.

Pulling all these requirements together was harder than I anticipated, and I spent a lot of time on failed attempts. In the end, I built a grid of blocks in Illustrator, drew a stroke that went through only the exact centers of blocks (Smart Guides, I love you), and adjusted the width of that stroke until there seemed to be a nice path/wall thickness ratio that fit both my screen dimensions and the size of my characters. Success.

Behind-the-Scenes Hair-Pulling Moment Number 2: Pellets.

Oh, they were easy enough to draw. But I did spend nearly an hour placing them equidistant on my nicely-drawn paths by inputting coordinate values. See the first part of this code? I had to come up with 128 different values for those.

Behind-the-Scenes Hair-Pulling Moment Number 3: Pac-man’s Movement.

The $1,000,000 question is: How do you keep Pac-man on the path and from munching his way through walls? I examined a number of different Scratch projects to find the answer, and there are actually many different ways of doing this, each with various glitch potential. All made use of the “color # touching color #” functionality, but this played out quite differently depending on how the arrow keystrokes were programmed. Does the right arrow key aim a perpetuum mobile Pac-man in an easterly direction? Or does it inch him there at a prescribed distance? Where is the colored pixel that determines whether Pac-man has hit a wall, and should he bounce back in this event or simply halt? I experimented for hours with all these options and came up with functionality that is infrequently glitchy, but still not perfect. Sigh.

Behind-the-Scenes Hair-Pulling Moment Number 3: Ghost Movement.

Thankfully with the ghosts, I didn’t need them to do anything special like think for themselves or chase Pac-man. I simply gave the illusion of random movement by preprogramming three different cycles of movement around the stage that were decently complex. Each ghost has a script that begins something like this…

… and continues on for at least six times the length you see here.

Conclusions? I obviously can’t bring myself to create an ugly game, regardless of the low number of viewers and even lower number of players it will have. Beauty takes time and thought. And for beauty, I’m always ready to give both!

Fly Away Home, if you haven’t seen it, is gorgeous film about a father’s love, adventure, and emerging from loss. I’ve always related strongly to the heroine, and I wanted to see if I could communicate my love for this film in a poster.

I wanted make this poster strongly about positive and negative shape, but also capture the likenesses of Anna Paquin and Jeff Daniels in an impressionistic way. I chose a rich fall color palette and had a blast with hand-drawn type.

Watercolor is still a relatively unfamiliar medium for me, especially this wet-on-wet approach. I had to paint it a couple times. The first time, I worked too quickly and didn’t give the layers time to dry. The second time, things went better.

I used to do word searches all the time as a kid. I had strategies. I had techniques. If it has been too long since you’ve done a word search, today is your day! It’s even nicer doing it online, because you don’t have to draw awkward hot dog shapes all over the grid — the computer and I have done it for you.

Queen Elizabeth II is, in my opinion, one of the most unique women alive today. She is unconditionally revered and loved by millions, but her fame has nothing to do with her physical appearance, special talent, hard work, or anything else except who her father was. She didn’t choose this position, but she accepted it and has continually and selflessly risen to the occasion for 60 years. What would that be like? For your face to be familiar to the whole world, yet to have so few who truly know who you are? To live your whole filling an extremely important role, that being more or less all you know?

I took the occasion to read this book, which I highly recommend. A Year with the Queen by Robert Hardman. The content is great, but it also happens to be very well-designed! The publisher choose Baskerville for the body text, presumably because it has the nicest looking capital Q. And it uses Bell Gothic as a complement for headers and captions (exactly what I would have done).

I wanted the final portrait to feel a bit like a coin or a stamp come to life — to juxtapose her symbolic importance with the real person. I used colored pencil over a watercolor wash. I would have liked for the colored pencil to appear more smooth and accurate in the details… so I probably needed draw larger.

In this game, you get to make choices as a party planner and then see them come together in a party scene. The most involved part of my job was creating the graphics for each venue/color scheme combo! I used the following raw images, adjusted the colors, and painted the decorations and party-goers in Photoshop.

Turn up the sound and explore!

Programming 101: Variables

This game makes heavy use of variables. Variables are items that can hold a value, much like x in algebra. Variables in programming languages can also hold words, not just numbers.

Each of the three choices in this game (venue, colors, and music) is a separate variable. As the user clicks on a graphic, the variable sets itself to their choice and keeps that value in its memory until the end of the game. For example, here is a script that belongs to the postcard graphic of the warehouse location. In Scratch, orange-colored blocks indicate commands with variables. This script tells Scratch to give the “location” variable a value of “warehouse” when the image is clicked on.

As you can see, “step” is another variable in this game. I used the step variable to control the pacing of the game, basically telling graphics to only appear at certain steps. The step value increases when a choice has been made. This way, things happen in sequence and the user cannot go backwards.

At the end of the game (step 6 or so), a sprite called “Party” finally appears. It shows the party scene and contains 9 different costumes, one for each color/venue choice. Here is an excerpt of the script that tells Scratch which costume should be shown.

… and so on and so forth.