CodeVis - Art and Vision in Software


PROJECTS DOWNLOADS PRODUCTS INFORMATION


Status: BETA

CodeBlind

A CodeVis Production.


CodeBlind Beta 1 (c) 2003 by CodeVis. All Rights Reserved.

This program is free for commercial and non-commercial use. Use it at your own risk.

You are free to download it from here and use it on any number of machines,
but you may not redistribute it publicly without permission.
Please distribute the URL instead (http://www.codevis.com/codeblind.html).

CodeBlind may change without notice. However, upgrades are not guaraunteed.

Please email any bug reports, comments, questions, feature requests, etc. to mike@codevis.com.

Special thanks to:


Table of Contents:


CodeBlind Overview

CodeBlind is a magnifier and color modification system rolled into one. It allows you to simulate colorblindness, or modify the displayed colorsets to be more colorblind-friendly.

The simulation modes are not mathematically correct, nor do they necessarily accurately model any one colorblind person. However, they are designed to help show what colors are ambiguous for various types of colorblindness to assist you in choosing good colors for your project. If you would like a mathematically correct model, please see the links under Further Reading at the end of this document.

Specifically, the model I'm using attenuates the deficient color more strongly than other models, and does so in RGB space rather than LMS space as might be appropriate for computer simulation. However, I have heard reports of people with a red deficiency having difficulties telling if a red light was on at all or seeing full red text on a black background, so perhaps it is not entirely off. Either way, additional conversions between color spaces (already doing RGB->HSI->RGB for hue shift and compression) would make the program considerably slower.

You also may want to note that it is reported in Brettel et. al (see Further Reading) and elsewhere that many people deficient in one color seem more sensitive to changes in color that affect the other two colors, which is not simulated here (only got 256 values per channel).

CodeBlind requires a modern computer with a true color (32-bit) display to run properly. While it has been heavily optimized versus previous versions, it still takes a decent amount of processing power depending on how you configure it. Please see the Usage and Troubleshooting sections if you run into problems.

To see what CodeBlind can do, take a look below. The first row of pictures from left to right show a simulated picture of colored candy, then the same picture as it might be seen with a red, green, and blue color deficiency.

picture of candy - normal picture of candy - red deficiency picture of candy - green deficiency picture of candy - blue deficiency

Notice the difficulty contrasting yellow and green with a red deficiency, or red and yellow with a green deficiency. Now look at the pictures below. From left to right, they are the second from the above table with a green deficiency, the original candy picture modified to have a compressed and shifted hue space with CodeBlind, and a simulation of the compressed hue image as seen with a green deficiency.
picture of candy - green deficiency picture of candy - compressed hue space picture of candy - compressed hue space with green deficiency

This is one way that CodeBlind can enhance viewing of colors. Another way is to simply convert one of them to grey. The pictures below show the same picture with the yellow channel converted to grey, then the simulation of that viewed with a green deficiency. The colors are no longer ambiguous.
picture of candy - yellow converted to grey picture of candy - yellow converted to grey with green deficiency

Table of Contents


Using CodeBlind

Screenshot of CodeBlind, showing both the magnifier window and the options window

The screenshot above shows the two CodeBlind windows: On the left is the Options window, and on the right is the Magnifier window.

The Magnifier window

The Magnifier window displays the graphics around your mouse cursor at whatever magnification level you have configured. In addition, any color transforms you have set up in the Options window will be applied to this view if the "Filter Colors" button is depressed at the top left of the Magnifier window.

To resize the Magnifier window, click on the four-way arrow at the bottom right and drag it to your desired size. You can always restore the window to its default size by pressing the "*" restore button, or by clicking on the window, then pressing ALT-R. You may also make the window larger or smaller in increments by pressing ALT-1 and ALT-2 respectively.

One last feature of the magnifier is it will display the name of the color that your cursor is currently over. There are currently 8 colors recognized:
BlackWhiteGreyRedYellow
GreenGreenCyanBlueMagenta

In addition, if the intensity is less than half the maximum, it will be called "dark". The color label describes the color of the actual pixel - NOT the transformed magnification view within CodeBlind.

To configure the Magnifier window, click on the "Configure" button along the top bar. This will bring up the Options window.

The Options Window

CodeBlind's Options window contains many different controls to allow you to simulate or enhance colors. In the center of it all, there are two color palettes. The left palette is the normal, unchanged palette. On the right is what that palette looks like after applying the currently configured transforms to the colors.

You can always restore the "Default" configuration just by pressing the "Reset All to Defaults".

The other controls are grouped as follows:

  • Performance
  • Color Control
  • Configuration
  • RGB Modification
  • Channel Brightness
  • Convert Color To Greyscale
  • Simulations

Performance Controls

The Performance Controls handle how CodeBlind behaves on your system.

If you want the magnifier to always be on top of any windows, regardless of focus, click the "Magnifier Always On Top" button in the top left of the Options Window.

To increase the magnification level in the Window, click on the "Magnify" knob and drag upwards. You can decrease the magnification level by dragging the knob downwards. For finer control, you can select any knob by clicking on it or using the Tab key, then press the arrow keys to turn it (up and down for coarse adjustments, left and right for fine-tuning).

The Refresh knob controls how fast the Magnification window is refreshed. This can be set anywhere from 1Hz to 50Hz. At 50Hz, it's obviously going to look best - however, depending on your hardware it may not be able to achieve that. The faster the refresh rate, the more processor it is going to take to run well. I'd recommend bringing up Task Manager or a similar Processor monitor and try to set the refresh to a level that takes under 30% of your processor's time.

The Filter knob controls whether or not the mouse tracking is filtered. If it is, then it will appear as if the magnification window follows behind your mouse, rather than updating directly from where the mouse is each time it refreshes. This can make it quite a bit easier to make sense of mouse movement in the window, but is really only advantageous at high refresh rates.

Color Control

There are three knobs in the Color Control section, labeled Hue, Compress, and Gamma. The Hue knob acts very similar to the hue knob on a TV - it rotates the hue of colors. Try turning it and watch the right palette in the Options window to get a feel for how this works.

The Compress knob sets the Hue compression. Since hue is a circular value (from the HSI or Hue, Saturation, and Intensity model), the compression simply reduces the amount of that circle that is traveled. In other words, it reduces all of the available colors into a smaller set of colors. Using the Hue knob as an offset, this allows you to reduce the 6 major colors down to as few as you would like, avoiding colors that you may have trouble seeing.

The Gamma knob simply performs gamma correction during the transform. By default, with the knob pointing straight up, no gamma is performed. To make the Magnification Window show everything darker, turn the Gamma down. To make everything brighter, turn it up.

Configuration controls

CodeBlind tracks your current configuration automatically and will save it to "Default.cbc" inside your /Program Files/CodeBlind/Data/ directory. However, if you want to use multiple configs, its easy - just click "Save Config" to save your current configuration as a different name. You can use the "Load Config" button to load configuration files, or - if they are saved in the default location - you can just click on the configuration name menu and it will let you pick.

RGB Modification controls

These controls let you modify the base RGB channels. You can use the "Negative Image" button to invert the red, green, and blue channels. You may also use any of the three "Swap" buttons to exchange two colors at the start of processing. This is useful for positioning colors the way you'd like them on the Hue spectrum.

Channel Brightness

In addition to the normal Gamma, you can control the brightness of the Red, Green, and Blue channels independantly via these knobs.

Convert Color to Greyscale

If you have a hard time seeing one or two colors, you may want to convert those colors to greyscale. These knobs, along the bottom of the display, allow you to control each of the basic colors individually.

Simulations

As mentioned at the top of this document, the simulations are not necessarily mathematically correct, nor are they gauraunteed to accurately model what any one colorblind person may see. However, they should give you a good idea of what colors may be ambiguous or hard to see by a colorblind person and shouldn't be used in an interface - at least not near the another color that might look similar.

The big thing is contrast - any text or important objects should have a high contrast against their background, even in situations where multiple colors may be confused. In addition, if you are designing an interface, try to use multiple types of indicators for any single message - it will make it easier on everyone. Color, shape, and text should all be used if possible. You may want to check under Further Reading for additional resources and suggestions.

At any rate, four types of color blindness are simulated. You may depress any one of the buttons at a time. To control the level of color blindness, rotate the "Severity" knob beneath the buttons.

The top two, Red and Green deficiencies, are the most common and are often grouped together as "Red/Green" color blindness. See Further Reading for osites with good explanations of each type of color blindness.

Table of Contents


Troubleshooting

This is a BETA of the program, and as such, it may have bugs in it. If you think you've found a bug, please be as descriptive as possible (including any error messages, the type of processor you have, how much RAM, and the type of video card) and send an email to mike@codevis.com.

Some likely problems are the following:

  • The Magnifier window refreshes too slowly: This is generally caused by the refresh knob being turned down. The default is fairly slow to help it run right off on older computers. Just turn up the knob. However, see the following....
  • CodeBlind takes up all my processor!: It can do that - it's doing some pretty hefty image processing and copying a lot of data around. Turn down the Refresh rate, turn up the Magnification, or make the Magnifier window smaller to reduce processor usage. I recommend a 2Ghz Pentium-class processor, 256MB of RAM, and an ATI or NVidia video card. However, it should work on considerably less if you turn it down a little....
  • Movement is too jerky in the Magnifier window: Turn up the Refresh and/or the Filter knobs. Also, see above.
  • Where can I get the latest version? Here.
  • The colors seem wrong or pixelized: You may be in 256 color mode, even if your hardware supports more. Right click on the desktop, select "Properties". The "Display Properties" dialog should appear. Now click on the "Settings" tab. Make sure the "Colors" drop-down is set to "True Color (32 bit)". Click "OK". Make sure to say "Yes" if it prompts you to keep them.

Table of Contents


Further Reading

Vision Tests

These also are fun to test CodeBlind with.

Designing with color

  • VisiBone is a great place for webmasters and other designers to get color information for web design. There's a also page there dedicated to designing to accomodate color blindness as well.
  • Joe Clark's book, Building Accessible Websites, has an excellent section on color blindness.

Color Blindness Simulation, Assistance, and Information

Table of Contents


Questions? Comments? Suggestions?
Email them to codevis@codevis.com or check out our public forums.
Copyright © 2003-2004 by Michael Ellison. All Rights Reserved.