Download Latest Version r185 source code.zip (378.8 MB)
Email in envelope

Get an email when there's a new version of three.js

Home / r185
Name Modified Size InfoDownloads / Week
Parent folder
r185 source code.tar.gz 2026-07-01 374.8 MB
r185 source code.zip 2026-07-01 378.8 MB
README.md 2026-07-01 23.4 kB
Totals: 3 Items   753.6 MB 65

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

  • Global
  • Remove deprecated code. [#33407] (@Mugen87)
  • Update package-lock.json. [#33563] (@Mugen87)
  • Harmonize errors. [#33588] (@Mugen87)
  • Update Three.WebGPU.js. [ebd2a7] (@Mugen87)
  • Update package-lock.json. [bea0fa] (@Mugen87)
  • AnimationAction
  • Fix time warping bug. [#33617] (@Mugen87)
  • BezierInterpolant
  • Refactor inTangents/outTangents. [#33515] (@Mugen87)
  • Bindings
  • TSL Compute: Fix needsUpdate. [#33530] (@thelazylamaGit)
  • Box3
  • Improve docs. [#33633] (@Mugen87)
  • BufferGeometry
  • Fix attribute count mismatch in computeVertexNormals() and computeTangents(). [#33520] (@Mugen87)
  • Support Transformed Geometry when Serializing. [#33641] (@WestLangley, @Mugen87)
  • CI
  • Improve permissions. [#33466] (@Mugen87)
  • ClippingContext
  • Fix stale viewMatrix with multiple cameras. [#33578] (@Mugen87)
  • ColorAdjustment
  • Add max() for outputs. [#33854] (@sunag)
  • common.glsl
  • WebGLRenderer Shaders: introduce transformNormalByInverseViewMatrix(). [#33351] (@WestLangley, @Mugen87)
  • Update inverseTransformDirection definition for clarity. [#33431] (@WestLangley)
  • FrustumArray
  • Optimize frustum computations. [#33804] (@Mugen87)
  • HTMLTexture
  • Support new WICG HTML-in-Canvas API signatures. [#33788] (@ewewraw)
  • Annotate Chrome versions for each API code path. [ff95ce] (@mrdoob, @claude)
  • IESSpotLight
  • Make sure IES texture can be exchanged. [#33502] (@dswhy)
  • Inspector
  • Fix FPS counter freeze when WebGLBackend query is unavailable. [#33755] (@sunag)
  • InstanceNode
  • Sync update ranges in updateBefore. [#33615] (@thejustinwalsh, @Mugen87)
  • Line2NodeMaterial
  • Refactoring, use native node material hooks. [#33689] (@sunag)
  • Fix the warn on cache-key, keep it in set lineColorNode. [a219a9] (@sunag)
  • LoadingManager
  • Loaders, Editor: Improve handling of assets with unicode characters. [#33301] (@Mugen87)
  • Material
  • Fixed setValues() to honor Euler and Vector2 types. [#33476] (@FE-kang, @Mugen87)
  • MaterialLoader
  • Add registerMaterial() and Material.fromJSON(). [#33714] (@Mugen87)
  • Matrix3
  • deprecate .scale(), .rotate(), and .translate(). [#33757] (@WestLangley)
  • Matrix4
  • Introduce faster version of determinant(). [#33814] (@Mugen87)
  • Use determinant3x3() where appropriate. [#33820] (@WestLangley)
  • Rename determinant3x3() to determinantAffine(). [#33823] (@Mugen87)
  • Morph
  • Fix individual morphTargetInfluences per object. [#33772] (@sunag)
  • NodeBuilder
  • Fast-path getDataFromNode when no sub-build is active. [#33656] (@mrdoob)
  • Use .nodes as Set instead of Array. [#33664] (@sunag)
  • Use .sequentialNodes as Set instead of Array. [#33703] (@mrdoob)
  • Make registerDeclaration() more robust. [#33869] (@Mugen87)
  • NodeMaterial
  • Dynamically copy properties in copy(). [#33775] (@sunag)
  • NodeMaterialObserver
  • Fix default version value of textures. [#33422] (@Mugen87)
  • Reuse lightsData cache entry per frame. [#33425] (@RenaudRohlinger, @claude)
  • Fix environment rotation and intensity checks. [#33764] (@Mugen87)
  • Nodes
  • Fix toConst() usage in Camera. [#33831] (@Mugen87)
  • NodeUniformBuffer
  • Fix byteLength to follow overridden buffer getter. [#33469] (@RenaudRohlinger)
  • NodeUtils
  • Update getAlignmentFromType to use 4-byte elements and add bool type. [#33546] (@sunag)
  • npm
  • Exclude examples/fonts from the published package. [#33744] (@mrdoob, @claude)
  • Object3D
  • Honor matrixWorldNeedsUpdate in updateWorldMatrix(). [#33746] (@Mugen87)
  • ObjectLoader
  • Allow ObjectLoader to use custom loading managers in sync'd image loads. [#33669] (@SeanCurtis-TRI)
  • PassNode
  • Fix implicit depth texture creation when depthBuffer: false. [#33410] (@thelazylamaGit, @Mugen87)
  • PMREMGenerator
  • Avoid unnecessary depth buffers in render targets. [#33585] (@shotamatsuda)
  • Apply await renderer.init() policy. [#33587] (@Mugen87)
  • PMREMNode
  • Fix dispose of internal PMREMs. [#33849] (@Mugen87)
  • PointShadowNode
  • Fix shadows with logarithmic depth buffer. [#33584] (@Mugen87)
  • Raycaster
  • Fix setFromCamera() with ortho cameras. [#33568] (@Mugen87)
  • Renderer
  • Export missing classes. [#33623] (@pepperoni505)
  • Ensure valid camera state in compileAsync(). [#33668] (@Mugen87)
  • Fix light invalidation by nested render calls. [#33737] (@Mugen87)
  • Fix compileAsync(). [#33784] (@Mugen87)
  • Improve render list processing of render bundles. [#33811] (@Mugen87)
  • Merge update ranges if possible. [#33813] (@Mugen87)
  • Fully support InstancedMesh with render bundles. [#33839] (@Mugen87)
  • Improve texture check in _getShadowNodes(). [#33845] (@sunag)
  • Renderers
  • Clean up logs. [#33508] (@Mugen87)
  • Fix sort of render lists with reversed depth buffer. [#33700] (@Mugen87)
  • Disable bump mapping for wireframe rendering. [#33777] (@mrdoob, @claude)
  • RenderList
  • Fix occlusionQueryCount. [#33765] (@Mugen87)
  • RenderObject
  • Guard against undefined geometry attribute in getAttributes(). [#33460] (@RenaudRohlinger)
  • Properly compare interleaved buffer attributes. [#33558] (@Mugen87)
  • Drop redundant morph target check. [#33771] (@Mugen87)
  • Optimize getKeys(). [#33805] (@Mugen87)
  • Fix handling of side. [#33860] (@Mugen87)
  • RTTNode
  • Introduce setResolutioScale() and updates. [#33606] (@sunag)
  • ShaderLib
  • Fix formatting of main function declaration. [#33696] (@pohlt)
  • Shaders
  • Update nomenclature. [#33727] (@WestLangley)
  • Add deprecation note. [#33729] (@WestLangley)
  • ShadowFilterNode
  • Use textureGatherCompare in PCFSoftShadowFilter. [#33534] (@RenaudRohlinger, @claude, @shotamatsuda)
  • ShadowNode
  • Fix shadow viewer inspect and introduce equirectDirection. [#33752] (@sunag)
  • SphereGeometry
  • Make pole vertices more robust. [#33652] (@Mugen87)
  • Src
  • Clean up. [#33590] (@WestLangley)
  • StackNode
  • Fix outputNode flow propagation. [#33405] (@sunag)
  • StereoCamera
  • Fix matrix computation. [#33731] (@Mugen87)
  • StorageTextureNode
  • Bypass UV matrix transforms. [#33545] (@thelazylamaGit)
  • Set referenceNode & add .store() function. [#33544] (@thelazylamaGit)
  • TSL
  • Remove string, arrayBuffer definitions. [#33430] (@sunag)
  • Fix setName() for attributes. [#33432] (@sunag)
  • Introduce storageTexture3D. [#33443] (@shotamatsuda)
  • Make not() on vector produce component-wise logical not. [#33442] (@shotamatsuda)
  • Fix redundant min/max calls being generated. [#33441] (@shotamatsuda)
  • Fix stack node sequence. [#33402] (@sunag)
  • Cache function nodes per renderer's backend. [#33517] (@sunag)
  • Add support for textureGather and textureGatherCompare. [#33475] (@shotamatsuda, @sunag)
  • Make sure structs are built when compiling functions. [#33524] (@Mugen87, @sunag)
  • Introduce nodeProxyConstructor. [#33542] (@sunag)
  • Remove modInt export from Three.TSL.js. [#33628] (@Methuselah96)
  • Add missing StorageTexture3DNode exports. [#33630] (@Methuselah96)
  • Migrate vertex accessor classes to TSL Fn. [#33674] (@sunag)
  • Fix varying code sequence in vertex stage. [#33709] (@sunag)
  • Align packing nomenclature with packing.glsl.js. [#33715] (@WestLangley, @sunag)
  • Introduce ambientOcclusion property. [#33728] (@sunag)
  • Fix direction and normal transform methods. [#33725] (@Mugen87)
  • Rename directionToFaceDirection -> negateOnBackSide. [#33753] (@sunag)
  • Introduce override context. [#33807] (@sunag)
  • Use RGBA for batching color. [#33866] (@Mugen87)
  • UniformsGroup
  • Pool per-uniform update-range objects. [#33427] (@RenaudRohlinger, @claude)
  • WebGLOutput
  • Handle antialias. [#33446] (@mrdoob)
  • WebGLRenderer
  • Fix stale scratch framebuffers after context restore. [#33533] (@vizerb, @Mugen87)
  • reset statistics (info.reset) before shadowMap.render. [#33688] (@ldaoust01)
  • Improve lookups of shader stages. [#33829] (@Mugen87)
  • Always bind position to location 0. [#33841] (@Mugen87)
  • Fix normal maps with DoubleSide+ flat shading. [#33859] (@Mugen87)
  • Fix normal maps with BackSide and vertex tangents. [#33861] (@Mugen87)
  • WebGLTextureUtils
  • fix copyTextureToTexture() usage inside updateBefore(). [#33736] (@marcofugaro, @Mugen87)
  • WebGLUniformsGroups
  • Optimize UBO updates to avoid GC churn. [#33704] (@mrdoob, @claude)
  • WebGPUBackend
  • toggle comment causing import to appear in build. [#33449] (@daigofuji)
  • WebGPUBindingUtils
  • Guard updateBinding() against destroyed GPU buffer. [#33461] (@RenaudRohlinger, @Mugen87)
  • WebGPUPipelineUtils
  • reset shared render-pipeline descriptor before suspending in the async path. [#33794] (@hsheth2, @Mugen87)
  • WebGPURenderer
  • Honor layerUpdates for compressed array textures. [#33417] (@RenaudRohlinger, @sunag)
  • Ensure valid render pipelines when using depthBias. [#33471] (@Mugen87)
  • Support all BPTC formats. [#33482] (@Mugen87)
  • Surface uncaptured GPU errors and WGSL diagnostics. [#33418] (@RenaudRohlinger, @claude, @sunag)
  • Restore framebuffer after clear. [#33512] (@Mugen87)
  • Make structs work in vertex shader with WebGL. [#33509] (@Mugen87)
  • Fix texture disposal for render targets. [#33511] (@Mugen87)
  • Honor the Compositor Contract. [#33457] (@WestLangley, @Mugen87)
  • Optimize submit() calls. [#33513] (@Mugen87)
  • Support rendering to texture arrays. [#33507] (@cabanier, @Mugen87, @elalish, @renovate[bot], @ycw)
  • Introduce descriptor classes and caching. [#33525] (@Mugen87)
  • Fix mipmap filter mode. [#33527] (@XorTdsc)
  • More descriptor usage. [#33529] (@Mugen87)
  • Improve support for output types. [#33299] (@sunag)
  • Add support for WebXR with WebGPU. [#33583] (@cabanier)
  • Manage hardwareClipping on builder level. [#33681] (@Mugen87)
  • Fix dispose of override material render objects. [#33682] (@Mugen87)
  • Fix stale texture references in bindings. [#33680] (@Mugen87)
  • Refactor material lighting setup. [#33702] (@sunag)
  • Fix unsupported texture sample counts. [#33722] (@sunag)
  • add lighting.enabled. [#33721] (@sunag)
  • Fix getShaderAsync() render context retrieval. [#33733] (@sunag)
  • Add WGSL polyfill for inverse(). [#33745] (@Mugen87)
  • Fix displacement-map shadows. [#33774] (@sunag)
  • Track frontFaceCW in needsRenderUpdate. [#33780] (@LLiJJing)
  • Correctly honor 4-byte stride alignment. [#33787] (@Mugen87)
  • Minor performance fixes. [#33802] (@Mugen87)
  • Fully support ExternalTexture. [#33816] (@Mugen87)
  • Scope sampler caching to bindings to prevent sampler collision on shared. [#33847] (@sunag)
  • Improve Sampler disposal. [#33850] (@Mugen87)
  • WebGPUUtils
  • Cache preferred canvas format. [#33800] (@Mugen87)
  • XRManager
  • Use foveateBoundTexture() to enable foveation. [#33484] (@cabanier)

Docs

  • Improve displacementMap JSDoc. [#33453] (@Mugen87)
  • Document minimum texture sizes of PMREMGenerator. [#33465] (@Mugen87)
  • Fix JSDoc. [#33569] (@Mugen87)
  • Fix code example generation. [#33586] (@Mugen87)
  • Fix typo in ARButton docstring. [#33608] (@Carifio24)
  • Add color space notes. [#33636] (@Mugen87)
  • Correct lightMap description. [#33642] (@WestLangley)
  • Fix typos in JSDoc. [#33713] (@hanityx)
  • Update TSL.md. [522bc1] (@Mugen87)
  • Fix Safari scrolling to anchors. [#33719] (@shotamatsuda)
  • Update nomenclature. [#33742] (@WestLangley)
  • NodeMaterial.setupOutput and TSL positionLocal. [#33791] (@cmhhelgeson)
  • Update TSL.md. [67e7b2] (@sunag)
  • Update TSL.md. [540254] (@sunag)
  • Fix JSDoc type expressions for docs build. [1b4637] (@mrdoob, @claude)

Manual

  • Fix links in material table. [#33487] (@Mugen87)
  • Improve Installation guide. [#33599] (@Mugen87)
  • Update nomenclature. [#33723] (@WestLangley)
  • Fix link navigation. [#33858] (@Mugen87)

Examples

  • Update webgl_loader_svg.html. [278675] (@Mugen87)
  • Explicitly set clear color in WebGPU demos. [#33452] (@gkjohnson)
  • Clean up. [#33470] (@Mugen87)
  • Make wave speed frame rate independent in webgl_shaders_ocean. [#33492] (@unrealsid, @Mugen87)
  • Fix final alpha issues. [#33496] (@gkjohnson)
  • Update webgl_loader_ifc to use web-ifc directly. [#33491] (@agviegas, @claude)
  • Clean up. [#33505] (@Mugen87)
  • Add webgpu_furnace_test.html. [#33516] (@WestLangley)
  • Added GUI to Furnace Tests. [#33523] (@WestLangley)
  • Improve GUI in webgpu_lines_fat.html. [#33498] (@WestLangley)
  • Improve GUI in webgl_lines_fat.html. [#33538] (@WestLangley)
  • Add Open Graph Protocol fields. [#33543] (@Mugen87)
  • Update tags.json. [82181e] (@Mugen87)
  • Improve webgpu anamorphic, rtt and bloom. [#33600] (@sunag)
  • Remove "setDecoderPath" in non-gltf path examples. [#33604] (@gkjohnson)
  • Add TSL function for grounded skyboxes. [#33611] (@Mugen87)
  • Add nanite-style rasterizer. [#33605] (@sunag)
  • Update webgpu_compute_nanite-style.html. [76d1eb] (@Mugen87)
  • Improve WebGPU AO example. [#33631] (@marcofugaro)
  • Improve AO scale. [#33637] (@Mugen87)
  • Cleanup webgpu_postprocessing_ssaa. [#33653] (@Methuselah96)
  • Optimize and shade smooth Tennyson Bust model. [#33655] (@marcofugaro)
  • webgpu_lights_clustered firefly-style HDR sprites. [#33660] (@mrdoob)
  • Update CDN dependencies. [#33677] (@mrdoob, @claude)
  • Improved face alignment in webgl_morphtargets_webcam. [#33690] (@mrdoob, @claude)
  • Add webgpu_skinning_instancing_individual. [#33644] (@RenaudRohlinger, @sunag)
  • Migrate examples to new DRACOLoader url config. [#33724] (@gkjohnson)
  • Fix Animation Speed label of webgpu_compute_nanite-style. [607fc7] (@sunag)
  • Subset MPLUSRounded1c font in webgl_geometry_text_stroke. [#33743] (@mrdoob, @claude)
  • Add TileCreasedNormalsPlugin. [#33767] (@mrdoob, @claude)
  • Add inspector to the ball pool example. [195e32] (@mrdoob, @claude)
  • Add LoftGeometry addon and example. [#33776] (@mrdoob, @claude)
  • Rename webgpu_compute_nanite-style to webgpu_compute_rasterizer. [4c83d5] (@mrdoob, @claude)
  • Clean up webgpu_compute_rasterizer. [60e798] (@mrdoob, @claude)
  • Remove ammo.js examples. [#33786] (@mrdoob, @claude)
  • Use CDN version of Ammo.js. [#33799] (@Mugen87)
  • Rework webgpu_lights_clustered. [#33803] (@mrdoob, @claude)
  • Example: Fix and optimize snow compute demo. [#33833] (@Mugen87, @sunag)
  • Add volumetric fire, enhances the VolumetricLightingModel. [#33848] (@sunag)
  • Update misc_exporter_gltf_normals.html. [70ea71] (@Mugen87)
  • Add procedural city generator. [#33817] (@mrdoob, @claude)
  • Improve webgpu_custom_fog with terrain and forest generators. [#33873] (@mrdoob, @claude)
  • Improve webgpu_custom_fog_scattering. [#33825] (@mrdoob, @claude)
  • Add webgpu_compute_rasterizer_ibl. [#33783] (@mrdoob, @claude, @sunag)
  • Use FirstPersonControls in webgpu_compute_rasterizer. [aace2e] (@mrdoob, @claude)

Addons

  • Addons
  • Removed TiledLighting. [#33751] (@sunag)

  • ArcballControls

  • Document correct usage of adjustNearFar. [#33479] (@Mugen87)
  • Fix swapped X/Y gizmo ring orientations. [#33536] (@raeraex2)

  • AsciiEffect

  • Add escapeHTML(). [#33567] (@Mugen87)

  • BufferGeometryUtils

  • Optimize toCreasedNormals(). [#33768] (@mrdoob, @claude)

  • CSMShadowNode

  • Add support for reversed depth buffer. [#33506] (@shotamatsuda)
  • Fix inconsistency in frustum split. [#33510] (@shotamatsuda)

  • ClusteredLightsNode

  • Fix point light distance attenuation. [#33679] (@mrdoob, @claude)
  • keep castShadow point lights on the material-lights path. [#33792] (@hsheth2)
  • include clustered lights in getLights(). [#33793] (@hsheth2)

  • DRACOExporter

  • Removed bundled encoders in favor of CDN. [#33789] (@mrdoob, @claude)

  • DRACOLoader

  • Use relative file urls by default. [#33564] (@gkjohnson)
  • Deprecate "setDecoderConfig" function. [#33602] (@gkjohnson)
  • Add exported urls for GLTF decoder. [#33691] (@gkjohnson)

  • DataTextureLoader

  • Add createDataTexture(). [#33705] (@Mugen87)

  • EXRLoader

  • Fix out-of-bounds read on partial scanline blocks. [#33620] (@Mugen87)

  • FXAANode

  • Refactor ApplyFXAA(). [#33708] (@Mugen87)

  • FirstPersonControls

  • Damping, separate move sources, release fix, E/Q keys. [#33874] (@mrdoob, @claude)

  • GLTFExporter

  • Improve multi-scene animation support. [#33748] (@Mugen87)
  • Fix export of normal maps. [#33837] (@Mugen87)

  • GTAONode

  • Cosine-weighted integration with per-slice normal projection. [#33654] (@marcofugaro)

  • ImportanceSampledEnvironment

  • Spatiotemporal Denoiser for SSR. [#33843] (@0beqz)

  • Inspector

  • Added scope for styles. [#33456] (@sunag)
  • Added storage settings and info feature. [#33571] (@sunag)
  • Add unread warning and error notification badges. [#33732] (@sunag)
  • Migrate Graph to Canvas & add FPS graph to toggle button. [#33756] (@sunag)
  • Improved Viewer, Timeline. [#33750] (@sunag)
  • Fix slider using step() after define the value. [#33806] (@sunag)
  • Improve state preservation, layout sizing and add CPU/GPU graph metrics. [#33808] (@sunag)
  • Inline extensions configuration and remove extensions.json. [#33812] (@sunag)
  • Improve mobile compatibility. [#33819] (@sunag)
  • Improve folder renaming, color/select value updates, and visibility controls. [#33853] (@sunag)
  • Add overdraw render mode. [#33870] (@mrdoob, @claude)
  • Group duplicate console messages and allow detached tab panels to remain visible. [#33864] (@sunag)
  • Fix Timeline resize. [c1889d] (@sunag)

  • KTX2Loader

  • Use relative file urls by default. [#33603] (@gkjohnson)
  • Fix regression in rgba16 unorm support. [#33662] (@donmccurdy)
  • Disable etc1 on Chrome Mesa (Linux). [#33697] (@arpu, @Mugen87, @donmccurdy, @mrdoob)

  • LWOLoader

  • Deprecate loader. [#33621] (@Mugen87)

  • LightProbeGrid

  • Improve docs. [#33426] (@Mugen87)
  • Avoid redundant matrixWorld updates during bake. [#33489] (@mrdoob, @claude)
  • Add indirect bounces option to bake(). [#33657] (@mrdoob)

  • LineMaterial

  • Fix trimSegment() with reversed depth buffer. [#33572] (@Mugen87)
  • Trim line distances. [#33607] (@Mugen87)

  • LineSegment2

  • Don't raycast without a valid resolution. [#33872] (@Mugen87)

  • LoftGeometry

  • Fix UVs for non-uniform sections. [#33815] (@mrdoob)

  • MaterialXLoader

  • Avoid compiling unused BSDF lobes. [#33712] (@mrdoob, @claude)

  • Matrix3

  • Remove remaining usage of translate() and scale(). [#33754] (@Mugen87)

  • MikkTSpace

  • Add dispose(), cache promise. [#33501] (@Shane-oo, @Mugen87)

  • PLYExporter

  • Honor data types of buffer attributes. [#33625] (@Mugen87)
  • Support custom attributes. [#33627] (@Mugen87)

  • PLYLoader

  • Honor PLY data types when creating buffer attributes. [#33622] (@Mugen87)

  • PixelationPassNode

  • Fix examples to avoid fading alpha. [#33450] (@gkjohnson)

  • RapierPhysics

  • Add applyImpulse(). [#33459] (@Mugen87)

  • Reflector

  • Make getReflectionCamera() public. [#33556] (@Mugen87)

  • SSAAPassNode

  • Make clear color handling more consistent. [#33478] (@Mugen87)

  • SSGINode

  • Use a half float render target. [#33769] (@mrdoob, @claude)
  • Optimize code. [#33782] (@Mugen87)
  • Reduce bandwidth with RG11B10. [#33822] (@Mugen87)

  • SVGLoader

  • Honor scale in strokeWidth. [#33411] (@Mugen87)
  • Improve createShapes(). [#33415] (@Mugen87)
  • Add material helpers. [#33424] (@Mugen87)
  • Basic gradients support. [#33436] (@Mugen87)
  • Make stroke generation more robust. [#33438] (@Mugen87)

  • ShapePath

  • Update toShapes(). [#33503] (@Mugen87)

  • TransformControls

  • Add viewport support. [#33451] (@Mugen87)
  • Fix edge case transforms. [#27719] (@AlaricBaraou, @Mugen87)
  • Allow visibility control of rotation gizmos. [#33562] (@Mugen87)

  • USDAParser

  • Infer the elementSize of missing skeletal joint attributes. [#33596] (@bigbigbiglazycat, @Mugen87)
  • Fix inline-brace prim definitions being silently dropped. [#33773] (@wheresoli)

  • USDLoader

  • Preserve USDA animation timing metadata. [#33560] (@mkeblx, @mrdoob)
  • Fix texture paths in standalone USD files. [#33610] (@Mugen87)

  • USDZExporter

  • Support mimeType setting via Texture.userData. [#33579] (@Mugen87)
  • Fix opacity regression. [#33580] (@Mugen87)
  • Add animation support. [#33589] (@Mugen87)
  • Improve usability. [#33597] (@Mugen87)
  • Add multi-material support. [#33598] (@Mugen87)
  • Basic normal scale support. [#33851] (@Mugen87)

  • USDZLoader

  • Reorder quaternion components in USDA quatf[] array parsing. [#33577] (@bigbigbiglazycat, @Mugen87)
  • Preserve attribute connections when a direct value follows. [#33581] (@Mugen87)
  • Add onLoad() and onError() to parse(). [#33582] (@Mugen87)

  • VRMLLoader

  • Allow multi-line strings. [#33616] (@Mugen87)

  • VolumeShader

  • Support perspective cameras. [#33493] (@Mugen87)
  • Improve apply_colormap(). [#33867] (@Mugen87)

  • Water2Mesh

  • Simplify flowMap setup. [#33540] (@Mugen87)

  • WebGPURenderer

  • Added ClusteredLighting (Forward+ clustered) shading. [#33406] (@mrdoob, @claude, @sunag)
  • Add fallback for XR with WebGPU. [#33497] (@cabanier, @Mugen87, @elalish, @renovate[bot], @ycw)

  • lottie_canvas.module

  • LottieLoader, TTFLoader: Removed bundled libs in favor of CDN. [#33798] (@mrdoob, @claude)

Devtools

  • Make hierarchy collapsible. [#33645] (@Mugen87)
  • Resolve linter issues. [#33646] (@Mugen87)
  • Remove empty scenes. [#33647] (@Mugen87)
  • Bump version to 1.16. [4e3822] (@mrdoob)
  • clean up. [#33879] (@linbingquan)

Editor

  • Remove legacy JSON format Worker code. [#33423] (@sebastiondev)
  • Improve SVG setup. [#33447] (@Mugen87)
  • Make light targets editable. [#33541] (@Mugen87)
  • Fix ListboxItem text content. [#33648] (@Mugen87)
  • Add texture parameters dialog. [#33651] (@Mugen87)
  • Fix name conflict during glTF export. [#33699] (@Mugen87)
  • Rework auto-completion in script editor. [#33711] (@Mugen87)
  • Fix collision detection in arkanoid demo. [#33718] (@Mugen87)
  • Update arkanoid.app.json. [716b64] (@Mugen87)
  • Add support for orthographic cameras. [#33701] (@Mugen87)
  • Fix outliner regression. [#33735] (@Mugen87)
  • Make size of vertex normals helper configurable. [#33790] (@Mugen87)

Tests

  • Add unit test for custom interpolant. [#33480] (@Mugen87)
  • Run unittests in browser with Puppeteer. [#33550] (@catalin-enache, @Mugen87)
  • Update CatmullRomCurve3.tests.js. [6b7197] (@Mugen87)
  • E2E: Update screenshot. [#33635] (@Mugen87)
  • E2E: Fix WebGPU Device Lost errors. [#33650] (@shotamatsuda)
  • test/e2e: fix Buffer handling for Node.js 23+. [#33672] (@WestLangley)
  • E2E: Print elapsed seconds. [#33726] (@shotamatsuda)

Utils

  • Improved changelog.js. [d71847] (@mrdoob, @claude)
Source: README.md, updated 2026-07-01