Skip to main content
January 2026
  • fromMeasurementData changed to addMeasurement which takes a serialized measurement as argument - zoomExtents and explode now take only visible bounds into account, not total bounds by default
August 2025
July 2025
  • GeometryData now stores the original geometry DataChunks instead of just number arrays. This change was the basis of a larger update we made to facilitate larger model loading by minimizing memory allocation during startup and load - ViewerEvent.Busy has been removed and it’s no longer emitted
May 2025
  • get clippingVolume from SpeckleRenderer now returns an OBB - set clippingvolume from SpeckleRenderer now accepts both Box3 and OBB - all intersection methods from Intersections now accept both Box3 and OBB as bounds argument - expandBoxRelative from World now accepts both a Box3 and a OBB - requestUpdate from SectionOutlines extension now takes an optional force argument that forces an update
February 2025
  • Loader’s resourceData changed from string | ArrayBuffer to unknown to allow each loader to define it’s own resource data type
January 2025
  • SmoothOrbitControls’s constructor changed. It no longer takes a Scene and Intersections, but only a SpeckleRenderer
November 2024
  • Loader’s resourceData changed from string | ArrayBuffer to unknown to allow each loader to define it’s own resource data type - SmoothOrbitControls’s constructor changed. It no longer takes a Scene and Intersections, but only a SpeckleRenderer
October 2024
  • Entire rendering pipeline got a massive update and it now allows for free user customization as well as user defined passes - pipeline accessors added to SpeckleRenderer. This allows for user defined rendering pipelines - pipelineOptions accessors removed from SpeckleRenderer - PipelineOutputType removed. The pipeline’s result now depends on the pipeline’s pass configuration - DynamicAOPassParams and it’s default removed - StaticAoPassParams and it’s default removed and replaced by ProgressiveAOPassOptions - A series of pre-defined rendering passes as well as entire rendering pipelines have been added
September 2024
  • Vector3 and Box3 have been removed from the viewer’s exports. They can now be imported from three.js
August 2024
  • All input mesh vertex colors are now treated as sRGB
July 2024
  • NearCameraCalculation type option added to CameraController option. - UpdateFlags.RENDER no longer resets pipeline. Added UpdateFlags.RENDER_RESET which forces a pipeline reset
June 2024
  • Added tasOnly as a parameter in all intersect variants. - The existing firstHitOnly option on Raycaster now stops on first intersected TAS, asa well as first intersected BAS from that TAS (if tasOnly is not set)
May 2024
  • Vector3Like replaces VectorLike in the arguments of transformTRS in BatchObject - SpeckleLoader no longer takes a priority argument in it’s constructor - addRenderTree from SpeckleRenderer now takes a RenderTree as an argument instead of a RenderTree id - getRenderTree is now overloaded with a version with no arguments that never returns null - intersect and intersectRay arguments have been moved around and both are now overloaded
April 2024
  • Asset now has a mandatory id field - getEnvironment and getTexture from Assets now only accept Asset as argument - The concept of Providers has been removed entirely - CameraProvider has been replaced by SpeckleCamera - CameraControllerEvent renamed to CameraEvent
March 2024
  • updateClippingPlanes in SpeckleRenderer does not take an optional Plane[] argument anymore
  • setOptions from SelectionExtension has changed to an accessor - displayOn and displayOff from SectionTool are replaced by visible accessor
February 2024
The introduction of viewer API 2.0 into our stable channel. The changes to the API itself are extensive and there is no point for a step by step guide, as what was previously known as API 2.0 will become the single supported viewer API moving forward.
Last modified on July 18, 2026