December 13, 2005

RGB / RYB Color Conversions

About two months ago, I implemented a conversion from red-yellow-blue color space to red-green-blue color space using Gossett and Chen's method from Paint Inspired Color Mixing and Compositing for Visualization. I hit a snag along the way that derailed my progress for a few days until I discovered that there was a transposition error in the RGB triple that they give for the "purple" vertex of the cube (it should be "(0.5, 0, 0.5)").

After the conversion worked, I did a quick RYBColor class that has all most of the same methods as java.awt.Color. I used a standard linear interpolation as the default blending function, but the parametrically skewed and sinusoidal functions are also included. When I wrote it, I didn't know much about Java types, so I should revisit it sometime soon and finish it off.

To demonstrate its usage, I made this RYB demo applet. It randomly generates a color in RYB space for the central figure, and the user can adjust the two sets of sliders on either side to try to match the hue in RGB and RYB spaces. Personally, I find it much easier to get close using the RYB controls than the RGB controls, which is, I believe, evidence that RYB space is more intuitive than RGB. Unfortunately, I have difficulty with the applet outside of Eclipse -- when I launch the applet in a browser window, the applet window will display, but the client area won't paint itself. If I damage or resize the window, the controls will draw, but the painted area (the important part, really) won't display at all. If anyone has a suggestion as to why this is the case, I'd greatly appreciate hearing it.

Posted by Caleb at 3:05 AM

October 13, 2005

Homework 3: Color Study

This assignment focused on colors, contrasts, and their interactions. I created a "color field" applet which displays a swatch of color that can be manipulated in several ways.

  • In the default state, the field's color is a slightly variant spatial gradient that is animated over time in RGB color space. The different color channels can be set manually, however, by using the three sliders on the control panel. A checked box denotes a channel that is currently under manual control, while an unchecked box indicates that the system is animating that channel.
  • Within the color field is a grid of contrast squares, which demonstrate several different types of contrast. They can be controlled by selecting different contrast modes:
    • Saturation contrast (default): The grid of squares remains at a constant medium gray value, which has no saturation. Both the background color and contrast square color can be changed by manipulating the Value Contrast sliders. The sliders change the value from null (black) to full (white).
    • Hue contrast: The grid of squares receives the contrasting color of the color field.
    • Light-dark contrast: Not implemented.
    • Cold-warm contrast: Not implemented.
  • Also by default, the field is composed of a grid of shapes whose size is animated over time. The geometry can be controlled by selecting different geometry modes:
    • Oscillating circles (default): A grid of circles with an oscillating radius. The separation between circles introduces negative space, which sometimes creates a "positive negative" effect, depending on the value contrast between the color field and its background.
    • Static circles: A static grid of circles.
    • Oscillating squares: A grid of squares with an oscillating side length. The separation between squares introduces an interesting grid effect, and the eye is sometimes fooled into seeing curved lines due to the animation.
    • Equal borders: A grid of squares where the thickness of the square is equal to the separation between squares.
    • Thin borders: A grid of squares with a low thickness. When the contrast grid is set to a medium gray value, the oscillation in color causes the eye to see squares that appear to grow and shrink in size.
Source code (ColorStudy.java) is available here.

Posted by Caleb at 11:52 AM

September 27, 2005

Homework 2: Cell Phone Simulation

This assignment had three parts:

  • First, I examined existing cell phone interfaces and interviewed users in order to create a document that surveys current interfaces and outlines the needs and requirements of users.
  • Second, I analyzed the data and opinions that I collected and created a design briefing document. It describes the features that I chose to implement, along with a few screenshots and diagrams.
  • Finally, I created a functional prototype of my design. Source code and documentation are online, and the applet is launched from this page.

Posted by Caleb at 11:52 AM

September 6, 2005

Homework 1: Disconnected Interaction Design

View my powerpoint presentation on my LG VX3200 cell phone's design problems.

Posted by Caleb at 01:19 AM

September 5, 2005

Page Created

Nothing much to see at the moment.

Posted by Caleb at 11:19 PM



Some rights reserved | Best viewed with a standards-compliant browser
Valid XHTML 1.1 | Valid Valid CSS