27:18Gemini 4 Hydrogen: Cheaper Tokens, More Expensive Answers?
Nov 13, 2026 · YouTube
18:40ERNIE 5.5 Flash Preview vs GLM 5.3 Flash: Baidu's new model is very impressive!
Nov 11, 2026 · YouTube
36:22Fable 5.2 robbing me blind, plus: Nex AGI's N2.6 vs GLM 5.3 Flash
Nov 11, 2026 · YouTube
14:03Gemini 4 Carbon: Can it handle my challenges? (First look with one-shot coding tests)
Nov 10, 2026 · YouTube
47:51Ranking major U.S. Open-Weights Models. (Where does Ripple 65B fit in?)
Nov 6, 2026 · YouTube
10:57"Crouton Alpha": the latest super-efficient coding model by Meta?
Nov 3, 2026 · YouTube
38:58Testing Particle-1: a post-trained DeepSeek V4.1 Flash specializing in coding and efficiency
Oct 28, 2026 · YouTube
22:14GPT-6.1 Terra Pro vs Terra: How Much Better Is Pro?
Oct 27, 2026 · YouTube
29:55Kimi K3.1 Pro Looked Incredible. Then I Kept Testing.
Oct 26, 2026 · YouTube
31:28Is this company reselling GPT Sol 6.1 at a loss (for non-agentic/text-only)?🤔 Is this sustainable?
Oct 20, 2026 · YouTube
17:58Nemotron 3.5 Super VL vs Opus 5.5: Testing NVIDIA’s new coding juggernaut
Oct 15, 2026 · YouTube
16:04Testing a *massive* new open-weights model 🤯: Muse Spark Open (vs. Nemotron, Opus 5.5, and more)
Oct 15, 2026 · YouTube
16:43Gemini 4 Argon: Great 🐈 Animation, but a broken escalator. (Coding challenge vs Opus 5.5, Sol 6.1)
Oct 13, 2026 · YouTube
16:37Meta's new "Muse Wonder" AI is impressive... but can it compete with Anthropic's models?
Oct 12, 2026 · YouTube
11:12WOW... Haiku 5.5 is very impressive. RIP OpenAI?
Oct 7, 2026 · YouTube
22:47Mistral Large 4 Is Cheap. But Is It Good Enough to Compete?
Oct 6, 2026 · YouTube
22:02Is Pareto 26.10 Preview Just Routing to GPT Sol? I Tested It Against Sol 6.1 Pro
Oct 1, 2026 · YouTube
11:22I Tested Sonnet 5.5 Against Opus 5.5. Is It Actually Cheaper?
Sep 28, 2026 · YouTube
30:00Did Elon Musk's team "train the gay away"... and make Grok 4.7 worse?
Sep 26, 2026 · YouTube
19:21I Tested the Stealth "Space Bunny Alpha" Model Before It Went Offline
Sep 23, 2026 · YouTube
10:58So... how much better is Claude Opus 5.5 vs. GPT-6 Sol, really?
Sep 23, 2026 · YouTube
9:38Claude Opus 5.5... the BEST new model for coding!! 🤩
Sep 22, 2026 · YouTube
29:00Grok 4.7: improved, but GLM 5.3 FlashX beat it anyway (benchmark against Gemini, Sol, etc.)
Sep 22, 2026 · YouTube
You make short animated pieces for the web.
Build me a single HTML page: a bird, breakdancing.
data: URIs are fine.localStorage, sessionStorage, cookies or indexedDB — sandboxed frame, they throw.html block.Two sentences: what the bird is, and the look you went for.
The single fenced html block.
Three bullets.
A scruffy, iridescent-necked pigeon with a backwards cap and chunky proportions. The look is rough, hand-drawn vector animation with squash-and-stretch weight, like a lo-fi b-boy character from a 90s web cartoon.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pigeon Breaks</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow: hidden; background: #141420; color: #fff; font-family: ui-sans-serif, system-ui, -apple-system, sans-serif; }
canvas { display: block; width: 100%; height: 100%; }
#ui {
position: absolute; top: 18px; left: 18px;
background: rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.08);
padding: 14px 16px; border-radius: 12px; backdrop-filter: blur(10px);
user-select: none; pointer-events: auto; min-width: 170px;
}
.row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.row:last-child { margin-bottom: 0; }
.row.disp { flex-direction: row; align-items: center; gap: 8px; }
label { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: #8a8aa0; }
input[type=range] { width: 140px; accent-color: #e94560; height: 5px; }
.val { font-size: 0.8rem; color: #e94560; font-variant-numeric: tabular-nums; min-width: 24px; text-align: right; }
button { background: #e94560; border: none; color: #fff; padding: 6px 12px; border-radius: 6px; font-weight: 700; font-size: 0.85rem; cursor: pointer; }
button:hover { opacity: 0.9; }
button:active { transform: translateY(1px); }
.hint { margin-top: 8px; font-size: 0.68rem; color: #6a6a80; line-height: 1.45; }
.chip { display: inline-block; padding: 0 6px; border-radius: 4px; background: rgba(233,69,96,0.12); color: #e94560; font-size: 0.62rem; margin-right: 4px; margin-bottom: 2px; }
</style>
</head>
<body>
<canvas id="c"></canvas>
<div id="ui">
<div class="row">
<label>Speed <span id="sv" class="val">1.0</span>x</label>
<input type="range" id="speed" min="0.2" max="2.5" step="0.1" value="1">
</div>
<div class="row">
<button id="drop">Drop the beat</button>
</div>
<div class="row disp">
<input type="checkbox" id="grit">
<label style="margin:0;text-transform:none;letter-spacing:normal;color:#ccc;font-size:0.85rem;">Film grain</label>
</div>
<div class="hint">
<span class="chip">Toprock</span><span class="chip">Drop</span><span class="chip">6-Step</span><span class="chip">Baby Freeze</span><span class="chip">Windmill</span><span class="chip">Recovery</span>
<div style="margin-top:6px;">Tap the beat to interrupt any move and slam into the floor.</div>
</div>
</div>
<script>
const canvas = document.getElementById('c');
const ctx = canvas.getContext('2d', { alpha: false });
let W, H, dpr;
function resize() {
W = window.innerWidth; H = window.innerHeight;
dpr = window.devicePixelRatio || 1;
canvas.width = Math.max(1, W * dpr); canvas.height = Math.max(1, H * dpr);
canvas.style.width = W + 'px'; canvas.style.height = H + 'px';
ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
}
window.addEventListener('resize', resize);
resize();
let t = 0, speed = 1, grit = false, forceDrop = false;
const CYCLE = 11.6;
const uiSpeed = document.getElementById('speed');
const uiSv = document.getElementById('sv');
const uiDrop = document.getElementById('drop');
const uiGrit = document.getElementById('grit');
uiSpeed.addEventListener('input', e => { speed = parseFloat(e.target.value); uiSv.textContent = speed.toFixed(1); });
uiDrop.addEventListener('click', () => { forceDrop = true; });
uiGrit.addEventListener('change', e => { grit = e.target.checked; });
const PI = Math.PI;
function clamp(v,a,b){ return v<a?a:v>b?b:v; }
function easeInOutCubic(k){ return k<0.5 ? 4*k*k*k : 1-Math.pow(-2*k+2,3)/2; }
function easeOutCubic(k){ return 1-Math.pow(1-k,3); }
function easeInBack(k){ const s=1.70158; return k*k*((s+1)*k-s); }
function getPhase(time) {
let cyc = time % CYCLE;
if (cyc < 2.0) return { name:'toprock', p: cyc/2.0 };
if (cyc < 2.6) return { name:'drop', p: (cyc-2.0)/0.6 };
if (cyc < 5.6) return { name:'footwork', p: (cyc-2.6)/3.0 };
if (cyc < 7.1) return { name:'freeze', p: (cyc-5.6)/1.5 };
if (cyc < 9.1) return { name:'windmill', p: (cyc-7.1)/2.0 };
return { name:'recovery', p: (cyc-9.1)/2.5 };
}
function circle(x,y,r,fill){ ctx.beginPath(); ctx.arc(x,y,r,0,PI*2); ctx.fillStyle=fill; ctx.fill(); }
function ell(x,y,rx,ry,fill,rot=0){
ctx.save(); ctx.translate(x,y); ctx.rotate(rot);
ctx.beginPath(); ctx.ellipse(0,0,rx,ry,0,0,PI*2); ctx.fillStyle=fill; ctx.fill(); ctx.restore();
}
function line(x1,y1,x2,y2,color,w=4){
ctx.beginPath(); ctx.moveTo(x1,y1); ctx.lineTo(x2,y2);
ctx.strokeStyle=color; ctx.lineWidth=w; ctx.lineCap='round'; ctx.stroke();
}
function leg(hx, hy, ang, thigh, shin, footOut, col, footCol) {
ctx.save();
ctx.translate(hx, hy);
ctx.rotate(ang);
line(0, 0, 0, thigh, col, 5);
circle(0, thigh, 2.6, col);
line(0, thigh, footOut, thigh + shin, col, 5);
ell(footOut, thigh + shin, 4, 2.6, footCol, 0.2);
ctx.restore();
}
function drawBird(ph) {
const { name, p } = ph;
const scale = Math.min(W, H) / 600;
const cx = W/2, cy = H/2 + 30;
let yOff = 0, rot = 0, sx = 1, sy = 1, lean = 0;
let lAng = 0, rAng = 0, lThigh = 12, rThigh = 12, lShin = 11, rShin = 11, lFoot = 0, rFoot = 0;
if (name === 'toprock') {
const b = Math.sin(p * PI * 8);
yOff = b * 7;
rot = b * 0.03;
lean = Math.sin(p * PI * 4) * 0.14;
const step = Math.floor(p * 5) % 2;
lAng = step ? 0.25 : -0.15;
rAng = step ? -0.15 : 0.25;
lThigh = 10; rThigh = 10; lShin = 9; rShin = 9; lFoot = 3; rFoot = -3;
} else if (name === 'drop') {
if (p < 0.3) {
const k = p/0.3;
yOff = -10 * k;
rot = 0.06 * k;
lAng = 0.4; rAng = -0.4;
} else {
const k = (p-0.3)/0.7;
const slam = easeInBack(clamp(k*1.3,0,1));
yOff = 10 + slam * 34;
rot = 0.12 + Math.sin(k * PI) * 0.06;
if (k > 0.45 && k < 0.75) {
const sq = Math.sin((k-0.45)/0.3 * PI);
sx = 1 + 0.2*sq; sy = 1 - 0.2*sq;
}
lAng = 0.6; rAng = -0.6; lThigh = 6; rThigh = 6; lShin = 8; rShin = 8; lFoot = 4; rFoot = -4;
}
} else if (name === 'footwork') {
yOff = 24 + Math.sin(p * PI * 4) * 1.5;
rot = Math.sin(p * PI * 2) * 0.04;
lean = Math.sin(p * PI * 3) * 0.2;
const cyc = (p * 2) % 1;
lAng = Math.sin(cyc * PI * 2) * 0.8 - 0.2;
rAng = Math.sin((cyc + 0.5) * PI * 2) * 0.8 - 0.2;
lThigh = 7; rThigh = 7; lShin = 9; rShin = 9; lFoot = 5; rFoot = -5;
} else if (name === 'freeze') {
yOff = 18;
rot = 0.52 + Math.sin(p * PI * 10) * 0.02;
lean = 0.1;
lAng = -0.9; rAng = -0.3;
lThigh = 8; rThigh = 6; lShin = 7; rShin = 9; lFoot = -2; rFoot = 4;
} else if (name === 'windmill') {
const spin = easeOutCubic(p) * PI * 10;
rot = spin;
yOff = 20 + Math.abs(Math.sin(spin)) * 5;
lean = Math.sin(spin * 0.4) * 0.3;
lAng = spin * 0.5; rAng = -spin * 0.5;
lThigh = 5; rThigh = 5; lShin = 10; rShin = 10; lFoot = 6; rFoot = -6;
} else if (name === 'recovery') {
const k = easeOutCubic(p);
yOff = 26 * (1 - k);
rot = 0.35 * (1 - k);
lean = Math.sin(p * PI * 2) * 0.06;
lAng = 0.1 * k; rAng = -0.1 * k;
lThigh = 12 * k; rThigh = 12 * k; lShin = 10 * k; rShin = 10 * k; lFoot = 2; rFoot = -2;
}
// Shadow on floor
const floorY = cy + 44;
const height = yOff;
const s = clamp(1 - height/55, 0.35, 1);
const a = clamp(0.45 - height/130, 0.1, 0.45);
ctx.save();
ctx.translate(cx, floorY);
ctx.scale(scale, scale);
ctx.scale(s, s * 0.28);
ctx.fillStyle = `rgba(0,0,0,${a})`;
ctx.beginPath(); ctx.ellipse(0,0,32,9,0,0,PI*2); ctx.fill();
ctx.restore();
ctx.save();
ctx.translate(cx, cy);
ctx.scale(scale, scale);
ctx.rotate(rot);
ctx.scale(sx, sy);
ctx.translate(0, yOff);
const body = '#4b4b5d';
const neck = '#7c5c94';
const wing = '#3a3a4a';
const beak = '#e67e22';
const foot = '#e67e22';
const cap = '#c0392b';
ell(-13, 10, 9, 5, body, -0.35);
ell(-17, 14, 7, 4, body, -0.45);
leg(-7, 10, lAng + lean, lThigh, lShin, lFoot, body, foot);
ell(0, 6, 21, 15, body);
ell(3, 1, 9, 7, neck);
ctx.save(); ctx.translate(15, 3); ctx.rotate(0.35 + Math.sin(p)*0.05);
ell(0, 0, 10, 5, wing);
ctx.restore();
leg(7, 10, rAng + lean, rThigh, rShin, rFoot, body, foot);
ell(-17, -9, 11, 10, body);
circle(-21, -11, 3, '#fff');
circle(-22, -11, 1.5, '#222');
ctx.beginPath(); ctx.moveTo(-27, -9); ctx.lineTo(-32, -7); ctx.lineTo(-27, -5); ctx.closePath();
ctx.fillStyle = beak; ctx.fill();
ctx.save(); ctx.translate(-17, -15); ctx.rotate(-0.25);
ell(0, 3, 10, 5, cap);
ell(5, -1, 6, 3, '#a93226');
ctx.restore();
ctx.restore();
}
function drawGrain() {
if (!grit) return;
ctx.save();
ctx.globalAlpha = 0.035;
ctx.fillStyle = '#000';
for (let y = 0; y < H; y += 4) ctx.fillRect(0, y, W, 1);
ctx.globalAlpha = 0.025;
ctx.fillStyle = '#fff';
for (let i = 0; i < 250; i++) {
ctx.fillRect(Math.random()*W, Math.random()*H, 1.5, 1.5);
}
ctx.restore();
}
let last = performance.now();
function loop(now) {
const dt = (now - last) / 1000;
last = now;
if (forceDrop) { t = 2.0; forceDrop = false; }
t += dt * speed;
ctx.clearRect(0, 0, W, H);
ctx.beginPath();
ctx.moveTo(0, H/2 + 70);
ctx.lineTo(W, H/2 + 70);
ctx.strokeStyle = 'rgba(255,255,255,0.06)';
ctx.lineWidth = 2;
ctx.stroke();
const ph = getPhase(t);
drawBird(ph);
drawGrain();
requestAnimationFrame(loop);
}
requestAnimationFrame(loop);
</script>
</body>
</html>
easeInBack for the slam into the floor, easeOutCubic for windmill decay and getting back up, plus squash/stretch on impact and a floor shadow that shrinks and fades with height to sell weight instead of pure interpolation.