Conversation
📦 Bundle sizeFull ESM build, minified and gzipped.
🌳 Bundle size after tree-shakingMinimal build including a renderer, camera, empty scene, and dependencies.
|
|
That is really good. i will make sure to add better descriptive titles if needed. I already use the format WebXRController:description etc. The tokens might need to come from environment variables. And the model selector could be a config rather than dynamic maybe. So you post to the google api the prompt with the collated commits. |
Yeah, I also need to make a validator for the title format.
This is just a perspective between defining the configuration dynamically or statically; there is no need to store tokens in environment variables since we are working with direct access to memory. To be honest, we’re going to use it once a month/release, and I think defining it dynamically is more fun. We can have both if we consider it necessary. |
|
Should we call it I'll have to figure out a way to use my Claude subscription when generating this. |
I had created an option to generate a file with the PR descriptions and AI context so that some other LLM can create the summary(copying and pasting); I can add it again if you find it interesting. |
Related
#32781
Description
The work is not complete yet, but so you can follow along, I’m updating the changelog to be generated by AI. It should read the first message of the PR, which is usually the most important one, gather everything into a file, and with a context window generate a summary mentioning the new features and migration tips. I’m also thinking about adding new examples.
I would also like to evolve the functionalities using github labels like
highlightto make management easier to AI.The description turned out fun to read, and even using a free token with the flash version it produced a great result, which you can see below in this release.
It’s also possible to specify a release, which can be useful for LLMs.
AI Summary (r184)
Core
Object3D.pivot support in copy(): The
Object3D.copy()method now correctly handles thepivotproperty. Previously, if the source object had anullpivot, it would fail to reset the target's pivot, leading to potential state inconsistencies during cloning.AnimationAction improvements: Several fixes address long-standing issues in
AnimationAction, particularly involvingtimeScalereversal jumps during looped animations and incorrect interpolant settings when usingInterpolateBezier. These changes ensure more robust and predictable playback for complex animation setups.Static initialization blocks: The library has transitioned to using ECMAScript 2022 static initialization blocks for setting internal class flags (e.g.,
isMatrixN,isVectorN). This optimization prevents unnecessary property re-assignment during constructor calls, improving instantiation performance.WebGPU
Dynamic Lighting: Added
DynamicLightingsupport forWebGPURenderer. This feature allows updating lighting parameters without triggering a full material shader re-compilation, significantly improving performance for dynamic scenes.Non-blocking compileAsync():
compileAsync()now utilizes a newNodeBuilder.buildAsync()method that yields between shader stages. This prevents the main thread from freezing during complex pre-compilation tasks, keeping the application responsive.Capabilities Management: Refactored limits and capabilities management into a dedicated
WebGPUCapabilitiesmodule. This provides a consistent, standardized way to query hardware limits across the renderer, backends, and node builders.Framebuffer Caching: Improved handling of framebuffer targets, specifically for WebXR layers and multiple canvas setups. By caching depth textures per reference and creating distinct framebuffer targets, the renderer avoids redundant texture re-allocations.
Renderer
WebGL NodeMaterial Compatibility: Introduced a major compatibility layer via
WebGLNodesHandler. This allowsWebGLRendererto support TSL andNodeMaterials, providing a clear transition path for users moving toward WebGPURenderer without forcing an immediate backend switch.Reverse Depth Buffer: Both
WebGLRendererandWebGPURendererhave improved support for reverse-Z rendering.WebGLRenderernow includes warnings whenEXT_clip_controlis missing, andWebGPURenderernow defaults todepth32floatwhen reverse-Z is enabled to mitigate z-fighting.Performance Optimizations: Significant effort was put into reducing garbage collection in the hot path of the render loop. Inline functions in rendering methods were removed and material/geometry comparisons were optimized using cached lookups, resulting in noticeable FPS gains.
Materials
MeshPhysicalMaterial Anisotropy Fix: Corrected a regression where the removal of
saturate()resulted inNaNvalues, causing black pixels in anisotropic materials. The fix re-introduces a guard to prevent division by zero.Packed Normal Map Support: Added support for packed normal maps (RG format) in
WebGLRenderer. This brings the WebGL backend to feature parity with WebGPU for optimized normal map storage and rendering.Loaders
EXRLoader Enhancements: Added support for YCbCr color spaces and B44/A compression formats. Additionally, channel rule matching was corrected to ensure correct parsing of complex multi-channel EXR files.
USDLoader Improvements: Significant updates to the USD loader, including handling of geometric primitives (Cube, Sphere, etc.), improved skinning accuracy by using the 4 strongest weight influences, and support for MaterialX
UsdPreviewSurfaceshaders.GLTFLoader Morph Targets: Fixed a bug where morph target tracks were incorrectly duplicated when processing multi-primitive meshes, preventing flickering and animation breakage.
Nodes
TSL Graph Integration: The Inspector now supports TSL Graph extensions, allowing developers to visually manipulate nodes and materials. This includes a new
TSLGraphEditorand improved integration viaextension.json.StorageTextureNode Fixes: Addressed two critical issues in
StorageTextureNoderelated to incorrect arguments ingenerateTextureStoreand improper return values during node generation, which previously caused shader compilation failures.Inspector
Timeline and Memory Analysis: Added a new Timeline tab to record and detail backend calls (draws, buffer updates, etc.) and a Memory tab to monitor resource usage. These tools provide deep insight into WebGPU backend state and performance bottlenecks.
Extension Support: The Inspector now allows the loading of external extensions, enabling custom GUI panels for specialized debugging workflows.
Examples
New Examples:
Demonstrations of TSL-based materials and techniques running via the WebGL compatibility layer.
Showcases non-blocking shader compilation using the new
compileAsyncworkflow.Demonstrates the new
DynamicLightingclass for real-time light updates without shader re-builds.An interactive demonstration of the new TSL graph editor within the Inspector.
A new WebXR demo featuring marching cubes geometry in an immersive environment.
Modified Examples:
Adjusted floor collision thresholds to prevent the player from standing inside slanted walls.
Improved sky quality by adding the
Skyinstance to the scene and addedshowSunDisctoggles.Updated to hide the horizon, preventing erratic camera translations.
Updated to use the new
FirstPersonControlsinteraction model.Performance and stability refinements for compute-based simulations.
Removed Examples:
Removed in favor of newer WebXR implementations.
Migration Tips
WebGLRendererand wish to use TSL/NodeMaterials, you must explicitly initialize the compatibility layer:activeLookproperty has been removed, andhandleResize()is now a deprecated stub. Ensure your implementation relies on drag-based input from the press point.THREE.ClockinAudioListenerhave been replaced byTHREE.Timer. Update any custom extensions or listener setups that depended onClock.Skyinstance is added directly to theScenerather than solely relying on the environment map. If using the sky for environment lighting, you may want to setshowSunDisc = falseto avoid sun artifacts.Generated by gemini-3.1-flash-lite-preview