Claude Sonnet 4.6 vs DeepSeek V3 (March 2024)
Compare Claude Sonnet 4.6 by Anthropic against DeepSeek V3 (March 2024) by DeepSeek, context windows of 1.0M vs 128K, tested across 31 shared challenges. Updated February 2026.
Compare Claude Sonnet 4.6 by Anthropic against DeepSeek V3 (March 2024) by DeepSeek, context windows of 1.0M vs 128K, tested across 31 shared challenges. Updated February 2026.
26 challenges
Tests an AI's ability to understand game rules and strategy
Tests an AI's randomness and creativity
Here are 5 jokes:
Why don't scientists trust atoms? Because they make up everything!
Why did the scarecrow win an award? Because he was outstanding in his field!
Why don't eggs tell jokes? They'd crack each other up!
What do you call a fake noodle? An impasta!
Why did the bicycle fall over? Because it was two-tired!
As for your question: All 5 are unique — each joke has a different setup, punchline, and subject. No two are duplicates or variations of the same joke.
Tests an AI's ability to generate vector graphics
Tests an AI's ability to create detailed SVG illustrations of gaming hardware
Tests an AI's humor and creative writing ability
So I've been using those AI assistants a lot lately, and I realized something terrifying. The AI knows me better than I know myself.
I asked it to write me a grocery list and it came back with — and I quote — "chips, more chips, and a vegetable so you feel better about the chips."
That's not a grocery list. That's a psychological profile.
I tried to get healthy recently. I downloaded one of those fitness apps that tracks everything. Steps, calories, sleep, heart rate. Everything.
Day one, I'm feeling motivated. I go for a walk. The app says, "Great job! You've completed four percent of your daily goal."
Four percent.
I walked to my mailbox and back. The app looked at that and essentially said, "Buddy, we need to talk."
The sleep tracking is the worst part. I wake up and the app tells me how I slept. Like I need a second opinion on that.
I KNOW how I slept. I was there.
"You spent forty minutes in deep sleep and six hours just sort of... existing." Yeah. That's called being an adult. We don't sleep anymore. We just lie down and worry horizontally.
My phone now interrupts me to tell me I've been on my phone too long.
Think about that. The phone is concerned about me. The phone has drawn a boundary.
I've been in relationships that never reached that level of self-awareness.
"Screen time is up thirty percent this week." Okay but in my defense, I was reading. "You were watching a man fall off a skateboard for two hours." ...It was the same man. I got invested.
I tried meditation to deal with the stress. Downloaded a meditation app — because apparently the cure for too much phone is more phone.
The app has this calming voice that says, "Clear your mind of all thoughts."
And my brain goes, "Okay. No thoughts."
Two seconds later: "Did I leave the stove on? What IS a mortgage, really? Why do they call it a building if it's already built?"
The app says, "You're doing great."
It's lying. The app is lying to me and somehow that's the most comforting thing anyone has said to me all week.
I think that's the thing about modern life. We've built all this technology to make us feel better, and mostly what it does is hold up a very precise, data-driven mirror and go, "Look at yourself."
And we look.
And we go back to the chips.
Thank you, you've been wonderful.
[approximately 3 minutes at conversational pace]
Tests an AI's ability to simulate personalities and predict future trends
Note: Steve Jobs passed away in 2011. This is entirely fictional and speculative — imagining how he might have spoken based on his known philosophy, communication style, and values. It is not meant to represent his actual views.
Interviewer: Steve, welcome back. The world has changed enormously. AI is everywhere now. What's your first reaction?
Jobs: (leans back, pauses) You know, people keep asking me if AI is the next big thing. And I think they're asking the wrong question entirely. The question isn't whether AI is powerful. It clearly is. The question is whether it's humane.
Interviewer: What do you mean by humane?
Jobs: Every great technology we built at Apple — the Mac, the iPhone — the goal was never the technology itself. The goal was to make a human being feel more capable. More alive. When you picked up an iPhone for the first time, something happened to you emotionally. It felt like it belonged in your hand.
Now I look at most AI products today and I see... impressive plumbing. Incredible engineering underneath. But nobody stopped to ask — how does this make a person feel? Does it make them feel smarter, or does it make them feel replaceable?
That's a catastrophic design failure.
Interviewer: But the capabilities are extraordinary. These systems can write, create art, write code—
Jobs: (interrupting) So could a photocopier. Sort of. Look — capability without taste is just noise. I've seen this movie before. In the '80s everyone thought the most powerful computer would win. Raw specs. Megahertz. We said no. Experience wins. Every time.
The AI companies right now are in a megahertz war. Who has the biggest model. Who has the most parameters. And I understand it — I do — because when you're building something new, you reach for the metrics you can measure. But the things that matter most can't be measured on a benchmark.
Interviewer: Like what?
Jobs: Trust. Does the person using this thing trust it? Not blindly — that would be dangerous — but genuinely trust it the way you trust a brilliant colleague? Right now people are using these AI systems and they're constantly second-guessing them. Fact-checking every sentence. That's not a tool. That's a liability.
And the second thing — intention. Does the AI understand what you're actually trying to accomplish, or does it just respond to what you literally typed? There's an enormous gap there. Enormous. And nobody's really closed it yet.
Interviewer: Some would say OpenAI, Google, Anthropic — they're working on exactly that.
Jobs: They're brilliant people. Genuinely. But here's my concern — and I say this with respect — they're all building from the technology outward. We always built from the human inward. You start with the person. You ask: what does this person dream about? What frustrates them at 2am? What would make their life genuinely better? And then — only then — you figure out what technology serves that.
If I were building an AI product today, I wouldn't start in a data center. I'd start by sitting with a teacher in Ohio for a week. A nurse in rural Texas. A small business owner in Osaka. And I'd watch. And I'd listen. And then I'd build.
Interviewer: What about the fears? Job displacement, misinformation, loss of human creativity?
Jobs: (pauses, looks serious)
The job displacement thing — people have been afraid of every major technology. The printing press was going to destroy scribes. The calculator was going to destroy mathematicians. And yes, some jobs change. Some disappear. That's real and we shouldn't be glib about it. The people whose livelihoods are disrupted deserve honesty, not platitudes about "new opportunities."
But I'll tell you what actually keeps me up at night. It's not jobs.
It's dependency.
If we build AI that makes people feel like they can't think without it — can't write a sentence, can't make a decision, can't create anything — then we've built the most elegant cage in human history. Beautiful interface. Incredibly convenient. And it slowly hollows out the very thing that makes us interesting as a species.
The best tool amplifies you. It doesn't replace you. A guitar amplifies a musician. It doesn't play the music for them. That distinction is everything.
Interviewer: Is anyone getting it right?
Jobs: (small smile) I'm not going to do your product reviews for you.
But I will say — the companies that will win in the next decade are not the ones with the biggest models. They're the ones that figure out restraint. When to let the AI step back. When to put the human back in the driver's seat. That takes incredible discipline because it means leaving features on the table. It means saying no to things your engineers are dying to ship.
Saying no is the hardest thing in this industry. Everyone wants to add. The courage is in subtracting.
Interviewer: Last question — if you were 25 years old today, what would you build?
Jobs: (long pause, looks out the window)
I'd build something that makes a child fall in love with learning again. Not a tutoring app. Not an adaptive quiz engine. Something that makes a ten-year-old feel the same thing I felt when I first saw a computer — that the universe just got bigger. That anything is possible. That I can build something that matters.
We have all this power now. All this intelligence. And somehow we're using it to generate marketing copy and summarize emails.
(stands up)
We're better than that. We have to be.
End of simulated interview.
This is a fictional creative exercise. All quotes are invented and do not represent Steve Jobs' actual views.
Tests an AI's ability to generate a complete, working landing page
Recreate an interactive, classic Mario level in a single HTML file.
Couldn't render this response
This model didn't return a displayable web page for this challenge.
# Super Mario Bros. Interactive Level
Here's a self-contained HTML page with an interactive Mario-style level. It includes platforming elements, enemies, coins, and a flagpole goal - all in the spirit of classic Nintendo games.
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Interactive Mario Level</title>
<style>
body {
margin: 0;
overflow: hidden;
background: linear-gradient(to bottom, #1E90FF, #87CEEB);
font-family: 'Arial', sans-serif;
}
#game {
position: relative;
width: 800px;
height: 400px;
margin: 20px auto;
background-color: #7EC0EE;
overflow: hidden;
border: 4px solid #333;
border-radius: 8px;
}
#ground {
position: absolute;
bottom: 0;
width: 1600px;
height: 32px;
background-color: #5C9403;
}
.platform {
position: absolute;
background-color: #C14F4F;
border: 2px solid #8C3A3A;
border-radius: 4px;
}
.brick {
position: absolute;
width: 32px;
height: 32px;
background-color: #E08030;
border: 2px solid #B05820;
border-radius: 2px;
}
.question-block {
position: absolute;
width: 32px;
height: 32px;
background-color: #F8D030;
border: 2px solid #C0A020;
border-radius: 2px;
animation: bounce 0.5s infinite alternate;
}
@keyframes bounce {
from { transform: translateY(0); }
to { transform: translateY(-2px); }
}
.coin {
position: absolute;
width: 16px;
height: 16px;
background-color: #F8D030;
border-radius: 50%;
border: 2px solid #E0B020;
animation: spin 0.5s infinite linear;
}
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
#mario {
position: absolute;
width: 32px;
height: 48px;
background-color: #E04018;
border-radius: 8px;
left: 100px;
bottom: 32px;
z-index: 10;
transition: transform 0.1s;
}
#mario::before {
content: '';
position: absolute;
top: -10px;
left: 2px;
width: 28px;
height: 20px;
background-color: #E04018;
border-radius: 50% 50% 0 0;
}
#mario::after {
content: 'M';
position: absolute;
top: -5px;
left: 12px;
color: white;
font-weight: bold;
}
.goomba {
position: absolute;
width: 32px;
height: 32px;
background-color: #B06820;
border-radius: 50% 50% 0 0;
bottom: 32px;
}
.goomba::before {
content: '';
position: absolute;
width: 20px;
height: 8px;
background-color: #804010;
top: -4px;
left: 6px;
border-radius: 50%;
}
.goomba::after {
content: '';
position: absolute;
width: 6px;
height: 6px;
background-color: #000;
top: 8px;
left: 8px;
border-radius: 50%;
}
.pipe {
position: absolute;
width: 64px;
background-color: #20A020;
border: 2px solid #108010;
border-top: none;
}
.pipe-top {
width: 64px;
height: 16px;
background-color: #30B030;
border: 2px solid #108010;
border-radius: 4px 4px 0 0;
}
.flagpole {
position: absolute;
width: 4px;
height: 200px;
background-color: #808080;
z-index: 5;
}
.flag {
position: absolute;
width: 30px;
height: 20px;
background-color: #E04018;
clip-path: polygon(0 0, 100% 50%, 0 100%);
z-index: 5;
}
#score {
position: absolute;
top: 10px;
left: 10px;
color: white;
font-size: 16px;
text-shadow: 2px 2px 0 #000;
}
#lives {
position: absolute;
top: 30px;
left: 10px;
color: white;
font-size: 16px;
text-shadow: 2px 2px 0 #000;
}
#end-screen {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.8);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
color: white;
font-size: 24px;
text-align: center;
z-index: 100;
display: none;
}
#restart-btn {
margin-top: 20px;
padding: 10px 20px;
background-color: #E04018;
border: none;
border-radius: 4px;
color: white;
font-size: 18px;
cursor: pointer;
}
#restart-btn:hover {
background-color: #F05020;
}
#instructions {
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
color: white;
text-align: center;
font-size: 14px;
text-shadow: 1px 1px 0 #000;
}
</style>
</head>
<body>
<div id="game">
<div id="ground"></div>
<div id="mario"></div>
<div id="score">Score: 0</div>
<div id="lives">Lives: 3</div>
<div id="end-screen">
<h2>Level Complete!</h2>
<p id="final-score">Your Score: 0</p>
<button id="restart-btn">Play Again</button>
</div>
<div id="instructions">
Arrow keys to move | Space to jump
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const game = document.getElementById('game');
const mario = document.getElementById('mario');
const scoreDisplay = document.getElementById('score');
const livesDisplay = document.getElementById('lives');
const endScreen = document.getElementById('end-screen');
const finalScore = document.getElementById('final-score');
const restartBtn = document.getElementById('restart-btn');
let score = 0;
let lives = 3;
let marioX = 100;
let marioY = 400 - 32 - 48; // Bottom - ground - mario height
let velocityY = 0;
let isJumping = false;
let gameWidth = 800;
let gameHeight = 400;
let groundHeight = 32;
let cameraX = 0;
let gameRunning = true;
// Game elements
const platforms = [];
const bricks = [];
const questionBlocks = [];
const coins = [];
const goombas = [];
const pipes = [];
// Create level elements
function createLevel() {
// Platforms
createPlatform(300, 300, 100, 16);
createPlatform(500, 250, 100, 16);
createPlatform(700, 200, 100, 16);
createPlatform(900, 150, 100, 16);
createPlatform(1100, 200, 100, 16);
createPlatform(1300, 250, 100, 16);
// Bricks
createBrick(350, 268);
createBrick(550, 218);
createBrick(750, 168);
createBrick(950, 118);
createBrick(1150, 168);
createBrick(1350, 218);
// Question blocks
createQuestionBlock(400, 268);
createQuestionBlock(600, 218);
createQuestionBlock(800, 168);
createQuestionBlock(1000, 118);
createQuestionBlock(1200, 168);
// Coins
createCoin(200, 300);
createCoin(220, 300);
createCoin(240, 300);
createCoin(450, 200);
createCoin(850, 150);
createCoin(1250, 200);
// Goombas
createGoomba(400);
createGoomba(800);
createGoomba(1200);
// Pipes
createPipe(600, 400 - groundHeight, 64, 80);
createPipe(1000, 400 - groundHeight, 64, 60);
// Flagpole at the end
createFlagpole(1500, 100);
}
function createPlatform(x, y, width, height) {
const platform = document.createElement('div');
platform.className = 'platform';
platform.style.left = x + 'px';
platform.style.top = y + 'px';
platform.style.width = width + 'px';
platform.style.height = height + 'px';
game.appendChild(platform);
platforms.push({x, y, width, height, element: platform});
}
function createBrick(x, y) {
const brick = document.createElement('div');
brick.className = 'brick';
brick.style.left = x + 'px';
brick.style.top = y + 'px';
game.appendChild(brick);
bricks.push({x, y, element: brick});
}
function createQuestionBlock(x, y) {
const block = document.createElement('div');
block.className = 'question-block';
block.style.left = x + 'px';
block.style.top = y + 'px';
game.appendChild(block);
questionBlocks.push({x, y, element: block, hit: false});
}
function createCoin(x, y) {
const coin = document.createElement('div');
coin.className = 'coin';
coin.style.left = x + 'px';
coin.style.top = y + 'px';
game.appendChild(coin);
coins.push({x, y, element: coin, collected: false});
}
function createGoomba(x) {
const goomba = document.createElement('div');
goomba.className = 'goomba';
goomba.style.left = x + 'px';
game.appendChild(goomba);
goombas.push({x, y: 400 - groundHeight - 32, element: goomba, direction: 1, speed: 1});
}
function createPipe(x, y, width, height) {
const pipeTop = document.createElement('div');
pipeTop.className = 'pipe-top';
pipeTop.style.left = x + 'px';
pipeTop.style.top = y + 'px';
game.appendChild(pipeTop);
const pipe = document.createElement('div');
pipe.className = 'pipe';
pipe.style.left = x + 'px';
pipe.style.top = y + 16 + 'px';
pipe.style.height = height - 16 + 'px';
game.appendChild(pipe);
pipes.push({x, y, width, height, element: pipe, top: pipeTop});
}
function createFlagpole(x, height) {
const flagpole = document.createElement('div');
flagpole.className = 'flagpole';
flagpole.style.left = x + 'px';
flagpole.style.top = (400 - height) + 'px';
flagpole.style.height = height + 'px';
game.appendChild(flagpole);
const flag = document.createElement('div');
flag.className = 'flag';
flag.style.left = (x + 4) + 'px';
flag.style.top = (400 - height + 20) + 'px';
game.appendChild(flag);
}
// Game controls
const keys = {
left: false,
right: false,
up: false
};
document.addEventListener('keydown', function(e) {
if (!gameRunning) return;
switch(e.key) {
case 'ArrowLeft':
keys.left = true;
break;
case 'ArrowRight':
keys.right = true;
break;
case 'ArrowUp':
case ' ':
keys.up = true;
if (!isJumping) {
velocityY = -12;
isJumping = true;
}
break;
}
});
document.addEventListener('keyup', function(e) {
switch(e.key) {
case 'ArrowLeft':
keys.left = false;
break;
case 'ArrowRight':
keys.right = false;
break;
case 'ArrowUp':
case ' ':
keys.up = false;
break;
}
});
restartBtn.addEventListener('click', function() {
resetGame();
endScreen.style.display = 'none';
gameRunning = true;
});
function resetGame() {
score = 0;
lives = 3;
marioX = 100;
marioY = 400 - groundHeight - 48;
velocityY = 0;
isJumping = false;
cameraX = 0;
scoreDisplay.textContent = 'Score: 0';
livesDisplay.textContent = 'Lives: 3';
// Clear all elements
platforms.forEach(p => p.element.remove());
bricks.forEach(b => b.element.remove());
questionBlocks.forEach(q => {
q.hit = false;
q.element.style.display = 'block';
});
coins.forEach(c => {
c.collected = false;
c.element.style.display = 'block';
});
goombas.forEach(g => g.element.remove());
pipes.forEach(p => {
p.element.remove();
p.top.remove();
});
// Clear arrays
platforms.length = 0;
bricks.length = 0;
questionBlocks.length = 0;
coins.length = 0;
goombas.length = 0;
pipes.length = 0;
// Recreate level
createLevel();
}
// Collision detection
function checkCollision(obj1, obj2) {
return obj1.x < obj2.x + obj2.width &&
obj1.x + 32 > obj2.x &&
obj1.y < obj2.y + obj2.height &&
obj1.y + 48 > obj2.y;
}
function checkPlatformCollision() {
for (const platform of platforms) {
if (marioX + 32 > platform.x &&
marioX < platform.x + platform.width &&
marioY + 48 >= platform.y &&
marioY + 48 <= platform.y + 10) {
marioY = platform.y - 48;
velocityY = 0;
isJumping = false;
return true;
}
}
return false;
}
function checkBrickCollision() {
for (const brick of bricks) {
if (checkCollision({x: marioX, y: marioY, width: 32, height: 48},
{x: brick.x, y: brick.y, width: 32, height: 32})) {
if (marioY + 48 <= brick.y + 10 && velocityY > 0) {
// Hit from below
marioY = brick.y - 48;
velocityY = 0;
isJumping = false;
addScore(50);
return true;
}
}
}
return false;
}
function checkQuestionBlockCollision() {
for (const block of questionBlocks) {
if (!block.hit && checkCollision({x: marioX, y: marioY, width: 32, height: 48},
{x: block.x, y: block.y, width: 32, height: 32})) {
if (marioY + 48 <= block.y + 10 && velocityY > 0) {
// Hit from below
block.hit = true;
block.element.style.animation = 'none';
block.element.style.backgroundColor = '#E08030';
velocityY = -5; // Small bounce
addScore(100);
// Spawn a coin above the block
createCoin(block.x, block.y - 32);
return true;
}
}
}
return false;
}
function checkCoinCollision() {
for (const coin of coins) {
if (!coin.collected &&
marioX + 32 > coin.x &&
marioX < coin.x + 16 &&
marioY + 48 > coin.y &&
marioY < coin.y + 16) {
coin.collected = true;
coin.element.style.display = 'none';
addScore(200);
return true;
}
}
return false;
}
function checkGoombaCollision() {
for (let i = 0; i < goombas.length; i++) {
const goomba = goombas[i];
if (checkCollision({x: marioX, y: marioY, width: 32, height: 48},Tests an AI's ability to replicate an existing UI with Tailwind CSS
Tests an AI's ability to create smooth web animations
Tests an AI's UI design skills with theming support
Tests an AI's ability to create interactive web elements