9.16.0
- Add an
emitRateControlsetter toGPUParticleSystem- by VicenteCartas (#18674) - Preserve particle texture settings when serializing by reference - by VicenteCartas (#18673)
- Fix ParticleSystem.clone() / GPUParticleSystem.clone() changing the particle texture - [Bug Fix] by VicenteCartas (#18672)
- fix: restore side-effect registrations dropped by the 9.15 pure/non-pure split - by RaananW (#18671)
- fix(AudioV2): propagate live loopStart/loopEnd changes to playing static sounds - by RaananW (#18669)
- WebGPU projection layer + render target provider - by RaananW (#18655)
- fix(AudioV2): resume looping static sound from correct position with loopStart/loopEnd - by RaananW (#18661)
- Fix lighting volume WGSL depth texture binding - by matthargett (#18658)
- TC39 migration: flip experimentalDecorators to Stage 3 decorators (atomic) - by RaananW (#18647)
- fix(core): shrink thin-engine bundle (remove fileTools force-link + thin-closure stubs) - by RaananW (#18656)
- WebGPU-compatible XR session + XRGPUBinding plumbing - by RaananW (#18650)
- WebGPU-XR Phase 0: decouple WebXR from WebGL with API-agnostic seams - by RaananW (#18645)
- Add support for loading .babylonproj files in Sandbox - [New Feature] by georginahalpern (#18666)
- feat(inspector): expose PBR metallic texture channel mapping (glTF ORM) - by ryantrem (#18667)
- KHR_gaussian_splatting gltf extension - by CedricGuillemet (#18659)
- Add support for loading .babylonproj files in Sandbox - [New Feature] by georginahalpern (#18666)
9.15.0
- TC39 prep: Symbol.metadata-based serialization decorator store (no behavior change) - by RaananW (#18631)
- Normalize diagonal keyboard movement for Free, Fly, and ArcRotate cameras - [Bug Fix] by georginahalpern (#18634)
- fix(core): restore CubeTexture static crash in EnvironmentHelper (pure barrel) - by RaananW (#18629)
- Fix WGSL exact sRGB conversions failing on WebGPU - by RaananW (#18628)
- fix(core): register PostProcess side-effects for tree-shaken SSAO2 - by ryantrem (#18624)
- Fix unregistered image processing parser breaking material clone in tree-shaken builds - by RaananW (#18623)
- OpenPBR Fuzz Fixes - by MiiBond (#18617)
- fix(core): register hard side-effect dependencies at construction time for pure barrel - by RaananW (#18620)
- Geospatial camera: configurable double-tap fly-to, primary-pointer guard, and normalized keyboard pan - [Bug Fix] by georginahalpern (#18616)
- fix: four pure-import / tree-shaking regressions (clearQuad 404, clustered lighting, snapshot helper, glTF worker materials) - by RaananW (#18618)
- Keep pure barrels side-effect-free in gui, loaders, and atmosphere addon - by RaananW (#18625)
- Remove side-effect import closure baseline mechanism - by RaananW (#18619)
- Keep pure barrels side-effect-free in gui, loaders, and atmosphere addon - by RaananW (#18625)
- fix: four pure-import / tree-shaking regressions (clearQuad 404, clustered lighting, snapshot helper, glTF worker materials) - by RaananW (#18618)
9.14.0
- feat: HTML-in-Canvas (WICG) support — HtmlTexture, interaction managers, polyfill installer - by RaananW (#18604)
- Fix Gaussian Splatting GPU picking and IBL voxelization - by raymondyfei (#18612)
- Flow Graph Editor: playground snippet auto-load, no auto-run on load, and stopped-state variable types - by RaananW (#18611)
- IBL Shadows frame graph hardening - by MiiBond (#18608)
- Report engine.name "Native" and implement updateTextureData - by bkaradzic-microsoft (#18566)
- GS + bucket sort + RH - by CedricGuillemet (#18606)
- Fix RectAreaLight serialization: position, photometric scale, and emission texture - by SergioRZMasson (#18605)
- fix overrides on morphs - by sebavan (#18595)
- fix(AudioV2): apply play options when resuming a paused sound - by RaananW (#18601)
- Add canvasTabIndex engine option - by RaananW (#18598)
- Fix VideoTexture not updating under WebGPU FAST snapshot rendering - [Bug Fix] by Popov72 (#18591)
- Decouple camera inertia glide cutoff from camera.speed - by georginahalpern (#18589)
- GS streaming lod part3 - by CedricGuillemet (#18588)
- Add cube render target support to the native engine - by bkaradzic-microsoft (#18561)
- build(treeshaking): make gui/loaders/serializers side-effect-free (.pure/.types split) - by RaananW (#18610)
- build(treeshaking): make gui/loaders/serializers side-effect-free (.pure/.types split) - by RaananW (#18610)
- Fix glTF morph target animation stutter from shader recompiles - [Bug Fix] by PatrickRyanMS (#18596)
- fix(OBJ): Guard empty vertex buffers when normals/uvs/colors are absent - by raymondyfei (#18597)
- fix(SPLAT): Fix GSplat PLY misclassified as point cloud when both RGB and f_dc colors present - by raymondyfei (#18593)
- GS streaming lod part3 - by CedricGuillemet (#18588)
- fix(playground): declare uuid as a direct dependency to fix broken build - by RaananW (#18609)
- Playground: support importing external resources by absolute URL - by RaananW (#18599)
- fix(sandbox): import LoadingScreen side-effect in renderingZone - by RaananW (#18614)
- Add FBX support to the Sandbox - [New Feature] by PatrickRyanMS (#18607)
9.13.0
- Rework SceneLoader and add unit tests - [Bug Fix] by ryantrem (#18590)
- Auto-populate is2DArray/depth in wrapNativeTexture from native layer count - [Bug Fix] by bghgary (#18535)
- Add GPU picker depth point and normal support - by Celeste-twinkle (#18572)
- Honor depthCullingState.depthTest on the native engine - by bkaradzic-microsoft (#18558)
- GS streaming/lod part2 - by CedricGuillemet (#18585)
- GS streaming/lod part2 - by CedricGuillemet (#18585)
- Rework SceneLoader and add unit tests - [Bug Fix] by ryantrem (#18590)
- GS streaming/lod part2 - by CedricGuillemet (#18585)
9.12.1
- Add NullEngine multiview render-state testability - by matthargett (#18576)
- Fix GeospatialCamera zoom-while-rotating and updateFlyToDestination - [Bug Fix] by georginahalpern (#18582)
- Fix camera frozen in UMD build (inertia undefined): use local field instead of super.inertia accessor - by georginahalpern (#18580)
- Fix FreeCamera/FlyCamera input regression: apply active input below the legacy epsilon glide cutoff - [Bug Fix] by georginahalpern (#18578)
- Coalesce shared delay-loaded geometry/mesh file requests - [Bug Fix] by georginahalpern (#18570)
- GS Streaming - by CedricGuillemet (#18563)
- fix(core): restore Buffers/buffer.align side effect for Native engine - by CedricGuillemet (#18565)
- Fix(GreasedLine): guard grl_offsets behind GREASED_LINE_USE_OFFSETS in GLSL shaders (match WGSL) - by bkaradzic-microsoft (#18571)
- Port framerate-independent camera movement and configurable input to FreeCamera and FlyCamera - by georginahalpern (#18573)
- Move scissor to core as an opt-in engine extension - by AmoebaChant (#18547)
- GS Streaming - by CedricGuillemet (#18563)
- GS Streaming - by CedricGuillemet (#18563)
- Fix USDZ export for cached unsupported texture formats - [Bug Fix] by alexchuber (#18559)
9.12.0
- fix(Gsplat): Sort Worker Message Starvation in GaussianSplattingMesh - by raymondyfei (#18554)
- Accept AbstractEngine in ThinRenderTargetTexture constructor - by AmoebaChant (#18557)
- Fix CSG2 boolean operations for right-handed (glTF) meshes - [Bug Fix] by deltakosh (#18556)
- Warn when uniform-stored bone matrices risk overflowing the vertex-uniform budget - by matthargett (#18543)
- Fix PhysicsAggregate mutating caller's options object - [Bug Fix] by CedricGuillemet (#18555)
- Fix NME post process / smart filter / procedural modes failing with 404 shader errors - [Bug Fix] by deltakosh (#18549)
- Fix reentrant remove behavior - by CedricGuillemet (#18552)
- incorrect side effect setting in rendeing pipline - by RaananW (#18546)
- FrameGraph Geometry Renderer: Fix screenspace texture clear in reverse Z mode - [Bug Fix] by Popov72 (#18545)
- Support SSAO2 with world-space normals - by matthargett (#18539)
- Add HALF_FLOAT vertex buffer type support - by wiiskii (#18524)
- Remove side-effect import closure baseline - by RaananW (#18540)
- Node material: Fix PrePassOutput block in WebGPU - [Bug Fix] by Popov72 (#18544)
- fix(GSplat): Gaussian Splatting shadow-caster geometry left dangling after camera disposal - by raymondyfei (#18541)
- Fix KTX noMipmap flip for compressed sRGB mipmaps - [Bug Fix] by matthargett (#18538)
- Fix reentrant remove behavior - by CedricGuillemet (#18552)
9.11.0
- Add WGSL shader paths for GUI3D and GPU particles - by matthargett (#18460)
- fix(FlowGraph): allow CancelDelay to cancel the first scheduled delay - by marns (#18517)
- Move custom frame requester to AbstractEngine to enable 120fps support in BabylonNative - by matthargett (#18521)
- Add RegisterPBRMaterial alias to RegisterPbrMaterial - by RaananW (#18528)
- Add waveform analyzer data to AudioEngineV2 - [New Feature] by RaananW (#18529)
- Native: prefer setRenderResetCallback with legacy setDeviceLostCallback fallback - by bghgary (#18518)
- feat(mcp): Add MCP servers for Babylon.js graph editors - [New Feature] by RaananW (#18344)
- Add WGSL shader paths for GUI3D and GPU particles - by matthargett (#18460)
- Add WGSL shader paths for GUI3D and GPU particles - by matthargett (#18460)
- Add an option to disable teaching moments - [New Feature] by ryantrem (#18508)
9.10.1
- Make smartAssetManager tree-shakeable - by georginahalpern (#18516)
- Add DOM-free font offset fallback - by matthargett (#18463)
- Fix: DSM detects modern Xbox controllers on Linux as Generic - by AmoebaChant (#18514)
- feat(Gsplat): Add auto-tracking to GaussianSplattingDebugger for compound mesh mutations - by raymondyfei (#18515)
- Make smartAssetManager tree-shakeable - by georginahalpern (#18516)
- Updating worker name for webpack - [Bug Fix] by VicenteCartas (#18519)
- feat(GridMaterial): Multi-scale LOD, horizon fade, depth compositing, and above/below color - by raymondyfei (#18509)
9.9.2
- fix(xr): correct hand/wrist twist orientation on XR body tracking entry - by RaananW (#18505)
- Fix thin-instance bounds for baked vertex animation - [New Feature] by Popov72 (#18512)
- Add selection outline depth occlusion toggle - [Bug Fix] by Popov72 (#18498)
- fix(GSplat): Multiple Critical Voxelization and Compound Bugs - by raymondyfei (#18496)
- Prevent render target camera swaps from notifying active camera observers - [Bug Fix] by Popov72 (#18500)
- GS fix small issues - [Bug Fix] by CedricGuillemet (#18499)
- Fix opacity blending in OpenPBR - [Bug Fix] by MiiBond (#18497)
- Use SOG texture option - by CedricGuillemet (#18475)
- Add Audio V2 support to Inspector v2 - [New Feature] by ryantrem (#18480)
- Inspector V2: add material texture debug toggle and improve scene explorer tooltips - by ryantrem (#18494)
- Add Audio V2 support to Inspector v2 - [New Feature] by ryantrem (#18480)
- fix(GSplat): Multiple Critical Voxelization and Compound Bugs - by raymondyfei (#18496)
- Fix opacity blending in OpenPBR - [Bug Fix] by MiiBond (#18497)
- Use SOG texture option - by CedricGuillemet (#18475)
- Add Lottie compatibility options for text and solid layers - [Bug Fix] by VicenteCartas (#18507)