01
Author target
Create a reference blur field with explicit color zones, softness, flow, and internal region shape.
Benchmark / 03
Experiment construction
01
Create a reference blur field with explicit color zones, softness, flow, and internal region shape.
02
Ask each candidate to reconstruct the same field in code, then keep only the rendered output for judging.
03
Place reference and candidates into the same vertical frame so the outer container never affects the score.
04
Compare hard color masks, gradient spread, local vector coherence, saturation spread, and grayscale range.
05
Batch the rows through verifier scores and failure notes, then use human inspection to calibrate the rubric.
Scalable verifiers
Problem
Blur-heavy designs can look plausible while color regions drift, merge, or become uniform haze. The current score checks some of those changes, but cannot tell whether a field moves in the intended direction.
Actually done
Rendered target and candidate CSS, then scored pixels.
Not done yet
No human baseline or production visual evaluator in this score.
Displayed score
Weighted sum minus 0.4 × standard deviation of all seven subscores.
| Metric | Wt | Input | How score is calculated | Caveat |
|---|---|---|---|---|
| Hue placementShows whether magenta, cyan, yellow, green, and purple land in the same parts of the rectangle. | 5% | Rendered target and candidate pixels in the same 180 x 225 frame. | For five fixed RGB hues, mask pixels within distance 100; average clamp(1 - centroid distance / (0.38 × max dimension)). | Missing hues use a zero centroid; soft blends near the hard threshold may be misread. |
| Region scalePenalizes a color field that is too tiny, too dominant, or missing. | 30% | Pixel counts in five hard RGB masks (distance < 100). | For each reference hue, compare candidate area to target area: avg min(candidate/reference, reference/candidate). | An absent hue in both images scores 100 here, while a missing hue in only one scores 0. |
| Internal shapeChecks whether the color region stayed blob-like, diagonal, split, wide, narrow, etc. | 5% | One Boolean mask per hue inside the shared rectangle. | For each hue mask: 65% mask IoU + 35% centroid closeness, then average across hues. | Two empty masks receive only 35% shape credit in the original scorer. Hard masks do not measure a true contour. |
| Softness / falloffScores whether the blur feels similarly soft instead of hard-edged or washed out. | 35% | Luminance-gradient strength across the rendered field. | Compare gradient standard deviation: 1 - abs(log(candidate / target)) / log(2.4). | Global gradient spread can miss local edges and over-reward extreme blur. |
| Blur flowChecks whether neighboring gradients have a similar degree of local alignment. | 5% | Normalized grayscale gradient vectors, smoothed with a 5 × 5 Gaussian kernel. | Compare the mean length of each smoothed vector field: clamp(1 - absolute coherence difference). | It discards absolute direction and position: perpendicular fields can score 100. |
| Bleed controlCatches fields that muddy together or become too evenly blended. | 15% | Saturation distribution for the whole rendered field. | Compare HSV saturation standard deviation: clamp(1 - absolute spread difference / 0.22). | This is a global saturation proxy, not a boundary bleed detector. |
| Range / contrastFlags fields that become too flat to support foreground content. | 5% | Luminance distribution for target and candidate renders. | Compare grayscale standard deviation: clamp(1 - absolute spread difference / 55). | This checks visual range only; it does not test real text contrast yet. |
Scores use seven metrics with weights [5, 30, 5, 35, 5, 15, 5], then subtract 0.4 × the population standard deviation of the seven scores. These scores need human calibration before use as a reward.
Color + blur rows
Reference

GPT-6 Astra

A tall central magenta region separates a yellow left edge from the cyan lower-right corner.
GPT-5.6 Sol

Central magenta column bridges a purple corner, yellow side glow, and cyan lower-right pool.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

Yellow flows down from the upper left into a bent magenta column, with mint and cyan along the right.
GPT-5.6 Sol

Warm vertical field shifts from yellow above to magenta below with a cool green-violet right edge.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

Three broad regions place yellow upper left, magenta upper right, and cyan across the lower center.
GPT-5.6 Sol

Three broad zones form yellow upper-left, magenta upper-right, and cyan lower-center.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

A vertical magenta center bridges green in the upper right and cyan in the lower left.
GPT-5.6 Sol

A magenta core separates green upper-right from cyan lower-left over coral warmth.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

A large left-heavy magenta field sits below a purple-to-yellow top and above a cyan base.
GPT-5.6 Sol

Large warm magenta mass dominates beneath a yellow crown with cyan gathered at the base.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

Cyan washes the upper-left edge while a broad magenta center tapers toward yellow at the lower right.
GPT-5.6 Sol

Cyan washes in from the upper-left around a centered magenta oval and yellow lower-right flare.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

Yellow hugs the upper-left edge, magenta forms a tilted central oval, and cyan fills the lower right.
GPT-5.6 Sol

Yellow upper-left and cyan lower-right flank a high central magenta bloom.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

A large magenta oval leans left, with pale green above and a cyan-to-blue strip along the right.
GPT-5.6 Sol

A low magenta oval meets a cool blue right edge beneath a pale green top haze.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

A yellow upper field surrounds right-centered magenta, with a narrow cyan pool and purple at the bottom left.
GPT-5.6 Sol

Yellow fills the upper-left, magenta swells at center-right, and cyan rises from the lower-left.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Reference

GPT-6 Astra

Purple and green divide the top, framing a central magenta oval above a cyan lower-right wash.
GPT-5.6 Sol

Purple upper-left flows through a central magenta body toward green above and cyan below on the right.
Claude Opus 5.5 · medium

PNG to CSS reconstruction from the same reference; medium effort.
Interactive score lab
Edit the candidate SVG while the reference stays fixed. All seven metrics recalculate in your browser.
The candidate starts with only its radius too small. Drag its center or change one control at a time; reset to repeat the experiment.
Candidate SVG · edit one circle
Live score against reference
—/ 100
Loading reference…