Exposition on MAS964 PS8

A few exercises in design, problem set 8 for Principles of Visual Design.

Finally, colour! Perfect timing, as I just got a fancy new computer that finally does 24 bit colour. Yay, no more colourmaps! I'm afraid that these applets will look terrible if you don't have 24 bit colour to view them with. A fast machine always helps, too - both applets are linked to a "slower machine" version that might work better if the animation isn't smooth (same code, different parameters).

I love subtle gradations of colour. I'm also really fond of thinking of colourspaces, vectors moving around causing these whacko perceptual phenomena. Both my applets reflect these interests.

The ColorStrip applet is a pretty straightforward exploration of hue and saturation space. Horizontal just scrolls the hue, vertical sets the saturation. The crosshairs have a little model of moving to where you've asked them to, overshooting and such. One oddity, the cursor doesn't warp to your mouse click. I thought it would be weird if it did. Play with scrolling saturation beyond the box - java.awt.Color does interesting things on saturation values that are out of range.

A bit more physics in ColorSpots, bouncing particles in a box. I'm really happy wiht this graphic display, I think the halos have a nice look. The grid was there because you can't draw every pixel individually, the graphics toolkit is just too slow. But I like how they look, they contextualize the halos.

It's a bit subtle, but the halos both turn more red when the particle velocity is high. That's a weird manipuation of RGB space - I tend to think intuitively in terms of HSV, so the red mapping seems a bit odd. But it looks neat. Each block on the screen is just the sum of the R, G, and B vectors for each particle. Again, an RGB-space only kind of manipulation. I'd like to play with other ways to combine two colours: multiplying their components in HSV space, for instance.

Sources

DoubleBufferApplet.java
DoubleBufferApplet's bits are starting to wear out. It'd be nice if I could have a reliable animated double buffer class that does the thread, maybe even be smart about how much of the buffer you copy. But that's hard.
ColorStrip.java
All the code for color strips. It's pretty straightforward. The physics model is hokey, but it looks right enough.
Particle.java
Simple Euler integration of Newtonian mechanics, for use in the bouncing color spots.
ColorSpots.java
All the code to make the color spots work. I played around with a lot of different physics before coming up with some that looked good enough. Lots of tweaking.

Nelson Minar <nelson@media.mit.edu>
Last modified: Fri Apr 18 03:46:03 EDT 1997