Another 360|Flex has come and gone and I’ve returned home with my liver and dignity partially intact. This post contains the slides from my presentation as well as all the code for the examples that I showed during the presentation. The slides are embedded below or you can download a PDF of them here.
The problem with these slides, however, is that if you read them out of context a lot of it probably won’t make that much sense (and some of it may very well be misunderstood completely). So I’m planning on doing a follow up post shortly after this that will try to put my slides in context by providing some notes about what I was talking about when I was showing each slide. So don’t look at the slides like the one that says “Fuck Flex” and jump to any conclusions. I’m not ditching Flex development, I wasn’t angry, and I wasn’t just trying to shock people with swear words on slides. If you saw my presentation then I hope it all made sense and I hope some of it resonated with you. If you didn’t make it to my session then I’ll be posting a few followup posts about the main topics that I covered. I’ll be doing some posts that go into detail about steganography, head tracking (including detailing some of the optimizations I came up with), and augmented reality (hopefully with some good video).
UPDATE: Turns out SlideShare’s embeddable player is throwing errors, so you can view the presentation slides directly on SlideShare here.
Or download the PDF of the slides.
Here’s all the code of all the examples that I showed.
This is an AIR app that hides secret data (either text or files) in PNG images. It uses the PNGEncoder class in the Flex framework and the PNGDecoder class written by Heriet. When you run the app it allows you to drag and drop an image file to either encode secret stuff or to decode secret stuff that has already been encoded in the image (it can only decode PNGs created with the app itself).
Download the AIR installer | Download the source
- Modified Marilena head tracking library
The Marilena library is part of the libspark project and it is a port of a facial detection algorithm from OpenCV that uses a technique called Haar Cascades. I used an optimized version by Mario Klingemann as the base that I started with, and then I made further optimizations from there. The main optimizations that I made have to do with not having to rescan the entire image every pass (since we’re concerned with live webcam tracking) and also checking for different rotations of the face to allow the user to turn his or her face at an angle.
Download the source
- Head Tracking Targets
This was a simple demo that uses Flash Player 10 3D stuff (no PaperVision or 3D library used). I was trying to recreate the fantastic demo that Johnny Lee did that uses the Wiimote to detect head movement. This demo should detect your face and move the targets as you move your head around.
Run the demo | View the source
- Crappy Top Gun game (controlled with your head)
This is another demo that uses head tracking. This one is a little Flash game that recreates part of the original Top Gun NES game. You control the plane by moving your head in the direction you want to fly and the objective is to avoid getting hit by rockets. It’s a really crappy game and isn’t very fun to play, but it was intended to just be a proof of concept.
Run the demo | Download the source
- Safe Sexting
This is another head tracking demo that can automatically blur out your face. It’s sort of a Photo Booth type of application that lets you take pictures of yourself. The general concept is that it’s for all those young teenagers out there who are getting in trouble for sexting. Being the good citizen that I am, I wanted to come to their aid. This app will let you take dirty pictures while concealing your identity!
Run the demo | View the source
- Augmented reality demo with fake chests (male and female)
And for the finale of the presentation I pulled off my shirt to expose an augmented reality marker on my chest. I then “augmented” myself with a 3D muscular male chest that made me look like a bodybuilder, and then to top it off I threw some fake 3D breasts on my chest (all while simultaneously blurring my face with the Safe Sexting app). If you want to try the augmented reality stuff out you’ll need to print out this marker and hold it up the the camera (or tape it to your chest for the full effect).
Run the demo | View the source
So that’s all the slides and code. I’ll be putting together a series of blog posts that go over each of the individual topics I covered in much more detail. And like I mentioned, I’ll be doing a post that puts the slides in context for those of you who didn’t get to see the presentation live. I think there might also be some video floating around of most of the presentation, so if I can get my hands on that then I’ll be sure to post it.
In addition to the slides, here are the direct links to all the videos or demos that I referenced in my slides:
- Lee Brimelow’s dead drop (and the explanation here)
- Johnny Lee’s Wii experiments
- Boffswana head tracking demo
- Mr. doob’s head tracking demo
- Funny video review of Top Gun for NES
- Grant Skinner’s webcam experiments with snow and fire
- Boffswana FLARToolkit demo
- JackLinks Sasquatch AR example
- GE SmartGrid AR example
- Topps AR baseball cards (video here)
- AR game with characters shooting each other (video)
- Weird AR dolls from Japan
Were you there?
I’d love to get some feedback on how you thought the session went. Was it engaging? Was the technical content good? Too technical/not technical enough? Let me know in the comments or feel free to shoot me an email: firstname.lastname@example.org.
11 thoughts on “Slides, code, and links from my “Cool Shit” presentation at 360|Flex Indy”
Crazy slides, crazy shit!
Doug, I saw the preso. I found it a refreshing break from all the technical talks. You obviously have a very dynamic personality and put together a very well thought out and personal presentation. I personally found all three topics intellectually interesting, and was impressed that you had the fortitude to roll up your sleeves and actually do something of significance with each of them. I was embarrassed to realize I had known nothing about AR until your talk, so that little nugget alone provided a lot of value to me.
Ultimately, as I think I asked you at the end… I was hoping for some kind silver bullet that we could all use to keep us passionate about our day jobs. But that is probably not realistic. If you could figure out how to do the “bringing the passion back to the things we get paid to do talk…” now that you might have been able to sell the 100+ 360 tickets that were left.
After sitting in your session, I was really excited again to get back into development. I took to heart what you talked about with being burned out making login pages, etc.
You found some cool shit too. The demos were fantastic, and I liked that you gave credit to your inspration, and then your list of where you’d like to see it go.
Some people will not get past the offensiveness – which is too bad for them. I don’t share your speaking style but I thought your preso was one of the best if not the best of the conference. This was echoed by others I talked to afterwards and by the shear numbers.
Job well done!
Great Stuff Really Cool shit.
was waiting a long time for it.
When will be able to view the video it inspires more ?
Thanks for posting your slides and such. I’m trying to tinker around with your source code for the AR demo (you totally beat me to the punch on the wearable AR items!).
I’ve worked on numerous AR implementations and would like to get your feedback on what you feel makes your implementation so smooth as far as tracking. It seems like the ones I’ve done always are a bit skittish and never have been able to replicate the tracking as well as yours.
Your presentation was both inspiring and amusing. I appreciate your honesty and creativity, and am glad to know that the Flash building community has such enthusiasm.
The content was certainly engaging, and while it could have been more technical, I think your approach was more important in helping us remember how not to get burned out by the mundane, but to find our geekiness and enjoy what we work with by looking for it in different places. You did a great job summarizing (and demonstrating) different directions ours and other technologies are heading. The CSI factor was an interesting metaphor, and while we could’ve sat around and watched you build apps on the fly, it was more important to me to see the thematic development.
Thanks again and keep the idea factory rolling!
Doug, your presentation alone was worth the cost of the conference! It was fun, refreshing, inspiring, and the title speaks for itself! Very cool shit. I loved that you were able go from burn-out to such a fun, wild ride of programming. You are a really creative guy, and I thoroughly enjoyed it. Can’t wait to see what you present next year! You’ve set the bar high!
Great Idea, however when I tried out the demos, it didn’t actually turn on the camera. Am I doing something wrong?
Pingback: Slides and Code from my CFUnited Presentation: Using Open Source Flex and AS3 Projects | Doug McCune
Was wondering how you implement your changes to the Marilena library. I am getting errors with an event listener for ObjectDetector.as. I think its because you don’t reference a dispatchEvent in this class anymore. I tried to add this back in but i didnt get any tracking at all. Thoughts?
Pingback: Punking Doug McCune
Comments are closed.