[object Object]

← back to Model Arena

night-cycle: MAXP 3→4 so pipeline never drains to 0 between cycles

27876847a2837ca2dd797e5265593bc3a4eb709a · 2026-07-25 00:27:36 -0700 · Steve Abrams

Files touched

Diff

commit 27876847a2837ca2dd797e5265593bc3a4eb709a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Sat Jul 25 00:27:36 2026 -0700

    night-cycle: MAXP 3→4 so pipeline never drains to 0 between cycles
---
 data/artifacts/f585b9cfcaea/qwen25-7b.html | 113 +++++++++++++++++++++++++++++
 data/artifacts/f585b9cfcaea/qwen25-7b.png  | Bin 0 -> 16524 bytes
 data/challenges.json                       |  29 +++++---
 idea-run/night-cycle.sh                    |   2 +-
 4 files changed, 133 insertions(+), 11 deletions(-)

diff --git a/data/artifacts/f585b9cfcaea/qwen25-7b.html b/data/artifacts/f585b9cfcaea/qwen25-7b.html
new file mode 100644
index 0000000..b433c19
--- /dev/null
+++ b/data/artifacts/f585b9cfcaea/qwen25-7b.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Agent Reflex</title>
+    <style>
+        body {
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            height: 100vh;
+            background: #1e0d75;
+            margin: 0;
+            font-family: 'Courier New', Courier, monospace;
+        }
+        .command-center {
+            position: relative;
+            width: 300px;
+            text-align: center;
+            color: #fbc2eb;
+        }
+        .target {
+            position: absolute;
+            background: #ff9800;
+            width: 50px;
+            height: 50px;
+            border-radius: 100%;
+            box-shadow: 0 0 10px rgba(255, 154, 0, 0.7);
+        }
+    </style>
+</head>
+<body>
+    <div class="command-center">
+        <h1>Agent Reflex</h1>
+        <p id="score">0</p>
+        <p id="combo">x1</p>
+        <p>Hits: 0, Misses: 0</p>
+        <canvas id="gameCanvas" width="300" height="400"></canvas>
+    </div>
+    <script>
+        const canvas = document.getElementById('gameCanvas');
+        const ctx = canvas.getContext('2d');
+
+        let score = 0;
+        let combo = 1;
+        let misses = 0;
+        let targets = [];
+        let targetCount = 5;
+
+        function createTarget() {
+            return { x: Math.random() * (canvas.width - 50) + 25, y: Math.random() * 300 + 25 };
+        }
+
+        function drawTargets() {
+            ctx.clearRect(0, 0, canvas.width, canvas.height);
+            targets.forEach(target => {
+                ctx.beginPath();
+                ctx.arc(target.x, target.y, 25, 0, Math.PI * 2);
+                ctx.fillStyle = 'rgba(255,154,0,0.7)';
+                ctx.fill();
+                ctx.closePath();
+            });
+        }
+
+        function update() {
+            if (Date.now() - lastClickTime < 30000) {
+                targets.push(createTarget());
+                if (targets.length > targetCount) {
+                    const index = Math.floor(Math.random() * targets.length);
+                    targets.splice(index, 1);
+                }
+            }
+        }
+
+        function checkCollision(mouseX, mouseY) {
+            return targets.some(target => {
+                const distance = Math.sqrt((mouseX - target.x) ** 2 + (mouseY - target.y) ** 2);
+                return distance < 25;
+            });
+        }
+
+        canvas.addEventListener('click', e => {
+            const rect = canvas.getBoundingClientRect();
+            const mouseX = e.clientX - rect.left;
+            const mouseY = e.clientY - rect.top;
+
+            if (!checkCollision(mouseX, mouseY)) misses++;
+            else {
+                score += combo * 10;
+                combo++;
+            }
+
+            drawTargets();
+        });
+
+        let lastClickTime = Date.now();
+        setInterval(() => {
+            update();
+            drawTargets();
+        }, 1000 / 60);
+
+        const bestScore = localStorage.getItem('bestScore');
+        document.getElementById('score').textContent = `Score: ${score}`;
+        document.getElementById('combo').textContent = `x${combo}`;
+        document.getElementById('hitsMisses').textContent = `Hits: ${score}, Misses: ${misses}`;
+
+        if (score > bestScore) {
+            localStorage.setItem('bestScore', score);
+        }
+    </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/data/artifacts/f585b9cfcaea/qwen25-7b.png b/data/artifacts/f585b9cfcaea/qwen25-7b.png
new file mode 100644
index 0000000..2ed67b2
Binary files /dev/null and b/data/artifacts/f585b9cfcaea/qwen25-7b.png differ
diff --git a/data/challenges.json b/data/challenges.json
index 8c1b6db..4aa07b4 100644
--- a/data/challenges.json
+++ b/data/challenges.json
@@ -3426,7 +3426,14 @@
         "finished_at": "2026-07-23T16:04:06.553Z",
         "queued_at": "2026-07-23T16:03:17.934Z",
         "bytes": 5897,
