Jurek and the Amazing Techno, Colored DreamWall

Jurek and the Amazing Techno, Colored DreamWall

The title is mostly a placeholder, as I haven't really figured out a name for it yet. This project is a wall hanging that consists of semi-large triangular pixels using discrete RGB LED's and PWM to control intensity levels of each LED, resulting in a 4096-color display.

Friday, November 10, 2006

Progress Update & Videos


A friendly reminder that the Level_13: Bonus Round art show is opening on Friday, November 17th at 6pm! As always, there is no admission, and refreshments are provided.


I finished mounting the switch for controlling the pseudo-random seed, on the same section as the power plug. The switch has a slightly unsmooth feel to it, but what can you expect from a $0.50 RadioShack switch?
I also removed some of the felt from the wall on the bottom half and replaced it with velcro. The bottom piece of acrylic wasn't holding up very well, so I needed some more sticking power on it. I'll probably do some more, but what I changed seems to have helped immensely.


I've made huge strides in the coding since the Sunday videos.
Things I've added:
  • 2 new still images
    1. strawberry
    2. ghost (4 color variations)
  • 2 multi-frame images
    1. Fireball is a 4-frame animation
    2. goomba is a simple 2-frame animation
  • 2 new emitters
    1. emitter_single - colors the given pixel according to a palette index value
    2. emitter_random - turns on/off (19/81% probability) a number of pixels
  • 4 new transforms
    1. triple spiral
    2. multiple spiral
    3. starburst
    4. zigzag
The new transforms all use a basic encoding scheme, so adding new ones is a relatively simple process. It's pretty simplistic and only allows me to encode 4 different actions per pixel:
  1. keep the same value
  2. get left neighbor's value
  3. get right neighbor's value
  4. get top/bottom neighbor's value
The transform map for this only takes up 30 bytes of storage (4 pixels per byte), which still leaves me with plenty of storage in reserve. If needed, I could bump this up to 60 bytes and have more complex actions, such as 2- & 4- pixel averaging (basically making the "neighbor average" function a simple map). I think currently, I'm using 602 of the 1024 available external RAM of the processor.
  • 3 channels * 120 pixels * 1 byte = 360 bytes for pixel value storage
  • 120 pixels * 1 byte = 120 bytes for temporary pixel value storage (for transform functions)
  • 16 colors * 2 bytes = 32 bytes for color palette value storage
  • 120 pixels * 4 bits for index value = 60 bytes for image map storage
  • 120 pixels * 2 bits for transform mode = 30 bytes for transform map storage
  • -----------------------------------------------------------
  • 602 bytes of external RAM storage, leaving me 422 bytes left to use!

So... on to the goods...

One of my coworkers was nice enough to lend me his video camera for a couple days, so I could take some real footage of the wall in action. I've taken and encoded 2 videos. One weighs in at 2:34, and the other is 7:00 long. I've provided 2 different encoding options, .mov and .wmv.

Shorter video, 2:34
QuickTime 4.09MB
WMV 8.56MB

Longer video, 7:00
QuickTime 46.7MB
WMV 24.7MB

Labels: ,


Post a Comment

Links to this post:

Create a Link

<< Home