This repository was archived by the owner on Aug 26, 2026. It is now read-only.
Repository navigation
v1.4.0
Minor Changes
-
9e735d4: feat: add
onReadyandonFramecallbacks toinitThree; fix canvas resize flickerNew features
events.onReady— called once the HDR environment map has loaded (or immediately if HDR is disabled or fails), so consumers can coordinate scene loadingevents.onFrame(delta)— called every animation frame before render, for custom per-frame logic or physics updates
Bug fixes
- Canvas resize flicker — resize is now applied inside the animation loop immediately before
renderer.render(), so the buffer clear and the new frame are composited together. Previously aResizeObservercallback triggered the resize asynchronously, leaving a blank frame between the clear and the next render clearSceneghost groups — now removes top-level non-floor children and traverses their subtrees for disposal, instead of traversing the whole scene for meshes. This prevents emptyGroupnodes from accumulating after their mesh children were removedcomputeCombinedBoundingBoxempty array — now returns early on an empty array instead of returning aBox3with+Infinity/-Infinitybounds that would produceNaNvectors downstream- Tone mapping mismatch —
setupRendererwas falling back toACESFilmicToneMappingdespiteapplyDefaultsalways settingNeutralToneMapping; the stale fallback is removed
Breaking changes
initThreeno longer returns aresizemethod (resize is now handled automatically every frame)
Patch Changes
- 9e735d4: Fix: Enhanced validation in extractFileData to properly check FileData object structure
- Changed property checks from uppercase (FileName, FileType, Data) to camelCase (fileName, fileType, data)
- Added type guards for isBase64Encoded (boolean) and subFolder (string) properties
- Improves type safety and ensures all required FileData properties are validated before parsing