This is 2026.9 documentation. Coverage here is incremental: a page exists only where 2026.9
differs or is newly documented. For any other topic, switch to Current (2026.8 and earlier) in
the version selector.
@speckle/viewer and loads Speckle data itself, 2026.9 changes
what it loads. A version’s data is no longer an object graph fetched from the objects
endpoints; it is a bundle of parquet files. The
published Viewer package has no loader for that shape, so a bundle version renders nothing
and the objects endpoints return 404.
The rest of the package is unaffected. Render pipelines, extensions, filtering, selection,
queries, the world tree and view modes all work the same way, because the change is in where
the data comes from, not in what the viewer does with it once converted.
Am I affected?
Two ways forward
Load bundles yourself
Add about a dozen files to your app, keep the same published packages, and render bundles.
Sample code and a step-by-step path.
Ask for compatibility mode
Keeps your workspace’s data in the object-graph format, so your app keeps working unchanged
until the mode ends on 1 November 2026.
Compatibility mode is not self-serve, and it ends for every workspace on 1 November 2026. See
Compatibility mode for how to request it.
Not the Viewer package
Two nearby cases have their own pages.- A data-only JavaScript app that reads Speckle data without rendering it — built on
@speckle/objectloaderor@speckle/objectloader2— should read the bundle directly rather than bridging to an object graph. Start from Building applications. - The 3D viewer in the product UI is not this package. See 3D viewer in 2026.9.
Package reference
Package-level Viewer API documentation is unchanged by 2026.9 and lives in the other documentation version: Viewer developer documentation. The API surface the bridge relies on —Loader, SpeckleLoader, WorldTree, loadObject — is documented there.