https://github.com/mrdoob/three.js/wiki/Migration-Guide#r176--r177
https://github.com/mrdoob/three.js/milestone/90?closed=1
- Global
- AudioListener
- Set the proper up-direction. #31054 (@WestLangley)
 
- Box3
- Add toJSON()andfromJSON()methods. #31028 (@gkjohnson)
 
- Add 
- ColorManagement
- Improve Nomenclature. #31152 (@WestLangley)
 
- HemisphereLightNode
- Change normalViewtonormalWorld. #31074 (@vitro-mod)
 
- Change 
- ImageBitmapLoader
- LightsNode
- MaterialNode
- Mesh
- NodeMaterial
- NodeMaterialObserver
- PMREMGenerator
- Ray
- ShadowMaskModel
- ShadowNode
- Sphere
- Add toJSON()andfromJSON()methods. #31028 (@gkjohnson)
 
- Add 
- SpotLightNode
- SpotLightShadow
- Sprite
- StorageBufferNode
- Add getMemberType(). #31139 (@HongchengZhao)
 
- Add 
- Texture
- Add setValues(). #31087 (@CodyJasonBennett)
- Texture: Introduce width, height, depth. #31025 (@sunag)
- Add updateRanges. #30998 (@CodyJasonBennett)
 
- Add 
- TSL
- Improve build stages #31156 (@sunag)
- Ensure memory alignment for struct(). #31151 (@sunag)
- Fix mat2boundary size. #31162 (@sunag)
- Ensure 4 byte alignment for instancedArray()andattributeArray(). #31146 (@sunag)
- Add premult()andunpremult(). #31114 (@sunag)
- Fix reflector()clear texture and stop update if bounce isfalse. #31110 (@sunag)
- Add hashBlur()options{repeats,mask,premultipliedAlpha}. #31115 (@sunag)
- Fix getBitangent(). #31059 (@Mugen87)
- Fix lightShadowMatrix()ifrenderer.shadowMap.enabledisfalse. #31024 (@sunag)
- Fix .toVarying()analyze for optimization. #31090 (@sunag)
- Fix auto-cache if using multiple conditionals. #31076 (@sunag)
- Introduce namespace. #31168 (@sunag)
- Fix object-as-parameter checking for Fn(). #31176 (@sunag)
- Introduce uniformTexture()anduniformCubeTexture(). #31190 (@sunag)
- Use multi argument versions of min()andmax(). #31196 (@kristiker)
 
- WebGPURenderer
- Honor Texture.premultiplyAlphain WebGPU backend. #31157 (@Mugen87)
- Fix generate mipmaps when using copyFramebufferToTexture()in WebGPU backend. #31163 (@sunag)
- Apply color management changes from #26644. #31142 (@Mugen87)
- Fix runtime errors introduced by texture array refactor. #31108, #31099 (@cabanier)
- Rename XRResetState()to_resetXRState(). #31105 (@cabanier)
- Introduce ProjectorLight. #31022 (@sunag)
- Array-Based RenderTarget Refactor. #30959 (@RenaudRohlinger)
- Cache pipeline per render/compute pass. #31066 (@Mugen87)
- Optimize WebXR render path. #31134, #31189, #31198 (@cabanier)
- Fix blend factor nomenclature. #31188 (@WestLangley)
- Check if OffscreenCanvas is in window before accessing. #31194 (@pavel-mazhuga)
 
- Honor 
- WebGLRenderer
- WebGLTextureUtils
- Clean up. #31195 (@linbingquan)
 
- WGSLNodeBuilder
- XRManager
Docs
- Clean up. #31046 (@Mugen87)
- Improve LoaderUtilspage. #31082 (@ycw)
- Improve SkeletonHelperJSDoc. #31113 (@upisfree)
- Improve XRManagerJSDoc. #31101 (@Mugen87)
Manual
Examples
- Clean up. #31130, #31138, #31030, #31107 (@WestLangley, @linbingquan, @ycw)
- Add webgpu_compute_particles_fluid. #31148, #31159 (@holtsetio)
- Add webgpu_compute_cloth. #31123 (@holtsetio)
- Improve noise.png. #31137 (@Mugen87)
- Improve webgpu_compute_particles. #31092 (@mrdoob)
- Add webgpu_reflection_blurred. #31116, #31118 (@sunag)
- Add textured assets to webgl_loader_fbx. #31117 (@tatsuya-ogawa)
- Integrate lookAt()into therotateTowards()demo. #31063 (@Mugen87)
- Fix memory leak in FBX demo. #31068 (@Mugen87)
- Make dynamic instancing demo more interesting. #31058 (@Mugen87)
- WebGPU Compute Water Adjustment. #30985, #31011 (@cmhhelgeson, @sunag)
- Update shadow opacity in webgpu_shadowmap_opacity. #30984 (@sunag)
- Cleanup webgl_reverse_depth_buffer. #30989 (@CodyJasonBennett)
- Fix shadows in physics instancing demos. #30988 (@Mugen87)
- Fix webgpu_waterGUI. #31014 (@sunag)
- Add resize event listener for physics_rapier_instancing. #31012 (@linbingquan)
- Clean up XR examples browser notices. #31053 (@mkeblx)
- Make point lights demo more interesting. #31040 (@Mugen87)
- Remove webgl_geometry_dynamic. #31047 (@Mugen87)
- Make tone mapping demos more interesting. #31045 (@Mugen87)
- Make layers example a bit more interesting. #31036 (@Mugen87)
- Add GUI to normal and bump map demo. #31077 (@Mugen87)
- Fix memory leak in SVG demo. #31170 (@Mugen87)
- Enable MSAA in AO demo. #31192 (@Mugen87)
- Refactored webxr_vr_haptics. 1859806 (@mrdoob)
Addons
- 
AfterimagePass - Add dampaccessor. #31035 (@neilrackett)
 
- Add 
- 
ArcballControls 
- 
CSMShadowNode 
- 
FBXLoader - Improve error handling. #31017 (@Mugen87)
- Use getHandler()for custom texture loaders. #31032 (@tatsuya-ogawa)
- Add webpMIME type. #31098 (@Altrozero)
 
- 
FXAAPass - Add pass class for FXAA post processing shader. #31044 (@neilrackett)
 
- 
GLTFExporter - Push nodes parent-first instead of child-first. #31125 (@aaronfranke)
 
- 
GLTFLoader 
- 
HTMLMesh - Add support for input of type text and number in VR. #31160 (@vincentfretin)
 
- 
KTX2Loader - Support ETC2, BCn, and ASTC 4x4 sRGB. #31155 (@donmccurdy)
 
- 
LDrawLoader 
- 
LineMaterial - Fix clipping planes. #31144 (@rtortajada)
 
- 
Octree 
- 
PCDLoader 
- 
PeppersGhostEffect 
- 
SkyMesh 
- 
USDZExporter 
Editor