Seeking Feedback💭 on the New Viewer API Structure

Hey @Insiders ,

We have some exciting changes to our Viewer APIs, and we are eager to hear your thoughts and feedback! Your input is invaluable in shaping the future of the Speckle and the Viewer, and we want you to be a part of this conversation.

Why the change?

Our current API was originally developed with the needs of the Speckle Front-End in mind. This led to it being less open to other general-purpose applications and made it difficult to customize or develop on top of it.

Additionally, the current API only allows Speckle streams as input data, and we have seen the need for having traditional input sources like .gltf, .obj, .fbx, etc, or even custom non-standardised data formats.

Introducing Viewer API 2.0

We’re changing how you work with Viewer as a library by broadening the levels of APIs you can use. By breaking down Viewer API 1.0, into a core Viewer and Extensions, you now have access to API extensions and wider customization opportunities that were not available before.

You also have the possibility to extend the stock extensions and even create new ones, contributing to the Speckle ecosystem without limits.

This level of flexibility allows for better data manipulation and innovation. You can also make your own extensions and load any input data formats via customisable loaders and converters. Viewer will still work and look the same.

In a nutshell, Viewer API 2.0 will be split into:

  • Viewer Core, which handles strictly basic internal workings of the Viewer and offers an API
  • Viewer Extensions that handle specific functionalities, relying on Viewer Core and offering their own APIs

Your Feedback Matters!

We’re eager to hear your thoughts, suggestions, and concerns about this exciting transition. Your feedback will help us fine-tune the Viewer API 2.0 and ensure it meets your needs as developers.

Join us for our next Community StandUp, where we’ll provide a full explanation of the changes.

Stay tuned for more updates, and see you at the Community StandUp👋!


woot woot! thank you @alex and speckle crew :pray: looking forward to playing around!



In case some of you couldn’t make it to the community standup, I’ll leave here the links to the resources:

Code sandbox examples:

Looking forward to your feedback!



Did you miss out on the StandUp? No worries, we have got you covered! You can catch up on everything you missed by checking out Alex’s presentation and the full StandUp event on our YouTube channel. If you are interested in the new Viewer API, then you definitely don’t want to miss this👇!

Would it be possible to create a VTK visualization extension?

Visualization ToolKit (VTK) is a data standard, and open-source software that is especially useful for visualizing 3D data volumes, such as for example Computational Fluid Dynamics results (see Visualize simulation results in Speckle), or (uncertainty in) ground models (see VTK integration).

A 3D data volume is different from a 3D object in that for most 3D objects you only care about visualizing the outside of the object. Whereas, in the case of 3D data volumes, you want to be able to show scalar and vector fields for all points within the data volume, which means that you need to be able to cut sections, change opacity based on the values in a scalar field, draw flow lines based on a vector field, etc. VTK is an amazing data stabdard, and low-level open-source software for visualizing 3D data volumes.

ParaView is a desktop app that provides a GUI to explore VTK results. The issue with ParaView is that you can’t easily put the VTK results in context with the proposed and existing structures. Moreover, it’s of course not feasible to ask a project manager, or client to install ParaView such that they can explore the VTK results.

Considering all the above, I think it would be incredibly valuable to build a VTK extension for the Speckle viewer. There are several open-source frameworks and apps that use VTK, and that we could possibly use as a starting point or inspiration:

@TomSvilans, @sonomirco, @MaxT


I have noticed that if you enable showStats param the canvas height becomes bigger than the parent dom element by a height approximately the same size as the showStats panel.