Skip to content

Widget gallery

Visual contact-sheet of every public widget. Each card shows the widget rendered in isolation.

Widgets are composable parts; a typical app combines four or five of them. See Anatomy of an app and Getting started for end-to-end examples that wire several widgets together.

Captured by tools/widget_screenshot.py (re-run when widget styling changes):

uv run python tools/widget_screenshot.py --all

Display

  • signal_viewer

    signal_viewer

    Renders a stream's ring buffer as a min/max envelope decimated for 60 fps. Per-channel toggles, optional display filters (rectify, DC removal, RMS envelope), pause/rescale. Keyed by stream_name.

Recording and sessions

  • recording_controls

    recording_controls

    One button per class plus a Record toggle. Clicking a class button writes a LabelEvent and fires your on_gesture callback. Status pill shows IDLE / RECORDING.

  • session_manager

    session_manager

    Browses recorded sessions (folders or .session.zip), lets the user tick which to include, and returns a TrainingData for @pipeline.train. Per-row class buttons select active classes.

Process management

  • process_launcher

    process_launcher

    Launch / stop external subprocesses (synthetic generator, Virtual Hand, custom acquisition tools) from the GUI. Shows live state per entry; framework adopts children for clean exit.

ML pipeline

Output post-processing

  • FilterControl

    FilterControl

    Live-tunable post-prediction smoother (Identity / Gaussian / One Euro). Sliders tune parameters in place; Reset clears smoothing history. Pair with output_filter(pose, t=time.monotonic()) inside @pipeline.predict.

Feature engineering

  • FeatureSelector

    FeatureSelector

    Live tickbox panel for choosing which feature transforms feed the model. Construct with {name: callable}; the selector concatenates active features along axis 0. Use selector.n_active to size architecture hyperparams.

Branding

  • app_logo

    app_logo

    The MyoGestic wordmark fit-to-cell with aspect preserved. Drop into a grid cell as a branding header - pairs with the square OS icon core.py wires into the dock / taskbar / title bar.

ML readout

  • prediction_label

    prediction_label

    Big, centred class-name readout of the current classifier output. Reads pipeline.predictions["class"], colour-codes via the shared palette, optionally renders the predicted class's probability as a coloured progress bar.

Virtual Hand integration

  • VhiMovementPanel

    VhiMovementPanel

    Compact VHI control palette - auto-refreshes the cached movement list from the gRPC plane (off-thread, throttled) and dispatches button clicks to VhiControlClient.set_movement. Highlights the current movement; greys out while disconnected.

Other widgets

These need richer fixtures (live data, trained models, recorded trials) than the screenshot script currently produces. They're documented in the API reference: