January 2026
fromMeasurementDatachanged toaddMeasurementwhich takes a serialized measurement as argument -zoomExtentsand explode now take only visible bounds into account, not total bounds by default
August 2025
- ObjectClicked and ObjectDoubleClicked events now have their picked objects filtered by a default ObjectPickConfiguration
July 2025
GeometryDatanow 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.Busyhas been removed and it’s no longer emitted
May 2025
get clippingVolumefromSpeckleRenderernow returns anOBB-set clippingvolumefromSpeckleRenderernow accepts bothBox3andOBB- all intersection methods fromIntersectionsnow accept bothBox3andOBBas bounds argument -expandBoxRelativefromWorldnow accepts both aBox3and aOBB-requestUpdatefromSectionOutlinesextension now takes an optionalforceargument that forces an update
February 2025
Loader’sresourceDatachanged fromstring | ArrayBuffertounknownto allow each loader to define it’s own resource data type
January 2025
SmoothOrbitControls’s constructor changed. It no longer takes aSceneandIntersections, but only aSpeckleRenderer
November 2024
Loader’sresourceDatachanged fromstring | ArrayBuffertounknownto allow each loader to define it’s own resource data type -SmoothOrbitControls’s constructor changed. It no longer takes aSceneandIntersections, but only aSpeckleRenderer
October 2024
- Entire rendering pipeline got a massive update and it now allows for free user customization as
well as user defined passes -
pipelineaccessors added toSpeckleRenderer. This allows for user defined rendering pipelines -pipelineOptionsaccessors removed fromSpeckleRenderer-PipelineOutputTyperemoved. The pipeline’s result now depends on the pipeline’s pass configuration -DynamicAOPassParamsand it’s default removed -StaticAoPassParamsand it’s default removed and replaced byProgressiveAOPassOptions- A series of pre-defined rendering passes as well as entire rendering pipelines have been added
September 2024
Vector3andBox3have 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
NearCameraCalculationtype option added toCameraControlleroption. -UpdateFlags.RENDERno longer resets pipeline. AddedUpdateFlags.RENDER_RESETwhich forces a pipeline reset
June 2024
- Added
tasOnlyas a parameter in allintersectvariants. - The existingfirstHitOnlyoption onRaycasternow stops on first intersected TAS, asa well as first intersected BAS from that TAS (iftasOnlyis not set)
May 2024
Vector3LikereplacesVectorLikein the arguments oftransformTRSinBatchObject-SpeckleLoaderno longer takes apriorityargument in it’s constructor -addRenderTreefromSpeckleRenderernow takes aRenderTreeas an argument instead of aRenderTreeid -getRenderTreeis now overloaded with a version with no arguments that never returns null -intersectandintersectRayarguments have been moved around and both are now overloaded
April 2024
- Asset now has a mandatory
idfield -getEnvironmentandgetTexturefromAssetsnow only acceptAssetas argument - The concept ofProvidershas been removed entirely -CameraProviderhas been replaced bySpeckleCamera-CameraControllerEventrenamed toCameraEvent
March 2024
updateClippingPlanesinSpeckleRendererdoes not take an optionalPlane[]argument anymoresetOptionsfromSelectionExtensionhas changed to an accessor -displayOnanddisplayOfffromSectionToolare replaced byvisibleaccessor
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.