What
Generate color palettes algorithmically at runtime instead of only using the hand-crafted ones in PALETTES.
Why
117 palettes is great but procedural generation means infinite variety — every era could potentially get its own
unique palette that has never existed before.
Ideas to explore
- Random hue rotation with locked saturation/brightness relationships
- Complementary, triadic, or analogous color theory schemes
- Perlin noise driven palette that slowly shifts hue over time
- Palette seeded from the era's seed number so it's fully reproducible
Where to look
nca/params.py — PALETTES dict and sample_params() where palettes get picked
display/windows.py — apply_palette_heat() where palettes get applied
- Generated palettes should return the same format as existing ones: a list of 4 RGB tuples
Notes
- Should work alongside existing hand-crafted palettes, not replace them
- Reproducibility matters — same seed should always produce same palette
What
Generate color palettes algorithmically at runtime instead of only using the hand-crafted ones in
PALETTES.Why
117 palettes is great but procedural generation means infinite variety — every era could potentially get its own
unique palette that has never existed before.
Ideas to explore
Where to look
nca/params.py—PALETTESdict andsample_params()where palettes get pickeddisplay/windows.py—apply_palette_heat()where palettes get appliedNotes