Skip to main content
Version: 1.0.0

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning

[1.5.1] - 2025-07-22​

Added​

  • Post-processing pipeline in ThreeJSViewer using EffectComposer, adding Unreal Bloom, Gamma Correction, and SMAA effects for enhanced visual quality.

  • Utility function to build viewer URLs with query parameters such as fov, reflection, useNoShadows, and filename.

  • Interactive cursor styles in ThreeJSViewer to improve user feedback during model interaction.

  • Global flag window.isSceneReady to indicate when the scene is fully initialized, enabling server-side rendering automation.

  • Support for dynamic scene configuration via templateConfig in Renderer, with the ability to trigger image rendering using window.triggerServerRender.

  • Close button for mobile modal in ARShadesDemo with custom styling and improved accessibility.

  • Dynamic support for fieldOfView as a URL parameter in ARShadesDemo, enabling viewer customization on the fly.

  • ARShadesDemo page, to dynamically manage the single and multiple 3DViewer.

Changed​

  • Refactored all Three.js imports in ThreeJSViewer, ARScene, Scene, Model, MaterialController, MaterialPresets, and Renderer to use named imports, improving clarity and tree-shaking performance.

  • Updated useModelLoader logic in ThreeJSViewer to handle conditional caching based on the environment.

  • Comprehensive refactor of material management in Model and MaterialPresets:

    • Introduced helpers like getClonedModel, getClonedMaterial, getMaterialWithPreset, and getRestoredMaterial.

    • Added internal maps: originalMaterialsMap, adjustedMaterialsMap, clonedMaterialsMap, and materialsWithPreset to streamline material cloning and restoration.

  • Updated lastUpdate field formatting to use ISO strings in MaterialPresets and Renderer for consistency.

  • Default fieldOfView changed from 15° to 23° in ThreeJSViewer for a wider model view.

  • Scene preset updated from 'city' to 'apartment' in Scene.js for more realistic reflections, if the viewer has not a default one.

  • Tweaked reflective material parameters: adjusted blur, mixBlur, mixStrength, mirror, color, and opacity for a better visual outcome.

  • Reduced orbitControls.maxDistance to 0.65 for more focused user interactions with the model.

  • Enhanced menus and mobile/desktop toggle behavior in ARShadesDemo, improving layout and responsiveness.

  • Changes to the fetching of the Catologues, Products, and Variants from Firebase Firestore.

Fixed​

  • Properly reset model state and clear GLTF cache when exiting AR sessions (Model, ARScene).

  • Fixed issues when restoring materials after GLB export by using cloned model logic to prevent side effects.

  • Resolved transparency and depthWrite issues for transmissive materials (Model, MaterialController).

  • Correctly handled sheenColor scaling during GLB export to reflect the actual preset value.

  • Eliminated duplicated materials and ensured correct naming consistency in exported .glb models.

  • Improved iframe URL validation and construction in ARShadesDemo.

[1.5.0] - 2025-05-26​

Added​

  • New ThreeJSViewer, Scene, and Model components to replace the legacy viewer based on Google's ModelViewer.

  • Use of Threejs to improve real-time rendering of 3D viewer.

  • MaterialController components to enhance dynamic material configuration.

  • Improvements in handling realistic materials (reflective, transmissive, lenses).

  • Edit the 3D scene with a reflective plane under the glasses.

  • Redux system to manage material names and presets application (now globalized via MaterialConfigsState).

  • High-resolution screenshot feature in the ThreeJSViewer component.

  • Geometric parameters (size, center) to improve rendering adaptation.

  • Advanced AR support: scale, rotation, initial positioning, visual feedback, and shadow plane.

  • AR session exit overlay and improved session control.

  • GLB/USDZ fallback support for cross-platform AR compatibility.

  • GLB export with applied material presets, using a scene reference passed to MaterialPresets.js.

  • Ability to create a material preset from a material current configuration and store or update it in Firebase.

  • MaterialPresets page to apply or remove presets dynamically to model materials.

Changed​

  • Refactored material management logic and improved the Model component.

  • Updated scene rendering for better reflections and lighting (e.g., Scene.js, calculateOptimalFOV).

  • Optimized material map handling and preset logic when presets are added or removed.

Fixed​

  • Error handling fixes when loading models (ErrorScreen, Model, ThreeJSViewer).

  • Resolved transparency and blending issues in transmissive materials.