Evaluation
The claim on the landing page – a UI language AIs can write, and you can trust – is a measurable one, and this page is where the measurement lands. Two questions under test: given a natural-language prompt, how reliably does a model produce a correct, conformant interface – and once the measurement follows a whole refinement session rather than a single call, what does that session cost?
What is measured
Each evaluated model receives the same task set under controlled conditions: emitting Fuaran wire JSON, and emitting conventional UI code against baseline stacks. A Fuaran emission passes only when it clears two gates in sequence – the strict canonical decode (does it parse as valid Fuaran at all?) and an independent judge of task correctness. The code baselines pass a judged render gate over their own output. Each condition passes its own gate, and the comparison is conservative toward the baselines: the Fuaran gate is the stricter one.
Two measurement tiers feed the sections below. The single-turn tier asks for one emission per task and yields the pass, conformance, compactness and cost-per-correct figures. The multi-turn tier refines one artefact across successive prompts under the same per-condition gates, and measures the session rather than the call: the cumulative billed spend through each refinement turn, and whether the elements named in earlier turns keep their identity through to the final emission. The two tiers never pool – a single-shot rate is never diluted (or flattered) by multi-turn cells, and the session figures publish in their own section under their own cohort stamp.
Three honesty rules govern everything below. Every figure is emitted by the harness into this page's feed – nothing is hand-typed, and the page fails its build rather than render a drifted feed. An unmeasured metric is omitted at source and shown here as –, never as a fabricated zero. Confidence intervals are clustered by task, because runs of the same task are not independent – the honest unit of replication.
Results
Best per provider
Each provider's best-performing published arm on this corpus – the model the playground ships, at the measured recommended settings.
| Provider | Model | Passed | Pass rate | 95% CI | Valid first time | Mean output tokens | Cost (USD) |
|---|---|---|---|---|---|---|---|
| Google Gemini | gemini-3.6-flash | 156/174 | 89.7% | ±6.1 pp | 93.1% | 1730 | 10.88 |
| OpenAI GPT | gpt-5.6-sol@low | 148/171 | 86.5% | ±7.3 pp | 90.6% | 1259 | 9.38 |
| xAI Grok | grok-4.5 | 162/192 | 84.4% | ±7.1 pp | 86.5% | 1583 | 7.51 |
| Claude (Opus) | claude-fable-5@low | 143/171 | 83.6% | ±8.5 pp | 86.0% | 1718 | 23.01 |
Budget postures
The remaining published arms – including each provider's cost-optimal posture, disclosed beside the best rather than replaced by it. A best arm that is also its provider's cost pick appears only above.
| Provider | Model | Passed | Pass rate | 95% CI | Valid first time | Mean output tokens | Cost (USD) |
|---|---|---|---|---|---|---|---|
| Google Gemini | gemini-3.1-pro-preview | 140/171 | 81.9% | ±8.5 pp | 84.2% | 1588 | 21.87 |
| Claude (Opus) | claude-opus-4-8@low | 145/180 | 80.6% | ±8.0 pp | 88.3% | 1627 | 11.06 |
| OpenAI GPT | gpt-5.6-terra@low | 121/176 | 68.8% | ±9.2 pp | 72.2% | 819 | 3.80 |
gemini-3.6-flash, grok-4.5 double as the provider's cost recommendation.
An unmeasured metric shows – rather than a fabricated figure.
Compactness vs the baselines
Fuaran emission size ÷ baseline size over (task, provider) pairs where both sides produced a passing UI — below 1.00 the Fuaran artefact is smaller. Text = the stored artefact (reasoning excluded); billed = the one-time generation bill's output side.
| Baseline | Complexity | Text ratio | Billed ratio | Pairs | Tasks |
|---|---|---|---|---|---|
| JSX + shadcn/ui | all | 0.72 | 1.18 | 222 | 57 |
| Feliz (bare) | all | 0.68 | 1.02 | 201 | 54 |
| Dash (Python) | all | 0.64 | 0.89 | 79 | 20 |
| JSX + shadcn/ui | trivial | 0.33 | 0.70 | 32 | 8 |
| Feliz (bare) | trivial | 0.45 | 0.81 | 32 | 8 |
| Dash (Python) | trivial | 0.24 | 0.47 | 8 | 2 |
| JSX + shadcn/ui | medium | 0.69 | 1.35 | 99 | 26 |
| Feliz (bare) | medium | 0.65 | 1.10 | 93 | 25 |
| Dash (Python) | medium | 0.47 | 0.82 | 27 | 7 |
| JSX + shadcn/ui | compound | 0.77 | 1.13 | 91 | 23 |
| Feliz (bare) | compound | 0.71 | 0.98 | 76 | 21 |
| Dash (Python) | compound | 0.74 | 0.95 | 44 | 11 |
Session economics vs the baselines – multi-turn refinement
What a whole refinement session costs, not one emission: the same artefact is refined across successive prompts, and each spend figure is the cumulative billed USD through that turn, averaged over the sessions that reached it (denominator beside each figure). Identity preserved = the share of prompt-named element ids present in both the first and the final emission – whether the artefact survives refinement as itself rather than being regenerated.
| Model | Condition | Sessions | Spend by turn 3 | Spend by turn 5 | Identity preserved |
|---|---|---|---|---|---|
claude-opus-4-8 | Fuaran | 24 | $0.192 (n=24) | $0.341 (n=6) | 98.6% (n=24) |
claude-opus-4-8 | Feliz (bare) | 24 | $0.165 (n=24) | $0.559 (n=6) | 100.0% (n=24) |
claude-opus-4-8 | JSX + shadcn/ui | 24 | $0.176 (n=24) | $0.545 (n=6) | 100.0% (n=24) |
claude-opus-4-8@low | Fuaran | 24 | $0.150 (n=24) | $0.334 (n=6) | 98.6% (n=24) |
claude-opus-4-8@low | Feliz (bare) | 24 | $0.132 (n=24) | $0.428 (n=6) | 100.0% (n=24) |
claude-opus-4-8@low | JSX + shadcn/ui | 24 | $0.142 (n=24) | $0.444 (n=6) | 100.0% (n=24) |
gemini-3.1-pro-preview | Fuaran | 24 | $0.190 (n=24) | $0.330 (n=6) | 100.0% (n=24) |
gemini-3.1-pro-preview | Feliz (bare) | 24 | $0.140 (n=24) | $0.359 (n=6) | 100.0% (n=24) |
gemini-3.1-pro-preview | JSX + shadcn/ui | 25 | $0.128 (n=25) | $0.266 (n=6) | 100.0% (n=25) |
gpt-4o | Fuaran | 24 | $0.094 (n=24) | $0.178 (n=6) | 95.8% (n=24) |
gpt-4o | Feliz (bare) | 24 | $0.026 (n=24) | $0.072 (n=6) | 100.0% (n=24) |
gpt-4o | JSX + shadcn/ui | 24 | $0.025 (n=24) | $0.065 (n=6) | 100.0% (n=24) |
Tier-B multi-turn session economics: cumulative billed USD through turn k, mean over sessions that reached turn k (denominator beside each figure); identity = fraction of prompt-named element ids present in both the first and final emission, mean over measured cells. Multi-turn cells publish here only — parsePassRate remains a single-shot claim.
Excluded from this section: tier-b-001 — pre-v3 probe scaffold: identity figures structurally unfair (authoring protocol v3 note).
Session-economics cohort: 618-stage2-20260807.
Expected spend per correct artifact (USD)
Broken out per model arm, not only per condition. The conditions did not run the same model mix, so the pooled row compares mixes as much as languages — read the arm rows, where each line is the same model on both sides.
| Condition | Model | Runs | Pass rate | Cold, per correct | Cached session, per correct |
|---|---|---|---|---|---|
| Fuaran | all arms pooled | 1235 | 82.2% | 0.0862 | 0.0843 |
| Fuaran | claude-fable-5@low | 171 | 83.6% | 0.1609 | 0.1536 |
| Fuaran | claude-opus-4-8@low | 180 | 80.6% | 0.0762 | 0.0702 |
| Fuaran | gemini-3.1-pro-preview | 171 | 81.9% | 0.1562 | 0.1562 |
| Fuaran | gemini-3.6-flash | 174 | 89.7% | 0.0698 | 0.0698 |
| Fuaran | gpt-5.6-sol@low | 171 | 86.5% | 0.0634 | 0.0634 |
| Fuaran | gpt-5.6-terra@low | 176 | 68.8% | 0.0314 | 0.0314 |
| Fuaran | grok-4.5 | 192 | 84.4% | 0.0463 | 0.0463 |
| JSX + shadcn/ui | all arms pooled | 1200 | 98.4% | 0.0507 | 0.0506 |
| JSX + shadcn/ui | claude-fable-5@low | 171 | 98.8% | 0.0945 | 0.0942 |
| JSX + shadcn/ui | claude-opus-4-8@low | 171 | 98.2% | 0.0497 | 0.0493 |
| JSX + shadcn/ui | gemini-3.1-pro-preview | 171 | 97.1% | 0.0610 | 0.0610 |
| JSX + shadcn/ui | gemini-3.6-flash | 165 | 99.4% | 0.0628 | 0.0628 |
| JSX + shadcn/ui | gpt-5.6-sol@low | 171 | 97.7% | 0.0514 | 0.0514 |
| JSX + shadcn/ui | gpt-5.6-terra@low | 168 | 98.2% | 0.0240 | 0.0240 |
| JSX + shadcn/ui | grok-4.5 | 183 | 99.5% | 0.0138 | 0.0138 |
| Feliz (bare) | all arms pooled | 1200 | 79.8% | 0.0704 | 0.0703 |
| Feliz (bare) | claude-fable-5@low | 171 | 84.2% | 0.1176 | 0.1173 |
| Feliz (bare) | claude-opus-4-8@low | 171 | 77.8% | 0.0631 | 0.0625 |
| Feliz (bare) | gemini-3.1-pro-preview | 171 | 84.8% | 0.1031 | 0.1031 |
| Feliz (bare) | gemini-3.6-flash | 165 | 89.7% | 0.0653 | 0.0653 |
| Feliz (bare) | gpt-5.6-sol@low | 171 | 84.2% | 0.0641 | 0.0641 |
| Feliz (bare) | gpt-5.6-terra@low | 168 | 72.6% | 0.0439 | 0.0439 |
| Feliz (bare) | grok-4.5 | 183 | 66.7% | 0.0239 | 0.0239 |
| Dash (Python) | all arms pooled | 423 | 99.1% | 0.0654 | 0.0652 |
| Dash (Python) | claude-fable-5@low | 60 | 100.0% | 0.0987 | 0.0978 |
| Dash (Python) | claude-opus-4-8@low | 60 | 95.0% | 0.0531 | 0.0527 |
| Dash (Python) | gemini-3.1-pro-preview | 60 | 98.3% | 0.0791 | 0.0791 |
| Dash (Python) | gemini-3.6-flash | 60 | 100.0% | 0.0914 | 0.0914 |
| Dash (Python) | gpt-5.6-sol@low | 60 | 100.0% | 0.0771 | 0.0771 |
| Dash (Python) | gpt-5.6-terra@low | 60 | 100.0% | 0.0378 | 0.0378 |
| Dash (Python) | grok-4.5 | 63 | 100.0% | 0.0221 | 0.0221 |
Expected spend per correct artifact: mean per-call USD over ALL primary cells (failures included; repair cells excluded) / pass rate. Each condition passes its OWN gate - fuaran: strict wire parse AND judge; code baselines: a judged render gate over code never compiled or executed in-harness - so cross-condition comparison is conservative toward the baselines.
spend totals undercount whenever attempts were abandoned client-side (timeouts bill the provider but return no usage payload) — see the harness cost-undercount caveat
Provenance
Every figure above is emitted by the harness into this page's feed — nothing is hand-typed, and a number cannot travel without its stamp.
- Generated:
2026-08-09T07:03:49Z - Cohort:
since-20260730T003649Z - Harness commit:
3e065a78 - Suite version:
1.0 - Read the numbers at the public source