Waveseek

Waveseek

July 23, 2025·HX2003
HX2003

A GPU accelerated waveform viewer for oscilloscope traces that can be easily embedded into any web page using an <iframe>.

Note

The viewer below is fully interactive.



Guide to user interface

To import new waveforms, click File->Add Waveform from Siglent CSV (Only Siglent CSV’s are supported at this time).

To save the project for future use, click File->Export Project to export a .waveseek file.

To open a saved project, choose one of the following:

  • File → Open Project from File to load a local .waveseek file.
  • File → Open Project from URL to load a .waveseek file hosted online.

Technical details

Frontend

  • The interface is built using standard HTML, CSS, and JavaScript, with no frameworks.
  • Shoelace web components are used for UI elements such as buttons, dialogs, and dropdowns. These are lightweight, accessible, and framework-agnostic.
  • The waveform viewer is rendered using custom GPU shaders via WebGPU, enabling high-performance rendering of large waveform datasets with smooth zooming and panning.
  • DOM interaction and layout management are handled manually using vanilla JavaScript.

How the project is saved

The .waveseek file is based on the RIFF (Resource Interchange File Format) specification.

Each file begins with a standard RIFF header and has the following structure:

RIFF ('wask '
    CHUNK ('cfgs' (project configuration JSON)),
    LIST ('wavs' (list of individual waveforms),
        LIST ('wave' (waveform),
            CHUNK ('cfgs' (waveform configuration JSON)),
            CHUNK ('wavd' (waveform binary data))
        ),
        LIST ('wave' (waveform),
            CHUNK ('cfgs' (waveform configuration JSON)),
            CHUNK ('wavd' (waveform binary data))
        ),
        ...
     )
)
Last updated on