Skip to content

Instantly share code, notes, and snippets.

@mrdoob
Created January 17, 2026 00:37
Show Gist options
  • Select an option

  • Save mrdoob/0f4d51870d323f89170fa072236ae6fc to your computer and use it in GitHub Desktop.

Select an option

Save mrdoob/0f4d51870d323f89170fa072236ae6fc to your computer and use it in GitHub Desktop.

https://github.com/mrdoob/three.js/wiki/Migration-Guide#182--183

https://github.com/mrdoob/three.js/milestone/96?closed=1

  • Global

    • Remove deprecated code. #32569, #32572 (@Mugen87)
  • BatchedMesh

    • Fix nextIndexStart and nextVertexStart assignment. #32744 (@gkjohnson)
  • InstanceNode

    • Support velocity. #32586 (@Mugen87)

    • Fix UBO size and attribute update. #32615 (@Mugen87)

  • Lighting

    • Refactor camera usage. #32557 (@sunag)
  • Matrix4

    • Optimize invert() calculation. #32657 (@mrdoob)

    • Cache determinant result in decompose(). #32658 (@mrdoob)

  • NodeBuilders

    • Unify uniform groups of different shader stages. #32534 (@sunag)
  • NodeMaterial

    • Remove shadowPositionNode fallback to reduce CPU load. #32699 (@Mugen87)

    • Add maskShadowNode. #32598 (@sunag)

  • Object3D

    • Add pivot property. #32745 (@mrdoob)

    • Document static property, add support in copy() and JSON. #32679 (@Mugen87)

    • Fix worldToLocal typo. #32647 (@satelllte)

  • Quaternion

    • Support extrapolation in slerp methods. #32541 (@WestLangley)
  • RenderContext

    • Refactor context key. #32546 (@Mugen87)
  • RenderObject

    • Fix ID assignment bug. #32700 (@Mugen87)
  • Renderer

    • Shadow map improvements. #32705 (@Mugen87)

    • Introduce shadowMap.color. #32596 (@sunag)

    • Rename shadowMap.color to shadowMap.colored. #32608 (@Mugen87)

    • Rename shadowMap.colored to shadowMap.transmitted. #32611 (@sunag)

  • ShadowMaterial

    • Respect premultiplied alpha. #32550 (@gkjohnson)
  • SkinningNode

    • Fix tangent transformation. #32718 (@Mugen87)
  • SpriteSheetUVNode

    • Transform to TSL function and fix countNode access. #32693 (@gayanMatch)
  • Texture3DNode

    • Remove outdated setupUV(). #32630 (@Mugen87)
  • TorusGeometry

    • Add thetaStart and thetaLength parameters. #32760 (@3dpk-interactive)
  • TSL

    • Introduce clipSpace. #32594 (@sunag)

    • Introduce TSL.md (TSL Spec). #32601 (@sunag)

    • Add exponentialHeightFogFactor(). #32659 (@Mugen87)

    • Check if the stack has a valid output. #32669 (@sunag)

    • Fix positionView sub-build. #32691 (@sunag)

    • Revert positionWorld re-computation. #32710 (@sunag)

    • Fix invalid GLSL using nested structures. #32724 (@sunag)

    • Use raw data for DebugNode callback. #32638 (@linbingquan)

    • Remove exports for removed TSL methods. #32635 (@Methuselah96)

  • UniformsGroup

    • Partial updates. #32558 (@sunag)

    • Add range cache and fix clear old update ranges. #32561 (@sunag)

  • ViewportTextureNode

    • Change update type to RENDER. #32664 (@Mugen87)
  • WebGLRenderer

    • Consider skinning/instancing when sorting objects. #28125 (@OndrejSpanel)

    • Allow InstancedMesh provide a unique ID for WebGLBindingStates. #32556 (@OndrejSpanel)

    • Fix PCFSoftShadowMap check. #32593 (@Mugen87)

    • Fix shadow map uniform management. #32590 (@Mugen87)

    • Fix reading pixel in MRT. #32506 (@andredsm)

    • Fix pointlight shadows with reversed depth buffer. #32749 (@Mugen87)

    • Fix remaining shadow issues with reversed depth. #32751 (@Mugen87)

    • Fix shadow bias with reversed depth buffer. #32770 (@Mugen87)

  • WebGPURenderer

    • Unify uniformGroup bindings across shader stages. #32602 (@sunag)

    • Fix shadow comparison on Adreno GPUs. #32548 (@sunag)

    • Prevent undefined GPUShaderStage. #32539 (@verekia)

    • Prevent translation of skybox. #32537 (@Mugen87)

    • Fix compileAsync() with target scenes. #32530 (@Mugen87)

    • Add per-attachment MRT blending support. #32636 (@sunag)

    • Fix depth/stencil format out-of-sync bug. #32731 (@Mugen87)

    • Use @interpolate(flat, either) for all cases. #32761 (@greggman)

  • XR

    • Fix camera layers inheritance. #32626 (@wrangelvid)

