Asteroids! on MacLaserMAME

After a bit of work over Thanksgiving break, I was able to get the laser projecting Asteroids well enough to play. I apologize for the quality of the photos, but we were really interested in large projection, so the beam was dim and my camera didn't capture it especially well.

I was happy to see a number of ACM folk braved the extreme cold weather to play Asteroids on exterior walls at the Krannert Center for the Performing Arts, an excellent venue which I intend on visiting again next Friday, when my good friend Erik will be playing Cello in the last orchestra concert of the semester.

This whole event turned out to be a quite a success with a Hot Cocoa + Helvetica reception afterwards, despite the fact that the software is still mostly a quick hack. I look forward to further development of additional laserware on the Mac.

Now just to write the real optimization code to make it work well... : )

ILDA Quick Look Plug-in

So, when I came home from WWDC this summer, excited about all the new technologies, I quickly got started on a Quick Look Plug-in for ILDA files. I was super excited I quickly got it working, but I couldn't tell a soul due to that NDA thingy. : ( But Leopard is out now, so I can reveal it. It isn't very stable now, mostly due to an out-of-date version of ILDAlib that it is using; but I've added it to the LaserLine source, so anybody with a free afternoon can debug it and add colors and things. The drawing code should be pretty much verbatim to that in ILDAInspector, but it needs error checking and stuff on loading the files. Further, the project should reference the shared code portion of the source tree, not it's own copy of ILDAlib.

ILDA Quick Look Plug-in


Acclaim Lighting makes LED based lighting products. Some of their products include architectural lighting, high brightness fixtures utilizing Luxeon LEDs, and even lighting to cover a whole floor or wall. It all is controlled by DMX-512. Well--almost; the interesting fixture here is the X-Panel Frame. This device consists of 12 5x5 RGB LED arrays, arranged in a matrix. Due to the number of channels, it needs more than 512 channels so it supports "DMX-1000K," a protocol I am completely unfamiliar with. Fortunately, if you limit yourself to 6 X-Panel modules, DMX-512 works just fine, and the display size is just a bit limited.

Now, of course I was unwilling to use the recommended software provided by Acclaim; it didn't run on my platform of choice. Actually, I didn't even have a copy of the stuff. Nor could I find a USB DMX-512 interface. But I did have an idea.

The power of Cocoa allowed me to whip up a little application for my Mac in about two evenings. It took about 2 more days to finish up all the features. But what exactly does it do? First I made the whole display blink, then added some chasing features, and did some automated fading. Simple stuff, but it was lots of fun. It made me want to do more; so I wrote a little function that would translate from normal cartesian coordinates+color to the DMX data, reflecting the physical orientation of the device. An NSImageView configured as an image well later, and I could drag & drop photos and have them displayed on the LEDs. The resolution was low, and my scaling unoptimized, but video was the most fulfilling.

But fancy Cocoa programming does me no good without a way to physically control the device. Fortunately I happened to have my EasyLase USB interface handy. I wired up a level converter with some MAX-485 chips, according to the wiring diagram included in the manual. I had recently finished testing the DMX-512 portion of the EasyLase USB Driver for OS X, but this was the first time I used it with a real device : ). (if you need a copy, let me know)

Please excuse the low quality of the video, I just kinda hacked it together. The screen capture and live video are slightly out of sync, and the CCD in my digital camera simply isn't able to handle the brightness of the LEDs.

The video clip at the end is complements of Charlie Deets. Please don't laugh at the poor software interface design; it was just a toy.

Erdős Number == 5

Many mathematicians will be familiar with the Erdős number, a measure of "collaborative distance." Those outside of the math world might be more familiar with the Bacon number, from the Six Degrees of Kevin Bacon game, measuring the number of co-appearances an actor is from Kevin Bacon. An Erdős number is pretty much the same thing but for writing papers with mathematician Paul Erdős.

While I am not quite a mathematician, being a student of Computer Science, I have the opportunity to associate with those skilled in Mathematics. I took it upon myself to determine if I had a finite Erdős number. It turns out I do.

According to the instructions at the Erdős Number Project, I used the AMS MathSciNet Collaboration Distance search to find the answer.

I have documented my findings below; the last three lines of the table were determined via MathSciNet, the first two by personal knowledge. I was pleased to find my number is so low and am proud to declare my finding.

  person coauthored with to write
5 Joey Hagedorn Narayan Desai Directing Change Using Bcfg2
4 Narayan Desai Ewing L. Lusk MPISH: A Parallel Shell for MPI Programs
3 Ewing L. Lusk John Mackintosh Howie Combinatorial results relating to products of idempotents in finite full transformation semigroups
2 John Mackintosh Howie John L. Selfridge A semigroup embedding problem and an arithmetical function
1 John L. Selfridge Paul Erdős Some problems on the prime factors of consecutive integers

EasyLase USB

A few weeks ago the most adorable little Päckchen arrived on my doorstep from Germany. Inside was the EasyLase USB interface by JM Laser. The EasyLase is a USB device that has a 25-pin ILDA compatible DB-25 connector to output analog signals for laser projectors. It incorporates 12-bit DACs for the X-Y channels for superior resolution.

First output on Oscilloscope

In testing so far, it seems like it is going to be great, but there is plenty of coding to do yet to achieve the greatest performance. The card has plenty to give, and extra features like DMX512 In/Out--one less thing I need to buy!

Thus far, because the projector isn't quite finished yet, I've been testing with a Tektronix 2440 Oscilloscope. My friend Sean helped code a 3d Torus demo. It worked quite well, but I'm still having trouble with FTDI's D2XX driver for OS X version 0.1.0, perhaps the next version will solve some of the problems I'm having. Specifically, read and write calls are hanging when I know they shouldn't.

subscribe via RSS