Day 13: Color Generation
Algorithmic Color Discovery
Algorithmic color generation can discover combinations impossible to find through manual selection. By programming color relationships mathematically, you can explore vast possibility spaces and stumble upon unexpected harmonies that challenge conventional color theory.
Learning from Sanzo Wada
Study Sanzo Wada's systematic approach to color combinations from the 1930s. His methodical exploration of hue, saturation, and brightness relationships created timeless palettes that still influence designers today. Modern generative tools can extend his systematic approach exponentially.
Creating Your Generator
Create a p5.js color generator that produces surprising but harmonious palettes. Start with one base color, then use mathematical relationships to generate companion colors - maybe add fixed hue shifts, multiply saturation values, or use sine waves to create rhythmic color progressions. Experiment with different color spaces (HSB often produces more intuitive relationships than RGB).
Color Generation Techniques:
- Fixed hue shifts (complementary, triadic, analogous)
- Mathematical saturation relationships
- Sine wave brightness progressions
- HSB color space for intuitive control
- Golden ratio color intervals
- Noise-based color variations
- Emotionally-biased algorithms
Emotional Color Programming
Create an interface where users can click to generate new palettes, and save interesting combinations as variables. Challenge yourself to generate palettes that feel emotionally specific - maybe "nostalgic sunset," "digital anxiety," or "future optimism." Program the algorithm to bias certain hue ranges or saturation levels to evoke these moods. This exercise teaches you that creativity and systematic thinking can work together, and that constraints often produce more interesting results than unlimited freedom.
Key Takeaways
- Algorithms can discover unexpected color harmonies
- Mathematical relationships create systematic palettes
- HSB color space enables intuitive generation
- Constraints produce more interesting results than freedom