← back to Model Arena
Shell validated across strong models (claude 9.0, grok 8.5, qwen3 7.5 — all SHIP). Beauty loop proven; taper reviews to minimal (~1/10 wakes).
7630c292c26771f7dbe5becdbc644462a6249d13 · 2026-07-25 07:49:32 -0700 · Steve Abrams
Files touched
A data/artifacts/6a9c87961945/qwen25-7b.htmlA data/artifacts/6a9c87961945/qwen25-7b.pngA data/artifacts/b172b14c63ac/hf-qwen-coder-32b.htmlA data/artifacts/b172b14c63ac/hf-qwen-coder-32b.pngM data/challenges.json
Diff
commit 7630c292c26771f7dbe5becdbc644462a6249d13
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Jul 25 07:49:32 2026 -0700
Shell validated across strong models (claude 9.0, grok 8.5, qwen3 7.5 — all SHIP). Beauty loop proven; taper reviews to minimal (~1/10 wakes).
---
data/artifacts/6a9c87961945/qwen25-7b.html | 141 ++++++++++++
data/artifacts/6a9c87961945/qwen25-7b.png | Bin 0 -> 41777 bytes
data/artifacts/b172b14c63ac/hf-qwen-coder-32b.html | 253 +++++++++++++++++++++
data/artifacts/b172b14c63ac/hf-qwen-coder-32b.png | Bin 0 -> 68913 bytes
data/challenges.json | 36 ++-
5 files changed, 418 insertions(+), 12 deletions(-)
diff --git a/data/artifacts/6a9c87961945/qwen25-7b.html b/data/artifacts/6a9c87961945/qwen25-7b.html
new file mode 100644
index 0000000..422aeb4
--- /dev/null
+++ b/data/artifacts/6a9c87961945/qwen25-7b.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Color Matching Game</title>
+<style>
+:root {
+ --bg: #f7efe6;
+ --surface: #fff9f1;
+ --text: #3a2c22;
+ --muted: #a08c7a;
+ --accent: #c65f38;
+ --line: 1px solid var(--muted);
+ --shadow: 0 8px 24px rgba(0,0,0,.12), hover 0 16px 48px rgba(0,0,0,.18);
+ --ease: cubic-bezier(.22,1,.36,1);
+}
+
+header {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ height: 96px;
+ padding-left: 48px;
+ background-color: var(--bg);
+ color: var(--text);
+ font-family: 'Didot', 'Bodoni MT', 'Playfair Display', Georgia, serif;
+ font-size: 50px;
+ letter-spacing: .18em;
+}
+
+body {
+ margin: 0;
+ padding: 96px;
+ background-color: var(--bg);
+ color: var(--text);
+ font-family: -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
+ line-height: 1.5;
+}
+
+h1, h2, h3, .scoreboard {
+ font-size: 38px;
+ letter-spacing: .15em;
+ text-transform: uppercase;
+ margin-bottom: 24px;
+}
+
+h1 {
+ color: var(--text);
+}
+
+h2, .scoreboard {
+ color: var(--muted);
+}
+
+.swatch {
+ width: 200px;
+ height: 80px;
+ border: var(--line);
+ box-shadow: var(--shadow);
+ margin-bottom: 16px;
+ cursor: pointer;
+ transition: transform .3s ease-out, box-shadow .2s ease-in;
+}
+
+.swatch:hover {
+ transform: scale(1.05);
+ box-shadow: var(--shadow) inset;
+}
+
+.rounds {
+ display: grid;
+ gap: 24px;
+ margin-bottom: 96px;
+}
+
+.result {
+ font-size: 28px;
+ text-align: center;
+ margin-top: 48px;
+}
+</style>
+</head>
+<body>
+<header>
+ <span>DESIGNER WALLCOVERINGS</span>
+</header>
+
+<div class="rounds">
+ <h1>Rounds: 5</h1>
+ <div id="target" class="swatch"></div>
+ <div id="reels" style="display: flex; gap: 16px;">
+ <div id="reel-1" class="swatch" style="background-image: linear-gradient(to right, var(--accent), var(--bg))"></div>
+ <div id="reel-2" class="swatch" style="background-image: linear-gradient(to right, var(--accent), var(--bg))"></div>
+ <div id="reel-3" class="swatch" style="background-image: linear-gradient(to right, var(--accent), var(--bg))"></div>
+ </div>
+</div>
+
+<div class="scoreboard">
+ <h2>Score:</h2>
+ <p id="score">0</p>
+</div>
+
+<script>
+let score = 0;
+let roundsPlayed = 0;
+
+function getRandomColor() {
+ return `linear-gradient(to right, ${['#c65f38', '#e0a458'][Math.floor(Math.random() * 2)]}, var(--bg))`;
+}
+
+function stopSwatches(event) {
+ event.preventDefault();
+ const target = document.getElementById('target').style.backgroundImage;
+ let reels = ['reel-1', 'reel-2', 'reel-3'];
+ reels.forEach((id, index) => {
+ const reel = document.getElementById(id);
+ reel.style.backgroundImage = getRandomColor();
+ setTimeout(() => {
+ if (reel.style.backgroundImage === target) {
+ score += 100;
+ } else {
+ score -= 50;
+ }
+ document.getElementById('score').textContent = `Score: ${score}`;
+ }, 300);
+ });
+}
+
+document.getElementById('reels').addEventListener('click', stopSwatches);
+
+function resetGame() {
+ score = 0;
+ roundsPlayed = 0;
+ document.getElementById('score').textContent = `Score: ${score}`;
+}
+
+resetGame();
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/6a9c87961945/qwen25-7b.png b/data/artifacts/6a9c87961945/qwen25-7b.png
new file mode 100644
index 0000000..bf6840d
Binary files /dev/null and b/data/artifacts/6a9c87961945/qwen25-7b.png differ
diff --git a/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.html b/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.html
new file mode 100644
index 0000000..47a5977
--- /dev/null
+++ b/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Color of the Season Reel</title>
+<style>
+:root {
+ --bg: #faf8f4;
+ --surface: #ffffff;
+ --text: #1c1a17;
+ --muted: #9b948a;
+ --accent1: #b0472e;
+ --accent2: #2f4c39;
+ --line: #dcdcdd;
+ --shadow: rgba(0,0,0,.12);
+ --ease: cubic-bezier(.22,1,.36,1);
+}
+
+body {
+ margin: 0;
+ font-family: -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
+ color: var(--text);
+ background-color: var(--bg);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100vh;
+ overflow: hidden;
+}
+
+header {
+ position: fixed;
+ top: 24px;
+ left: 24px;
+ font-family: 'Playfair Display', Georgia, serif;
+ font-size: 50px;
+ letter-spacing: .18em;
+ text-transform: uppercase;
+ color: var(--text);
+ z-index: 1000;
+}
+
+.container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+ position: relative;
+}
+
+.scene {
+ opacity: 0;
+ transform: translateY(28px);
+ animation: fadeUp .7s var(--ease) both;
+}
+
+@keyframes fadeUp {
+ from { opacity: 0; transform: translateY(28px); }
+ to { opacity: 1; transform: none; }
+}
+
+.hook, .hue-name, .swatches, .tip, .cta, .progress-bar {
+ width: 90%;
+ max-width: 600px;
+ text-align: center;
+}
+
+.hue-name {
+ font-size: 67px;
+ font-family: 'Playfair Display', Georgia, serif;
+ margin-top: 48px;
+}
+
+.swatches {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 32px;
+}
+
+.swatch {
+ width: calc(33% - 16px);
+ height: 96px;
+ background-size: cover;
+ position: relative;
+}
+
+.swatch:nth-child(1) { background-image: linear-gradient(45deg, var(--accent1), var(--accent2)); }
+.swatch:nth-child(2) {
+ background-image: radial-gradient(circle, var(--accent1) 0%, transparent 80%);
+ box-shadow: inset 0 0 24px rgba(0,0,0,.35);
+}
+.swatch:nth-child(3) {
+ background-color: var(--accent1);
+ position: relative;
+}
+
+.swatch:nth-child(3)::after {
+ content: '';
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ right: 8px;
+ bottom: 8px;
+ border: 2px solid var(--surface);
+ box-shadow: inset 0 0 16px rgba(0,0,0,.35);
+}
+
+.tip {
+ font-size: 24px;
+ margin-top: 48px;
+}
+
+.cta {
+ margin-top: 32px;
+ padding: 16px 32px;
+ background-color: var(--accent1);
+ color: var(--surface);
+ border: none;
+ cursor: pointer;
+ font-size: 20px;
+ transition: transform .15s ease-in-out, box-shadow .15s ease-in-out;
+}
+
+.cta:hover {
+ transform: translateY(-4px);
+ box-shadow: 0 16px 32px rgba(0,0,0,.18);
+}
+
+.progress-bar-container {
+ position: absolute;
+ bottom: 24px;
+ width: 90%;
+ max-width: 600px;
+ height: 8px;
+ background-color: var(--line);
+ border-radius: 4px;
+ overflow: hidden;
+}
+
+.progress-bar {
+ width: 0;
+ height: 100%;
+ background-color: var(--accent1);
+ transition: width 3s linear;
+}
+
+.controls {
+ position: absolute;
+ bottom: 24px;
+ right: 24px;
+ display: flex;
+ align-items: center;
+}
+
+.control-btn {
+ margin-left: 8px;
+ padding: 8px;
+ background-color: var(--accent1);
+ color: var(--surface);
+ border: none;
+ cursor: pointer;
+ font-size: 16px;
+ transition: transform .15s ease-in-out, box-shadow .15s ease-in-out;
+}
+
+.control-btn:hover {
+ transform: translateY(-2px);
+ box-shadow: 0 8px 16px rgba(0,0,0,.18);
+}
+</style>
+</head>
+<body>
+<header>DESIGNER WALLCOVERINGS</header>
+<div class="container">
+ <div id="reel" class="scene">
+ <div class="hook">This season it's all about...</div>
+ <div class="hue-name">Celadon</div>
+ <div class="swatches">
+ <div class="swatch"></div>
+ <div class="swatch"></div>
+ <div class="swatch"></div>
+ </div>
+ <div class="tip">Add a touch of Celadon to your space for a fresh, serene look.</div>
+ <button class="cta">SHOP NOW</button>
+ </div>
+ <div class="progress-bar-container">
+ <div id="progress" class="progress-bar"></div>
+ </div>
+ <div class="controls">
+ <button id="playPause" class="control-btn">PLAY</button>
+ </div>
+</div>
+<script>
+const reel = document.getElementById('reel');
+const progress = document.getElementById('progress');
+const playPauseBtn = document.getElementById('playPause');
+
+let scenes = [
+ { hook: "This season it's all about...", hueName: "Celadon", swatches: ["#6ca6cd", "#4385b7", "#1a659e"], tip: "Add a touch of Celadon to your space for a fresh, serene look.", cta: "SHOP NOW" }
+];
+
+let currentScene = 0;
+let intervalId;
+let isPlaying = true;
+
+function showScene(index) {
+ let sceneData = scenes[index];
+ reel.querySelector('.hook').textContent = sceneData.hook;
+ reel.querySelector('.hue-name').textContent = sceneData.hueName;
+ reel.querySelectorAll('.swatch').forEach((el, i) => el.style.backgroundImage = `linear-gradient(45deg, ${sceneData.swatches[i]}, transparent)`);
+ reel.querySelector('.tip').textContent = sceneData.tip;
+ reel.querySelector('.cta').textContent = sceneData.cta;
+
+ progress.style.width = '0';
+ clearInterval(intervalId);
+ intervalId = setInterval(() => {
+ let width = parseInt(progress.style.width, 10) || 0;
+ if (width >= 100) {
+ currentScene = (currentScene + 1) % scenes.length;
+ showScene(currentScene);
+ } else {
+ progress.style.width = `${width + 1}%`;
+ }
+ }, 30); // 3 seconds per scene
+}
+
+function togglePlayPause() {
+ isPlaying = !isPlaying;
+ playPauseBtn.textContent = isPlaying ? "PAUSE" : "PLAY";
+ if (isPlaying) {
+ intervalId = setInterval(() => {
+ let width = parseInt(progress.style.width, 10) || 0;
+ if (width >= 100) {
+ currentScene = (currentScene + 1) % scenes.length;
+ showScene(currentScene);
+ } else {
+ progress.style.width = `${width + 1}%`;
+ }
+ }, 30); // 3 seconds per scene
+ } else {
+ clearInterval(intervalId);
+ }
+}
+
+playPauseBtn.addEventListener('click', togglePlayPause);
+
+showScene(currentScene);
+</script>
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.png b/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.png
new file mode 100644
index 0000000..43c8c45
Binary files /dev/null and b/data/artifacts/b172b14c63ac/hf-qwen-coder-32b.png differ
diff --git a/data/challenges.json b/data/challenges.json
index 2ab0e75..b417e5e 100644
--- a/data/challenges.json
+++ b/data/challenges.json
@@ -28250,7 +28250,14 @@
"finished_at": "2026-07-25T14:31:23.604Z",
"queued_at": "2026-07-25T14:24:17.918Z",
"bytes": 9736,
- "thumb": true
+ "thumb": true,
+ "aiScore": 5.5,
+ "aiReason": "The HTML meets most of the requirements but lacks some visual flair and does not fully utilize the available space for a more engaging experience.",
+ "aiScores": {
+ "qwen2.5vl:7b": 7,
+ "minicpm-v:latest": 4
+ },
+ "aiSpread": 3
},
{
"model": "hermes3-8b",
@@ -28550,13 +28557,15 @@
},
{
"model": "hf-qwen-coder-32b",
- "status": "running",
+ "status": "done",
"error": null,
- "seconds": null,
- "cost": null,
+ "seconds": 89,
+ "cost": 0,
"started_at": "2026-07-25T14:47:46.163Z",
- "finished_at": null,
- "queued_at": "2026-07-25T14:36:23.183Z"
+ "finished_at": "2026-07-25T14:49:15.289Z",
+ "queued_at": "2026-07-25T14:36:23.183Z",
+ "bytes": 5895,
+ "thumb": true
},
{
"model": "claude-code",
@@ -28623,7 +28632,8 @@
"bytes": 23299,
"thumb": true
}
- ]
+ ],
+ "judging": true
},
{
"id": "6a9c87961945",
@@ -28666,13 +28676,15 @@
},
{
"model": "qwen25-7b",
- "status": "running",
+ "status": "done",
"error": null,
- "seconds": null,
- "cost": null,
+ "seconds": 26,
+ "cost": 0,
"started_at": "2026-07-25T14:48:17.484Z",
- "finished_at": null,
- "queued_at": "2026-07-25T14:48:17.456Z"
+ "finished_at": "2026-07-25T14:48:43.586Z",
+ "queued_at": "2026-07-25T14:48:17.456Z",
+ "bytes": 3362,
+ "thumb": true
},
{
"model": "hf-qwen-coder-32b",
← 1156e70 night-loop: cycle 07:48 — judged=193230252710 · fired 1 →; F
·
back to Model Arena
·
night-loop: cycle 07:59 — judged=d7636ea87ec3 · fired 2 →; F 2a4b2e1 →