· Effects SDK team · 2 min read
Web Video Effects SDK 3.12: ONNX Runtime 1.27, new models and one WASM file
Web Video Effects SDK 3.12 updates the inference stack. The SDK moves to ONNX Runtime 1.27, which ships as one smaller WASM file, introduces new Balanced and Quality landscape models that segment better with fewer resources, and runs inference in a dedicated worker. 3.12.1, released a day later, restores compatibility for integrations that 3.12.0 broke — if you are on 3.12.0, upgrade to 3.12.1 or later.
3.12.0 release notes · 3.12.1 release notes · API reference · Live demo
What is new#
- New models for the Balanced Landscape and Quality Landscape presets: better segmentation while using fewer system resources. All model files now have versioned names.
- ONNX Runtime 1.27 with a single runtime file,
ort-wasm-simd-threaded.asyncify.wasm, instead of four. With Brotli it transfers in under 2 MB. - Dedicated inference worker for both the
wasmandwebgpuproviders. If the worker cannot be created, the SDK falls back to the main thread and reports a warning;sdk.config({ proxy: false })turns the worker off.
Do you need to change anything?#
npm package or script tag with our CDN: no. Since 3.12.1 the runtime is loaded from a versioned CDN URL that always matches the SDK build.
Self-hosted assets:
- Copy the new model files into the
modelsfolder under yoursdk_url. - Serve
ort-wasm-simd-threaded.asyncify.wasm(it is not in the npm package — take it from the CDN folder of your version) withContent-Type: application/wasm, and point the SDK at it:
sdk.config({
wasmPaths: {
wasm: 'https://your-domain.com/assets/ort-wasm-simd-threaded.asyncify.wasm'
}
});
- Make sure an SPA rewrite rule does not answer the
.wasmURL withindex.html. Since 3.12.1 the SDK reports exactly that case asWASM_RUNTIME_LOAD_FAILEDwith the URL, HTTP status and content type.
The old per-file wasmPaths map ('ort-wasm.wasm', 'ort-wasm-simd.wasm') still works in 3.12.1 through a compatibility path with a WASM_PATHS_DEPRECATED warning, but it costs an extra request and will be removed — migrate to { wasm: '<url>' }.
How the runtime is found (3.12.1)#
wasmPaths.wasm— an explicit file URL.wasmPathsas a string — a directory prefix.- A legacy
wasmPathsmap — its directory, falling back to the CDN. - The directory of the SDK
<script>. sdk_url, if configured.https://effectssdk.ai/sdk/web/<sdk-version>/.
Fixes#
- Internal errors no longer silently stop the video pipeline: they are reported through
onErrorwhile processing continues. - No
ReferenceErroron browsers withoutVideoFrame(Firefox before 130, Safari 16.3 and older). - Restarting the pipeline no longer stops the audio tracks of your input stream.
setFpsLimit()now raises the output frame rate on Safari and Firefox too.- Bundlers no longer warn about the dynamic imports used by the Avatars effect.
- If a Content-Security-Policy blocks
blob:workers, the SDK falls back to global timers (TIMERS_FALLBACKwarning) instead of failing.
Error reporting#
The SDK continues moving from ErrorBus notifications to thrown SdkError exceptions. New codes: VIDEO_PLAYBACK_ISSUE (1031), TIMERS_FALLBACK (1065), WASM_RUNTIME_LOAD_FAILED (1066), WASM_PATHS_DEPRECATED (1067). setFpsLimit() and, on some browsers, getStream() may now throw; getSnapshot() rejects instead of hanging.
What came next#
3.13.1 (September 2026) updated the default Quality and Balanced models again and made startup more robust when a browser exposes WebGPU without the adapter information ONNX Runtime needs — the SDK falls back to WASM instead of failing.
Getting started: Web guide · Start a free trial