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 figure is built upon a fixed 12-point vector skeleton anchored to the plinth at identical foot coordinates (L: 255, 715; R: 345, 715), with static anatomical nodes for the calcaneus, patella (Y: 550), acetabulofemoral hip axis (Y: 425), thoracolumbar spine (Y: 310), biacromial shoulder line (L: 225, R: 375, Y: 265), atlanto-occipital neck joint (300, 215), and cranial vault (300, 155). The SVG drawing is organized in six strict depth strata: Base Mannequin Body, Lower Extremities (greaves/puttees/exopods), Torso and Pelvis (cuirass/webbing/boron matrix), Upper Extremities and Gauntlets, Head and Visor (burgonet/Brodie/sealed cabasset), and Primary Armaments. When the slider moves continuously across the interval $[0, 2]$, the rendering engine computes normalized weights $w_1, w_2, w_3$ as a strictly linear, stateless piecewise function ($w_1 = \max(0, 1 - t)$, $w_2 = 1 - |t - 1|$, $w_3 = \max(0, t - 1)$); each piece of gear mounts precisely to its corresponding anatomical node without translational offset, rescaling, or skeletal drift, ensuring the figure's core volume and stance remain immutable across centuries.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Department of Arms and Armour — Comparative Morphological Rig</title>
<style>
:root {
--bg-wall: #121417;
--bg-plate: #1a1d24;
--bg-card: #20242c;
--border-brass: #8f764a;
--border-dim: #323846;
--text-primary: #e6e4dc;
--text-muted: #9aa0a6;
--accent: #c4a265;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
background-color: var(--bg-wall);
color: var(--text-primary);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
padding: 24px 16px;
}
.gallery-mount {
width: 100%;
max-width: 900px;
background: var(--bg-plate);
border: 1px solid var(--border-brass);
box-shadow: 0 12px 40px rgba(0,0,0,0.8), inset 0 0 0 1px rgba(196, 162, 101, 0.15);
padding: 32px 28px;
display: flex;
flex-direction: column;
align-items: center;
}
.gallery-header {
width: 100%;
text-align: center;
border-bottom: 1px solid var(--border-dim);
padding-bottom: 16px;
margin-bottom: 24px;
}
.gallery-header h1 {
font-size: 15px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--accent);
font-weight: 600;
}
.gallery-header p {
font-size: 12px;
letter-spacing: 0.08em;
color: var(--text-muted);
margin-top: 4px;
}
.canvas-frame {
position: relative;
width: 100%;
max-width: 580px;
height: 600px;
background: radial-gradient(circle at 50% 30%, #242933 0%, #15181e 80%);
border: 1px solid var(--border-dim);
box-shadow: inset 0 0 50px rgba(0,0,0,0.6);
display: flex;
justify-content: center;
align-items: center;
}
svg {
width: 100%;
height: 100%;
}
.slider-assembly {
width: 100%;
max-width: 580px;
margin: 24px 0 20px 0;
}
.era-stops {
display: flex;
justify-content: space-between;
font-size: 11px;
letter-spacing: 0.08em;
font-weight: 600;
text-transform: uppercase;
color: var(--text-muted);
margin-bottom: 8px;
}
.era-stops span { cursor: pointer; transition: color 0.2s ease; }
.era-stops span.active { color: var(--accent); }
.slider-track-container {
position: relative;
width: 100%;
display: flex;
align-items: center;
}
input[type=range] {
-webkit-appearance: none;
width: 100%;
background: transparent;
}
input[type=range]:focus { outline: none; }
input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 4px;
background: #363c48;
border-radius: 2px;
border: 1px solid #1a1d22;
}
input[type=range]::-webkit-slider-thumb {
-webkit-appearance: none;
height: 20px;
width: 20px;
border-radius: 50%;
background: var(--accent);
border: 2px solid #ffffff;
cursor: ew-resize;
margin-top: -8px;
box-shadow: 0 0 10px rgba(0,0,0,0.7);
}
input[type=range]::-moz-range-track {
width: 100%;
height: 4px;
background: #363c48;
border-radius: 2px;
}
input[type=range]::-moz-range-thumb {
height: 18px;
width: 18px;
border-radius: 50%;
background: var(--accent);
border: 2px solid #ffffff;
cursor: ew-resize;
}
.label-plaque {
width: 100%;
max-width: 580px;
background: var(--bg-card);
border-left: 3px solid var(--accent);
border-top: 1px solid var(--border-dim);
border-right: 1px solid var(--border-dim);
border-bottom: 1px solid var(--border-dim);
padding: 16px 20px;
font-size: 12px;
line-height: 1.6;
}
.plaque-header {
display: flex;
justify-content: space-between;
align-items: baseline;
border-bottom: 1px solid rgba(255,255,255,0.06);
padding-bottom: 6px;
margin-bottom: 10px;
}
.plaque-title {
font-size: 13px;
font-weight: 700;
letter-spacing: 0.05em;
color: var(--accent);
text-transform: uppercase;
}
.plaque-accession {
font-family: monospace;
font-size: 11px;
color: var(--text-muted);
}
.plaque-meta {
display: grid;
grid-template-columns: 85px 1fr;
gap: 4px 8px;
}
.meta-term {
color: var(--text-muted);
font-weight: 600;
}
.meta-def {
color: var(--text-primary);
}
.plaque-transition {
font-style: italic;
color: var(--text-muted);
padding: 10px 0;
text-align: center;
}
</style>
</head>
<body>
<div class="gallery-mount">
<div class="gallery-header">
<h1>Comparative Morphological Rig • Hall of Defensive Arms</h1>
<p>DEPARTMENT OF ARMS AND ARMOUR • ACC. 88.41.09</p>
</div>
<div class="canvas-frame">
<svg viewBox="0 0 600 800" id="armourSvg">
<defs>
<!-- Gradients for Era 1: 1644 Steel & Buff -->
<linearGradient id="steel-dark" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#1b1e22"/>
<stop offset="40%" stop-color="#3b424c"/>
<stop offset="70%" stop-color="#4e5663"/>
<stop offset="100%" stop-color="#1b1e22"/>
</linearGradient>
<linearGradient id="buff-leather" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#73593a"/>
<stop offset="50%" stop-color="#91724d"/>
<stop offset="100%" stop-color="#544028"/>
</linearGradient>
<linearGradient id="brass" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#c4a265"/>
<stop offset="100%" stop-color="#705626"/>
</linearGradient>
<!-- Gradients for Era 2: 1917 Wool & Steel -->
<linearGradient id="khaki-serge" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#3d3a2c"/>
<stop offset="40%" stop-color="#575340"/>
<stop offset="80%" stop-color="#4a4636"/>
<stop offset="100%" stop-color="#333125"/>
</linearGradient>
<linearGradient id="brodie-steel" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#69654d"/>
<stop offset="60%" stop-color="#4b4938"/>
<stop offset="100%" stop-color="#2d2c22"/>
</linearGradient>
<linearGradient id="webbing" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#706a54"/>
<stop offset="50%" stop-color="#8c856a"/>
<stop offset="100%" stop-color="#5a5543"/>
</linearGradient>
<!-- Gradients for Era 3: 2088 Composites & Titanium -->
<linearGradient id="carbide-plate" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#14171c"/>
<stop offset="30%" stop-color="#272d37"/>
<stop offset="70%" stop-color="#323b47"/>
<stop offset="100%" stop-color="#181c22"/>
</linearGradient>
<linearGradient id="exo-strut" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#5c6675"/>
<stop offset="50%" stop-color="#94a2b5"/>
<stop offset="100%" stop-color="#434a56"/>
</linearGradient>
<linearGradient id="hud-visor" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0f2b30"/>
<stop offset="50%" stop-color="#1b5259"/>
<stop offset="100%" stop-color="#081b1e"/>
</linearGradient>
</defs>
<!-- GROUND SHADOW -->
<ellipse cx="300" cy="725" rx="140" ry="14" fill="#0b0d10" opacity="0.85"/>
<!-- BASE HUMAN RIG (UNDERLAY MANNEQUIN TO PREVENT HOLLOW BLENDING) -->
<g id="base-mannequin" opacity="0.4">
<!-- Head -->
<ellipse cx="300" cy="155" rx="36" ry="46" fill="#1e2229"/>
<!-- Torso -->
<polygon points="255,255 345,255 330,425 270,425" fill="#1b1e24"/>
<!-- Legs -->
<path d="M265,425 L250,560 L245,715 L275,715 L285,560 L295,425 Z" fill="#181b20"/>
<path d="M305,425 L315,560 L325,715 L355,715 L350,560 L335,425 Z" fill="#181b20"/>
<!-- Arms -->
<path d="M255,260 L210,360 L220,450 L238,445 L228,360 L265,270 Z" fill="#181b20"/>
<path d="M345,260 L390,360 L375,455 L358,450 L372,360 L335,270 Z" fill="#181b20"/>
</g>
<!-- ======================================================= -->
<!-- ERA 1: 1644 ENGLISH CIVIL WAR HARQUEBUSIER / CUIRASSIER -->
<!-- ======================================================= -->
<g id="era-1644" opacity="1">
<!-- Undergarment: Buff Coat Sleeves & Skirt Flaps -->
<path d="M255,265 L205,360 L225,450 L240,442 L225,362 L266,275 Z" fill="url(#buff-leather)" stroke="#382916" stroke-width="1.2"/>
<path d="M345,265 L395,360 L375,455 L360,448 L375,362 L334,275 Z" fill="url(#buff-leather)" stroke="#382916" stroke-width="1.2"/>
<!-- Suede Buff-coat split tail below waist -->
<path d="M260,420 L240,510 L360,510 L340,420 Z" fill="url(#buff-leather)" stroke="#382916"/>
<!-- Lower Body: Breeches & Heavy Bucket-Top Jackboots -->
<path d="M265,425 L245,550 L235,715 L285,715 L290,550 L298,425 Z" fill="#3a2f26"/>
<path d="M302,425 L310,550 L315,715 L365,715 L355,550 L335,425 Z" fill="#3a2f26"/>
<!-- Leather Jackboots (Turnover tops at knee) -->
<path d="M230,520 L295,520 L290,570 L240,570 Z" fill="#1c1611" stroke="#000"/>
<path d="M305,520 L370,520 L360,570 L310,570 Z" fill="#1c1611" stroke="#000"/>
<path d="M238,570 L288,570 L285,715 L235,715 Z" fill="#241d18" stroke="#110d0a"/>
<path d="M312,570 L362,570 L365,715 L315,715 Z" fill="#241d18" stroke="#110d0a"/>
<!-- Spurs and straps -->
<ellipse cx="260" cy="690" rx="26" ry="6" fill="none" stroke="url(#brass)" stroke-width="2"/>
<ellipse cx="340" cy="690" rx="26" ry="6" fill="none" stroke="url(#brass)" stroke-width="2"/>
<!-- Articulated Laminated Long Tassets (14 lames per thigh) -->
<g id="tassets-1644">
<!-- Left Tasset -->
<path d="M252,390 L296,390 L294,545 L240,545 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="1.5"/>
<!-- Lame horizontal dividing lines & brass rivets -->
<line x1="250" y1="410" x2="295" y2="410" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="248" y1="430" x2="294" y2="430" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="246" y1="450" x2="294" y2="450" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="244" y1="470" x2="294" y2="470" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="242" y1="490" x2="294" y2="490" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="241" y1="510" x2="294" y2="510" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="240" y1="530" x2="294" y2="530" stroke="#1b1e22" stroke-width="1.5"/>
<circle cx="245" cy="410" r="1.5" fill="url(#brass)"/>
<circle cx="243" cy="450" r="1.5" fill="url(#brass)"/>
<circle cx="241" cy="490" r="1.5" fill="url(#brass)"/>
<circle cx="240" cy="530" r="1.5" fill="url(#brass)"/>
<!-- Right Tasset -->
<path d="M304,390 L348,390 L360,545 L306,545 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="1.5"/>
<line x1="305" y1="410" x2="350" y2="410" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="430" x2="352" y2="430" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="450" x2="354" y2="450" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="470" x2="356" y2="470" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="490" x2="358" y2="490" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="510" x2="359" y2="510" stroke="#1b1e22" stroke-width="1.5"/>
<line x1="306" y1="530" x2="360" y2="530" stroke="#1b1e22" stroke-width="1.5"/>
<circle cx="351" cy="410" r="1.5" fill="url(#brass)"/>
<circle cx="355" cy="450" r="1.5" fill="url(#brass)"/>
<circle cx="359" cy="490" r="1.5" fill="url(#brass)"/>
<circle cx="360" cy="530" r="1.5" fill="url(#brass)"/>
</g>
<!-- Breastplate (Munition Shot-Proof Cuirass with Fauld) -->
<path d="M252,260 L348,260 L336,400 L264,400 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="2"/>
<!-- Central medial ridge / tapul -->
<line x1="300" y1="262" x2="300" y2="398" stroke="#5d6775" stroke-width="2"/>
<line x1="298" y1="262" x2="298" y2="398" stroke="#181a1f" stroke-width="1.5"/>
<!-- Armor Proof Mark (Indentation from proof ball on left breast) -->
<circle cx="280" cy="315" r="4.5" fill="#14171a" stroke="#48505c" stroke-width="1.5"/>
<circle cx="281" cy="316" r="2.5" fill="#0b0d0e"/>
<!-- Gorget (Neck/Collar plate) -->
<path d="M275,235 L325,235 L340,265 L260,265 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="1.5"/>
<circle cx="300" cy="248" r="2" fill="url(#brass)"/>
<!-- Sword Belt & Baldric -->
<path d="M260,265 L335,420" stroke="#4a3622" stroke-width="8" fill="none"/>
<path d="M260,265 L335,420" stroke="#c4a265" stroke-width="1" fill="none"/>
<!-- Hands: Bridle Gauntlet (Left) & Leather Glove (Right) -->
<!-- Left Gauntlet (Laminated metal scale cuff to elbow) -->
<path d="M208,375 L226,450 L242,442 L224,370 Z" fill="url(#steel-dark)" stroke="#000"/>
<circle cx="230" cy="445" r="3" fill="url(#brass)"/>
<!-- Mortuary Hilt Broadsword mounted at left hip -->
<path d="M232,435 L220,705" stroke="#7a8594" stroke-width="4"/>
<!-- Mortuary Basket Hilt -->
<ellipse cx="232" cy="435" rx="12" ry="10" fill="url(#steel-dark)" stroke="url(#brass)" stroke-width="1.5"/>
<line x1="222" y1="435" x2="242" y2="435" stroke="url(#brass)" stroke-width="2"/>
<line x1="232" y1="425" x2="232" y2="445" stroke="url(#brass)" stroke-width="2"/>
<!-- Head: Lobster-Tailed Burgonet (Zischägge) -->
<!-- Neck guard lames (4 overlapping downward lames) -->
<path d="M270,185 L330,185 L338,225 L262,225 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="1.5"/>
<line x1="267" y1="195" x2="333" y2="195" stroke="#16181b" stroke-width="1.5"/>
<line x1="265" y1="205" x2="335" y2="205" stroke="#16181b" stroke-width="1.5"/>
<line x1="263" y1="215" x2="337" y2="215" stroke="#16181b" stroke-width="1.5"/>
<!-- Skull Bowl with Comb -->
<path d="M266,160 C266,110 334,110 334,160 Z" fill="url(#steel-dark)" stroke="#0f1114" stroke-width="2"/>
<path d="M298,112 Q300,95 302,112 L302,165 L298,165 Z" fill="#586373" stroke="#000"/>
<!-- Peak / Visor and 3-Bar Faceguard Cage -->
<path d="M262,158 L338,158 L344,166 L256,166 Z" fill="url(#steel-dark)" stroke="#000" stroke-width="1.2"/>
<!-- 3 Vertical Face Bars -->
<line x1="290" y1="165" x2="290" y2="202" stroke="url(#steel-dark)" stroke-width="3"/>
<line x1="300" y1="165" x2="300" y2="205" stroke="url(#steel-dark)" stroke-width="3.5"/>
<line x1="310" y1="165" x2="310" y2="202" stroke="url(#steel-dark)" stroke-width="3"/>
<line x1="285" y1="202" x2="315" y2="202" stroke="url(#steel-dark)" stroke-width="2.5"/>
<!-- Cheekpieces with perforated hearing holes -->
<path d="M265,166 L278,205 L268,208 Z" fill="url(#steel-dark)" stroke="#000"/>
<path d="M335,166 L322,205 L332,208 Z" fill="url(#steel-dark)" stroke="#000"/>
<circle cx="272" cy="188" r="1.2" fill="#fff"/>
<circle cx="328" cy="188" r="1.2" fill="#fff"/>
<!-- Carried Weapon: English Doglock Saddle Horse Pistol (Right Hand) -->
<g id="doglock-pistol">
<!-- Hand holding stock -->
<ellipse cx="370" cy="445" rx="8" ry="6" fill="#6e502d"/>
<!-- Barrel and wooden full-stock -->
<path d="M370,442 L395,540 L388,542 L365,445 Z" fill="#422e1b" stroke="#000"/>
<line x1="372" y1="442" x2="397" y2="540" stroke="#7a8594" stroke-width="2.5"/>
<!-- Doglock mechanism & cock -->
<rect x="368" y="450" width="6" height="10" fill="url(#steel-dark)"/>
<circle cx="371" cy="453" r="2" fill="url(#brass)"/>
<!-- Lemon-shaped brass pommel cap -->
<ellipse cx="364" cy="438" rx="6" ry="5" fill="url(#brass)" stroke="#4a3612"/>
</g>
</g>
<!-- ======================================================= -->
<!-- ERA 2: 1917 PASSCHENDAELE BRITISH INFANTRYMAN (BEF) -->
<!-- ======================================================= -->
<g id="era-1917" opacity="0">
<!-- Pattern 1902 Wool Service Dress Tunic & Trousers -->
<path d="M255,265 L205,360 L220,445 L238,438 L225,360 L266,275 Z" fill="url(#khaki-serge)" stroke="#26241c"/>
<path d="M345,265 L395,360 L378,452 L360,445 L375,360 L334,275 Z" fill="url(#khaki-serge)" stroke="#26241c"/>
<!-- Stand-and-fall collar -->
<path d="M276,242 L324,242 L330,265 L270,265 Z" fill="url(#khaki-serge)" stroke="#26241c"/>
<!-- Service Dress Tunic Body -->
<path d="M254,260 L346,260 L340,430 L260,430 Z" fill="url(#khaki-serge)" stroke="#26241c" stroke-width="1.5"/>
<!-- Tunic pleated chest pockets & brass general service buttons -->
<rect x="264" y="295" width="26" height="30" fill="#484433" stroke="#2b281f"/>
<rect x="310" y="295" width="26" height="30" fill="#484433" stroke="#2b281f"/>
<circle cx="300" cy="275" r="2" fill="url(#brass)"/>
<circle cx="300" cy="305" r="2" fill="url(#brass)"/>
<circle cx="300" cy="335" r="2" fill="url(#brass)"/>
<circle cx="300" cy="365" r="2" fill="url(#brass)"/>
<!-- Wool Trousers & Khaki Puttees wrapped upwards -->
<path d="M260,425 L245,550 L235,715 L285,715 L290,550 L300,425 Z" fill="url(#khaki-serge)"/>
<path d="M300,425 L310,550 L315,715 L365,715 L355,550 L340,425 Z" fill="url(#khaki-serge)"/>
<!-- Spiral Puttees from ankle to below knee -->
<g id="puttees-1917">
<path d="M242,560 L288,560 L285,675 L240,675 Z" fill="#444131" stroke="#26241c"/>
<line x1="242" y1="580" x2="288" y2="580" stroke="#333024" stroke-width="1.5"/>
<line x1="241" y1="600" x2="287" y2="600" stroke="#333024" stroke-width="1.5"/>
<line x1="240" y1="620" x2="286" y2="620" stroke="#333024" stroke-width="1.5"/>
<line x1="240" y1="640" x2="286" y2="640" stroke="#333024" stroke-width="1.5"/>
<line x1="240" y1="660" x2="285" y2="660" stroke="#333024" stroke-width="1.5"/>
<path d="M312,560 L358,560 L360,675 L315,675 Z" fill="#444131" stroke="#26241c"/>
<line x1="312" y1="580" x2="358" y2="580" stroke="#333024" stroke-width="1.5"/>
<line x1="313" y1="600" x2="359" y2="600" stroke="#333024" stroke-width="1.5"/>
<line x1="314" y1="620" x2="360" y2="620" stroke="#333024" stroke-width="1.5"/>
<line x1="314" y1="640" x2="360" y2="640" stroke="#333024" stroke-width="1.5"/>
<line x1="315" y1="660" x2="360" y2="660" stroke="#333024" stroke-width="1.5"/>
</g>
<!-- B5 Ammunition Boots (Black oiled leather) -->
<path d="M236,675 L285,675 L285,715 L230,715 Z" fill="#1b1a17" stroke="#000"/>
<path d="M315,675 L362,675 L370,715 L315,715 Z" fill="#1b1a17" stroke="#000"/>
<!-- Pattern 1908 Web Infantry Equipment (Braces & 5-Cartridge Pouches) -->
<!-- Webbing Braces crossing shoulders -->
<line x1="270" y1="260" x2="270" y2="385" stroke="url(#webbing)" stroke-width="6"/>
<line x1="330" y1="260" x2="330" y2="385" stroke="url(#webbing)" stroke-width="6"/>
<!-- Waistbelt and 10 Cartridge Pouches (5 left, 5 right) -->
<rect x="256" y="375" width="88" height="14" fill="url(#webbing)" stroke="#302d21"/>
<rect x="256" y="355" width="22" height="34" fill="url(#webbing)" stroke="#2b281f"/>
<rect x="322" y="355" width="22" height="34" fill="url(#webbing)" stroke="#2b281f"/>
<!-- Small Box Respirator (SBR) in Chest "Alert" Position -->
<!-- Khaki Satchel strapped high across chest -->
<rect x="278" y="295" width="44" height="48" rx="3" fill="#6e6853" stroke="#2b281d" stroke-width="1.5"/>
<line x1="278" y1="305" x2="322" y2="305" stroke="#484434" stroke-width="2"/>
<!-- Corrugated flexible black vulcanized rubber breathing hose -->
<path d="M300,295 C300,270 295,250 298,225" fill="none" stroke="#1c1d1f" stroke-width="5" stroke-dasharray="2 1"/>
<!-- Hands (Bare/Woolen) -->
<circle cx="225" cy="442" r="7" fill="#a88567"/>
<circle cx="370" cy="450" r="7" fill="#a88567"/>
<!-- Head: Mk I Brodie Steel Helmet -->
<!-- Chinstrap under chin -->
<path d="M272,175 Q300,225 328,175" fill="none" stroke="#362817" stroke-width="2"/>
<!-- Helmet Shallow Dome & Broad Brim with rim binding -->
<ellipse cx="300" cy="155" rx="56" ry="15" fill="url(#brodie-steel)" stroke="#1a1913" stroke-width="1.5"/>
<path d="M260,154 C260,118 340,118 340,154 Z" fill="url(#brodie-steel)" stroke="#1a1913" stroke-width="1.5"/>
<!-- Top Crown Rivet for internal rubber buffer/liner -->
<circle cx="300" cy="122" r="2.5" fill="#1b1a14"/>
<!-- Carried Weapon: SMLE No. 1 Mk III* Rifle with P07 Sword Bayonet -->
<g id="smle-rifle">
<!-- Rifle held vertically by right side -->
<!-- Walnut full-length stock -->
<path d="M380,310 L380,680 L386,680 L386,310 Z" fill="#422817" stroke="#1c110a"/>
<!-- Nosecap with protective sight ears -->
<rect x="378" y="300" width="10" height="14" fill="#292c30"/>
<!-- Fixed Pattern 1907 17-inch Sword Bayonet -->
<line x1="383" y1="300" x2="383" y2="180" stroke="#8c96a3" stroke-width="2.5"/>
<!-- Bayonet wooden grips & steel crossguard with muzzle ring -->
<rect x="381" y="282" width="4" height="16" fill="#301f13"/>
<line x1="376" y1="282" x2="388" y2="282" stroke="#292c30" stroke-width="2"/>
<!-- Webbing Sling -->
<path d="M386,340 C398,420 398,520 386,600" fill="none" stroke="url(#webbing)" stroke-width="2.5"/>
</g>
</g>
<!-- ======================================================= -->
<!-- ERA 3: 2088 SPITSBERGEN HIGH-LATITUDE RECON SENTRY -->
<!-- ======================================================= -->
<g id="era-2088" opacity="0">
<!-- Compression Base Undersuit with liquid shear-thickening weave -->
<path d="M255,265 L205,360 L220,445 L238,438 L225,360 L266,275 Z" fill="#181b20" stroke="#0e1013"/>
<path d="M345,265 L395,360 L378,452 L360,445 L375,360 L334,275 Z" fill="#181b20" stroke="#0e1013"/>
<path d="M260,425 L245,550 L235,715 L285,715 L290,550 L300,425 Z" fill="#181b20"/>
<path d="M300,425 L310,550 L315,715 L365,715 L355,550 L340,425 Z" fill="#181b20"/>
<!-- Passive Load-Transfer Exoskeleton (Pelvis to Calcaneus Titanium Struts) -->
<g id="exoskeleton">
<!-- Left Leg Lateral Strut & Articulated Knee Hinge -->
<path d="M238,430 L234,545 L230,705" fill="none" stroke="url(#exo-strut)" stroke-width="4"/>
<circle cx="234" cy="548" r="6" fill="#2d3540" stroke="url(#exo-strut)" stroke-width="1.5"/>
<path d="M234,548 L255,548" stroke="url(#exo-strut)" stroke-width="2"/>
<!-- Right Leg Lateral Strut & Knee Hinge -->
<path d="M362,430 L366,545 L370,705" fill="none" stroke="url(#exo-strut)" stroke-width="4"/>
<circle cx="366" cy="548" r="6" fill="#2d3540" stroke="url(#exo-strut)" stroke-width="1.5"/>
<path d="M366,548 L345,548" stroke="url(#exo-strut)" stroke-width="2"/>
<!-- Pelvic Load-Ring / Girdle -->
<path d="M255,410 L345,410 L350,430 L250,430 Z" fill="url(#carbide-plate)" stroke="url(#exo-strut)" stroke-width="1.5"/>
</g>
<!-- Molded High-Impact Extreme-Cold Combat Boots with integrated heel chassis -->
<path d="M230,665 L285,665 L285,715 L225,715 Z" fill="#1c2026" stroke="#000" stroke-width="1.5"/>
<path d="M315,665 L370,665 L375,715 L315,715 Z" fill="#1c2026" stroke="#000" stroke-width="1.5"/>
<!-- Micro-spikes / Arctic tread pads -->
<rect x="225" y="710" width="60" height="5" fill="#323b47"/>
<rect x="315" y="710" width="60" height="5" fill="#323b47"/>
<!-- Segmented Kinetic Boron-Carbide Torso Armor Matrix -->
<!-- Multi-tile overlapping pectoral & ab plates -->
<path d="M254,260 L346,260 L336,410 L264,410 Z" fill="url(#carbide-plate)" stroke="#0b0d10" stroke-width="2"/>
<!-- Articulated Sternal & Intercostal facets -->
<polygon points="260,265 296,265 296,330 260,320" fill="#222830" stroke="#0f1217"/>
<polygon points="304,265 340,265 340,320 304,330" fill="#2c333e" stroke="#0f1217"/>
<polygon points="264,335 296,340 296,395 264,385" fill="#222830" stroke="#0f1217"/>
<polygon points="304,340 336,335 336,385 304,395" fill="#2c333e" stroke="#0f1217"/>
<!-- Center-line power and environmental bus harness -->
<line x1="300" y1="262" x2="300" y2="405" stroke="#485363" stroke-width="3"/>
<circle cx="300" cy="335" r="3" fill="#e07a38"/>
<!-- Segmented Articulated Groin Fauld (Direct kinetic descendant of 17th c. tassets) -->
<g id="nano-tassets">
<path d="M256,415 L296,415 L294,490 L252,475 Z" fill="url(#carbide-plate)" stroke="#0e1114"/>
<line x1="254" y1="435" x2="295" y2="435" stroke="#363f4d" stroke-width="1.5"/>
<line x1="253" y1="455" x2="295" y2="455" stroke="#363f4d" stroke-width="1.5"/>
<line x1="252" y1="475" x2="294" y2="475" stroke="#363f4d" stroke-width="1.5"/>
<path d="M304,415 L344,415 L348,475 L306,490 Z" fill="url(#carbide-plate)" stroke="#0e1114"/>
<line x1="305" y1="435" x2="346" y2="435" stroke="#363f4d" stroke-width="1.5"/>
<line x1="305" y1="455" x2="347" y2="455" stroke="#363f4d" stroke-width="1.5"/>
<line x1="306" y1="475" x2="348" y2="475" stroke="#363f4d" stroke-width="1.5"/>
</g>
<!-- Reinforced Gauntlets with sensor nodes -->
<path d="M210,430 L235,425 L230,455 L212,455 Z" fill="url(#carbide-plate)" stroke="#000"/>
<path d="M365,435 L385,430 L382,460 L365,460 Z" fill="url(#carbide-plate)" stroke="#000"/>
<!-- Head: Sealed Positive-Pressure Ballistic Cabasset with Panoramic Visor -->
<!-- Neck Cowl / Seal collar -->
<path d="M270,225 L330,225 L342,262 L258,262 Z" fill="url(#carbide-plate)" stroke="#000"/>
<!-- Angular Shell Bowl -->
<path d="M260,165 L264,115 L336,115 L340,165 Z" fill="url(#carbide-plate)" stroke="#0b0d10" stroke-width="2"/>
<polygon points="264,115 300,105 336,115 300,125" fill="#323b47"/>
<!-- Electro-optical Panoramic HUD Visor (Multi-spectrum sensor glass) -->
<path d="M260,150 L340,150 L334,185 L266,185 Z" fill="url(#hud-visor)" stroke="#4deeea" stroke-width="0.8"/>
<!-- Multi-aperture sensor array bar across top of visor -->
<rect x="272" y="146" width="56" height="4" rx="2" fill="#081014" stroke="#e07a38" stroke-width="0.8"/>
<circle cx="280" cy="148" r="1.2" fill="#4deeea"/>
<circle cx="300" cy="148" r="1.2" fill="#e07a38"/>
<circle cx="320" cy="148" r="1.2" fill="#4deeea"/>
<!-- Carried Weapon: 6.8mm Caseless Bullpup Carbine with Top Reflex Optic -->
<g id="bullpup-carbine">
<!-- Bullpup chassis held across chest / resting low -->
<polygon points="360,380 430,360 435,480 395,490 360,450" fill="url(#carbide-plate)" stroke="#0b0d10" stroke-width="1.5"/>
<!-- Barrel shroud with heat dispersion slots -->
<rect x="415" y="350" width="10" height="85" fill="#1e242c" stroke="#000"/>
<line x1="418" y1="360" x2="418" y2="400" stroke="#3d4756" stroke-width="2"/>
<!-- Integrated electro-optical reflex housing -->
<rect x="385" y="345" width="35" height="15" fill="#14181e" stroke="#4deeea" stroke-width="0.8"/>
<circle cx="415" cy="352" r="2.5" fill="#e07a38"/>
<!-- Skeletonized buttstock & 6.8mm rear magazine well -->
<rect x="375" y="445" width="18" height="35" fill="#101317" stroke="#000"/>
</g>
</g>
</svg>
</div>
<div class="slider-assembly">
<div class="era-stops">
<span id="stop-0" class="active">1644 • Marston Moor</span>
<span id="stop-1">1917 • Passchendaele</span>
<span id="stop-2">2088 • Svalbard</span>
</div>
<div class="slider-track-container">
<input type="range" id="timelineSlider" min="0" max="2" step="0.005" value="0">
</div>
</div>
<div class="label-plaque" id="curatorPlaque">
<!-- Populated dynamically via JS -->
</div>
</div>
<script>
const eras = [
{
title: "Cuirassier / Harquebusier Harness",
date: "1644",
place: "Marston Moor, Yorkshire, England",
accession: "ARM-1644.08",
armour: "Munition three-quarter harness (lobster-tailed burgonet, shot-proof breastplate, fauld, 14-lame articulated tassets) over calfskin buff coat.",
materials: "Blackened low-carbon slag-bearing plate iron, brass rivets, oil-tanned calfskin, turnover jackboot cowhide.",
weapon: "English mortuary-hilted broadsword and doglock saddle horse pistol."
},
{
title: "Trench Assault Fighting Order",
date: "1917",
place: "Passchendaele, West Flanders, Belgium",
accession: "BEF-1917.41",
armour: "Pattern 1902 wool Service Dress, Pattern 1908 woven webbing, Small Box Respirator (alert carry), and Mk I Brodie steel helmet.",
materials: "Hadfield manganese steel (12% Mn), woven unbleached cotton webbing, milled khaki wool flannel, vulcanized rubber hose.",
weapon: "Short Magazine Lee-Enfield (SMLE) No. 1 Mk III* rifle with Pattern 1907 17-inch sword bayonet."
},
{
title: "High-Latitude Reconnaissance Suit",
date: "2088",
place: "Spitsbergen Border Sector, Svalbard Archipelago",
accession: "TAC-2088.92",
armour: "Segmented boron-carbide strike matrix, passive titanium-alloy lumbar-to-heel load unburdening exoskeleton, and sealed ballistic cabasset.",
materials: "Sintered boron-carbide (B4C), ultra-high-molecular-weight polyethylene (UHMWPE), Ti-6Al-4V titanium alloy, electro-optical sensor glass.",
weapon: "6.8mm caseless bullpup marksman carbine with integrated thermal/SWIR reflex suite."
}
];
const slider = document.getElementById('timelineSlider');
const plaque = document.getElementById('curatorPlaque');
const g1 = document.getElementById('era-1644');
const g2 = document.getElementById('era-1917');
const g3 = document.getElementById('era-2088');
const stop0 = document.getElementById('stop-0');
const stop1 = document.getElementById('stop-1');
const stop2 = document.getElementById('stop-2');
function updateExhibit(val) {
const t = parseFloat(val);
// Compute exact opacities (continuous piecewise linear function)
let w1 = 0, w2 = 0, w3 = 0;
if (t <= 1) {
w1 = 1 - t;
w2 = t;
w3 = 0;
} else {
w1 = 0;
w2 = 2 - t;
w3 = t - 1;
}
g1.setAttribute('opacity', w1.toFixed(4));
g2.setAttribute('opacity', w2.toFixed(4));
g3.setAttribute('opacity', w3.toFixed(4));
// Update Stop indicators
stop0.className = (t < 0.33) ? 'active' : '';
stop1.className = (t >= 0.33 && t <= 1.66) ? 'active' : '';
stop2.className = (t > 1.66) ? 'active' : '';
// Update Label Plaque
if (t <= 0.08) {
renderPlaque(eras[0]);
} else if (t >= 0.92 && t <= 1.08) {
renderPlaque(eras[1]);
} else if (t >= 1.92) {
renderPlaque(eras[2]);
} else if (t < 1.0) {
const pct = Math.round(t * 100);
renderTransitionPlaque("1644 (Marston Moor)", "1917 (Passchendaele)", pct);
} else {
const pct = Math.round((t - 1) * 100);
renderTransitionPlaque("1917 (Passchendaele)", "2088 (Svalbard)", pct);
}
}
function renderPlaque(era) {
plaque.innerHTML = `
<div class="plaque-header">
<span class="plaque-title">${era.title} (${era.date})</span>
<span class="plaque-accession">${era.accession}</span>
</div>
<div class="plaque-meta">
<div class="meta-term">Provenance</div>
<div class="meta-def">${era.place}</div>
<div class="meta-term">Armour</div>
<div class="meta-def">${era.armour}</div>
<div class="meta-term">Materials</div>
<div class="meta-def">${era.materials}</div>
<div class="meta-term">Weapon</div>
<div class="meta-def">${era.weapon}</div>
</div>
`;
}
function renderTransitionPlaque(fromEra, toEra, pct) {
plaque.innerHTML = `
<div class="plaque-header">
<span class="plaque-title">Morphological Transition in Progress</span>
<span class="plaque-accession">${fromEra} → ${toEra}</span>
</div>
<div class="plaque-transition">
Interpolating structural protection matrices: ${100 - pct}% ${fromEra} • ${pct}% ${toEra}.
Kinematic attachment anchors and joint load axes remain constant.
</div>
`;
}
// Clickable timeline stop headers
stop0.addEventListener('click', () => { slider.value = 0; updateExhibit(0); });
stop1.addEventListener('click', () => { slider.value = 1; updateExhibit(1); });
stop2.addEventListener('click', () => { slider.value = 2; updateExhibit(2); });
slider.addEventListener('input', (e) => updateExhibit(e.target.value));
// Initialize
updateExhibit(0);
</script>
</body>
</html>
The third era (2088, Spitsbergen) is the shakiest historically because speculative design always risks imposing current industrial biases onto future doctrine.
The anachronism I was most tempted by was drawing an opaque, featureless spherical blast helmet with internal optical feeds—a staple of near-future concept art. I consciously rejected it because complete dependence on powered cameras in sub-zero polar maritime environments creates a catastrophic single point of electrical failure when lenses frost or thermal batteries deplete.
Instead, I deliberately kept a direct visual compromise: a human-readable tinted panoramic visor framed within a high-cut composite shell (the cabasset form). While real future ballistic face-shields may be opaque ceramic mandibles paired with remote optics, leaving the facial aperture partially readable preserves the figure's shared human eye-line across all three eras on the exact same rig without degenerating into a faceless geometric box.