← back to Model Arena
auto-save: 2026-08-03T07:21:35 (2 files) — data/challenges.json data/artifacts/15f8755f21c5/
21aecf78c980061fc3b2c1e721729732b4539184 · 2026-08-03 07:21:43 -0700 · Steve Abrams
Files touched
A data/artifacts/15f8755f21c5/gemma3-12b.htmlA data/artifacts/15f8755f21c5/gemma3-12b.pngA data/artifacts/15f8755f21c5/qwen25-7b.htmlA data/artifacts/15f8755f21c5/qwen25-7b.pngA data/artifacts/15f8755f21c5/qwen3-14b.htmlA data/artifacts/15f8755f21c5/qwen3-14b.pngM data/challenges.json
Diff
commit 21aecf78c980061fc3b2c1e721729732b4539184
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 07:21:43 2026 -0700
auto-save: 2026-08-03T07:21:35 (2 files) — data/challenges.json data/artifacts/15f8755f21c5/
---
data/artifacts/15f8755f21c5/gemma3-12b.html | 85 +++++++++++++++++++++++
data/artifacts/15f8755f21c5/gemma3-12b.png | Bin 0 -> 18406 bytes
data/artifacts/15f8755f21c5/qwen25-7b.html | 62 +++++++++++++++++
data/artifacts/15f8755f21c5/qwen25-7b.png | Bin 0 -> 2724 bytes
data/artifacts/15f8755f21c5/qwen3-14b.html | 103 ++++++++++++++++++++++++++++
data/artifacts/15f8755f21c5/qwen3-14b.png | Bin 0 -> 6055 bytes
data/challenges.json | 57 +++++++++++++++
7 files changed, 307 insertions(+)
diff --git a/data/artifacts/15f8755f21c5/gemma3-12b.html b/data/artifacts/15f8755f21c5/gemma3-12b.html
new file mode 100644
index 0000000..607c2f2
--- /dev/null
+++ b/data/artifacts/15f8755f21c5/gemma3-12b.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Starfield Warp</title>
+ <style>
+ body { margin: 0; overflow: hidden; background-color: black; }
+ #canvasContainer { width: 100vw; height: 100vh; position: relative; }
+ #controls { position: absolute; top: 20px; left: 20px; color: white; font-family: sans-serif; }
+ </style>
+</head>
+<body>
+
+<div id="canvasContainer">
+ <canvas id="starfieldCanvas"></canvas>
+ <div id="controls">
+ Speed: <input type="range" id="speedSlider" min="1" max="10" value="5" step="0.1">
+ </div>
+</div>
+
+<script>
+ const canvas = document.getElementById('starfieldCanvas');
+ const ctx = canvas.getContext('2d');
+ const speedSlider = document.getElementById('speedSlider');
+
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+
+ let stars = [];
+ let warpDirectionX = 0;
+ let warpDirectionY = 0;
+ let speed = 5;
+
+ function init() {
+ for (let i = 0; i < 200; i++) {
+ stars.push({
+ x: Math.random() * canvas.width,
+ y: Math.random() * canvas.height,
+ z: Math.random() * canvas.width
+ });
+ }
+ }
+
+ function draw() {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+
+ for (let i = 0; i < stars.length; i++) {
+ const star = stars[i];
+ const x = star.x + warpDirectionX * speed * star.z / canvas.width;
+ const y = star.y + warpDirectionY * speed * star.z / canvas.height;
+
+ ctx.beginPath();
+ ctx.arc(x, y, 1, 0, Math.PI * 2);
+ ctx.fillStyle = 'white';
+ ctx.fill();
+ }
+
+ requestAnimationFrame(draw);
+ }
+
+ canvas.addEventListener('mousemove', (e) => {
+ const mouseX = e.clientX;
+ const mouseY = e.clientY;
+ warpDirectionX = (mouseX - canvas.width / 2) / canvas.width * 0.5;
+ warpDirectionY = (mouseY - canvas.height / 2) / canvas.height * 0.5;
+ });
+
+ speedSlider.addEventListener('input', () => {
+ speed = parseFloat(speedSlider.value);
+ });
+
+
+ init();
+ draw();
+
+ window.addEventListener('resize', () => {
+ canvas.width = window.innerWidth;
+ canvas.height = window.innerHeight;
+ init(); //Reinitialize stars on resize
+ });
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/15f8755f21c5/gemma3-12b.png b/data/artifacts/15f8755f21c5/gemma3-12b.png
new file mode 100644
index 0000000..1b507be
Binary files /dev/null and b/data/artifacts/15f8755f21c5/gemma3-12b.png differ
diff --git a/data/artifacts/15f8755f21c5/qwen25-7b.html b/data/artifacts/15f8755f21c5/qwen25-7b.html
new file mode 100644
index 0000000..d39aa08
--- /dev/null
+++ b/data/artifacts/15f8755f21c5/qwen25-7b.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <title>Starfield Warp Effect</title>
+ <style>
+ body {
+ margin: 0;
+ overflow: hidden;
+ background-color: black;
+ }
+ canvas {
+ display: block;
+ }
+ </style>
+</head>
+<body>
+ <canvas id="starfield" width="800" height="600"></canvas>
+ <input type="range" id="speedSlider" min="1" max="50" value="20" style="width:300px">
+
+ <script>
+ const canvas = document.getElementById('starfield');
+ const ctx = canvas.getContext('2d');
+ const speedSlider = document.getElementById('speedSlider');
+
+ let stars = [];
+ for (let i = 0; i < 500; i++) {
+ stars.push({
+ x: Math.random() * canvas.width,
+ y: Math.random() * canvas.height
+ });
+ }
+
+ function drawStars() {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+ const mouseX = (canvas.width / window.innerWidth) * event.clientX;
+ const mouseY = (canvas.height / window.innerHeight) * event.clientY;
+
+ stars.forEach((star, index) => {
+ const angle = Math.atan2(star.y - mouseY, star.x - mouseX);
+ const speed = 1 + (speedSlider.value / 50);
+ star.x += Math.cos(angle) * speed;
+ star.y += Math.sin(angle) * speed;
+
+ if (star.x < 0 || star.x > canvas.width || star.y < 0 || star.y > canvas.height) {
+ stars[index] = { x: Math.random() * canvas.width, y: Math.random() * canvas.height };
+ }
+
+ ctx.fillStyle = `hsl(${360 / stars.length * index + mouseX * 2}, 100%, 50%)`;
+ ctx.beginPath();
+ ctx.arc(star.x, star.y, 2, 0, Math.PI * 2);
+ ctx.fill();
+ });
+ }
+
+ canvas.addEventListener('mousemove', drawStars);
+
+ setInterval(drawStars, 30);
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/15f8755f21c5/qwen25-7b.png b/data/artifacts/15f8755f21c5/qwen25-7b.png
new file mode 100644
index 0000000..ad57eb4
Binary files /dev/null and b/data/artifacts/15f8755f21c5/qwen25-7b.png differ
diff --git a/data/artifacts/15f8755f21c5/qwen3-14b.html b/data/artifacts/15f8755f21c5/qwen3-14b.html
new file mode 100644
index 0000000..94b37a5
--- /dev/null
+++ b/data/artifacts/15f8755f21c5/qwen3-14b.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>Animated Starfield Warp</title>
+ <style>
+ html, body {
+ margin: 0;
+ padding: 0;
+ overflow: hidden;
+ background: black;
+ height: 100%;
+ width: 100%;
+ cursor: none;
+ }
+ canvas {
+ display: block;
+ }
+ #controls {
+ position: absolute;
+ top: 10px;
+ left: 10px;
+ color: white;
+ font-family: sans-serif;
+ background: rgba(0,0,0,0.5);
+ padding: 10px;
+ border-radius: 5px;
+ }
+ input[type="range"] {
+ width: 200px;
+ }
+ </style>
+</head>
+<body>
+ <div id="controls">
+ <label for="speed">Warp Speed: <span id="speedValue">1</span></label>
+ <input type="range" id="speed" min="0.1" max="5" step="0.1" value="1">
+ </div>
+ <canvas id="starfield"></canvas>
+ <script>
+ const canvas = document.getElementById('starfield');
+ const ctx = canvas.getContext('2d');
+ const controls = document.getElementById('controls');
+ const speedSlider = document.getElementById('speed');
+ const speedValue = document.getElementById('speedValue');
+
+ let width, height;
+ let mouse = { x: 0, y: 0 };
+ let warpDirection = { x: 0, y: 0 };
+ let speed = parseFloat(speedSlider.value);
+
+ function resize() {
+ width = canvas.width = window.innerWidth;
+ height = canvas.height = window.innerHeight;
+ }
+
+ window.addEventListener('resize', resize);
+ resize();
+
+ window.addEventListener('mousemove', (e) => {
+ mouse.x = e.clientX;
+ mouse.y = e.clientY;
+ warpDirection.x = (mouse.x - width / 2) / (width / 2);
+ warpDirection.y = (mouse.y - height / 2) / (height / 2);
+ });
+
+ speedSlider.addEventListener('input', (e) => {
+ speed = parseFloat(e.target.value);
+ speedValue.textContent = speed.toFixed(1);
+ });
+
+ const stars = [];
+ for (let i = 0; i < 1000; i++) {
+ stars.push({
+ x: Math.random() * width,
+ y: Math.random() * height,
+ z: Math.random() * 100 + 50,
+ size: Math.random() * 1.5 + 0.5
+ });
+ }
+
+ function drawStars() {
+ ctx.clearRect(0, 0, width, height);
+ ctx.fillStyle = 'white';
+ ctx.beginPath();
+ for (let star of stars) {
+ const x = (star.x - width / 2 + star.z * warpDirection.x * 10) / star.z + width / 2;
+ const y = (star.y - height / 2 + star.z * warpDirection.y * 10) / star.z + height / 2;
+ ctx.moveTo(x, y);
+ ctx.arc(x, y, star.size / star.z * 10, 0, Math.PI * 2);
+ }
+ ctx.fill();
+ }
+
+ function animate() {
+ drawStars();
+ requestAnimationFrame(animate);
+ }
+
+ animate();
+ </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/15f8755f21c5/qwen3-14b.png b/data/artifacts/15f8755f21c5/qwen3-14b.png
new file mode 100644
index 0000000..5482736
Binary files /dev/null and b/data/artifacts/15f8755f21c5/qwen3-14b.png differ
diff --git a/data/challenges.json b/data/challenges.json
index a440a4e..2132fe5 100644
--- a/data/challenges.json
+++ b/data/challenges.json
@@ -31266,5 +31266,62 @@
"judging": false,
"aiPick": "qwen3-14b",
"judged_at": "2026-08-02T14:30:48.798Z"
+ },
+ {
+ "id": "15f8755f21c5",
+ "title": "Daily: Starfield Warp",
+ "prompt": "Single-file HTML animated starfield warp effect on canvas; mouse position steers the warp direction; a slider controls speed.",
+ "category": "Games",
+ "designTools": false,
+ "created_at": "2026-08-03T14:15:06.032Z",
+ "winner": null,
+ "runs": [
+ {
+ "model": "qwen3-14b",
+ "status": "done",
+ "error": null,
+ "seconds": 48,
+ "cost": 0,
+ "started_at": "2026-08-03T14:15:06.070Z",
+ "finished_at": "2026-08-03T14:15:54.371Z",
+ "queued_at": "2026-08-03T14:15:06.043Z",
+ "bytes": 2671,
+ "thumb": true
+ },
+ {
+ "model": "gemma3-12b",
+ "status": "done",
+ "error": null,
+ "seconds": 38,
+ "cost": 0,
+ "started_at": "2026-08-03T14:15:54.385Z",
+ "finished_at": "2026-08-03T14:16:32.388Z",
+ "queued_at": "2026-08-03T14:15:06.051Z",
+ "bytes": 2428,
+ "thumb": true
+ },
+ {
+ "model": "hermes3-8b",
+ "status": "running",
+ "error": null,
+ "seconds": null,
+ "cost": null,
+ "started_at": "2026-08-03T14:16:32.393Z",
+ "finished_at": null,
+ "queued_at": "2026-08-03T14:15:06.057Z"
+ },
+ {
+ "model": "qwen25-7b",
+ "status": "done",
+ "error": null,
+ "seconds": 14,
+ "cost": 0,
+ "started_at": "2026-08-03T14:15:06.077Z",
+ "finished_at": "2026-08-03T14:15:19.635Z",
+ "queued_at": "2026-08-03T14:15:06.064Z",
+ "bytes": 2075,
+ "thumb": true
+ }
+ ]
}
]
\ No newline at end of file
← 7000ba2 auto-save: 2026-08-02T07:43:26 (3 files) — data/challenges.j
·
back to Model Arena
·
auto-save: 2026-08-03T07:51:47 (2 files) — data/challenges.j 2d60112 →