Repository: three.js
Issue: Addons: Support overview in `WebGLRenderer` and `WebGPURenderer`.
Labels: WebGPU

### Description

This issue is intended for tracking which addons are already supported in `WebGPURenderer`.

Not all open tasks must be implemented. Certain addons might not be ported to `WebGPURenderer` because they are outdated (like the old `BloomPass`) or  replaced with different APIs (like `MaskPass`). Such addons are marked with a ✖️ sign.

If someone wants to migrate a component, it's best to leave a comment so we can add the name to the "Assignee" column. In this way, we avoid the situation where more than one developer works at the same task.

| Addon   |      WebGLRenderer      |  WebGPURenderer | Assignee
|----------|:-------------:|:------:|:------:|
| animation/AnimationClipCreator.js | ✅ | ✅ | -
| animation/CCDIKSolver.js | ✅ | ✅ | -
| animation/MMDAnimationHelper.js | ✅ | ✅ | -
| animation/MMDPhysics.js | ✅ | ✅ | -
| capabilities/WebGL.js | ✅ | ✅ | -
| capabilities/WebGPU.js | ✅ | ✅ | -
| controls/ArcballControls.js | ✅ | ✅ | -
| controls/DragControls.js | ✅ | ✅ | -
| controls/FirstPersonControls.js | ✅ | ✅ | -
| controls/FlyControls.js | ✅ | ✅ | -
| controls/MapControls.js | ✅ | ✅ | -
| controls/OrbitControls.js | ✅ | ✅ | -
| controls/PointerLockControls.js | ✅ | ✅ | -
| controls/TrackballControls.js | ✅ | ✅ | -
| controls/TransformControls.js | ✅ | ✅ | -
| csm/CSM.js | ✅ | ✅| -
| csm/CSMFrustum.js | ✅ | ✅ | -
| csm/CSMHelper.js | ✅ | ✅ | -
| csm/CSMShader.js | ✅ | ✅ | -
| curves/CurveExtras.js | ✅ | ✅ | -
| curves/NURBSCurve.js | ✅ | ✅ | -
| curves/NURBSSurface.js | ✅ | ✅ | -
| curves/NURBSUtils.js | ✅ | ✅ | -
| curves/NURBSVolume.js | ✅ | ✅ | -
| effects/AnaglyphEffect.js | ✅ | ✅ (as AnaglyphPassNode )| -
| effects/AsciiEffect.js | ✅ | ✅ | -
| effects/OutlineEffect.js | ✅ | ✅ (as ToonOutlinePassNode )| -
| effects/ParallaxBarrierEffect.js | ✅ | ✅ (as ParallaxBarrierPassNode )| -
| effects/PeppersGhostEffect.js | ✅ | ✅ | -
| effects/StereoEffect.js | ✅ | ✅ (as StereoPassNode) | -
| environments/DebugEnvironment.js | ✅ | ✅ | -
| environments/RoomEnvironment.js | ✅ | ✅ | -
| exporters/DRACOExporter.js | ✅ | ✅ | -
| exporters/EXRExporter.js | ✅ | ✅| -
| exporters/GLTFExporter.js | ✅ | ✅ | -
| exporters/KTX2Exporter.js | ✅ | ✅ | -
| exporters/MMDExporter.js | ✅ | ✅ | -
| exporters/OBJExporter.js | ✅ | ✅ | -
| exporters/PLYExporter.js | ✅ | ✅ | -
| exporters/STLExporter.js | ✅ | ✅ | -
| exporters/USDZExporter.js | ✅ | ✅ | -
| geometries/BoxLineGeometry.js | ✅ | ✅ | -
| geometries/ConvexGeometry.js | ✅ | ✅ | -
| geometries/DecalGeometry.js | ✅ | ✅ | -
| geometries/InstancedPointsGeometry.js | ✅ | ✅ | -
| geometries/ParametricGeometries.js | ✅ | ✅ | -
| geometries/ParametricGeometry.js | ✅ | ✅ | -
| geometries/RoundedBoxGeometry.js | ✅ | ✅ | -
| geometries/TeapotGeometry.js | ✅ | ✅ | -
| geometries/TextGeometry.js | ✅ | ✅ | -
| helpers/LightProbeHelper.js | ✅ | ✅ (as LightProbeHelperGPU)  | -
| helpers/OctreeHelper.js | ✅ | ✅ | -
| helpers/PositionalAudioHelper.js | ✅ | ✅ | -
| helpers/RectAreaLightHelper.js | ✅ | ✅ | -
| helpers/TextureHelper.js | ✅ | ✅ (as TextureHelperGPU) | - 
| helpers/VertexNormalsHelper.js | ✅ | ✅ | -
| helpers/VertexTangentsHelper.js | ✅ | ✅ | -
| helpers/ViewHelper.js | ✅ | ✅ | -
| interactive/HTMLMesh.js | ✅ | ✅ | -
| interactive/InteractiveGroup.js | ✅ | ✅ | -
| interactive/SelectionBox.js | ✅ | ✅ | -
| interactive/SelectionHelper.js | ✅ | ✅ | -
| lights/LightProbeGenerator.js | ✅ | ✅ | -
| lights/RectAreaLightTexturesLib.js | ✅ | ✅  | -
| lights/RectAreaLightUniformsLib.js | ✅ | ✅  | -
| lines/Lines.js | ✅ | ✅  (as webgpu/Lines2.js) | -
| lines/LineGeometry.js | ✅ | ✅  | -
| lines/LineMaterial.js | ✅ | ✅ (as Line2NodeMaterial) | -
| lines/LineSegments2.js | ✅ | ✅ (as webgpu/LineSegments2.js) | -
| lines/LineSegmentsGeometry.js | ✅ | ✅  | -
| lines/Wireframe.js | ✅ | ✅ (as webgpu/Wireframe.js)  | - 
| lines/WireframeGeometry2.js | ✅ | ✅  | -
| loaders/3DMLoader.js | ✅ |  ✅  | -
| loaders/3MFLoader.js | ✅ |  ✅  | -
| loaders/AMFLoader.js | ✅ |  ✅  | -
| loaders/BVHLoader.js | ✅ |  ✅  | -
| loaders/ColladaLoader.js | ✅ |  ✅  | -
| loaders/DDSLoader.js | ✅ |  ✅  | -
| loaders/DRACOLoader.js | ✅ |  ✅  | -
| loaders/EXRLoader.js | ✅ |  ✅  | -
| loaders/FBXLoader.js | ✅ |  ✅  | -
| loaders/FontLoader.js | ✅ |  ✅  | -
| loaders/GCodeLoader.js | ✅ |  ✅  | -
| loaders/GLTFLoader.js | ✅ |  ✅  | -
| loaders/HDRCubeTextureLoader.js | ✅ |  ✅  | -
| loaders/IESLoader.js | ✅ |  ✅  | -
| loaders/KMZLoader.js | ✅ |  ✅  | -
| loaders/KTX2Loader.js | ✅ |  ✅  | -
| loaders/KTXLoader.js | ✅ |  ✅  | -
| loaders/LDrawLoader.js | ✅ | ✅  | -
| loaders/LottieLoader.js | ✅ |  ✅  | -
| loaders/LUT3dlLoader.js | ✅ |  ✅  | -
| loaders/LUTCubeLoader.js | ✅ |  ✅  | -
| loaders/LUTImageLoader.js | ✅ |  ✅  | -
| loaders/LWOLoader.js | ✅ |  ✅  | -
| loaders/MaterialXLoader.js | ✅ |  ✅  | -
| loaders/MD2Loader.js | ✅ |  ✅  | -
| loaders/MDDLoader.js | ✅ |  ✅  | -
| loaders/MTLLoader.js | ✅ |  ✅  | -
| loaders/NRRDLoader.js | ✅ |  ✅  | -
| loaders/OBJLoader.js | ✅ |  ✅  | -
| loaders/PCDLoader.js | ✅ |  ✅  | -
| loaders/PDBLoader.js | ✅ |  ✅  | -
| loaders/PLYLoader.js | ✅ |  ✅  | -
| loaders/PVRLoader.js | ✅ |  ✅  | -
| loaders/RGBELoader.js | ✅ |  ✅  | -
| loaders/RGBMLoader.js | ✅ |  ✅  | -
| loaders/STLLoader.js | ✅ |  ✅  | -
| loaders/SVGLoader.js | ✅ |  ✅  | -
| loaders/TDSLoader.js | ✅ |  ✅  | -
| loaders/TGALoader.js | ✅ |  ✅  | -
| loaders/TIFFLoader.js | ✅ |  ✅  | -
| loaders/TTFLoader.js | ✅ |  ✅  | -
| loaders/UltraHDRLoader.js | ✅ |  ✅  | -
| loaders/USDZLoader.js | ✅ |  ✅  | -
| loaders/VOXLoader.js | ✅ |  ✅  | -
| loaders/VRMLLoader.js | ✅ |  ✅  | -
| loaders/VTKLoader.js | ✅ |  ✅  | -
| loaders/XYZLoader.js | ✅ |  ✅  | -
| materials/MeshGouraudMaterial.js | ✅ | ✖️ (won't be ported)  | -
| materials/MeshPostProcessingMaterial.js | ✅ | ✖️ (won't be ported)  | -
| math/Capsule.js | ✅ |  ✅  | -
| math/ColorConverter.js | ✅ |  ✅  | -
| math/ConvexHull.js | ✅ |  ✅  | -
| math/ImprovedNoise.js | ✅ |  ✅  | -
| math/Lut.js | ✅ |  ✅  | -
| math/MeshSurfaceSampler.js | ✅ |  ✅  | -
| math/OBB.js | ✅ |  ✅  | -
| math/Octree.js | ✅ |  ✅  | -
| math/SimplexNoise.js | ✅ |  ✅  | -
| misc/ConvexObjectBreaker.js | ✅ |  ✅  | -
| misc/GPUComputationRenderer.js | ✅ |  ✖️ (replaced with compute shaders)  | -
| misc/Gyroscope.js | ✅ |  ✅  | -
| misc/MD2Character.js | ✅ |  ✅  | -
| misc/MD2CharacterComplex.js | ✅ |  ✅  | -
| misc/MorphAnimMesh.js | ✅ |  ✅  | -
| misc/MorphBlendMesh.js | ✅ |  ✅  | -
| misc/ProgressiveLightMap.js | ✅ |  ✅  | -
| misc/RollerCoaster.js | ✅ |  ✅  | -
| misc/Timer.js | ✅ |  ✅  | -
| misc/TubePainter.js | ✅ |  ✅  | -
| misc/Volume.js | ✅ |  ✅  | -
| misc/VolumeSlice.js | ✅ |  ✅  | -
| modifiers/CurveModifier.js | ✅ |  ✅  (as CurveModifierGPU) | -
| modifiers/EdgeSplitModifier.js | ✅ |  ✅  | -
| modifiers/SimplifyModifier.js | ✅ |  ✅  | -
| modifiers/TessellateModifier.js | ✅ |  ✅  | -
| objects/GroundedSkybox.js | ✅ |  ✅  | -
| objects/Lensflare.js | ✅ |  ✅ (as LensflareMesh)  | -
| objects/MarchingCubes.js | ✅ |  ✅  | -
| objects/Reflector.js | ✅ |  ✅ (as ReflectorNode)  | -
| objects/ReflectorForSSRPass.js | ✅ |  ✖️ (use ReflectorNode instead)  | -
| objects/Refractor.js | ✅ |  ✅ (as viewportSharedTexture())  | -
| objects/ShadowMesh.js | ✅ |  ✅  | -
| objects/Sky.js | ✅ |  ✅ (as objects/SkyMesh)  | -
| objects/Water.js | ✅ |  ✅ (as objects/WaterMesh)  | -
| objects/Water2.js | ✅ |  ✅ (as objects/Water2Mesh)  | -
| physics/AmmoPhysics.js | ✅ |  ✅  | -
| physics/JoltPhysics.js | ✅ |  ✅  | -
| physics/RapierPhysics.js | ✅ |  ✅  | -
| postprocessing/AfterimagePass.js | ✅ |  ✅  (as AfterImageNode) | -
| postprocessing/BloomPass.js | ✅ |  ✖️ (use BloomNode instead) | -
| postprocessing/BokehPass.js | ✅ |  ✅  (as DepthOfFieldNode) | -
| postprocessing/ClearPass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/CubeTexturePass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/DotScreenPass.js | ✅ |  ✅  (as DotScreenNode) | -
| postprocessing/EffectComposer.js | ✅ |  ✅  (as PostProcessing) | -
| postprocessing/FilmPass.js | ✅ |  ✅  (as FilmNode) | -
| postprocessing/GlitchPass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/GTAOPass.js | ✅ |  ✅  (as GTAONode) | -
| postprocessing/HalftonePass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/LUTPass.js | ✅ |  ✅  (as Lut3DNode) | -
| postprocessing/MaskPass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/OutlinePass.js | ✅ |  ✅  (as OutlineNode) | -
| postprocessing/OutputPass.js | ✅ |  ✅  (as RenderOutputNode) | -
| postprocessing/Pass.js | ✅ |  ✅ (as TempNode or TextureNode) | -
| postprocessing/RenderPass.js | ✅ |  ✅  (as PassNode) | -
| postprocessing/RenderPixelatedPass.js | ✅ |  ✅  (as PixelationNode) | -
| postprocessing/SAOPass.js | ✅ |  ✖️ (use GTAONode instead) | -
| postprocessing/SavePass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/ShaderPass.js | ✅ |  ✖️ (won't be ported) | -
| postprocessing/SMAAPass.js | ✅ |  ✅ (as SMAANode)  | -
| postprocessing/SSAARenderPass.js | ✅ |  ✅ (as SSAAPassNode)  | -
| postprocessing/SSAOPass.js | ✅ |  ✖️ (use GTAONode instead) | -
| postprocessing/SSRPass.js | ✅ |  ✅ (as SSRNode)  | -
| postprocessing/TAARenderPass.js | ✅ |  ✅ (as TRAAPassNode)  | - 
| postprocessing/TexturePass.js | ✅ |  ✅ (as TextureNode)  | -
| postprocessing/UnrealBloomPass.js | ✅ |  ✅ (as BloomNode) | -
| renderers/CSS2DRenderer.js | ✅ |  ✅  | -
| renderers/CSS3DRenderer.js | ✅ |  ✅  | -
| renderers/Projector.js | ✅ |  ✅  | -
| renderers/SVGRenderer.js | ✅ |  ✅  | -
| shaders | ✅ |  ✖️ (only dependencies are ported)  | -
| textures/FlakesTexture.js | ✅ |  ✅  | -
| utils/BufferGeometryUtils.js | ✅ |  ✅  | -
| utils/GeometryCompressionUtils.js | ✅ |  ✅  | -
| utils/GeometryUtils.js | ✅ |  ✅  | -
| utils/LDrawUtils.js | ✅ |  ✅  | -
| utils/SceneUtils.js | ✅ |  ✅  | -
| utils/ShadowMapViewer.js | ✅ |  ✅ (as ShadowMapViewerGPU)   | -
| utils/SkeletonUtils.js | ✅ |  ✅  | -
| utils/SortUtils.js | ✅ |  ✅  | -
| utils/UVsDebug.js | ✅ |  ✅  | -
| utils/WebGLTextureUtils.js | ✅ |  ✅ (as WebGPUTextureUtils)   | -
| utils/WorkerPool.js | ✅ |  ✅  | -
| webxr/ARButton.js | ✅ |  ✅  | -
| webxr/OculusHandModel.js | ✅ |  ✅  | -
| webxr/OculusHandPointerModel.js | ✅ |  ✅  | -
| webxr/Text2D.js | ✅ |  ✅  | -
| webxr/VRButton.js | ✅ |  ✅  | -
| webxr/XRButton.js | ✅ |  ✅  | -
| webxr/XRControllerModelFactory.js | ✅ |  ✅  | -
| webxr/XREstimatedLight.js | ✅ |  ❌ (dependency to WebGLRenderer)  | -
| webxr/XRHandMeshModel.js | ✅ |  ✅  | -
| webxr/XRHandModelFactory.js | ✅ |  ✅  | -
| webxr/XRHandPrimitiveModel.js | ✅ |  ✅  | -
| webxr/XRPlanes.js | ✅ |  ✅  | -