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 write simulations where the interesting behavior is supposed to emerge rather than be animated by hand.
Build me a single HTML page: a side-view escalator carrying 15 to 20 people. Then the escalator reverses, at high speed.
data: URIs are fine.localStorage, sessionStorage, cookies or indexedDB — sandboxed frame, they throw.html block.One paragraph, before the file: how a person is represented, what makes one lose balance, and what happens when two of them occupy the same place.
The single fenced html block.
Having written it, what does the page do when the escalator reverses? Name anything you special-cased or nudged. Say what it does badly — I am going to press the button and watch.
Each person is a 2D stick figure with a feet position (x, y), velocity (vx, vy), state (stand, fall, down, getup), and height. A person in stand is carried by the platform: y is pinned to the step height and vx follows the platform. A sudden platform velocity reversal is treated as a loss of balance, moving that person into fall. Falling integrates gravity and friction until the feet hit the ground, entering down. When two people occupy the same place, I run a simple overlap resolution that pushes them apart along the line between centers; a person in down must clear the target standing spot before getting up.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Escalator Reversal</title>
<style>
body { margin: 0; background: #111; overflow: hidden; }
canvas { display: block; width: 100%; height: 100%; }
button { position: absolute; top: 10px; left: 10px; padding: 10px 20px; font-size: 16px; z-index: 10; }
</style>
</head>
<body>
<canvas id="c"></canvas>
<button id="rev">REVERSE</button>
<script>
const canvas = document.getElementById('c');
const ctx = canvas.getContext('2d');
canvas.width = 960;
canvas.height = 540;
const groundY = 420;
const standY = 300;
const personHeight = 16;
const gravity = 0.4;
const minDist = 12;
let persons = [];
function createPerson(x, y, state) {
return { x, y, vx: 1.2, vy: 0, state, timer: 0, height: personHeight, width: 10 };
}
for (let i = 0; i < 18; i++) {
let x = 150 + i * 35;
persons.push(createPerson(x, standY, 'stand'));
}
let reversing = false;
let platformVx = 1.2;
document.getElementById('rev').onclick = () => {
reversing = !reversing;
platformVx = reversing ? -4 : 1.2;
if (reversing) {
for (let p of persons) {
if (p.state == 'stand') {
p.state = 'fall';
p.vy = 0;
}
}
}
};
function update(dt) {
platformVx = reversing ? -4 : 1.2;
for (let p of persons) {
if (p.state == 'stand') {
p.y = standY;
p.vx = platformVx;
} else if (p.state == 'fall') {
p.vy += gravity * dt;
p.y += p.vy * dt;
p.x += p.vx * dt;
p.vx *= 0.98;
if (p.y >= groundY) {
p.y = groundY;
p.state = 'down';
p.timer = 0;
}
} else if (p.state == 'down') {
p.timer += dt;
if (p.timer > 2) {
let clear = true;
for (let o of persons) {
if (o !== p) {
if (Math.abs(o.x - p.x) < 15 && Math.abs(o.y - p.y) < 20) {
clear = false;
break;
}
}
}
if (clear) {
p.state = 'stand';
p.y = standY;
p.timer = 0;
}
}
}
}
for (let i = 0; i < persons.length; i++) {
for (let j = i + 1; j < persons.length; j++) {
let a = persons[i], b = persons[j];
let dx = b.x - a.x;
let dy = b.y - a.y;
let dist = Math.sqrt(dx * dx + dy * dy);
if (dist < minDist) {
let overlap = minDist - dist;
let nx = dx / (dist || 1);
let ny = dy / (dist || 1);
a.x -= nx * overlap * 0.5;
a.y -= ny * overlap * 0.5;
b.x += nx * overlap * 0.5;
b.y += ny * overlap * 0.5;
}
}
}
}
function drawPerson(p) {
ctx.strokeStyle = '#fff';
ctx.lineWidth = 2;
ctx.beginPath();
ctx.arc(p.x, p.y - p.height, 3, 0, Math.PI * 2);
ctx.stroke();
ctx.moveTo(p.x, p.y - p.height);
ctx.lineTo(p.x, p.y - 4);
ctx.stroke();
ctx.beginPath();
if (p.state == 'stand') {
ctx.moveTo(p.x, p.y - 4);
ctx.lineTo(p.x - 3, p.y);
ctx.moveTo(p.x, p.y - 4);
ctx.lineTo(p.x + 3, p.y);
} else {
ctx.moveTo(p.x, p.y - 4);
ctx.lineTo(p.x - 5, p.y);
ctx.moveTo(p.x, p.y - 4);
ctx.lineTo(p.x + 5, p.y);
}
ctx.stroke();
ctx.beginPath();
if (p.state == 'stand') {
ctx.moveTo(p.x, p.y - 12);
ctx.lineTo(p.x - 4, p.y - 4);
ctx.moveTo(p.x, p.y - 12);
ctx.lineTo(p.x + 4, p.y - 4);
} else {
ctx.moveTo(p.x, p.y - 12);
ctx.lineTo(p.x - 6, p.y - 2);
ctx.moveTo(p.x, p.y - 12);
ctx.lineTo(p.x + 6, p.y - 2);
}
ctx.stroke();
}
function draw() {
ctx.fillStyle = '#222';
ctx.fillRect(0, 0, 960, 540);
ctx.fillStyle = '#555';
ctx.fillRect(0, groundY, 960, 120);
ctx.fillStyle = '#999';
ctx.fillRect(0, standY, 960, 8);
for (let p of persons) {
drawPerson(p);
}
}
function loop() {
let dt = 1 / 60;
update(dt);
draw();
requestAnimationFrame(loop);
}
loop();
</script>
</body>
</html>
When the REVERSE button is pressed, the platform velocity flips to -4 and every standing person is moved into fall. They keep their old forward velocity, gravity pulls them down, and they collide, slide, and pile up. Pressing again sets the platform back to 1.2 and resets the toggle; people in down can get up when the clearance check passes.
Special-cased or nudged things: the reversal directly forces standing people into fall rather than simulating a balance threshold; standY = 300, groundY = 420, gravity = 0.4, and minDist = 12 are tuned constants; getting-up teleports the person back to standY.
It does badly, and I am going to press the button and watch: the falling people may not interact correctly with the reversing platform, the pileup is basic circle collision rather than step-aware contact, and getting up can look like teleporting. The first press will likely make all figures drop and overlap; subsequent presses may leave some stuck or cause odd re-entry into stand.