Random

A romantic evening with Wiimote

A Romantic Evening with WiimoteI’ve been working on a project for my Italian renaissance art class for the past few days, which not surprisingly considering my interests, involves a computer, Wiimote, funny sunglasses, and some infrared LEDs.  I’m trying to recreate an early Italian renaissance painting (from the likes of Fra Angelico or Piero Della Francesca) with a new spatial component - parallax.  The Italian virtuoso painters made great strides towards perfect spatial representation, but were limited to a two dimensional picture-plane - something that can be solved with some cool electronics.   I’m sure Brunelleschi would have loved this stuff.

The idea is simple, and is based on the work done by Johnny Chung Lee with Wiimote head tracking.  With a stationary Wiimote and two LEDs mounted on the side of a pair of cheap sunglasses, Johnny’s software can calculate the ‘position’ of your head and from that derive a projection matrix.  I plan to cut out pieces of paintings and offset them along the z-axis, hopefully producing some nice 3D effects when the viewer moves his or her head around.

For those of you out there wanting to try this Wiimote head tracking thing, I’ll warn you that I ran into some technical difficulties before I actually got it to work.  First, getting the Macbook Pro bluetooth card to play nice with the Wiimote under XP is neigh on impossible.  Secondly, the bluetooth drivers and software everybody seems to be using for this sort of thing, a horrid bundle of trash called Bluesoleil, doesn’t work either.  After beating my head against this stuff for a little while, I went to Best Buy and picked up a Kensington USB bluetooth adapter for about $30.00.  I followed the steps in this tutorial and got it to work (actually, I lost another several hours because the damn Wiimote was out of batteries and I didn’t know it - thanks Dave).  I haven’t finished putting together the infrared shades yet, so I used two candles (candle flame emits infrared light, conveniently) placed about 10 centimeters apart to approximate a Wii sensor bar.  I would not recommend putting this on your head.

More on this later.

Programming
Random

Comments (0)

Permalink

Wordpress formatting is dumb

I can’t seem to get code and HTML formatting to work properly. Sorry about the inconvenience. I’ll be fixing this once my wonderful girlfriend nurses me back to health from EXTREME WISDOM TEETH EXTRACTION.

Programming
Random

Comments (1)

Permalink

Atari!!

goboardsmall.jpgThat’s what I’ll be saying to you when I’m about to pwn your face with my new Go board!  Just look at it.  Awesome.  It even makes that *click* sound when you place a stone.  This beats GNUGo any day, although GNUGo beats me every day.  Damn you, GNUGo…  I’ll get you one day. If anybody wants to play with me, either come to my house with a bunch of your samurai and kick my sign down, or grab the Go app on Facebook.

bookssmall.jpgOn another note, I am running out of shelf space. After this Christmas, the influx of new reading material has brought my poor Wal Mart bookshelf to its knees. Its particle board shelfs have begun to grown under the added weight, and I think it’s leaning away from the wall a bit more than it used too. I’m pretty sure the thing will eventually fall over and kill me. It would be a good death.

After plowing through the third season of West Wing the other night, I decided I would grab one of Aaron’s movies from the shelf and watch it. For some reason, the end of “The Last Crusade” slipped my mind, and I picked the movie that was the shiniest. I chose… poorly. While my face didn’t melt off, I did sit for an hour and a half transfixed by the horrors of “Shriek If You Know What I Did Last Friday The 13th”. Why, Aaron? It had Coolio in it! COOLIO!!

Random

Comments (0)

Permalink

After Christmas hangover

photo-1.jpg… Not really.  As much as I wish this was all some hallucination, I am in fact in the Wichita airport, tired and an hour away from a flight to Dallas, followed by a flight to Atlanta, and topped off with a 3 1/2 hour drive to Savannah.  Somebody shoot me. 

Time spent with the family is totally worth the trip, though.  I so rarely see my folks anymore, and it’s nice to be fed and to load up on books and nice things to wear.  It has been snowing in Kansas; something that is still novel to me.  In the South, we believe ‘hard water’ is a man-created thing, fashioned out of the need to cool one’s beer, and certainly not something that simply falls from the sky.  Dad apparently drove into a snow drift the other day and had to be dislodged by a better equipped passerby.  He claimed he had been caught in a ‘white out’ of arctic magnitude - three meters from the Target entrance.  Okay, Dad. 

I’m very much looking forward to being home again, and to picking up Iterator from the kitty hotel.  I have a few days before the other half of my family arrives for New Years. 

There are still some rather large loose ends I need to tie up after the work Dave and I did on the code base.  The new background loading system which we implemented has opened a whole new can of worms.  As it turns out, the Windows OpenGL implementation’s rendering context is thread locked.  When a scene is loaded in the background, it has to initialize new textures and VBOs with the rendering context, which belongs to the rendering thread.  This means that I’ll either have to switch ownership of the context between threads when something is loading (bad) or defer initialization of OpenGL dependent objects (meshes and materials) and load them in the rendering thread when it isn’t rendering (also bad).  This is all really dumb.  When writing this kind of thing on the Mac, you can manipulate a GL context from whatever threads you want, provided you set up your critical sections correctly.  Windows is dumb. 

On the plus side, I’ve refactored each class’s Lua initialization code to register with the script system using a pre-main initializer, and have rearranged things such that each new Actor instance has its own Lua state, which shares a global table with the script system’s main Lua state.  Prior to this, I had a single global Lua state which was shared by all Actor instances.  This fixes a problem I was running into when trying to add new Actors (and their scripts) in a background thread using the same Lua state being executed in another thread.  Only one Lua state per thread.  Always. 

Enough rambling.  I have a plane to catch.  See you in Savannah!! 

Programming
Random

Comments (3)

Permalink

Will Miller rocks the 80s and a new podcast

encore.jpgSo I’m on MobyGames.com the other day looking somebody up, and decided to check in on my profile to you know, make sure it was still there. As it turns out, I got a credit on Guitar Hero Encore: Rock the 80s! A pleasant surprise, considering I had nothing to do with 80s. I’ll take what I can get, though.

Also something which might be a pleasant surprise to some, Buck, Fic and I recorded a brand new podcast this evening. Episode 33 is special because as one listener’s feedback pointed out, 33 was the last show we did for IMG with Big Tuncer, after which we left and made BDPE, which is invitingly cooler. Rest easy, dear listeners. We’re here to stay.

Random

Comments (0)

Permalink

Did Bjarne Stroustrup design this page?

No, I’m afraid not.  If he did though, it would be as bleak.  Seriously, I’ll get around to skinning this thing nice and pretty.  I won’t let four years of art school go to waste.  Until then, I invite all to revel in my blog’s zen-ness.

So I’ve got one of these blog things now.  I resisted for so long, but when it comes down to it, I really just want to fit in.  This kind of thing is what happens when all my friends leave, and I start drinking alone in my room.  I blame you Dave.

Random

Comments (0)

Permalink