[object Object]

← 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

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 →