Build with free components
Components and applications
Use an application, then customize its components to make it yours. Processing and displays work with compatible sources, with or without a connected device.
Ready to use
Ultrasound live capture
Capture the convex probe directly over USB and decode its images in this browser. No local server is required. Load your probe resources, select the probe and start capture.
Replay a convex probe recording
Open a local .bin, .odb-capture or .odb-stream acquisition and reconstruct its images with an original built-in profile. No probe, configuration file, upload or local server is needed. Rendering is uncalibrated.
Technical examples — learn how components connect
These examples demonstrate customization. They do not operate the connected device.
Simulated numbers — technical example
Demonstrates how components connect: fictional numbers → multiplication → number display. No device or sensor is used. Change the multiplier under Customize to explore the example.
USB revision — technical example
Reads the major part of the device revision number (bcdDevice), not the USB standard version. This fixed descriptor is not a sensor measurement. No device commands are sent.
Read existing driver images — utility
Display the images supplied by your local probe driver. Requires a read-only preview bridge; connecting this viewer does not start the probe. Live acquisition and recorded replay are labelled separately.
Reusable components
Measurement display
Technical example
Display scalar measurements inside an isolated web component.
interface · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Displays only validated scalar data received over its private MessageChannel. The host creates an opaque-origin iframe with network access blocked by CSP. Stop removes the frame and releases the channel. No browser permissions, filesystem or parent DOM are exposed.
samples: in · odb.scalar/1
Recorded measurements
Technical example
Replay fixture measurements or a selected JSON array of numbers. No device required.
source · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Replays 10, 20, 30, 20, 10, or a user-selected array of 1–4096 finite numbers. Backpressure pauses production. Source timestamps and session IDs are assigned by the host; no data is uploaded.
samples: out · odb.scalar/1
Scale a measurement
Technical example
Multiply a finite scalar by a configurable factor using a pure WASM module.
processing · 1.0.0 · AGPL-3.0-or-later
available · Fixture tests available
Contracts and behavior
process(value, factor) returns value * factor. The module imports nothing and has no memory or start function. Host envelopes preserve units, timestamp, source and session. Non-finite results stop the session.
samples: in · odb.scalar/1scaled: out · odb.scalar/1
USB device revision
Technical example
Read the major device revision exposed for an explicitly selected USB device. No protocol transfers.
source · adapter · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Reads deviceVersionMajor from the selected WebUSB device object. Does not open interfaces or issue transfers. Generic descriptor compatibility is not proof of product protocol support. Device selection remains explicit; no identifiers enter shared compositions or reports.
samples: out · odb.scalar/1
UC5-2S image decoder (WASM)
Shared Rust native/WASM reconstruction library with in-memory resources and an original grayscale option. Hardware profile dependencies remain.
processing · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Shared Rust Session for native and browser WASM: incremental framing, group admission, BFSP, DTGC, compound, temporal processing, DSC and PNG. Explicit selected image profiles are supported in memory; enhancement0 can run without unused spatial-filter banks. Hosts own USB, storage and display. The browser adapter supports either ABI6 in-memory resources or ABI7 from compatible built-in-profile runtimes. This registry artifact uses ABI6. Maximum256MiB WASM memory. Warmup, explicit state and bounded processing remain required. Reference replays and cross-target numerical differences are measured separately; no clinical or geometric calibration claim.
bytes: in · odb.usb.bytes/1frames: out · odb.video.frame/1
UC5-2S original reconstruction profile (WASM)
Resource-free mathematical image profile for recorded DATA; no acquisition configuration.
processing · 0.1.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Explicit reconstruction-only initialization; binomial FIR, adjustable native display settings, generated grayscale and normalized sector. No external resource files, hardware configuration, USB or network access. Shared Rust processing library for native/WASM. Recording host requires explicit reconstruction purpose. Shared processing sources are pinned by shared-sources.json. No metric calibration or clinical equivalence claim.
bytes: in · odb.usb.bytes/1frames: out · odb.video.frame/1
UC5-2S original reconstruction profile and verified native replay
Resource-free mathematical image profile for recorded DATA; no acquisition configuration.
processing · 0.1.1 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Explicit reconstruction-only initialization; binomial FIR, adjustable native display settings, generated grayscale and normalized sector. No external resource files, hardware configuration, USB or network access. Shared Rust processing library for native/WASM. Recording host requires explicit reconstruction purpose. Shared processing sources are pinned by shared-sources.json. No metric calibration or clinical equivalence claim.
bytes: in · odb.usb.bytes/1frames: out · odb.video.frame/1
Ultrasound preview source
Reads cached PNG frames from a locally configured, read-only probe preview bridge. Acquisition remains controlled by the native driver.
source · adapter · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
GET-only polling of /status and /image/<session>/<frame> on an explicitly selected loopback bridge. One frame in flight, bounded PNG dimensions and bytes. Known profiles must match. Unidentified recordings are labelled replay and never establish device compatibility. No acquisition, settings, USB transfers or calibrated measurement. Bridge address is runtime-only and excluded from compositions.
frames: out · odb.video.frame/1
Recorded probe DATA
Read a chosen local raw DATA or capture archive for reconstruction. No upload or device access.
source · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Reads .bin in 64KiB chunks, legacy .odb-capture containers bounded to96MiB, or unbounded-length .odb-stream JSONL with bounded lines. Validates encoding, ordinals and totals. Rejects declared storage losses. Journal/display records never become device commands. File selection is runtime-only, excluded from compositions. The stream provides format candidates, not device identification or acoustic calibration.
bytes: out · odb.usb.bytes/1
Ultrasound USB acquisition
Configure, start and stop UC5-2S acquisition directly with WebUSB. Emits raw USB bytes without a native server.
source · adapter · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Requires explicit device selection and current phantom setup confirmation. Validates the connected UC5-2S identity, binds the configuration to the current complete PID0, queues IN readers on endpoints6/8/1 and sends the same fixed bootstrap/configuration/Start/Freeze packets as the Rust driver. No retry or further OUT after an uncertain write. WebUSB deadlines close the device; they do not attest acoustic stop. Bounded sessions use duration1–30s and64MiB raw byte limit. An explicit host seconds:null selects continuous reception until Stop/disconnect, with the same bounded IN queues; storage and decoding backpressure belong to the host. No further OUT after an explicit device disconnect. Raw data and configuration remain local.
bytes: out · odb.usb.bytes/1
Video frame display
Reusable canvas display for PNG frame streams, including ultrasound previews and recorded replays.
interface · 1.0.0 · AGPL-3.0-or-later
available · No hardware validation reported
Contracts and behavior
Receives PNG ArrayBuffers through a private MessagePort. Decodes one frame, draws it on canvas, releases the bitmap, then acknowledges its session and sequence. No network or device access. Shows replay/live provenance, dimensions and uncalibrated status. No distance or diagnostic interpretation.
frames: in · odb.video.frame/1
No components match. Try another function or contract.
Contribute a processing module, interface, port or test independently of device protocol work. Component sources and contribution guide.

