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.
My app renders models
You import
@speckle/viewer. Bridge the bundle to the object shape the viewer converts, with
sample code you copy into your app.My app only reads data
You read properties, quantities or geometry without the viewer. Read the bundle directly — the
load mechanics are the same ones every non-SDK consumer uses.
My app writes data
Publishing is the harder half. A 2026.9 version is a bundle built and uploaded through an ingestion, and there is no published JavaScript bundle builder —@speckle/objectsender
writes object graphs, and .NET and Python are the only SDKs that build bundles today.
That leaves three honest options, in the order most teams should consider them:
The wire sequence, the correctness rules and a build order are in Publish a bundle from your
own code. Read it before choosing the second
option: it is a real piece of work, and unlike the read path there is no worked sample.
Why there is no drop-in object-graph loader
If your app is built on@speckle/objectloader or @speckle/objectloader2, the natural ask
is a version of those packages that reads bundles and hands you the same object graph —
getRootObject(), __closure, getObjectIterator(), unchanged. That is not coming, on
purpose.
Emulating that surface would mean rebuilding the object graph that 2026.9 retires: a third
implementation of the receive fidelity contract, kept in step with the .NET and Python SDKs
forever, reconstructing hashes and closures that no longer exist in the data. It would also
teach new apps a shape the platform is moving away from.
What to do instead depends on what you were using the graph for.
The mechanics for all four are in Load a bundle in your own
code. That page is written for any non-SDK
consumer, which includes you — it is not connector-specific.