This is f*cking wild. Claude Opus 5.5 built a whole tennis club on a floating island for $5 πΎ
A tiny pixel-art court with fans on the benches, an umpire in his chair and a queue of players waiting for their turn. Winner stays on
The players serve, and some of them hit topspin lol
The umpire calls faults and overrules anyone who argues a ball was out. Switch to night and the floodlights come on, and if you turn on rain, everyone runs under the awning while puddles spread across the court
What do you think of the result for $5? π
PROMPT:
Build a single-file HTML + three.js (r160) scene called "Hard Court": "winner stays on" singles tennis on a blue hard court at a little club on a floating island. It is a real 3D scene rendered as crisp pixel art.
Rendering: an orthographic isometric camera (drag to turn in 90Β° steps, scroll or pinch to zoom) that starts with the whole court in view and drifts gently after the ball. Render into a small low-res target with a depth texture, then upscale with texelFetch to whole screen pixels. Add depth-based outlines and quantize every pixel to a fixed ~60-colour palette in OKLab, with an optional Bayer dither. Toggle "Pixel art / Raw 3D", with a pixel-size slider and Palette / Dither / Outlines checkboxes.
Club: a full-size court (23.77 Γ 10.97 m) in blue acrylic with a green surround, white lines, a net with a sagging cable and posts. Around it:
a small clubhouse with a veranda and a deep awning;
an umpire's chair with an umpire, a waiting bench, a flip-number scoreboard;
a chain-link fence with green windscreen, four floodlight masts;
a ball basket, a water cooler, a court squeegee leaning on the fence;
grass, bushes and rock at the island edge.
The fence sides and the floodlight mast nearest the camera are cut away, so nothing ever covers the court; the ball is drawn about 4Γ real size so it reads at pixel scale.
A dog lies by the fence and runs after any ball that ends up near it until a player shoos it. Sparrows hop on the court and flutter up onto the fence when the ball or a player comes near.
Match (6 players of mixed ages, each with a skill, speed and style: power / spin / defensive / net):
Two play, four wait on the bench. Each match is one tiebreak to 7, win by 2; serve changes every two points, ends change every six.
The winner stays on as Champion. The loser walks to the back of the queue, the next player walks on, and they shake hands at the net.
Serves from behind the baseline into the diagonal box: a fault gives a second serve, two make a double fault. A serve that clips the net and lands in is a let.
A point ends on a ball that lands out, goes into the net, bounces twice, or is not reached.
Ball and AI: simple ball physics (gravity, drag, bounce, the net as a solid band). No spin simulation: each shot type just has its own speed, arc and bounce height β flat serve, kick serve, drive, topspin (higher arc, higher bounce), slice (low, short, skids), lob, drop shot, volley and smash. The receiver predicts the ball's path, takes a split step, runs to the hitting point and picks a shot by style and position (smash on a short lob, volley at the net, drop shot when the opponent is deep), aimed away from the opponent. Errors grow with a fast ball, running wide and lower skill; sometimes a ball is framed. A close ball on a line sometimes starts an argument: the player points, the umpire calls it.
Players: box-rigged with two-bone IK and a racket. Poses: ready stance, split step, run, forehand, backhand, serve toss and swing, volley, smash, fist pump, slumped walk off, handshake, argue a call, and pushing the squeegee.
Time and weather: Day / Dusk / Night (floodlights light the court), Dry / Rain.
Rain: streaks, splashes, a darker wet court, puddles that mirror the club via a mirrored render pass.
Everyone shelters under the clubhouse awning. When the rain stops, two players push squeegees across the court in lanes, the puddles shrink behind them, and play resumes when it is dry.
UI (English, light and dark themes, mobile layout):
A lit scoreboard with both names, the tiebreak points, a serve dot, clock + status, the Champion's current streak (matches won in a row), and the best streak.
A side rail with: Time & weather (with court-dry and water bars); the queue ("On court" plus "Next up"); Rules (Let: Replay / Play on; Serves: 1 / 2; Tiebreak: 7 / 10); a feed of calls ("Ace!", "Out!", "Double fault", "Let", "Challengeβ¦") with "Back the challenger" (the challenger plays above their level) and Pause; View.
Click a player on court and the opponent aims every shot at their weaker side. Original design, no real brands.
It's f*cking insane. Gemini 4 Argon just destroyed Claude Opus 5.5 π€―
Same prompt: a giant jelly bear, an AK-47 and 30 rounds. Every hit takes a bite out of the bear and chunks go flying everywhere
Side by side, I can barely tell them apart. But Gemini got there way faster and for a fraction of the price
Gemini: $0.23, 9m 35s
Opus: $2.70, 40m 20s
Almost 12x cheaper and 4x faster. Is Opus still worth it here? π
I paid $5.61 to shoot four jelly bears with an AK-47 π»
Same prompt, four AI models. Almost all of that money went to just two of them
-> Claude Opus 5.5: $2.70, 40m 20s
-> ChatGPT-6 Astra: $2.50, 13m 05s
-> Gemini 4 Argon: $0.23, 8m 05s
-> DeepSeek-V4.1-Flash: $0.18, 9m 35s
And all four bears blow apart about the same lol
Which one would you keep? π
PROMPT
Build "Bear Shooting Jelly" - a single self-contained HTML file (inline JS/CSS, English UI): a big translucent gummy bear in a bright studio and a toy rifle at the bottom centre that fires wherever the mouse points. Every hit punches a real crater, a chunk stretches out on a sticky strand, snaps free and splats on the floor, and the bear wobbles. Casings fly out; reload with a button or R. three.js 0.172 as ES modules via an import map from https://t.co/6p4BnXorZj (build/three.module.js, examples/jsm/ for RoomEnvironment), no other libraries, no models or textures (canvas sprites are fine).
OBJECT
The bear, about 2.4 tall, feet on the floor (y = 0), facing the camera, built as one signed distance field of rounded boxes, capsules and ellipsoids joined with smooth-min: squarish head, round ears with inner dents, a short snout with a nose button and two raised eye beads moulded in, a chunky torso, short arms angled out, blocky legs with flat soles. Generic, no brand.
Keep the field on a rest-space grid (0.034 spacing), mesh it with surface nets, project vertices onto the field, normals from its gradient. Cache each cell's vertex and re-project only cells near a new crater (remesh under 10 ms).
A dozen tiny opaque air bubbles ride inside and vanish when a crater opens them.
Flavours: Strawberry #ff2d4b (default), Orange #ff8a1a, Lemon #ffd21f, Lime #5ad64a, Blue raspberry #1f6bff, Grape #8b5cff, Cola #7a2e12. Colour blends over 0.4 s with a jiggle; chunks follow.
The rifle: a stylised toy assault rifle with the classic curved-magazine silhouette, from boxes and cylinders: dark steel receiver, barrel, gas tube, front sight, muzzle brake, wood handguard, grip and stock, curved magazine, charging handle on the right. No markings. First-person view from behind: a child of the camera at about (0.035, -0.205, -0.66), far enough back that barrel, handguard, receiver and rear sight show, stock running off the bottom edge. It stays nearly straight: it turns toward the aim point at about half strength, at most Β±7Β° yaw and 0-9Β° pitch, never canted.
MECHANICS
Aim: a crosshair follows the pointer. Sphere-trace the pointer ray through the rest-space field (inverse of the bear's lean); the hit names the part (Head, Left/Right ear, Snout, Tummy, Back, Left/Right arm, Left/Right leg) in the story line and turns the crosshair blue. Never tint the bear on hover.
Fire modes Single and Auto (600 rpm while held), magazine 30. Each shot: muzzle flash and a warm light pulse, recoil springing home in 0.15 s, a bright tracer at about 70 units/s, a brass casing ejected with spin and bounces (max 40).
The hit lands when the tracer arrives; a miss flies on.
Reload (button next to the ammo counter, key R, automatic when empty), 1.9 s: the rifle tilts, the old magazine drops, a new one rocks in with a click, the charging handle racks and snaps forward. No firing during reload; an empty pull gives a dry click.
Synthesized WebAudio: shot, casing clinks, wet splats, reload clicks.
PHYSICS
Soft body: a particle lattice (about 0.17 spacing) with neighbour springs and a goal spring to rest; damping on relative motion; soles pinned so it always stands. Fixed 1/240 s step, displacements clamped.
The mesh follows the lattice through a quadratic B-spline of particle displacements, evaluated in the vertex shader from a float texture (inject only by replacing a chunk line such as '#include <begin_vertex>'); the shadow uses it via a custom depth material.
JELLY
Hit: an impulse along the shot with Gaussian falloff (Ο β 0.18) sends a wobble through the body, a small lean (damped spring about the feet) and squash, and a soft glow at the hit point fades in 0.15 s.
Crater: subtract two or three jittered spheres (main radius about 0.1) from the field with a smooth max, update only that part of the grid and remesh (at most every 0.1 s). Craters stop deepening about 0.17 below the original skin, so repeated hits never shoot the bear through. Fresh crater walls shade lighter and wetter.
Chunk: a blob 0.75 Γ the crater radius flies out along the reflected shot plus an upward kick, tied to the crater for about 0.12 s by a sticky strand (a pinched tube thinning as it stretches) that snaps and retracts; plus 3-6 droplets. They are jelly too: they spin, collide with the bear, splat on the floor with a squash-and-stretch spring, bounce, settle and tremble. At most 80; the oldest shrink away after about 14 s.
No limbs fall off; the bear always keeps standing.
RENDERING
NeutralToneMapping, sRGB, RoomEnvironment through PMREM, one soft PCF key shadow, bright studio #eef3fa (background, floor, fog), a faint flavour glow on the floor.
Jelly: MeshPhysicalMaterial, transmission 1, IOR 1.42, roughness 0.12, clearcoat 1, thickness β the bear's depth, attenuation in the flavour colour so thick parts glow deep and ears glow light; chunks the same with smaller thickness. Rifle and casings are opaque metal and wood.
Perspective camera, fov 35, at (0, 1.42, 6.3) looking at (0, 1.0, 0): the bear big and exactly centred on screen, ears clear of the top; no horizontal view offset (on phones only a vertical one above the sheet). Aspect and size updated on resize; pixel ratio up to 2. renderer.compile at start with a chunk, strand, casing and tracer visible, so the first shot doesn't hitch.
UI (editorial, light; navy #0b1a3a, electric blue #1f6bff, sky blue #4cc3f5)
Top-left: eyebrow "NΒΊ 013 / TARGET PRACTICE", italic serif title "Bear Shooting / Jelly." (about 60 px, second line electric blue), caption "One big gummy bear, thirty rounds, no hard feelings. Every hit takes a bite."
Top-right: "MODE Idle / Aim / Fire / Reload" and a story line ("Target: Left ear", "Magazine 24 / 30", "Reloadingβ¦").
Right: white card "The Specimen": flavour chips with the name; Firmness and Wobble damping sliders with values; Single / Auto; Reset (filled electric blue: whole bear, floor cleared); ΒΌ speed and Sound toggles.
Bottom, right of the rifle: big serif ammo count "24 / 30" and a Reload button (on phones an Ammo gauge).
Bottom-left gauges: Shots, Hits, Accuracy %, Jelly lost (g, 1 unit β 10 cm at 1.3 g/cmΒ³).
Bottom-right hint: "Aim at any part Β· click to fire / Auto: hold for a burst Β· R reload / ΒΌ speed to watch the chunks fly".
Fonts Instrument Serif and IBM Plex Mono. Keys: Space fire, R reload, F fire mode. Touch: tap fires, hold bursts in Auto, no page scroll. Phone: the card becomes a bottom sheet; ammo and Reload stay big. Fallback card "This bear needs WebGL 2." and an on-screen error panel.
QUALITY
Smooth 60 fps, no console errors, start-up errors on screen. Test it: the bear reads as a chunky gummy bear with ears, snout and eyes, centred; the rifle sits near the centre and barely tilts; hovering never changes the bear's colour; hovering names the right part; one click fires one round, Auto empties the magazine in 3 s; every hit leaves a crater, a strand that snaps and a chunk that lands and wobbles; casings fly out with each shot; at 0 rounds it reloads by itself; thirty hits on the head never break the mesh or shoot through; Reset gives a whole bear; colours stay deep and translucent. Reply with the complete HTML file.