If you haven't looked at Three.js recently, the library you return to in 2026 is functionally a new framework. Two shifts happening simultaneously have changed how you write shaders, which renderer you use, and — crucially — which browsers you can actually ship to.
TSL Is Now the Default Shader Language
GLSL is out. Three Shading Language (TSL) — a node-based system that compiles to both GLSL (WebGL) and WGSL (WebGPU) depending on the active renderer — is now the default authoring surface. The practical upside: you write your shader logic once, and Three.js handles the compilation target. Built-in effects like bloom() are now TSL functions rather than post-processing passes you configure manually.
The r185 release formalized this direction, adding LoftGeometry, TileCreasedNormalsPlugin, and storageTexture3D support alongside continued WebGPU improvements. The shift to TSL is the biggest developer-experience change in the library's history, and the migration guide is required reading if you're porting an existing project.
WebGPU Now Works Everywhere
The other half of this story is Safari. With Safari 26 shipping full WebGPU support, Three.js developers can now ship WebGPURenderer to 100% of users without a fallback. That's the line that changes everything: for years, WebGPU was a "progressive enhancement" you added for Chrome and Firefox users while maintaining a WebGL path for Safari. That dual-maintenance tax is gone.
WebGPU isn't just a graphics API — it also exposes compute shaders, which opens Three.js scenes to GPU-accelerated physics, particle systems, and simulation that were impractical in WebGL. If you've been putting off learning WebGPU because of the Safari holdout, the holdout is over.
The Post-Processing Rename You Need to Know
One practical gotcha in the migration: the post-processing system was renamed from PostProcessing to RenderPipeline in r183. If you're following older tutorials or have existing code using the PostProcessing class, you'll hit a silent failure. The RenderPipeline node-based approach is now the recommended path, and it pairs cleanly with TSL effects.
What This Means in Practice
Three.js in 2026 rewards developers who invest in the new stack. If you adopt TSL and WebGPURenderer:
- Your shaders compile to both WebGL and WebGPU automatically, so you don't lose the installed base of older hardware
- You get access to compute shaders for scenes that need real GPU simulation
- You write post-processing as composable TSL functions rather than configuring pass chains
- You ship to every modern browser without a compatibility matrix
The cost is real: existing GLSL shaders need porting, the TSL API has a learning curve, and documentation for the new system is still maturing relative to the old WebGL path. But the library's direction is unambiguous. The complete picture of what changed in 2026 is worth reading if you're planning a new project or a major update to an existing one.
The web 3D runtime just got a quiet but comprehensive upgrade. Now that every browser supports WebGPU, the excuses to stay on the old stack are running out.