Docs

  • Improve JSDoc documentation in utils.js. #32743 (@Angel98518)

  • Improved search results. #32577, #32578 (@mrdoob)

  • Update documentation for ImageBitmapLoader options. #32574 (@jwheare)

  • Update URL in VignetteShader.js documentation. #32573 (@jwheare)

  • Update GLTFLoader documentation to include KHR_meshopt_compression. #32661 (@donmccurdy)

  • Clarify the usage of update() in Helpers. #32717 (@Mugen87)

  • Fix JSDoc example. #32603 (@leannepepper)

  • Frame-rate independent cube rotation example. #32627 (@satelllte)

  • Fixed typos. #32629, #32631 (@mrdoob)

Examples

  • Add fog scattering demo. #32613 (@Mugen87)

  • Add bloom to ocean examples. #32680 (@mrdoob)

  • Add missing UnrealBloomPass parameters. #32736 (@Methuselah96)

  • Improved webgl_animation_keyframes. #32685 (@mrdoob)

  • Update webgpu_shadowmap. #32610 (@sunag)

  • Remove obsolete shadow bias from WebGPU demos. #32715 (@Mugen87)

  • Remove material AO demo. #32579 (@Mugen87)

  • Update jolt-physics to v1.0.0. #32711 (@linbingquan)

  • Cleanup. #32528, #32634 (@Methuselah96)

  • Add external example for Polyslice G-code slicer. #32502 (@jgphilpott)

Addons

  • Devtools

    • Add access to AnimationMixer and Loaders. #32616 (@marwie)
  • GCodeExporter

    • Add GCodeExporter. #32502 (@jgphilpott)
  • GCodeLoader

    • Add support for M82/M83 commands. #32687 (@Mugen87)
  • GLTFExporter

    • Fix skinIndex export for InterleavedBufferAttribute. #32607 (@querielo)

    • Add Object3D.pivot support. #32769 (@mrdoob)

  • GLTFLoader

    • Implement support for KHR_meshopt_compression. #32163 (@zeux)

    • Fix empty groups when multiple scenes reference same nodes. #32567 (@YusakuNo1)

    • Add sanity check for navigator.userAgent. #32633 (@leonmetthez)

  • Inspector

    • Store parameters object+key. #32507 (@marwie)
  • JoltPhysics

    • Fix dynamic import Vite warning. (@mrdoob)
  • KTX2Loader

    • Fix alpha for BC3 textures. #32772 (@donmccurdy)

    • Add sanity check for navigator.userAgent. #32633 (@leonmetthez)

  • LensflareMesh

    • Fix DPR usage. #32625 (@Mugen87)
  • Line2NodeMaterial

    • Rename useColor property to vertexColors. #32670 (@sunag)

    • Avoid performance degradation with viewportSharedTexture(). #32639 (@Mugen87)

  • Loaders

    • Use named fflate imports and native TextDecoder. #32765 (@mrdoob)
  • PCDLoader

    • Fix label parsing. #32683 (@Mugen87)
  • PMREM

    • Simplify GGX VNDF importance sampling. #32737 (@Mugen87)
  • RapierPhysics

    • Fix dynamic import Vite warning. #32565 (@mrdoob)
  • RoomEnvironment

    • Adjust scene position. #32646 (@mrdoob)
  • Sky/SkyMesh

    • Add procedural clouds. #32682 (@mrdoob)

    • Remove legacy gamma correction curve. #32677 (@mrdoob)

  • SSRNode

    • Performance optimizations. #32637 (@mrdoob)
  • USDLoader

    • Add USDC file support. #32704 (@mrdoob)

    • Refactor into USDComposer and add animation support. #32740 (@mrdoob)

    • Improve material and UV support. #32746 (@mrdoob)

    • Add OpenPBR Surface shader and polygon hole support. #32764 (@mrdoob)

    • Various bug fixes and improvements. #32766 (@mrdoob)

  • USDAParser

    • Improve text parsing robustness. #32747 (@mrdoob)
  • VRMLLoader

    • Add camera support. #32580 (@Mugen87)
  • VTKLoader

    • Fix ReDoS vulnerability. #32622 (@mrdoob)
  • Water/WaterMesh

    • Improve realism. #32681 (@mrdoob)

    • Use HalfFloatType for reflection render target. #32678 (@mrdoob)

Editor

  • Modernized ui.js. #32545 (@mrdoob)

  • Add Resources panel to Project sidebar. #32729 (@mrdoob)

  • Replace FFmpeg with WebCodecs for video rendering. #32728 (@mrdoob)

  • Move render options from sidebar to menubar. #32727 (@mrdoob)

  • Enable logarithmic depth buffer. #32732 (@mrdoob)

  • Add default environment. #32752 (@mrdoob)

  • Simplify environment handling. #32757 (@mrdoob)

  • UI css scope. #32714 (@linbingquan)

  • Use ES6 const/let for app.js. #32712 (@linbingquan)

  • Migrate ESLint to flat config. #32754 (@ycw)

  • Improve service worker caching and activation. (@mrdoob)

  • Archived playground. #32771 (@mrdoob)

Scripts

  • Replace servez with custom server.js. #32654 (@mrdoob)

  • Replace concurrently with custom preview.js. #32655 (@mrdoob)

  • Remove dev-ssl and preview-ssl. #32672 (@mrdoob)

  • Cross-platform isMain check in server.js. #32674 (@ycw)

Tests

  • Remove pixelmatch dependency. #32656 (@mrdoob)

  • Replace jimp with jpeg-js and pngjs. #32652 (@mrdoob)

  • Remove express dependency. #32649 (@mrdoob)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment