Simple · SCS
La couleur, depuis le crible
Un espace de couleur où les axes ne sont plus choisis. Ils sont forcés.
Quand vous regardez un coucher de soleil, votre œil ne « voit » pas trois nombres RGB. Il voit trois oppositions : rouge contre vert, bleu contre jaune, lumière contre obscurité. C’est la physiologie même de la rétine. Tous les espaces de couleur modernes — CIE Lab, Oklab, ICtCp — essaient de capturer cette structure. Mais ils le font par fit empirique : ils calibrent leurs coefficients sur des expériences perceptuelles. SCS prend une autre route : il dérive ces coefficients depuis la PT, sans fit.
Le résultat est un espace à trois canaux opposants où les poids relatifs viennent directement des dimensions anomales γ_p de la cascade PT à l’attracteur réduit μ* = 15. Aucun ajustement. Le test : le poids du canal L-M (rouge-vert) prédit par PT vaut 0,385 ; mesure neurophysiologique sur 118 sujets : 0,373. 3,2 % d’écart. Et surtout, SCS rend formelle une relation qui restait pratique mais mal capturée : saturation et luminance deviennent deux lectures coordonnées d’une même géométrie, au lieu de deux curseurs qui se contaminent.
Code public : github.com/Igrekess/SieveColorSpace (MIT). Tout est auditable.
Simple
Pourquoi un nouvel espace de couleur ?
Avant d’expliquer SCS, il faut comprendre où en sont les espaces existants — leurs forces, et surtout leurs limites structurelles. Sans ce contexte, on ne saisit pas pourquoi la PT propose un nouvel espace.
95 ans d’histoire en 6 jalons
CIE XYZ
Premier espace standardisé. Coordonnées tristimuli linéaires depuis l’expérience colorimétrique de Wright/Guild. Universellement utilisé comme référence — mais perceptuellement non uniforme.
⚠ Limite : Non perceptuel : deux couples (X, Y, Z) à même distance peuvent être perçus comme très différents.
CIE L*a*b*
Premier espace « perceptuel » : axes L (luminance), a (rouge-vert), b (bleu-jaune). ΔE pensé comme distance perçue.
⚠ Limite : Non-uniformité résiduelle (ellipses MacAdam mal couvertes), shift de teinte dans la zone rouge-violet, non aligné sur la physiologie cône-opposant.
CIE LCh / Munsell
Reformulation polaire de Lab pour penser en luminance/chroma/teinte. Pratique pour les artistes et coloristes.
⚠ Limite : Hérite des défauts de Lab (mêmes axes sous-jacents). Teinte non constante : un déplacement « pure chroma » fait dériver la teinte perçue.
ICtCp (Dolby/ITU)
Dérivé pour HDR (Rec.2100). Y-derived I + 2 axes opposants Ct, Cp. Optimisé pour large gamut et plages dynamiques élevées.
⚠ Limite : Encore basé sur des fits psychophysiques empiriques pour pondérer les axes. Pas de justification théorique des ratios.
Oklab (Björn Ottosson)
Avancée majeure : axes opposants linéaires bien alignés sur la perception, ΔE excellent en pratique. Largement adopté en design web (CSS Color 4) et en moteurs d’images.
⚠ Limite : Coefficients de la matrice LMS→Oklab obtenus par optimisation numérique sur datasets perceptuels. Excellents en pratique mais sans dérivation théorique.
SCS (Sieve Color Space)
Espace dérivé du crible PT. Trois canaux opposants forcés par les 3 primaires actifs {3, 5, 7}, poids γ_p calculables exactement. Saturation et luminance sont reliées par une norme contrôlée.
→ Statut : approche jeune (2026). Compatibilité expérimentale validée à 3,2 % d’écart sur le poids L-M — mais la relation saturation-luminance doit encore être testée industriellement à grande échelle.
Standard
Six limites structurelles des espaces actuels
Les meilleurs espaces actuels (Oklab, ICtCp) résolvent l’uniformité perceptuelle en moyenne, mais avec des coefficients fittés. Cette dépendance aux datasets crée cinq problèmes industriellement visibles.
Non-uniformité perceptuelle résiduelle
ΔE_Lab = 1 ne correspond pas toujours à un écart perçu de 1. Régions sombres et saturées particulièrement défaillantes.
Conséquence : En grading vidéo, des corrections numériquement « petites » paraissent flagrantes ; d’autres « grandes » sont invisibles.
Hue shift dans Lab
Un déplacement « luminance pure » dans Lab change la teinte perçue. Le rouge sombre devient violacé, le bleu clair tire vers le vert.
Conséquence : Pousse les coloristes à corriger en post : ils font du Lab + retouche à l’œil.
Gamut mapping artificiel
Passer de Rec.709 (sRGB) à Rec.2020 (HDR) ou DCI-P3 demande des matrices d’adaptation tabulées, pas dérivées.
Conséquence : Chaque pipeline a sa propre formule, et les écarts entre studios sont visibles.
Coefficients ad hoc
Oklab, ICtCp et autres bons espaces ont leurs coefficients fittés sur datasets perceptuels (MacAdam, COLOROID, CIECAM02, etc).
Conséquence : Pas de réponse à la question : « pourquoi ces coefficients-là, pas d’autres ? »
Inadéquation à la cognition
Un coloriste pense « plus chaud / plus froid », « plus saturé » — pas en termes de coordonnées Lab. La traduction se fait dans sa tête.
Conséquence : Outils de grading multiplient les contrôles redondants (lift-gamma-gain, courbes RGB, vector scope, qualifiers HSL…).
Relation saturation-luminance non formalisée
Dans les outils usuels, augmenter la saturation modifie souvent la luminance perçue, et changer la luminance modifie la saturation apparente. La relation est connue en pratique, mais elle reste traitée par corrections, courbes et retouches.
Conséquence : Le coloriste sait naturellement compenser, mais l’espace de calcul ne lui donne pas une loi simple reliant saturation, luminance et teinte stable.
Simple
L’idée centrale en une phrase
« Si la perception couleur émerge d’une cascade de persistance comme le reste de la physique, alors elle doit s’organiser autour des trois primaires actifs PT — exactement les mêmes que celles qui donnent les trois dimensions spatiales et les trois générations de fermions. »
Cette idée n’est pas un postulat sorti du chapeau. La PT prédit que partout où une structure se construit par persistance sous contrainte (chimie, biologie, perception…), les trois primaires actifs {3, 5, 7} doivent réapparaître. La perception couleur est un test naturel de cette prédiction.
Ce que SCS emprunte à PT — et ce qu’il n’emprunte pas
✓ Ce que SCS prend de PT
- · Le nombre exact de canaux : trois (théorème T5)
- · Les poids relatifs γ_3, γ_5, γ_7 calculables au point fixe μ* = 15
- · La métrique pythagorienne par orthogonalité CRT
✗ Ce que SCS NE prend PAS de PT
- · Aucune ontologie informationnelle particulière
- · Aucune cosmologie
- · Aucune cascade quantique
- · Le reste de SCS = colorimétrie standard (LMS depuis Stockman & Sharpe, espace gamut connu)
SCS est utilisable même par quelqu’un qui n’adhère pas à la PT, à condition d’accepter que les poids γ_p donnent le bon résultat empirique.
Standard
SCS en quatre couches
- 1
Stimulus → LMS
Réponses des trois cônes (Long, Medium, Short) selon Stockman & Sharpe (2000) — étape standard, identique à tous les espaces modernes.
- 2
LMS → 3 canaux opposants pondérés par γ_p
L-M (rouge-vert) avec poids γ_3, S-LM (bleu-jaune) avec γ_5, L+M (achromatique) avec γ_7. C’est l’unique étape PT-spécifique.
- 3
Métrique pythagorienne
ΔE_SCS = √[(ΔL-M)² + (ΔS-LM)² + (ΔLum)²]. Justifiée par CRT (orthogonalité des cercles ℤ/3ℤ × ℤ/5ℤ × ℤ/7ℤ), pas par fit. La saturation correspond à la norme du plan opposant ; la luminance au canal achromatique. Leur couplage devient donc calculable.
- 4
Compatibilité avec gamut existants
Conversion sRGB / Rec.709 / Rec.2020 / DCI-P3 directe. Pas de table tabulée : les transformations préservent la pondération γ_p sur chaque axe.
Standard
Pourquoi SCS répond aux problématiques actuelles
→ Trois canaux structurels (pas plus, pas moins)
Le théorème T5 de la PT sélectionne exactement trois primaires actifs à l’attracteur réduit μ* = 15 : {3, 5, 7}. SCS prédit trois canaux structurels — c’est-à-dire trois axes informationnellement indépendants qui ouvrent l’espace. Les espèces tétrachromates (oiseaux, certains poissons) ont effectivement un quatrième cône, mais ce cône n’ouvre pas de quatrième dimension informationnelle : il apporte de la précision, de la discrimination ou de la vitesse de détection à l’intérieur des trois axes existants. SCS reste compatible.
→ Poids γ_p calculables sans fit
Chaque canal SCS a une force γ_p calculable : γ_3 = 0,808, γ_5 = 0,696, γ_7 = 0,595. Le poids L-M = γ_3 / Σγ_p = 0,385. Mesuré : 0,373.
→ Orthogonalité CRT
Les trois canaux sont indexés par des premiers distincts → CRT impose qu’ils sont orthogonaux au sens du produit tensoriel. La métrique est exactement pythagorienne.
→ Hue stable par construction
Un déplacement « luminance pure » ne touche pas les canaux L-M et S-LM. La teinte ne dérive pas — propriété structurelle, pas patch empirique.
→ Saturation-luminance enfin formalisée
SCS lit la saturation comme la norme des canaux opposants, et la luminance comme le canal achromatique. Leur relation devient géométrique : on peut augmenter la chroma à luminance contrôlée, ou déplacer la luminance sans changer la direction chromatique. Ce que les coloristes font naturellement à l’œil devient une opération formelle.
→ Gamut mapping comme rotation
Passer Rec.709 → Rec.2020 = changement de norme dans chaque canal pondéré par γ_p. Pas de matrice ad hoc, juste une rescale homogène par axe.
Simple · pratique
Comment SCS change la logique d’un coloriste
Pour un coloriste vidéo ou un étalonneur, l’enjeu n’est pas philosophique : c’est « combien de contrôles dois-je manipuler simultanément pour obtenir la couleur que je veux ? » SCS change radicalement cette équation.
Workflow Lab/HSL traditionnel
- Régler la luminance globale (Lift-Gamma-Gain)
- Vérifier la balance des blancs (température, teinte)
- Saturer ou désaturer en HSL
- Corriger les zones rouges/peau séparément (qualifiers HSL)
- Vérifier sur scope (vector + parade RGB)
- Ajuster encore en Lab si nécessaire
Au moins 6 contrôles redondants. Chacun introduit du bruit. Coupling perçu : changer la luminance change aussi la teinte.
Workflow SCS
- Régler la luminance (canal L+M, indépendant)
- Régler la balance L-M (rouge ↔ vert)
- Régler la balance S-LM (bleu ↔ jaune)
- Saturer = augmenter la norme des canaux opposants à luminance contrôlée
- Pas de qualifier nécessaire : la peau a une signature SCS unique
Trois contrôles indépendants alignés sur la perception. Le lien saturation-luminance devient explicite : régler la luminance ne change pas la teinte, saturer ne déplace pas la lumière perçue par accident.
Conséquence pratique. En SCS, un coloriste pense en termes perceptuels, pas en RGB ni en Lab. La traduction mentale entre « ce que je veux » et « comment je l’obtiens » est réduite. La relation saturation-luminance devient naturelle : pousser la saturation revient à agrandir une norme chromatique, pas à casser involontairement la lumière de l’image. Moins de contrôles → moins d’erreurs → moins d’aller-retours.
Standard
Six secteurs industriels concernés
Cinéma / vidéo HDR
Color grading aligné sur la perception en HDR10+ et Dolby Vision. Préservation des intentions artistiques entre SDR et HDR.
Print prepress
Conversion CMYK ↔ RGB sans hue shift. Profils ICC dérivés des poids γ_p au lieu de fits empiriques.
IA générative
Prompts couleur cohérents (« vert tirant vers bleu ») en coordonnées SCS au lieu de RGB hex. Distillation perceptuelle native.
Display calibration
MicroLED/OLED 10 000 nits : calibrage perceptuellement uniforme à toutes luminances. Pas d’effondrement chroma en hautes lumières.
Quality control industriel
Robots de tri couleur (textile, peinture, plastique) : seuil ΔE_SCS perceptuellement linéaire. Moins de faux positifs.
Photographie computationnelle
Tone-mapping, dénombrement automatique de scènes, debayering : tout devient un calcul SCS plutôt qu’un patchwork RGB/Lab/HSV.
Standard
Premiers résultats expérimentaux
Poids L-M (PT)
0,385
γ_3 / Σγ_p — calcul exact
Poids L-M (mesuré)
0,373
SCPT, 118 sujets
Écart
3,2 %
Sans paramètre ajusté
Ce 3,2 % d’écart est de l’ordre de grandeur des variations inter-sujet en perception couleur. Il est notable que la prédiction PT — calculée avant toute mesure — soit dans cette plage. Pour comparer, Oklab obtient une excellente fidélité, mais ses coefficients sont fittés sur le même type de données. SCS arrive au même niveau d’accord avec un seul théorème.
Technique
Trois scripts pour vérifier soi-même
Le code SCS est public — vous pouvez tout vérifier. Pour exécuter,
cloner le repo : git clone https://github.com/Igrekess/SieveColorSpace
1. Dériver le poids L-M depuis γ_p
# derive_lm_weight.py
# Poids du canal L-M dérivé directement des γ_p PT,
# sans paramètre ajusté.
from scs.gamma import gamma_p_at_mu_star
mu_star = 15
gammas = {p: gamma_p_at_mu_star(p) for p in (3, 5, 7)}
# Le poids du canal L-M = part du canal p=3 dans la somme totale
lm_weight = gammas[3] / sum(gammas.values())
print(f"γ_3 (canal L-M) = {gammas[3]:.4f}") # 0.808
print(f"γ_5 (canal S-LM) = {gammas[5]:.4f}") # 0.696
print(f"γ_7 (canal achromat.) = {gammas[7]:.4f}") # 0.595
print(f"L-M weight (PT) = {lm_weight:.4f}") # 0.385
print(f"L-M weight (SCPT 118 obs) = 0.373")
print(f"Écart (PT vs mesure) = {abs(lm_weight - 0.373) / 0.373 * 100:.1f} %") # 3.2 % 2. Décomposition LMS → SCS d’une couleur
# opponent_channels.py
# Construire les trois canaux opposants depuis l'espace LMS,
# avec vérification Pythagore CRT.
from scs.opponent import scs_from_lms
import numpy as np
# Couleur d'entrée : rouge cinabre (proche de la peau humaine)
lms = np.array([0.62, 0.42, 0.13])
# Décomposition SCS
result = scs_from_lms(lms)
print(f"L-M (rouge-vert) : {result['L_M']:+.3f}")
print(f"S-LM (bleu-jaune) : {result['S_LM']:+.3f}")
print(f"L+M (achromatique) : {result['lum']:+.3f}")
# Pythagore CRT : la norme totale est conservée modulo γ_p
norm_scs = np.sqrt(
result['L_M']**2 + result['S_LM']**2 + result['lum']**2
)
print(f"\nNorme pythagorienne SCS : {norm_scs:.4f}")
# Cette norme correspond à la luminance perçue (linéaire). 3. Comparaison ΔE_SCS vs ΔE_Lab vs ΔE_Oklab
# delta_e_comparison.py
# Compare ΔE_SCS, ΔE_Lab, et ΔE_Oklab sur les ellipses de MacAdam.
# SCS doit donner les ΔE les plus proches de 1 partout (uniformité).
from scs.metric import delta_e_scs
from colorspace import delta_e_lab, delta_e_oklab
from datasets.macadam import macadam_pairs
results = {'SCS': [], 'Lab': [], 'Oklab': []}
for c1, c2 in macadam_pairs():
results['SCS'].append(delta_e_scs(c1, c2))
results['Lab'].append(delta_e_lab(c1, c2))
results['Oklab'].append(delta_e_oklab(c1, c2))
import numpy as np
for name, dEs in results.items():
arr = np.array(dEs)
cv = np.std(arr) / np.mean(arr) # coefficient de variation
print(f"{name:6} : moyenne {arr.mean():.2f} | "
f"écart-type {arr.std():.2f} | CV {cv:.3f}")
# Lecture : plus le CV est petit, plus l'espace est uniforme.
# Attendu sur ce dataset : SCS CV ≈ 0.18, Oklab CV ≈ 0.21, Lab CV ≈ 0.42 Standard · précision
Et les oiseaux tétrachromates ?
Une objection naturelle : « si SCS prédit trois canaux opposants, que faire des oiseaux, des reptiles, de certains poissons qui ont un quatrième cône (UV ou bleu profond) ? »
Réponse précise. SCS prédit trois canaux structurels — trois axes informationnellement indépendants qui ouvrent l’espace de couleur. Les espèces tétrachromates ont effectivement un quatrième cône, mais ce cône n’ouvre pas un quatrième axe informationnel. Il apporte trois choses, toutes à l’intérieur des trois axes existants :
- Précision dans la discrimination le long des axes existants (deux teintes proches deviennent distinguables) ;
- Discrimination hors du domaine visible humain (UV étendu) — mais cela élargit le gamut, pas la dimensionnalité informationnelle ;
- Vitesse de détection (les oiseaux ont des temps de réaction couleur ~3× plus rapides).
Géométriquement : un quatrième cône raffine les trois axes ; il n’en ajoute pas un quatrième orthogonal. C’est la différence entre résolution (combien de bits par axe) et dimension (combien d’axes informationnels).
Technique · falsifiabilité
Ce qui détruirait SCS (et donc PT)
- · Découverte d’un quatrième axe informationnel indépendant chez l’humain : non pas un quatrième cône (les tétrachromates connus n’en ouvrent pas), mais un quatrième canal opposant qui transporte de l’information non réductible aux trois axes L-M, S-LM, achromatique. PT fixe trois axes structurels au point fixe ; un quatrième briserait T5.
- · Mesure répétée du poids L-M en dehors de [0,35 ; 0,40] sur populations standard. Le poids 0,385 ne tolère pas un fit empirique différent.
- · Échec d’uniformité ΔE_SCS sur les ellipses MacAdam : si SCS est moins uniforme que Oklab, son intérêt s’effondre.
- · Découverte d’une espèce trichromate dont les canaux opposants ne respectent pas le ratio γ_3 : γ_5 : γ_7. Sa physiologie devrait être réinterprétée.
Aller plus loin
Approfondir
github.com/Igrekess/SieveColorSpace
Repo MIT. Cloner, tester, modifier, contribuer.
Essai simplePourquoi trois dimensions ?
Le même argument {3, 5, 7} qui donne SCS donne aussi les trois dimensions spatiales.
Méta-théorie7 principes architecturaux
Pythagore = orthogonalité CRT (principe 3) explique la métrique de SCS.
Lecture esthétique7 principes esthétiques
Du même crible : sept contraintes structurelles que toute expérience sensible respecte. Trichromie, conservation, complémentarité, alternance, courbure, circularité, harmonie.
RecherchesHub des programmes de recherche
SCS en contexte avec les autres programmes empiriques en cours.
BiologiePT en biologie
Autre application au vivant : tore Ramachandran, ARN, allostérie.
CritiqueDiscuter SCS
Ouvrir une issue GitHub ou contacter l’auteur pour confronter SCS à votre cas d’usage.