The prompt
Claude Opus 5.5 on claude.ai with artifacts on, 2 November 2026. Paste it in to build your own. Each run comes back a little different.
Build a real-time, physically based visualization of the region around a supermassive black hole. Make it look like a frame from a supercomputer GRMHD simulation. Show how gravity bends light from the accretion flow when seen from different viewing angles. TECH - One self-contained HTML file with Three.js and a full-screen GLSL fragment shader - Ray-march null geodesics per pixel in Schwarzschild spacetime - Use the Kerr metric (spin a = 0.9) if performance allows - Do not use textured spheres, ring meshes, or fake distortion effects PHYSICS - Event horizon and black hole shadow, with correct size relative to the mass - Thin, slightly turbulent accretion disk from the ISCO to 20 r_g - Keplerian rotation, with inner regions moving faster - Gravitational lensing, so the far side of the disk appears above and below the shadow - Primary image, secondary image, and a thin photon ring - Relativistic Doppler beaming, so the approaching side is brighter - Gravitational redshift near the horizon - Disk color from a blackbody temperature gradient: hot inner disk, cooler outer disk - Lensed background star field, with Einstein ring distortion near the shadow VISUAL STYLE - Scientific realism, not science-fiction glow - Animated 3D noise in the disk for moving plasma filaments and hot spots - HDR rendering, ACES tone mapping, subtle bloom, and fine film grain - Black background with no lens flares or decorative particles CAMERA - Slow, continuous orbit, with an automatic tour of these views: - Face-on (0°): nearly symmetric ring - Tilted (17°): similar to the M87* view - Oblique (60°): strong brightness asymmetry - Edge-on (85°): lensed arc over the shadow - Smooth transitions between views - Drag to orbit and scroll to zoom UI - Small, minimal overlay with the current inclination and a one-line description - Sliders for inclination, spin, disk temperature, and time speed - Toggles for Doppler beaming, redshift, and lensing, so the user can compare each effect - Option to hide the UI PERFORMANCE - Target 60 fps on a mid-range GPU - Render at adaptive resolution, then upscale - Reduce ray steps far from the black hole and increase them near the photon sphere - Lower quality automatically if the frame rate drops The result must show that the arc above the shadow is light from the far side of the disk, bent by gravity. It is not a separate ring.
What it built
- Every pixel follows its own curved light path past a non-spinning (Schwarzschild) hole, stepped on the GPU with a fourth-order Runge–Kutta integrator. A ray that passes closer than √27 M ≈ 5.196 M falls in, which draws the shadow; Claude checked its path equation against that number and got 5.1962 M.
- The gas colour comes from temperature: a thin-disk profile that peaks just outside the last stable orbit at 6 M, turned into colour with Planck's law. The side moving toward you is shifted brighter and bluer, the other side dimmer and redder.
- The turbulence is procedural noise sheared by orbital speed, so inner gas laps the outer gas. It is not output from a supercomputer simulation, and the page says so.
- Six angles, from 5° down the pole to 118° from below, including the roughly 17° we see M87* at. Light bending and the Doppler shift can each be switched off, and on wide screens a side panel draws the rays for the current angle.
- It holds its frame rate with jittered samples blended across frames, an upscale filter and sharpening, and a resolution that drops when frames get slow and climbs back; a button locks it at full size.
The video is the same scene rendered offline on my iMac's Radeon Pro 580X: stepped one frame at a time with four samples blended into each, 900 frames at 2560×1440 in about 55 minutes. The camera starts near edge-on at 84°, rises to 18° by the eighth second, and comes back down through the disk to 92°.
The scene here is the artifact's own HTML with two changes: three.js r128 loads from this site rather than a CDN, and on this page its buttons sit under the frame instead of over the picture. Full screen shows it as Claude made it, with the side panel of light paths.