This release focused on a comprehensive code modernization across the entire codebase. The release pipeline was completely overhauled for improved reliability and automation.
Rendering
- Fixed material database assignment edge cases.
- Improved shader caching for better performance.
- Improved glTF loading performance.
- Various rendering performance improvements.
Code Modernization
- Converted runtime imports to type-only imports (
import type) across the entire codebase for improved tree-shaking and bundle optimization. - Cleaned up and modernized the codebase including removal of unused Three.js objects and skinning code.
- Updated Vite and other build tooling.
- Updated axios and other package dependencies.
Performance
- Performance improvements for drawing tools geometry state handling, including optimized index array generation.
- Performance improvements in geometry math management, reusing scratch vectors to avoid per-frame allocation.
- Added performance evaluator improvements.
- Scene tree manager cleanup and optimization.
Interaction / Drawing Tools
- Performance improvements for drawing tools, especially in geometry and restriction handling.
- Improved constraint calculation with scratch vector reuse in hot paths.
CI / Release Pipeline
- Complete overhaul of the release pipeline with new GitHub Actions workflows for testing, building, deploying, and publishing.
- Implemented automated version management with
compute-version.tsandversion-packages.ts. - Added S3 deployment scripts for examples and test artifacts.
- Added npm and GitHub publishing scripts.
- Added CDN smoke testing.
- Added Gitleaks security scanning integration.
- Added Slack integration for CI notifications.
- Added mandatory release notes enforcement for public releases.
- Streamlined the release process with refined failure handling.
Bugfixes
- Fixed a race condition in session/rendering workflows.
- Fixed interaction package exports and settings package imports.
- Fixed constant scene tree update triggers.
- Fixed directional light update propagation.
- Fixed tree node assignment issues.
General
- Package updates across all dependencies.
- test infrastructure improvements, including nightly full test runs and test performance fixes.
- Viewer Examples integration updates.
Full Changelog: https://github.com/shapediver/Viewer/compare/viewer@3.18.0...viewer@3.19.0