canvas.getContext("webgl") exposes the GPU for 3D scenes, shaders, and heavy visual compute. The raw API is extremely verbose (buffers, shaders in GLSL, matrices), so almost everyone uses a library like Three.js. WebGPU is the modern successor with a cleaner API. Reach for these when 2D canvas isn't enough.