Skip to content

Viewer 3.20.0 - Ugli

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:37
· 53 commits to main since this release

This release focuses on the three.js update and the follow-up compatibility work required for rendering, screenshots, environment maps, AR conversion, and interaction effects. It also adds new interaction parameter options, exposes additional camera properties, improves CSP compatibility for strict environments, and includes the release workflow follow-ups from the 3.19 patch releases.

Rendering

  • Updated three.js from 0.162.0 to 0.184.0 and postprocessing from 6.35.3 to 6.39.1.
  • Added environmentMapPbrMode to the viewport API. The default legacy mode preserves the previous three.js r162 PBR environment-map behavior, while modern allows using the current three.js behavior.
  • Fixed shading differences after the three.js update (SS-9862).
  • Fixed LDR environment map rotation handling.
  • Updated soft-shadow / PCSS shader handling for the updated three.js shader structure.
  • Fixed specular-glossiness material compatibility with the updated three.js version.
  • Fixed material removal issues and improved material assignment for geometry objects that share cached geometry.
  • Fixed interaction effect materials not being removed reliably.
  • Improved glTF loading and geometry/material assignment paths for the updated rendering stack.

Screenshots

  • Improved getScreenshotAdvanced (SS-9878).
  • Added an includeHtml option to getScreenshotAdvanced to include HTML elements rendered inside the viewport, such as HTML anchors and text tags. It defaults to true; pass false to capture only the WebGL canvas.
  • Improved advanced screenshot camera handling by forwarding supported camera-control properties to temporary screenshot cameras.

Interaction Parameters / Drawing Tools

  • Added activeMode: "alwaysActive" for interaction and drawing parameter settings.
  • Added a presentation setting ("widget" or "toolbar") for interaction and drawing parameters.
  • Exposed missing camera properties in the shared camera property types (SS-9920).
  • Kept the Drawing Tools geometry-state performance improvements for optimized line index generation.

AR / glTF Export

  • Updated @shapediver/sdk.geometry-api-sdk-v2 from 3.4.2 to 3.7.0.
  • Rewrote unsupported image MIME types during AR glTF conversion, converting unsupported texture image formats to PNG when needed (SS-9793).
  • Normalized image MIME types such as image/jpg to image/jpeg during glTF conversion.

Security / Compatibility

  • Configured Zod in jitless mode for packages that define schemas, avoiding CSP unsafe-eval reports in strict environments (SS-9869).
  • Added linting to prevent direct zod imports where the package-local jitless wrapper must be used.
  • Included security and setup follow-up fixes from the 3.19 patch line.

CI / Release Workflow

  • Switched release notes handling to committed Markdown files via the release_notes_file workflow input.
  • Confirmed GitHub release naming is handled by the workflow as Viewer <version> - <codename>; for this release use codename Ugli and release notes file .github/release-notes/3.20.0.md.
  • Added and refined post-release automation for newsfeed entries, ViewerExamples dispatches, and downstream dependency update pull requests.
  • Fixed npm publishing, build-version handling, release permissions, and GitHub Actions setup issues in the 3.19 patch releases.
  • Added a skip_tests workflow-dispatch option for the development workflow, and support for [skip tests] in push commit messages.
  • Updated development workflow finalization to allow deployments when Playwright tests are intentionally skipped.
  • Updated AWS credential action usage and OIDC permissions for release/deployment workflows.

Bugfixes

  • Fixed interaction effect removal and material cleanup edge cases.
  • Fixed material removal issues for cached/shared geometry.
  • Fixed release workflow permission, npm publishing, newsfeed, and build version issues from the 3.19 patch line.
  • Internal package updates, settings package update, and dependency updates.

Full Changelog: https://github.com/shapediver/Viewer/compare/viewer@3.19.0...viewer@3.20.0