2.4 KiB
Provenance: dpb-plot
Source. AuraSense's aurasense-dpb-training repository, crates/dpb-plot, at commit
9202cd83fe2aa284957bf6a6d8aa1284eb1541e6 (branch feat/dpb-plot, 2026-10-19).
Licence. Upstream is Apache-2.0 OR MIT. flowRS takes it under Apache-2.0, the
licence of the rest of flowRS (the text is LICENSE at the repository root); the MIT text
is kept beside the crate as LICENSE-MIT. Upstream has no NOTICE file. The package keeps
upstream's authors and licence expression.
What was taken. Cargo.toml, README.md and src/ (core, gpu/ with its WGSL
shaders, tests), formatted with default rustfmt so later changes show as diffs against the
vendoring commit (668c9166). Not taken: the wasm feature (JavaScript bindings,
build-wasm.sh), the bench feature and bench/ budget pages, measure/wgpu-proto, and
gates.sh. flowRS calls the crate as Rust and runs its own gates.
flowRS's changes (commit 3e1650a1 and later)
-
A moments level beside the min/max pyramid (
history.rs):ChannelSpec::stats/with_stats(), per-blockMoments { n, mean, m2 }(f32, merged with Chan et al.'s pairwise update and accumulated in f64 over a range),range_moments,bucket_momentsandmoment(). The EEG scope's DC removal and ±1 SD band, and flowrs-capture's analog index, read them; JLS-style mean/std over any span without touching the samples. -
ChannelSpec::keeping(seconds): a ring sized by duration. -
A spread band (
plot.rs):SeriesKind::Spread, drawn as mean ± one standard deviation per pixel column. -
Column helpers made public (
plot.rs):Traceand its fields,copy_trace,copy_spreadandcolumns, so the Waveform panel and the scope build scenes from runs that are not aTimePlotlane. -
Two trigger tests name the new
statsfield. -
An image mark (
scene.rsMarkKind::Image,ImageRun,Scene::push_image;gpu::ImageData,Renderer::set_image;gpu/wgsl/image.wgsland its GLSL twin inwebgl2.rs; an offscreen-canvas path incanvas2d.rs), added by flowrs-viz's substrate (work/neuroviz): a grid of values the renderer holds, drawn through a 256-entry colour lookup texture with bilinear or nearest sampling, an optional circular clip and contour hairlines. Topomaps, time-frequency maps, spectral arrays and ERP images draw through it. Canvas 2D scales an offscreen canvas and draws no contours.
All upstream tests still pass, with new tests for each addition.