Changelog
Periodically, we update the 3D Viewer SDK with new features, improvements, and bug fixes. This page lists all the changes made to the SDK.
2026-09-10
- Updated three.js to r184.
- Added addImage, removeImage and updateImage methods to the API.
- Added id, opacity, interactable, clippable and data properties to the Image type.
- Added highlighting of images while holding Shift.
- Improved memory usage and loading performance for BIM models.
- Improved measurement performance on models with many repeated objects.
- Improved rendering of translucent and overlapping images.
- Improved image sharpness at oblique viewing angles.
- Improved navigation to orbit and zoom towards visible clipping planes.
- Fixed images being misplaced after camera navigation.
- Fixed render effects being sized incorrectly at non-default pixel ratios.
- Fixed clipping planes and images staying highlighted after focus or tab changes.
- Fixed laser measurement hitting wrong surface.
- Fixed crash when rendering BIM models together with other model types.
2026-07-23
- Fixed grid snapping to hidden axes and grids.
2026-06-19
- Improved performance when applying object colors and visibility.
2026-05-29
- Fixed measurement surface normal on curved grid axes.
2026-05-18
- Fixed object id type for models loaded from query. Ensure object id is always a string.
2026-04-22
- Updated three.js to r182.
- Improved rendering performance.
- Improved SSAO quality with depth-aware bilateral blur and interleaved gradient noise.
- Improved visual responsiveness in complex scenes by not submitting new frames while the GPU is still busy.
- Fixed displaced measurement tool cursor.
2026-02-04
- Updated three.js to r180.
- Improved lighting calculations to enhance visual quality and make it easier to distinguish surfaces.
- Improved the lighting setup by adjusting light direction, intensity, and colour.
- Added setRenderEffects and getRenderEffects methods to the API.
- Added support for ambient lighting for more realistic scene illumination.
- Added custom option to RenderSettings type.
- Improved the hidden-line and sketch effect.
- Improved rendering performance for transparent geometry.
- Fixed an issue causing models to be invisible on load.
- Fixed viewer turning black on some mobile devices with XClipse GPUs.
- Deprecated shading parameter in setRenderSettings, use setRenderEffects and getRenderEffects instead.
2025-09-02
- Updated three.js to r171.
- Improved bounding box and bounding sphere calculations.
- Improved model loading performance.
- Fixed incremental rendering issues for newly loaded models.
- Improved visual responsiveness during scene transitions and rendering.
- Improved rendering performance for newly loaded models.
- Fixed unintentional skipping of geometry during incremental rendering.
2024-12-11
- Updated three.js to r168.
- Fixed occasional flickering during incremental rendering.
- Added transform option to loadModel and loadModelsFromToken methods.
- Fixed incorrect lighting of shapes when using addShape method.
- Fixed initialState option of loadModel and loadModelsFromToken methods.
- Fixed measurement tools not working on point cloud models.
2024-09-24
- Updated three.js to r165.
- Removed support for WebGL1.
- Fixed unnecessary redrawing when moving the measure cursor.
- Added calculateSectionPlanesForBoundingBox method.
- Improved initial viewpoint on large projects and projects containing misplaced geometry.
- Fixed activeClippingPlaneBorderColor viewer load option not being applied.
- Fixed circle shape only having one visible side in addShape method.
- Fixed measure labels not removed when dispose method invoked.
- Added clippingplanes and measure events to JavaScript API.
- Fixed modelId parameter of loadModelsFromToken method being ignored.
- Fixed incorrect size used for box and circle shapes in addShape method.
- Fixed flickering during incremental rendering.
- Fixed onClick callback provided to addShape method not being invoked.
2024-04-03
- Updated three.js to r152.
- Added activeClippingPlaneBorderColor setting to change the color of the border of the active clipping plane.
- Added setMeasureSettings and getMeasureSettings methods to manage the settings for measurements.
- Added shading paramater to getRenderSettings and setRenderSettings methods to set the shading type used.
- Fixed an issue where point cloud models were not loading correctly.
- Deprecated measureOptions method, use setMeasureSettings and getMeasureSettings instead.
2023-04-27
- Updated three.js to r144.
- Added setAppearanceSettings method to manage the appearance settings.
- Added grid selection by clicking on curve or axis extrusion.
- Added highlighting of selected grids.
- Added support for clipping planes as a navigation target.
- Added modelId to the getProducts method.
- Added addShape, removeShape, and clearShapes methods.
- Added getProducts method.
- Added showClippingPlaneWidget and hideClippingPlaneWidget methods.
- Added initialState setting to loadModel.
- Added globalId property to grids.
- Added depthBuffer setting to RenderSettings.
- Added setCameraSettings and getCameraSettings methods.
- Added modelId property to grids.
- Improved grid loading performance.
- Changed rotation to be around point beneath cursor.
- Changed axis extrusions of hidden grids to be hidden.
- Changed cursor to be hidden on drag for measure tools.
- Changed measure tools to only trigger on left click.
- Fixed an issue where contour sometimes does not work in orthographic mode.
- Changed initial viewpoint on large projects and projects containing misplaced geometry.
- Changed when loading models to ignore empty grid axes.
- Changed default view range from 2000 to 5000.
- Fixed an issue where countour sometimes displays a shadow artifact in orthographic mode.
- Fixed an issue where the clipping plane widgeth was not rotating in orthographic mode.
- Fixed a performance issue on projects with many hidden grids.
- Fixed an issue where the viewer hangs on load if the grid is invalid.
- Fixed an issue where the translucent state was not applied to selected objects.
- Fixed an issue where the laser measure tool was ignoring extruded grid axes.
- Fixed an issue where the laser measure tool's perpendicular raycast sometimes failed.
- Fixed an issue where geometry would dissapear after taking a 3D snapshot.
- Fixed an issue where grids and axes were not clipped by clipping planes in a 3D snapshot.
- Fixed a precision issue on large projects.
- Fixed an issue where hidden grids would reappear when selecting an object.
- Fixed an issue where hidden objects would reappear when opening the settings menu.
- Fixed an issue where the camera would zoom through planes.
- Fixed an issue where objects were not visible when double clicked.
- Fixed an issue where measurement labels were not visible in snapshots.
- Fixed an issue where loading a grid would crash the viewer.
- Fixed an issue where contours were not shown.
- Fixed an issue when mouse buttons 3 and 4 were clicked, an exception would occur.
- Fixed an issue where a clipping plane removed using Delete key was still returned by getClippingPlanes.
2022-11-29
- Added getGrids method.
- Added getGridAxisState and setGridAxisState methods.
- Added axis field to ClippingPlaneParams to assign a grid axis to a clipping plane.
- Changed clipping planes to now cut away grids.
- Changed when opening models without geometry, the initial viewpoint is not set.
- Deprecated screenshot, use captureScreenshot instead.
- Deprecated each, use getObjects instead.
- Deprecated eachSelected, use getSelected instead.
- Deprecated translucent, use makeTranslucent instead.
- Deprecated translucentAll, use makeAllTranslucent instead.
- Deprecated opaque, use makeOpaque instead.
- Deprecated opaqueAll, use makeAllOpaque instead.
- Deprecated loadUrl, use loadModelsFromToken instead.
- Deprecated transformModel, use setTransform instead.
- Deprecated color, use getObjectColors and setObjectColors instead.
- Deprecated resetColors, use resetObjectColors instead.
- Deprecated clippingPlanes, use getClippingPlanes and setClippingPlanes instead.
2022-10-07
- Updated three.js to r141
2022-09-07
- Updated three.js to r140
- Added viewer.clippingplanes event.
2022-06-30
- Updated three.js to r139
- Added viewer.clippingplanes event.
- Improved appearance of measurement lines.
- Improved appearance of clipping plane intersection curves.
- Fixed an issue where grid axis extrusions would have bad geometry.
- Fixed an issue with Z-fighting when drawing clipping planes.
- Fixed an issue where hidden line shader was not applied to transparent objects.
- Fixed an issue where gesture animations were not updated.
2022-04-29
- Updated three.js to r138
- Removed WebGL2 support in Safari due to large performance regression.
- Changed measure labels to be hidden behind the camera when using DOM text rendering.
- Fixed an issue where point clouds were not properly unloaded.
- Fixed an issue where labels were missing in screenshots when using DOM text rendering.
- Fixed an issue with jQuery plug-in depending on $ existing in the global context.
- Fixed an issue where images added by the images method were not displayed.
- Fixed an issue where the boundingBox method returned an empty box instead of the scene bounding box when passing null as an argument.
- Fixed an issue where the viewer.click event was missing clientX/clientY fields on Safari 12 (iOS 12 or earlier).
- Fixed an issue causing the canvas to always be blank in Safari 12 (iOS 12 or earlier).
2022-03-30
- Updated three.js to r137
- Added pixelRatio to render settings.
- Added support for DOM text rendering.
- Improved measurements.
- Fixed an issue where the pixel ratio was reset on window resize.
- Fixed an issue where the viewer.click event was triggered multiple times on touch events when embedded in an iOS web view.
- Fixed clipping plane dragging on touch devices.
- Fixed updating clipping plane intersection curves.