Download Latest Version r186 source code.zip (366.2 MB) Google Add to Preferred Sources
Home / r186
Name Modified Size InfoDownloads / Week
Parent folder
r186 source code.tar.gz 2026-09-08 362.2 MB
r186 source code.zip 2026-09-08 366.2 MB
README.md 2026-09-08 28.1 kB
Totals: 3 Items   728.4 MB 65

https://github.com/mrdoob/three.js/wiki/Migration-Guide#185--186 https://github.com/mrdoob/three.js/milestone/99?closed=1

  • Global
  • Add linting for tsl/. [#34488] (@ycw)
  • Clean up. [#34499] (@Mugen87)
  • AnimationObjectGroup
  • Fix stale index bookkeeping in uncache() and unsubscribe_(). [#34035] (@sean-kim05, @Mugen87)
  • Backend
  • Renderer: Add resetState() function. [#33877] (@pepperoni505, @Mugen87)
  • Backends
  • Don't scale render target viewports by the pixel ratio. [#34333] (@mrdoob, @claude)
  • BatchedMesh
  • Mark visibility dirty in setGeometryIdAt(). [#34096] (@wrangelvid)
  • BezierInterpolant
  • Make interpolate_() more robust. [#33934] (@Mugen87)
  • Bindings
  • Remove cached bind groups in _destroyBindings(). [#33954] (@Mugen87)
  • Fix _destroyBindings(). [#34014] (@Mugen87)
  • Fix stale storage buffer attributes. [#34388] (@Mugen87)
  • BufferGeometry
  • Clean up serialization/deserilization. [#34044] (@Mugen87)
  • Core
  • Fix some copy() and toJSON() implementations. [#34083] (@Mugen87)
  • Don't check against default values in toJSON(). [#34178] (@Mugen87)
  • Initialize render targets with valid dimensions. [#34380] (@204a, @Mugen87)
  • Frustum
  • Improve docs. [#34093] (@Mugen87)
  • Geometries
  • Delete the disposed geometry's own attributes. [#33939] (@sashankaryal, @Mugen87)
  • ImageBitmapLoader
  • Fix regression in load(). [#34151] (@Mugen87)
  • Avoid mutating loader options. [#34500] (@cuishuang, @Mugen87)
  • KeyframeTrack
  • Serialize/deserialize tangent data. [#34400] (@Mugen87)
  • Material
  • Add serialization/deserialization support for clipping planes. [#34084] (@Mugen87)
  • MathUtils
  • Fix large isPowerOfTwo values. [#34459] (@lprnmns, @Mugen87)
  • MeshPhysicalMaterial
  • Add support for retroreflectivity. [#33949] (@bhouston)
  • Fix diffuse Fresnel blend for retroreflective. [#34057] (@Mugen87)
  • Object3D
  • Add intersectsFrustum(). [#34065] (@Mugen87)
  • Add dispose(). [#34141] (@Mugen87)
  • PMREMGenerator
  • Replace separable blur with spiral blur on both renderers. [#32367] (@mrdoob, @claude)
  • QuadMesh
  • Optimize rendering by bypassing MVP transforms. [#33917] (@sunag)
  • Ray
  • New watertight intersectTriangle(). [#33661] (@Mugen87)
  • Handle empty spheres in intersectSphere(). [#34016] (@sean-kim05)
  • Renderer
  • Don't use MSAA for fullscreen-passes. [#33936] (@Mugen87)
  • Fix operator-precedence bug. [#33943] (@Mugen87)
  • Fix computation of _projScreenMatrix. [#33947] (@Mugen87)
  • Clear inactive render lists. [#33941] (@Mugen87)
  • Warn when using removed PCFSoftShadowMap. [1b7d5f] (@mrdoob, @claude)
  • Remove remaining PCFSoftShadowMap code. [#33987] (@mrdoob, @claude)
  • Clarify PCFSoftShadowMap warning. [4d0de9] (@mrdoob, @claude)
  • Use WeakMap in Info. [#34045] (@Mugen87)
  • Simplify _getFrameBufferTarget(). [#34157] (@Mugen87)
  • Introduce dispose() async. [#34364] (@sunag)
  • Renderers
  • honor renderOrder with reversed depth buffer. [#33945] (@LLiJJing, @claude)
  • Refactor sort key negate. [#33948] (@Mugen87)
  • Optimize multi-scattering energy compensation. [#34046] (@Mugen87)
  • Optimize DFG LUT sampling. [#34055] (@Mugen87)
  • RenderTarget
  • Introduce storage flags for MSAA. [#33974] (@Mugen87)
  • RenderTarget3D
  • Fix texture setup. [#34117] (@Mugen87)
  • Shaders
  • Fix multi-scattering energy compensation, remove BRDF_GGX_Multiscatter. [#33983] (@mrdoob, @claude)
  • Fix iridescence IBL multiscattering and transposed XYZ_TO_REC709. [#33984] (@mrdoob, @claude)
  • Improve energy conservation for diffuse and sheen lighting. [#33985] (@mrdoob, @claude)
  • Make comments more explicit. [#34038] (@WestLangley)
  • Add environment lighting support for retroreflective materials. [#33995] (@mrdoob, @bhouston, @claude)
  • Source
  • Reanme to TextureSource. [#34202] (@Mugen87)
  • src
  • Remove deprecated code. [#33886] (@linbingquan)
  • Src
  • Improve retroreflection nomenclature. [#34079] (@WestLangley)
  • Clean up. [#34161] (@WestLangley)
  • Clean up. [#34272] (@WestLangley)
  • SunLight
  • Clean up. [#34258] (@mrdoob, @claude)
  • Reduce cascade count to 2. [52184a] (@mrdoob, @claude)
  • TimestampQueryPool
  • Clear timestamps Map on query resolution and dispose. [#34243] (@sunag)
  • TorusGeometry
  • Forward thetaStart and thetaLength in fromJSON(). [#34034] (@sean-kim05, @Mugen87)
  • Tour
  • Add Playground Projects and Templates. [#34437] (@sunag)
  • Vector3
  • Clean up comments. [#34037] (@WestLangley)
  • WebGLAnimation
  • Schedule next frame before the loop callback. [#34448] (@aktanazat, @Mugen87)
  • WebGLBackend
  • Fix usage of storeMultisampledDepthBuffer. [#34142] (@Mugen87)
  • Add support for MinEquation and MaxEquation. [#34146] (@tonybart1337)
  • Make clear of default framebuffer more consistent. [#34502] (@WilliamLiu-1997, @Mugen87)
  • WebGLOutput
  • Match depth texture format to stencil setting. [#34008] (@sawa-zen, @Mugen87)
  • Optimize MSAA support. [#34030] (@Mugen87)
  • WebGLRenderer
  • Fix clearLayerUpdates() call. [#33989] (@Mugen87)
  • Tighten multi-scattering check. [#34047] (@Mugen87)
  • Fix color texture check for BatchedMesh. [#34056] (@Mugen87)
  • Optimize readRenderTargetPixels capability checks. [#34183] (@dli7319, @Mugen87)
  • Support Node Materials in compile(). [#34232] (@Mugen87)
  • Add SunLight with cascaded shadow maps. [#34221] (@mrdoob, @claude)
  • Make GL init more robust. [#34299] (@Mugen87)
  • Unbind PIXEL_PACK_BUFFER after async readback. [#34321] (@TheBlek, @cursoragent)
  • fix compileAsync() crashing when a tracked material is disposed mid-flight. [#34378] (@kvvasuu, @Mugen87)
  • Honor clipping in compile(). [#34507] (@Mugen87)
  • WebGLTextures
  • Improve max textures warning. [7cab42] (@Mugen87)
  • WebGLTextureUtils
  • Delete PIXEL_PACK_BUFFER after copy. [#34323] (@Mugen87)
  • WebGPU
  • Allow read_write storage buffers and atomic ops in non-compute stages. [#33626] (@SebastianBaltes, @claude)
  • WebGPUAttributeUtils
  • Fix interleaved buffer handling for integer attributes. [#34098] (@Ryan-G7, @Mugen87)
  • WebGPUBackend
  • WebGPUBackend - Fix type of _getDefaultRenderPassDescriptor. [#33969] (@cmhhelgeson)
  • Check for render bundle/occlusion query combination. [#34286] (@Mugen87)
  • compare GPU bind groups by handle in _draw(). [#34276] (@jjmhalew, @Mugen87, @claude)
  • WebGPURenderer
  • Use UnfilterableFloat for NORM16 textures. [#33910] (@Mugen87)
  • Do not render shadow maps when precompile. [#33924] (@Mugen87)
  • Honor resolve flags in WebGPU backend. [#33946] (@Mugen87)
  • Fix stale occlusion queries. [#33959] (@Mugen87)
  • Make occlusion queries more robust. [#33972] (@Mugen87)
  • Add support for TRANSIENT_ATTACHMENT. [#33977] (@Mugen87)
  • Add missing layerUpdates support to CompressedArrayTexture. [#33996] (@Mugen87)
  • Support shared depth texture between multiple passes. [#34042] (@sunag)
  • Support dynamic swapping of the lighting system. [#34050] (@sunag)
  • Fix XR shadows. [#34088] (@cabanier, @Mugen87)
  • Introduce compileComputeAsync(). [#32551] (@RenaudRohlinger)
  • Fix native WebGPU XR camera selection. [#34112] (@cabanier)
  • Fix copyTextureToBuffer() 3D and array textures when using WebGL. [#34129] (@Mugen87)
  • Fix transmission during WebXR rendering. [#34114] (@cabanier)
  • Enable MSAA for native XR layers. [#34143] (@cabanier)
  • Add MSAA support to WebXR WebGPU. [#34120] (@cabanier)
  • Support material blend color and alpha. [#34154] (@Mugen87)
  • Introduce refresh types for render objects. [#34162] (@Mugen87)
  • Add DirectRenderPipeline. [#34166] (@cabanier, @Mugen87, @sunag)
  • Fix draw offsets of BatchedMesh. [#34212] (@Mugen87)
  • Fix timestamp query limits. [#34236] (@sunag)
  • Refresh shared uniform buffers. [#34283] (@cabanier, @Mugen87)
  • Make cache key for bind groups more robust. [#34288] (@Mugen87)
  • Add clipping + stencil demo. [#34325] (@Mugen87)
  • Dispose render objects when the renderer is disposed. [#34327] (@wcandillon, @Mugen87)
  • Add missing material properties to state checks. [#34406] (@Mugen87)
  • Fix viewport regression with array cameras. [#34424] (@Mugen87)
  • Fix integer array texture bindings. [#34422] (@WilliamLiu-1997, @Mugen87)
  • Add packed_4x8_integer_dot_product support. [#34451] (@Mugen87)
  • WebGPUUtils
  • Refactor getTextureSampleData(). [#34121] (@Mugen87)
  • WebXR
  • Restore camera properties at session end. [#34152] (@Mugen87)

Nodes

  • Nodes
  • Make node buffer binding labels deterministic. [#34069] (@RenaudRohlinger)
  • Add renderer.debug.onNodeBuilderCreated callback. [#34068] (@RenaudRohlinger)
  • Remove top-level side effects for better tree-shaking. [#34332] (@mrdoob, @claude)
  • Add updateBefore and updateAfter support for compute stage. [#34401] (@sunag)
  • Batch
  • Support positionPrevious. [#34100] (@Mugen87)
  • BitcountNode
  • Fix GLSL Bitcount + add test coverage for BRDF/BSDF, depth, color space, type constructors, and bit operations. [#34350] (@bhouston, @Mugen87)
  • ContextNode
  • Avoid redundant calls. [#34251] (@sunag)
  • DFGLUT
  • Mention direct lighting use in headers, fix generator output path. [d60e5b] (@mrdoob, @claude)
  • GLSLNodeBuilder
  • TSL Bug: Fix bitcast(uint, 'int')'s GLSL polyfill return type. [#34429] (@bhouston)
  • TSL Bug: bitcast() fails unnecessary between int and uint vector types. [#34430] (@bhouston, @Mugen87)
  • LightsNode
  • Introduce getBuiltinLights. [#33909] (@sunag)
  • Detect dynamic shadow map size changes. [#34360] (@Mugen87)
  • Line2NodeMaterial
  • Implement setupPosition(). [#34005] (@Mugen87, @sunag)
  • MathNode
  • Fix integer min()/max() on the WebGL backend. [#34018] (@mrcljx, @Mugen87)
  • TSL Unit Tests - Fix determinant() type inference reporting the matrix's own type instead of float. [#34341] (@bhouston, @Mugen87)
  • MathUtils
  • TSL Unit Tests - Fix sinc() removable singularity computing a literal 0/0. [#34337] (@bhouston, @Mugen87)
  • TSL Unit Tests - Fix gain() JS-ternary-on-a-Node bug and wrong base formula; fix pcurve() NaN exponent. [#34340] (@bhouston, @Mugen87)
  • MeshPhysicalNodeMaterial
  • Fix specular nodes. [#34164] (@Mugen87)
  • ModelNode
  • Support ArrayCamera in highp matrix nodes. [#34384] (@Mugen87)
  • MRTNode
  • Fix blend modes bug in merge(). [#34248] (@Mugen87)
  • Allow clear colors per attachment. [#34250] (@Mugen87)
  • NodeBuilder
  • Check for reserved keywords. [#33871] (@Mugen87)
  • NodeFunction
  • Filter initial spaces and comments. [#34363] (@sunag)
  • NodeManager
  • Correctly dispose of background mesh. [#34108] (@Mugen87)
  • NodeMaterial
  • Improve scene lighting enabled check. [#34052] (@sunag)
  • NodeMaterialObserver
  • Honor retroreflective and fix updates with nested render calls. [#33992] (@mrdoob, @claude)
  • Add geometry version check. [#34064] (@Mugen87)
  • Fix stale render object cache. [#34076] (@Mugen87)
  • Monitor dispose for geometries and textures. [#34287] (@Mugen87)
  • Track shadow map sizes. [#34361] (@Mugen87)
  • PMREMNode
  • Handle unresolved PMREM during setup. [#33881] (@jure)
  • ReferenceElementNode
  • Move into own file. [#34245] (@Mugen87)
  • RotateNode
  • TSL Unit Tests - Fix rotate() 3D Euler-angle path rotating in the wrong direction. [#34338] (@bhouston, @Mugen87)
  • Add support for Euler Order. [#34348] (@WestLangley)
  • RTTNode
  • Add autoUpdate, resolutionScale and preserve default type. [#34307] (@sunag)
  • Fix reset and restore renderer state. [#34385] (@sunag)
  • Keep the renderer state per instance. [#34508] (@mrdoob, @claude)
  • ScreenNode
  • Refactor DPR handling. [#34186] (@Mugen87)
  • ShadowNode
  • Fix WeakMap usage. [#33964] (@Mugen87)
  • Move shadow material and render object helpers to base class. [#34312] (@sunag)
  • Skinning
  • Support bone counts exceeding UBO limit. [#34200] (@Mugen87)
  • StorageTextureNode
  • Preserve integer store values. [#34423] (@WilliamLiu-1997)
  • SubgroupFunctionNode
  • TSL Unit Tests: Workgroups, StorageBuffer Atomics, Compute builtins, Barriers and Subgroups. [#34431] (@bhouston)
  • TSL Bug: Fix subgroupAll()/subgroupAny() parameter length. [#34432] (@bhouston)
  • TSL Bug: Fix subgroup broadcast first param length. [#34433] (@bhouston, @Mugen87)
  • TextureNode
  • Add isPlainGather(). [#34119] (@Mugen87)
  • Refactor isPlainGather(). [#34201] (@Mugen87)
  • ToonLightingModel
  • Use the view space normal for the gradient irradiance. [#34247] (@lazerg)
  • TSL
  • Respect texture format when sampling textures. [#33875] (@sunag)
  • Make textureSize() more robust. [#33925] (@Mugen87)
  • Inline transform of normal and tangent. [#33938] (@WestLangley)
  • Do not export PMREMUtils. [#33986] (@sunag)
  • Fixing rbmax / rbmin calculation of getParallaxCorrectNormal(). [#34007] (@Mugen87)
  • Fix update range clear bug in Instance. [#34022] (@explodi, @Mugen87)
  • Support individual lighting per pass(). [#34051] (@sunag)
  • Add OnAfterObjectUpdate(). [#34101] (@Mugen87)
  • Fix update of previous instance matrix data. [#34107] (@Mugen87)
  • Add batchIndirectIndex. [#34111] (@Mugen87)
  • Support primitive values in custom struct constructors. [#34113] (@sunag)
  • Build CodeNode includes as references. [#34132] (@Ryan-G7, @Mugen87, @sunag)
  • Remove export of 'append'. [#34156] (@Methuselah96)
  • Add horizontalRotation option to billboarding(). [#34197] (@sunag)
  • Add 4x8 pack/unpack functions. [#34263] (@Mugen87)
  • Update exports in Three.TSL. [#34310] (@sunag)
  • Honor type in toAttribute(). [#34347] (@Mugen87)
  • Add TSL GPU unit test coverage for LTC area lights, point light, SH irradiance, equirect/spritesheet UV, and post-processing utils. [#34358] (@bhouston)
  • Add warnings to GPGPU Nodes. [#34291] (@cmhhelgeson)
  • Add atomic workgroup array support. [#34428] (@WilliamLiu-1997, @bhouston)
  • Add missing clamp to V_Neubelt(). [#34449] (@Mugen87)
  • UniformArrayNode
  • Fix update() overwrite. [#33962] (@Mugen87)
  • WGSLNodeBuilder
  • TSL Unit Tests - Fix faceForward() WGSL capitalization bug. [#34342] (@bhouston, @Mugen87)
  • WGSLNodeFunction
  • Add missing WGSL-TSL type entry. [#34099] (@Mugen87)

Addons

  • Addons
  • Disable depth buffer when possible. [#34043] (@Mugen87)
  • Fix typos. [#34105] (@pailhead)
  • Gaussian Splat renderer / loader using TSL for WebGPU/WebGL + glTF import. [#33950] (@bhouston, @Mugen87)
  • 3DMLoader
  • add views, namedViews, and strings to userData. [#34498] (@YCoCg)
  • 3MFLoader
  • Basic support of Beam Lattice. [#34267] (@Mugen87)
  • AST
  • TSL & Transpiler: Support parameterless loops (do ... while). [#34209] (@sunag)
  • BufferGeometryUtils
  • Let toTrianglesDrawMode()modify geometries in-place. [#33878] (@Mugen87)
  • avoid vertex hash overflow at zero tolerance. [#34390] (@hamedrabah, @Mugen87)
  • CityGenerator
  • Improved city example. [#33906] (@mrdoob, @claude)
  • CSS2DRenderer
  • Support Rotation. [#33474] (@WestLangley)
  • FBXLoader
  • Support multiple clips in single timeline. [#34167] (@Mugen87)
  • Fix missing userData copy. [#34302] (@Mugen87)
  • Use global URL instead of window.URL. [#34328] (@hybridherbst)
  • FirstPersonControls
  • Make keyboard movement world axis aligned. [f88964] (@mrdoob, @claude)
  • Restore R/F shortcuts and unify example look speed. [#34485] (@mrdoob)
  • GaussianSplatMesh
  • Fix sort invalidation for transforms. [#34233] (@gqfx, @Mugen87)
  • Add support for per-mesh bounding box, frustum culling. [#34254] (@gkjohnson)
  • Inline splat data reads to improve bounding box generation performance. [#34262] (@gkjohnson)
  • Pack RGBA8 colors in storage buffers. [#34255] (@gqfx)
  • Add support for raycasting. [#34284] (@gkjohnson, @bhouston)
  • GaussianSplatPLYLoader
  • PLYGaussianSplatLoader -> GaussianSplatPLYLoader. [#34292] (@WestLangley)
  • GaussianSplatUtils
  • Simplify GaussianSplatUtils via ThreeJS math classes. [#34223] (@bhouston)
  • Global
  • Remove deprecated code. [#33880] (@Mugen87)
  • GLTFExporter
  • Cache normal maps. [#33940] (@Mugen87)
  • Implement ability to export with a copyright notice. [#34138] (@Mirei3D, @Mugen87)
  • GLTFGaussianSplatLoaderExtension
  • Optimize Gaussian Splat loading. [#34205] (@bhouston)
  • View-dependent Gaussian Splatting via Spherical Harmonics. [#34215] (@bhouston)
  • GLTFLoader
  • Fix EXT_mesh_gpu_instancing custom instance attributes shared across nodes. [#33927] (@sebgoubier, @Mugen87)
  • Skip skinning without skin attributes. [#33988] (@0b5vr, @Mugen87)
  • Fix KHR_texture_transform support when rotation is specified. [#34033] (@zeux)
  • HTMLMesh
  • Improve form controls support. [#34172] (@Mugen87)
  • Inspector
  • Stop keyboard events from leaking into the app. [069680] (@mrdoob, @claude)
  • Add debounce(). [#33932] (@Mugen87)
  • resolve bare three imports in TSL graph loader. [#33965] (@bhushan6)
  • Fix TSLGraphEditor raycasting and refactor primary pass retrieval. [#34133] (@sunag)
  • Use absolute positioning and add alignment configuration. [#34137] (@sunag)
  • Add split screen, list grid mode and revisions. [#34140] (@sunag)
  • Fix split screen overlay alignment on sub-window canvases. [#34203] (@sunag)
  • Add Color Grading extension and improve lifecycle API. [#34216] (@sunag)
  • Optimize Timeline tab rendering with virtual scrolling. [#34230] (@sunag)
  • Polish split screen divider and select dark theme. [#34318] (@sunag)
  • Implement disposal support and improve split screen handling. [#34383] (@sunag)
  • Support nonce and CSP compliance. [#34396] (@sunag)
  • LightProbeGrid
  • Rename to LightProbeGridWebGL. [#33911] (@mrdoob, @claude)
  • Add WebGPURenderer version. [#33913] (@mrdoob, @claude)
  • Support incremental baking. [#34486] (@mrdoob)
  • LightProbeGridWebGL
  • Fix SunLight integration. [#34370] (@Mugen87)
  • MaterialXLoader
  • Materialx upgrade. [#33485] (@bhouston, @cursoragent, @sunag)
  • OrbitControls
  • Improve disconnect(). [#34504] (@Mugen87)
  • PCDLoader
  • Fix regex to remove comments. [#34199] (@Virtycle, @Mugen87)
  • PLYGaussianSplatLoader
  • a dedicated loader for Gaussian splat PLYs. [#34278] (@bhouston)
  • Rename
  • GaussianSplatMesh -> GaussianSplat. [#34306] (@WestLangley)
  • Rhino3dmLoader
  • performance, PBR materials, editor import. [#34180] (@fraguada)
  • SimplifyModifier
  • Refactor implementation. [#34021] (@Mugen87)
  • Sky
  • Sky, SkyMesh: More realistic clouds. [#33942] (@mrdoob, @claude)
  • Fix FP16 overflow. [#34058] (@Mugen87)
  • Sky, SkyMesh: Slow down default cloud speed. [046797] (@mrdoob, @claude)
  • Sky/SkyMesh
  • Remove up uniform. [#34354] (@Mugen87)
  • SkyscraperGenerator
  • Cheaper weathering noise. [#33900] (@mrdoob, @claude)
  • SPZLoader
  • add support for SPZ version 4 in SPZLoader and add new SPZ v4 example. [#34222] (@bhouston)
  • SunLight
  • Move to addons. [#34326] (@mrdoob, @claude)
  • TrackballControls
  • Avoid updating _movePrev too often. [#34173] (@Mugen87)
  • Implemented multi-touch rotate. [#34249] (@surdu, @Mugen87)
  • Transpiler
  • Add GLSL preprocessor directives and macro support. [#34206] (@sunag)
  • Add array support. [#34208] (@sunag)
  • TubePainter
  • Properly transform normals. [#34061] (@WestLangley)
  • UnrealBloomPass
  • Don't request depth buffer. [#34036] (@Mugen87)
  • Merge adjacent taps into bilinear fetches. [#34479] (@mrdoob, @claude)
  • USDLoader
  • Resolve connected attribute values. [#34309] (@cabanier)
  • VolumeSlice
  • Move property declarations. [#34130] (@Mugen87)
  • WebGLXRFallback
  • Detect WebGPU XR support upfront. [#34080] (@cabanier)
  • WebGPURenderer
  • Add SunLight support. [#34259] (@mrdoob, @claude)
  • XRControllerModelFactory
  • Fix profile hot-swap. [#34266] (@Mugen87)

Addons / Nodes

  • TSL
  • Add softParticles(). [#33887] (@Mugen87)
  • Support primitive values in array(). [#33929] (@sunag)
  • Introduce OnBeforeRenderPipeline and OnAfterRenderPipeline and update context directly on material. [#34025] (@sunag)
  • Fix angle bug in hashBlur(). [#34077] (@Mugen87)
  • Pass stepSize to RaymarchingBox callback. [#34257] (@sunag)
  • Addons
  • Add TAAUtils for shared functions. [#34458] (@Mugen87)
  • BloomNode
  • Add faster blur strategy. [#33923] (@Mugen87)
  • ClusteredLightsNode
  • Add dispose(), optimize create(). [#34375] (@204a, @Mugen87)
  • CSMShadowNode
  • Fix frame-late bug. [#34213] (@Mugen87)
  • DenoiseNode
  • Dispose internal noise texture. [#34418] (@204a)
  • DepthOfFieldNode
  • Fix render target leak on repeated setup. [#34188] (@cl0nazepamm, @Mugen87)
  • DotScreenNode/RGBShiftNode
  • Make ctor more flexible. [#34417] (@Mugen87)
  • DualKawaseBloomNode
  • Added DualKawaseBloomNode. [#33920] (@mrdoob, @claude)
  • Remove DualKawaseBloomNode. [#33979] (@mrdoob, @claude)
  • GTAONode
  • Add Quadratic ray stepping, smooth sphere falloff. [#33895] (@Mugen87)
  • Improve code example. [#33902] (@Mugen87)
  • Clip-space ray marching and loop micro-optimizations. [#33903] (@mrdoob, @Mugen87, @claude)
  • Fix banding issue. [#33919] (@marcofugaro, @Mugen87)
  • Optimize code. [#33930] (@Mugen87)
  • Bake sample count into the shader. [#33931] (@Mugen87)
  • Dispose internal noise texture. [#34369] (@204a, @Mugen87)
  • Nodes
  • More consistent dispose() usage. [#34419] (@Mugen87)
  • OITPassNode
  • Add node for Order Independent Transparency. [#34253] (@Mugen87)
  • Improve MSAA support. [#34274] (@Mugen87)
  • PassNode
  • Fix pixel ratio in derived passes. [#34453] (@Mugen87)
  • SMAANode
  • Fix and simplification. [#34031] (@sunag)
  • SSAAPassNode
  • Use single-sample render targets. [#34367] (@204a, @Mugen87)
  • SSAONode
  • Add SSAONode and depthAwareBlur. [#33921] (@mrdoob, @claude)
  • SSRNode
  • Clean up. [#34377] (@Mugen87)
  • VXGINode
  • Voxel Cone Tracing for Diffuse GI. [#34402] (@Mugen87)
  • WebGLNodesHandler
  • Reuse collected lights and preparation data. [#34219] (@hybridherbst)
  • Fix error with getCanvasTarget in WebGLRenderer. [#34303] (@hybridherbst)
  • WoodNodeMaterial
  • Specialize single-octave noise. [#33970] (@mrdoob, @claude)

Docs

  • Fix heading typo in CONTRIBUTING.md. [6cac81] (@mrdoob)
  • Improve descriptions. [#34027] (@Mugen87)
  • Resolve reamining TODOs. [#34029] (@Mugen87)
  • Matrix4: Improve inline documentation. [#34067] (@WestLangley)
  • Fix typos and a wrong parameter name in JSDoc comments. [#34169] (@xdroberto)
  • fix broken TSL anchor links for roughnessNode and metalnessNode. [#34170] (@latent-9)
  • Drop JSDoc params the functions no longer take. [#34226] (@darkdi)
  • Drop three more JSDoc params in WGSLNodeBuilder. [#34237] (@darkdi)
  • Fix usage of @class tag. [#34244] (@Mugen87)
  • Fix broken cross-links to texture utils pages. [#34271] (@FirmaSpring)
  • Improve BundleGroup. [#34305] (@Mugen87)
  • Tour of TSL. [#34085] (@sunag)
  • IndexNode - Update JSDoc. [#34413] (@cmhhelgeson, @Mugen87)
  • LoopNode - Update JSDoc. [#34415] (@cmhhelgeson, @Mugen87)

Manual

  • Remove i18n. [#33997] (@Mugen87)
  • Add Addons section anchor. [#34017] (@zackabrah)
  • Add anchors to headings. [#34020] (@zackabrah)
  • Slowed down colourshift effect in scenegraph tutorial. [#34048] (@chesterblack)

Examples

  • Improve performance of clustered lights demo. [#33901] (@Mugen87)
  • webgl_postprocessing_pixel: Snap Objects to Pixel Grid. [#33908] (@zalo, @claude)
  • Add SSAO blur toggle in webgpu_postprocessing_ao. [70820b] (@mrdoob, @claude)
  • Optimise PNGs across the repo. [#33882] (@Chubercik)
  • Skip TRAA for SSAO in webgpu_postprocessing_ao. [84569e] (@mrdoob, @claude)
  • Use FXAA in clustered light demo. [#33935] (@Mugen87)
  • Removed (wip) from webgpu. [d51eb0] (@mrdoob)
  • Clean up. [#33981] (@WestLangley)
  • Clean up. [#33994] (@Mugen87)
  • Refresh external links in /examples. [#34001] (@bhouston)
  • Clean up. [#34010] (@Mugen87)
  • Properly transform normal vectors. [#34015] (@WestLangley)
  • Clean up. [#34026] (@Mugen87)
  • More clean up. [#34028] (@Mugen87)
  • Properly transform normal. [#34039] (@WestLangley)
  • Add webgpu_deferred example. [#34049] (@sunag)
  • Optimize backdrop water demo. [#34086] (@Mugen87)
  • Refined the webgl_volume_perlin with bisection based refinement. [#34090] (@mmmovania, @Mugen87)
  • Refined the webgpu_volume_perlin with bisection based refinement. [#34094] (@mmmovania, @Mugen87)
  • Update webgl_volume_perlin.html. [be6469] (@Mugen87)
  • Eliminate branch divergence in volume refinement loops. [#34097] (@WestLangley)
  • Clean up. [#34148] (@Mugen87)
  • Clean up. [#34185] (@Mugen87)
  • Change preset in backdrop area. [#34195] (@Mugen87)
  • Make example links clickable in title & info. [#34207] (@bhouston, @Mugen87)
  • Make material arrays demo more interesting. [#34220] (@Mugen87)
  • Optimize rain demo. [#34229] (@Mugen87)
  • Replace sun-like DirectionalLights with SunLight. [#34228] (@mrdoob, @claude)
  • Clean up. [#34273] (@WestLangley)
  • Update tags.json. [04008d] (@Mugen87)
  • Rename Gaussian Splat Example. [#34293] (@WestLangley, @Mugen87)
  • Update webgl_lightprobes_sponza screenshot for two sun cascades. [5c8118] (@mrdoob, @claude)
  • Add post-processing volumetric fog example. [#34319] (@sunag)
  • Remove ecsy . [#34359] (@Mugen87)
  • Clean up. [#34408] (@Mugen87)
  • Update tags. [#34411] (@Mugen87)
  • Optimize glTF asset. [#34435] (@Mugen87)
  • Optimize glTF asset. [#34436] (@Mugen87)
  • Improve tags. [#34472] (@Mugen87)
  • Clean up tags. [#34473] (@Mugen87)
  • Add Sculptor addon. [#33164] (@mrdoob, @claude)
  • Improve fog scattering trees and performance. [#34491] (@mrdoob)
  • Refine custom fog terrain and resource handling. [511de1] (@mrdoob)
  • Update custom fog screenshot. [e0119d] (@mrdoob)
  • Use SunLight in WebGPU examples. [#34476] (@mrdoob, @claude)
  • Improve webgpu_materials_retroreflective. [#33990] (@mrdoob, @claude)

Devtools

  • Clean up, light count and 1.17. [#34387] (@mrdoob, @claude)
  • Object details, box highlight and 1.18. [#34399] (@mrdoob, @claude)

Editor

  • Don't use picker object with skeletons. [#34062] (@Mugen87)
  • Fix animation selection. [#34322] (@Mugen87)
  • Add group selection. [#34144] (@Mugen87)

Tests

  • Try to fix the webgpu async timeouts. [#34225] (@pailhead, @claude)
  • GPU-native unit tests for TSL. [#34331] (@bhouston)
  • fix lint error. [#34345] (@linbingquan)
  • Update screenshots. [#34346] (@Mugen87)
  • Add TSL GPU unit test coverage for math, packing, conversion, vector/matrix, logic/bitwise, color, tone mapping, and procedural helpers. [#34349] (@bhouston, @Mugen87)
  • Unit tests: import unbuilt source instead of build/ output. [#34362] (@bhouston)
  • Remove empty QUnit.module scaffolding. [#34409] (@samuel7james)
  • TSL Tests: Give each GPU unit test kernel its own random canary value. [#34427] (@bhouston)
  • Stabilize input and video screenshots. [#34474] (@mrdoob)

Utils

  • Dev: Improve preview.js. [#34407] (@Mugen87)
  • Support branches in changelog.js. [f64ed0] (@mrdoob, @claude)
  • Improve changelog.js. [16e1f0] (@mrdoob, @claude)
  • Rename Tour of TSL to TSL Guide. [#34457] (@mrdoob, @claude)
  • Update TSL links in llms build. [c4ffe0] (@mrdoob, @claude)

Build

  • Deprecate CommonJS build. [#33891] (@mrdoob, @claude)
  • Remove minified builds. [#33893] (@mrdoob, @claude)

CI

  • Comment on PRs with E2E screenshot failures. [#33971] (@mrdoob, @claude)
  • Add Core to bundle size report. [#34330] (@mrdoob, @claude)
  • fix grammar. [#34482] (@linbingquan, @Mugen87)
Source: README.md, updated 2026-09-08