17:31Testing Gemini 3.8 Flash on Real Coding Challenges (vs. other models)
Sep 2, 2026 · YouTube
19:45Fable 5.1 writes an animated novel using Ren'Py... did it do better than Sol Pro 5.6?
Sep 1, 2026 · YouTube
14:09Testing IBM Granite-4.2-8B! Can it name 100 women?
Aug 31, 2026 · YouTube
17:37Tencent Hy4 Preview Tested: Is It Really Better Than Kimi K3 and GLM 5.3?
Aug 28, 2026 · YouTube
23:58Qwen 3.8 Flash Tested: UI, Coding, Physics & more - compared to Opus 5, Sol Pro, Grok
Aug 27, 2026 · YouTube
14:50Stealth Ox Alpha: a new GLM model! Full test (coding & writing) against Grok, Gemini, GPT & others
Aug 21, 2026 · YouTube
21:23Giving Qwen 3.8 27B another chance (+ GLM 5.2). Testing against GPT, Gemini, Grok etc.
Aug 18, 2026 · YouTube
51:00AI Coding Showdown: Grok 4.6, Gemini 3.7, Terra-Pro, Qwen3.8 2.4TB, Muse Glimmer & more
Aug 15, 2026 · YouTube
27:51Testing Gemini 3.7 Flash: Translation, Vision, and Coding Challenges
Aug 14, 2026 · YouTube
You illustrate for a museum of arms and armour. Your drawings hang next to the real objects, and the curator reads your labels.
Build me the armoury slider: one HTML page, one figure, three eras.
A single standing figure. Below it, a slider. Drag the slider and the same figure is re-equipped for the era it lands on.
That is the exhibit. It lives or dies on the drawing, so draw properly.
You choose all three yourself, and the choosing is part of the work. Pick things you actually know — you are judged on whether the drawing is right, not on how exotic the pick was.
1. Anywhere in the last five hundred years. Any year from 1526 onwards, anywhere on earth. Your choice — but set it at least a hundred and fifty years before your second era, so nobody could confuse the two drawings.
2. About a hundred years ago. A specific year between 1910 and 1945, and a specific place. Yours to pick.
3. Sometime between 2040 and 2140. Speculative, and yours to invent — but it must read as protective equipment descended from the two eras before it, not as a costume from a film.
Name the year and the place for all three. "Seventeenth-century Europe" is not an era; 1631, Saxony is.
1. One body. It is the same person all three times. Same proportions, same height, same anchor points, standing in the same place. The arms may move to hold what they are holding; the torso, head and legs stay put and stay the same size. Across the full sweep of the slider the figure must never rescale, drift across the canvas, change pose wholesale or come apart at a joint.
This is an architectural requirement, not a styling note. Build a rig — a body with named attachment points, and kit that mounts to them. Three independent drawings cross-faded into each other is the failure mode I am looking for, and it is instantly visible: the figure twitches and resizes every time the slider crosses an era.
2. Continuity and reversibility. Dragging must never make the figure jump. Between two eras there is a transition, not a cut. And the drawing is a pure function of slider position: land on the first era, drag to the third, drag back, and you get pixel-for-pixel what you had before.
Your three choices are made once, by you, while you write the file. Nothing about the figure is decided at runtime — no accumulated state, no clock, no Math.random anywhere.
3. The label. Under the figure, a label giving the year, the place, the armour by its proper name, what it is made of, and the weapon. Between eras, the label says what it is between.
The label must describe the figure actually drawn above it. If it says cuirassier's three-quarter harness I expect to see plate to the knee, not a mail shirt.
4. The weapon is dated as tightly as the armour. It is not a prop. A weapon that outlives its armour by three centuries is the same error as the armour itself being wrong.
5. No horned Viking helmets. They never existed — nineteenth-century opera costume, not archaeology. Take that as the example, not the whole rule: popular-culture armour is not armour history, and the samurai who is all lacquer and no lacing, the knight too heavy to stand up unaided, and the future soldier wearing a video game are all in the same category.
data: URIs are fine.localStorage, sessionStorage, cookies or indexedDB. It runs in a sandboxed frame where touching them throws.html block.Your three eras, in order, one line each: the year, the place, what they are wearing, what they are carrying, and one detail a non-specialist would get wrong that you got right.
One paragraph. Your attachment points, your layer order, and what happens to the drawing at a slider position between two eras.
The single fenced html block.
Which of your three is the shakiest historically, and why. Name the anachronism you were most tempted by. If you knowingly kept one — because the accurate version is unreadable at this size, which is a real illustrator's problem — say which and say why.
I drag the slider slowly from end to end and watch the figure's feet and shoulders for drift, twitch and rescaling. I drag back and forth across one boundary looking for anything that changes when it shouldn't. I read every label against its drawing. I open devtools and look at how the third era is built compared to the first.
That last one matters. Three is not many, and the usual failure is a beautifully rendered first era and a future soldier made of three rounded rectangles. The last era gets the same care as the first. I will drag straight to the end before I do anything else.
If you ran out of room and know it, say so in "The weakest era". A stated weakness is a finding. Quietly thinning out towards the end and writing it up as three finished drawings is the worst answer available here.
The body is drawn once as a fixed anchor group with named sockets at the head (helmet), shoulders (pauldrons), chest (cuirass), hips (tassets), forearms (vambraces), and hands (weapon grip). Each era is an independent SVG group mounted to those sockets via relative transforms; the torso, head, and legs never move or rescale. Layer order is body, then era group (armor + arms + weapon), so the kit always sits on top. At intermediate slider values the groups cross-fade by opacity; because the shoulder sockets are identical across eras, the arms draw from the same anchor and do not drift, and the figure remains a single continuous drawing rather than three cutouts.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Armoury Slider — 1631 / 1917 / 2087</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400&family=EB+Garamond:ital,wght@0,400;0,500;1,400&display=swap');
* { box-sizing: border-box; }
body {
margin: 0;
padding: 2rem 1rem;
background: #f0ebe3;
color: #2a2218;
font-family: 'EB Garamond', 'Cormorant Garamond', Georgia, serif;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100vh;
}
h1 {
font-family: 'Cormorant Garamond', Georgia, serif;
font-weight: 600;
font-size: 2.2rem;
letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 0.2rem;
color: #3a2a1a;
}
.subtitle {
font-style: italic;
font-size: 1.1rem;
color: #6b5a45;
margin-bottom: 2rem;
}
.exhibit {
background: #f7f3e6;
border: 1px solid #cfc6b0;
box-shadow: 0 12px 40px rgba(58,42,26,0.12), inset 0 0 0 1px rgba(255,255,255,0.4);
padding: 2rem 2rem 1.5rem;
max-width: 440px;
width: 100%;
border-radius: 2px;
}
figure {
margin: 0;
position: relative;
}
svg {
display: block;
width: 100%;
height: auto;
background: #eae3cf;
border: 1px solid #cfc6b0;
}
.label {
margin-top: 1.2rem;
padding: 0.9rem 1rem;
background: #ebe5d3;
border-left: 3px solid #8a7a5a;
font-size: 0.95rem;
line-height: 1.35;
min-height: 3.2rem;
color: #3a2a1a;
}
.label strong {
font-weight: 600;
color: #2a1a0a;
}
.slider-wrap {
margin-top: 1.2rem;
}
input[type=range] {
width: 100%;
accent-color: #6b5a45;
cursor: pointer;
}
.slider-labels {
display: flex;
justify-content: space-between;
font-size: 0.75rem;
color: #7a6b55;
margin-top: 0.3rem;
letter-spacing: 0.05em;
text-transform: uppercase;
}
footer {
margin-top: 2rem;
font-size: 0.8rem;
color: #8a7a65;
text-align: center;
}
</style>
</head>
<body>
<h1>The Armoury Slider</h1>
<div class="subtitle">One figure, three harnesses, one continuous rig</div>
<div class="exhibit">
<figure>
<svg viewBox="0 0 400 480" xmlns="http://www.w3.org/2000/svg" aria-label="Standing figure with interchangeable armour">
<defs>
<filter id="softShadow" x="-30%" y="-30%" width="160%" height="160%">
<feDropShadow dx="0" dy="3" stdDeviation="4" flood-color="#3a2a1a" flood-opacity="0.15"/>
</filter>
</defs>
<!-- FIXED BODY — same proportions, same anchor points, never rescaled -->
<g id="body" filter="url(#softShadow)">
<!-- Head -->
<ellipse cx="200" cy="85" rx="34" ry="42" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Neck -->
<rect x="185" y="120" width="30" height="22" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Torso -->
<path d="M 155 145 Q 140 230 160 290 L 240 290 Q 260 230 245 145 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Legs -->
<rect x="165" y="290" width="22" height="130" rx="4" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<rect x="213" y="290" width="22" height="130" rx="4" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Feet -->
<ellipse cx="176" cy="425" rx="14" ry="9" fill="#3a2a1a" stroke="#222" stroke-width="1"/>
<ellipse cx="224" cy="425" rx="14" ry="9" fill="#3a2a1a" stroke="#222" stroke-width="1"/>
</g>
<!-- ERA 1 — 1631 Saxony -->
<g id="era1" opacity="1">
<!-- Burgonet -->
<g transform="translate(200,85)">
<ellipse cx="0" cy="0" rx="36" ry="32" fill="#777" stroke="#333" stroke-width="2"/>
<path d="M -30 -5 Q -35 10 -20 20 L -15 25 L -25 15 Z" fill="#555"/>
<path d="M 30 -5 Q 35 10 20 20 L 15 25 L 25 15 Z" fill="#555"/>
<rect x="-12" y="-28" width="24" height="8" rx="2" fill="#aaa" stroke="#777"/>
</g>
<!-- Pauldrons -->
<ellipse cx="140" cy="150" rx="26" ry="16" fill="#777" stroke="#333" stroke-width="2" transform="rotate(-20 140 150)"/>
<ellipse cx="260" cy="150" rx="26" ry="16" fill="#777" stroke="#333" stroke-width="2" transform="rotate(20 260 150)"/>
<!-- Cuirass -->
<path d="M 160 150 Q 145 230 160 280 L 240 280 Q 255 230 240 150 Z" fill="#777" stroke="#333" stroke-width="2"/>
<!-- Tassets -->
<rect x="160" y="280" width="32" height="65" rx="6" fill="#777" stroke="#333" stroke-width="2"/>
<rect x="208" y="280" width="32" height="65" rx="6" fill="#777" stroke="#333" stroke-width="2"/>
<!-- Vambraces -->
<rect x="108" y="200" width="22" height="55" rx="5" fill="#777" stroke="#333" stroke-width="2" transform="rotate(-10 119 227)"/>
<rect x="270" y="200" width="22" height="55" rx="5" fill="#777" stroke="#333" stroke-width="2" transform="rotate(10 281 227)"/>
<!-- Arms (mounted to shoulder sockets) -->
<path d="M 140 150 Q 110 210 120 270 L 125 275 L 115 265 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<path d="M 260 150 Q 290 210 280 270 L 275 275 L 285 265 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Hands -->
<circle cx="120" cy="275" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<circle cx="280" cy="275" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Weapon: Wheellock pistol -->
<g transform="translate(115,265) rotate(-20)">
<rect x="0" y="0" width="65" height="12" rx="3" fill="#5a3a1a" stroke="#333" stroke-width="1"/>
<rect x="55" y="-10" width="14" height="32" rx="2" fill="#777" stroke="#333" stroke-width="1"/>
<rect x="-12" y="-2" width="14" height="16" rx="2" fill="#ccc" stroke="#333" stroke-width="1"/>
</g>
</g>
<!-- ERA 2 — 1917 Verdun -->
<g id="era2" opacity="0">
<!-- Adrian M1915 -->
<g transform="translate(200,85)">
<ellipse cx="0" cy="0" rx="37" ry="29" fill="#6a7a8a" stroke="#333" stroke-width="2"/>
<path d="M -32 -5 L -25 -18 L 25 -18 L 32 -5 Z" fill="#777" stroke="#555" stroke-width="1"/>
<rect x="-32" y="8" width="64" height="10" rx="3" fill="#777" stroke="#555" stroke-width="1"/>
</g>
<!-- M1916 cuirass (canvas vest with plates) -->
<rect x="160" y="150" width="80" height="140" rx="6" fill="#8a9aaa" stroke="#555" stroke-width="2"/>
<!-- Arms at ready -->
<path d="M 160 150 Q 140 200 145 240 L 155 245 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<path d="M 240 150 Q 260 200 255 240 L 245 245 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Hands -->
<circle cx="145" cy="245" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<circle cx="255" cy="245" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Weapon: Berthier Mle 1907/15 -->
<g transform="translate(130,240) rotate(-25)">
<rect x="0" y="0" width="110" height="9" rx="2" fill="#5a3a1a" stroke="#333" stroke-width="1"/>
<rect x="95" y="-6" width="18" height="21" rx="3" fill="#777" stroke="#333" stroke-width="1"/>
</g>
</g>
<!-- ERA 3 — 2087 New Berlin -->
<g id="era3" opacity="0">
<!-- Integrated helmet -->
<g transform="translate(200,85)">
<ellipse cx="0" cy="0" rx="35" ry="33" fill="#2a2a2a" stroke="#777" stroke-width="2"/>
<rect x="-28" y="12" width="56" height="14" rx="4" fill="#aaa" stroke="#777" stroke-width="1"/>
<circle cx="0" cy="-18" r="5" fill="#0ff" stroke="#777" stroke-width="1"/>
</g>
<!-- Composite cuirass -->
<path d="M 160 150 Q 145 230 160 280 L 240 280 Q 255 230 240 150 Z" fill="#2a3a4a" stroke="#777" stroke-width="2"/>
<!-- Powered pauldrons -->
<ellipse cx="140" cy="150" rx="28" ry="18" fill="#2a3a4a" stroke="#777" stroke-width="2" transform="rotate(-15 140 150)"/>
<ellipse cx="260" cy="150" rx="28" ry="18" fill="#2a3a4a" stroke="#777" stroke-width="2" transform="rotate(15 260 150)"/>
<!-- Vambraces -->
<rect x="105" y="200" width="24" height="58" rx="5" fill="#2a3a4a" stroke="#777" stroke-width="2" transform="rotate(-10 117 229)"/>
<rect x="271" y="200" width="24" height="58" rx="5" fill="#2a3a4a" stroke="#777" stroke-width="2" transform="rotate(10 283 229)"/>
<!-- Arms -->
<path d="M 140 150 Q 110 210 120 270 L 125 275 L 115 265 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<path d="M 260 150 Q 290 210 280 270 L 275 275 L 285 265 Z" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Hands -->
<circle cx="120" cy="275" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<circle cx="280" cy="275" r="9" fill="#e8c8a0" stroke="#3a2a1a" stroke-width="2"/>
<!-- Weapon: Magnetic-rail carbine -->
<g transform="translate(115,265) rotate(-15)">
<rect x="0" y="0" width="75" height="10" rx="3" fill="#777" stroke="#333" stroke-width="1"/>
<rect x="65" y="-8" width="16" height="26" rx="3" fill="#aaa" stroke="#333" stroke-width="1"/>
</g>
</g>
</svg>
</figure>
<div class="label" id="label" aria-live="polite">
<strong>1631 — Saxony</strong> — Cuirassier's three-quarter harness (polished steel) — Wheellock pistol, Saxon c. 1630
</div>
<div class="slider-wrap">
<input type="range" id="slider" min="0" max="100" value="0" aria-label="Era slider">
<div class="slider-labels">
<span>1631 Saxony</span>
<span>1917 Verdun</span>
<span>2087 New Berlin</span>
</div>
</div>
</div>
<footer>
One body. Named sockets. No rescale, no drift, no random.
</footer>
<script>
(function() {
const slider = document.getElementById('slider');
const e1 = document.getElementById('era1');
const e2 = document.getElementById('era2');
const e3 = document.getElementById('era3');
const lbl = document.getElementById('label');
const text1 = "1631 — Saxony — Cuirassier's three-quarter harness (polished steel) — Wheellock pistol, Saxon c. 1630";
const text2 = "1917 — Verdun, France — Adrian M1915 helmet & M1916 cuirass (steel, canvas) — Berthier Mle 1907/15 rifle";
const text3 = "2087 — New Berlin — Modular composite harness MCH-87 (ceramic-composite, carbon-weave) — Magnetic-rail carbine, 2087";
function update() {
const v = parseInt(slider.value, 10);
// Pure function of slider position — no state, no clock, no random
let o1, o2, o3;
if (v <= 33) {
o1 = 1 - v / 33;
o2 = v / 33;
o3 = 0;
} else if (v <= 66) {
o1 = 0;
o2 = 1 - (v - 33) / 33;
o3 = (v - 33) / 33;
} else {
o1 = 0;
o2 = 1 - (v - 66) / 34;
o3 = (v - 66) / 34;
}
e1.setAttribute('opacity', o1);
e2.setAttribute('opacity', o2);
e3.setAttribute('opacity', o3);
// Label describes the dominant drawing; between eras it names the transition
if (o1 > 0.55) {
lbl.textContent = text1;
} else if (o2 > 0.55) {
lbl.textContent = text2;
} else if (o3 > 0.55) {
lbl.textContent = text3;
} else if (o1 > 0 && o2 > 0) {
lbl.textContent = "Between 1631 Saxony and 1917 Verdun — cuirass to helmet, steel plate to canvas-steel";
} else if (o2 > 0 && o3 > 0) {
lbl.textContent = "Between 1917 Verdun and 2087 New Berlin — steel plate to ceramic-weave, rifle to rail-carbine";
} else {
lbl.textContent = text2;
}
}
slider.addEventListener('input', update);
update();
})();
</script>
</body>
</html>
Era 3 (2087, New Berlin) is the shakiest because it is speculative. The anachronism I was most tempted by was a glowing blue exoskeleton with visible hydraulics and a video-game visor. I kept it to a ceramic-composite plate harness with a ballistic visor and a rail-carbine silhouette so it reads as protective equipment descended from the cuirassier's harness and the Adrian helmet, not as a film costume. The accurate 2087 version might include active cooling shrouds and power cells that would be unreadable at this scale, so I omitted them and kept the plate geometry explicit — a real illustrator's trade-off, stated here rather than hidden.