deconstructing the responsive face

No fla files anymore. They're big. But if you're interested, let me know.

This was a project I did a couple years back. I came across the Responsive Face & was pretty impressed. So I set about deconstructing how it worked, & re-implementing something similar in Actionscript. I was pretty happy with it, though the code's a bit ugly & everything's hard-coded.

I later appropriated some touch-panels I etched using Massart's printmaking facilities to control the face, which was awesome, albeit conceptually... disparate? More a demo of two unrelated pieces, neither really standing on their own, and not much to link them together. But cool, and I'm still thinking of ways to use each.

Moving forward, I bought my Mac, & started teaching myself Objective C & Cocoa. I gave myself two projects to cut my teeth on; the second I'll probably put up here at some point in the future (it's still not really ready to be shown to the outside world), but the first was rewriting this as a Cocoa app. Which I did; then I needed something else, something to take advantage of what OS X offered me, and something better to show what the program was capable of. So I added voice synthesis & lip-syncing.

It worked beautifully. Still more a proof-of-concept piece than anything else. It is 2D, not 3D, which was intentional. It's not exactly user-friendly, and I started adding editing functions to the app, to start thinking about how to support multiple face-structures, but moved on to other projects before that was finished.

Anyway, here it is:

version_1

This is just a really ugly, static picture. Drawing the face. Did this, I think, in class.

version 2

working on beginning transformations, the "buttons" cycle through a couple arbritrary states. There's gaze (where the eyes are looking), openness (?) of the eyes, and open/close of the mouth. The top button doesn't do anything.

version 3

Another for the mouth, here... Oh, yes. Previous ver. didn't move the jaw when the mouth opened. This one fixes that.

version 4

Okay, okay... Here we got those top button (now "s") working, they rotate the head. Unfortunately, the math I use to do that's a bit, shall we say, "off". The more you rotate the head, the more it distorts. I actually rather like it, but it's very much not what I was going for. Oh, yes... Added random movement, too. It really looks hundreds of times better.

version 5

fixed the rotation thing. If I remember correctly, everything's working in this version.

mouse follower

this is a newer one, getting rid of the interface & following the mouse. just playing around, really. I think someone in the class asked me if I could make the head turn & follow the mouse, and I said, "yeah, sure" and quickly tried a couple things. First one, of course, had the head turning the wrong way, but that's always the way.
Unfortunately, I lost the source for this one.

version 6

this here's the final version, which this page /used/ to link to. Hmm.. It's controlled w/the function keys F7, F8, F9, F10. In order, they smile, sing, argue, and kiss. I used this in an installation, for which I appropriated touch-panel circuits I initially made for another purpose, which wd explain their names. That's also why they connect to the fn keys - they were the most accessible.
I also played around with flasm to optimize the code. Don't ask me how successful it was - I think I mainly just used the page's suggestions on optimizing actionscript. I'm no good at bytecode.


Cocoa app

Yeah, I don't know what else to say about this one.