Theory mode is randomized, but not arbitrary. It keeps the surround colors
near the relationships that create strong simultaneous-contrast effects,
then varies each side so the target and your canvas are judged in different
visual contexts.
1. Start from the target hue
Each round begins with the target color. The surround hue is chosen
relative to that target, because a background affects perception most
when it has a meaningful relationship to the color being judged.
2. Pick a contrast family
The algorithm randomly chooses a near-complement or split-complement
direction: about 150°, 180°, or 210° away from the target. These ranges
push the eye toward the opposite side of the color wheel without using
the same perfect complement every time.
3. Add controlled jitter
A random offset is added around that contrast family. This prevents
memorizing a fixed rule like “the surround is always exactly opposite,”
while still keeping the background anchored in color theory.
4. Separate target and canvas
The target surround and canvas surround are generated independently.
The canvas surround must stay at least 28° away from the target
surround, so both boxes do not collapse into the same viewing condition.
5. Keep it visible
Saturation and value are randomized inside readable ranges. The
surround should be strong enough to shift perception, but not so dark,
gray, or washed out that the exercise becomes noise.
Practice effect
This trains context resistance: the target may look pushed away from
its surround, and your painted color may look different again on your
canvas. The score still compares the true colors, so the exercise is
learning to separate appearance from measured color.