API Overview#
Every widget in wigglystuff has its own reference page below, grouped by what it is
for. Each page is generated with mkdocstrings, so docstrings and trait metadata stay in
sync with the source on every release — and each one carries a live demo you can run in
the browser.
Every page is also available as raw Markdown: swap the trailing / for .md, or use
the link at the top of any page. llms.txt lists them all.
Sliders and scalar inputs#
- Slider2D — 2D pointer for two coupled parameters
- CircularSlider — circular dial for a single value or a span
- HoverSlider — reports the committed value and the live hover value
- PlaySlider — slider with a play/pause button that auto-advances
- Tangle widgets — inline draggable numbers, toggles and dropdowns
- TangleLatex — LaTeX formula with draggable numbers and symbols
- Matrix — spreadsheet-like numeric matrix editor
- SortableList — drag-and-drop ordering with optional CRUD
- ColorPicker — native color input with an
rgbhelper
Curves#
- BezierCurve — arbitrary-degree Bezier editor with playback
- CurveEditor — chart-space curves via D3 line interpolators
- SplineDraw — draw points, fit the spline in Python
Charts and plots#
- AltairWidget — flicker-free Altair chart with smooth data updates
- ScatterLog — accumulate reactive values into a live scatter plot
- ObservablePlot — run Observable Plot JS with Python variables
- RidgelineChart — stacked "Joy Division" waveforms, clickable rows
- ParallelCoordinates — HiPlot parallel coordinates with brushing
Selecting on top of charts#
- ChartPuck — draggable puck over a matplotlib chart
- HeatmapSelect — pin a cell, a row or a column out of a parameter-space grid
- ChartSelect — box and lasso selection on a matplotlib chart
- ChartMultiSelect — multi-region class-labeled selection
- ScatterWidget — paint multi-class 2D scatter data with a brush
Hierarchies and tables#
- Treemap — zoomable hierarchical treemap with breadcrumbs
- NestedTable — table with expandable nested rows
- ModuleTreeWidget — tree viewer for a PyTorch
nn.Module
Graphs and diagrams#
- GraphWidget — programmatic force-directed graph
- EdgeDraw — sketch node/link diagrams and query adjacency
- WidgetDAG — arrange live widgets as a DAG and draw the arrows
- Neo4jWidget — Neo4j graph explorer with a Cypher query box
Drawing surfaces#
- Paint — MS-Paint-style canvas with PIL helpers
- Excalidraw — embedded Excalidraw whiteboard
- GridDraw — dots on grid intersections, orthogonal segments between
3D#
- ThreeWidget — 3D scatter plot for point clouds
- CubeWidget — rotatable 3D cube
Device and browser input#
- GamepadWidget — streams browser Gamepad API events
- KeystrokeWidget — captures the latest keypress with modifiers
- WebkitSpeechToTextWidget — WebKit speech recognition bridge
- WebcamCapture — webcam preview with snapshot capture
- AnnotationWidget — buttons, keyboard, gamepad and speech in one
Live output and tracing#
- ImageRefreshWidget — swap an image in place without re-rendering
- HTMLRefreshWidget — swap HTML in place without re-rendering
- ProgressBar — progress bar you can drive from a loop
- FramePlayer — play a sequence of images as an inline video
- AsyncFlow — swimlane timeline of one async run (Python 3.12+)
- LiveEdit — source-linked loop trace for one function run
- CellTour — cell-based guided tours for marimo
- Hint — curve an arrow from a note to the widget it explains
Images#
- HoverZoom — image hover zoom with a magnified side panel
Escape hatches and utilities#
- EsmWidget — inline ES module from any CDN with a two-way data bridge
- ManimWeb — run a browser-Manim scene from JS, a file, or a URL
- ApiDoc — render API docs for Python classes and functions
- EnvConfig — environment variable config with validation
- TextCompare — side-by-side text diff with match highlighting
- CopyToClipboard — copy a payload to the OS clipboard
- Utils —
altair2svg,forecast_chartand the refresh helpers