-        "thumb": true
+        "thumb": true,
+        "aiScore": 6.3,
+        "aiReason": "Basic ragdoll physics and interactive elements are present but the visual quality is low due to minimalistic design.",
+        "aiScores": {
+          "qwen2.5vl:7b": 6,
+          "minicpm-v:latest": 6.5
+        },
+        "aiSpread": 0.5
       },
       {
         "model": "gemma3-12b",
@@ -13725,11 +13732,11 @@
     "runs": [
       {
         "model": "qwen3-14b",
-        "status": "queued",
+        "status": "running",
         "error": null,
         "seconds": null,
         "cost": null,
-        "started_at": null,
+        "started_at": "2026-07-25T07:27:14.055Z",
         "finished_at": null,
         "queued_at": "2026-07-25T07:27:10.161Z"
       },
@@ -13755,13 +13762,15 @@
       },
       {
         "model": "qwen25-7b",
-        "status": "running",
+        "status": "done",
         "error": null,
-        "seconds": null,
-        "cost": null,
+        "seconds": 21,
+        "cost": 0,
         "started_at": "2026-07-25T07:27:10.246Z",
-        "finished_at": null,
-        "queued_at": "2026-07-25T07:27:10.177Z"
+        "finished_at": "2026-07-25T07:27:31.697Z",
+        "queued_at": "2026-07-25T07:27:10.177Z",
+        "bytes": 3435,
+        "thumb": true
       },
       {
         "model": "hf-qwen-coder-32b",
@@ -13856,11 +13865,11 @@
       },
       {
         "model": "qwen25-7b",
-        "status": "queued",
+        "status": "running",
         "error": null,
         "seconds": null,
         "cost": null,
-        "started_at": null,
+        "started_at": "2026-07-25T07:27:31.705Z",
         "finished_at": null,
         "queued_at": "2026-07-25T07:27:10.307Z"
       },
diff --git a/idea-run/night-cycle.sh b/idea-run/night-cycle.sh
index a86f4ec..fd1629e 100755
--- a/idea-run/night-cycle.sh
+++ b/idea-run/night-cycle.sh
@@ -35,7 +35,7 @@ fi
 # PARALLEL: keep up to MAXP battles in flight. Paid models (kimi/gpt/grok) + claude-code
 # run concurrently across battles; locals drain serially per Ollama host. Fire enough
 # to refill to MAXP so the pipeline stays saturated.
-MAXP=${MAXP:-3}
+MAXP=${MAXP:-4}   # 4 keeps aggregate local-drain (~13min) > wake interval (10min) → pipeline never hits 0
 FIRED="(backlog $ACTIVE/$MAXP — full)"
 if [ "${ACTIVE:-0}" -lt "$MAXP" ]; then
   NEED=$(( MAXP - ACTIVE )); LINES=""

← 827e96b night-loop: cycle 00:27 — judged=59cdaeca7f55 · fired 3 →; F  ·  back to Model Arena  ·  night-loop: cycle 00:27 — judged=59cdaeca7f55 · fired 1 →; F 59658e6 →