# wigglystuff 

> "A collection of creative AnyWidgets for Python notebook environments."

The project uses [anywidget](https://anywidget.dev/) under the hood so our tools should work in [marimo](https://marimo.io/), [Jupyter](https://jupyter.org/), [Shiny for Python](https://shiny.posit.co/py/docs/jupyter-widgets.html), [VSCode](https://code.visualstudio.com/docs/datascience/jupyter-notebooks), [Colab](https://colab.google/), [Solara](https://solara.dev/), etc. Because of the anywidget integration you should also be able interact with [ipywidgets](https://ipywidgets.readthedocs.io/en/stable/) natively. 

## Install 

```
uv pip install wigglystuff
```

## Widget Gallery

<table>
<tr>
<td align="center"><b>Slider2D</b><br><a href="https://koaning.github.io/wigglystuff/examples/slider2d/"><img src="./mkdocs/assets/gallery/slider2d.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/slider2d/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/slider2d/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/slider2d.md">MD</a></td>
<td align="center"><b>Matrix</b><br><a href="https://koaning.github.io/wigglystuff/examples/matrix/"><img src="./mkdocs/assets/gallery/matrix.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/matrix/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/matrix/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/matrix.md">MD</a></td>
<td align="center"><b>Paint</b><br><a href="https://koaning.github.io/wigglystuff/examples/paint/"><img src="./mkdocs/assets/gallery/paint.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/paint/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/paint/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/paint.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>EdgeDraw</b><br><a href="https://koaning.github.io/wigglystuff/examples/edgedraw/"><img src="./mkdocs/assets/gallery/edgedraw.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/edgedraw/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/edge-draw/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/edge-draw.md">MD</a></td>
<td align="center"><b>SortableList</b><br><a href="https://koaning.github.io/wigglystuff/examples/sortlist/"><img src="./mkdocs/assets/gallery/sortablelist.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/sortlist/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/sortable-list/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/sortable-list.md">MD</a></td>
<td align="center"><b>ColorPicker</b><br><a href="https://koaning.github.io/wigglystuff/examples/colorpicker/"><img src="./mkdocs/assets/gallery/colorpicker.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/colorpicker/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/color-picker/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/color-picker.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>GamepadWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/gamepad/"><img src="./mkdocs/assets/gallery/gamepad.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/gamepad/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/gamepad/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/gamepad.md">MD</a></td>
<td align="center"><b>KeystrokeWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/keystroke/"><img src="./mkdocs/assets/gallery/keystroke.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/keystroke/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/keystroke/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/keystroke.md">MD</a></td>
<td align="center"><b>SpeechToText</b><br><a href="https://koaning.github.io/wigglystuff/examples/talk/"><img src="./mkdocs/assets/gallery/speechtotext.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/talk/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/talk/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/talk.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>CopyToClipboard</b><br><a href="https://koaning.github.io/wigglystuff/examples/copytoclipboard/"><img src="./mkdocs/assets/gallery/copytoclipboard.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/copytoclipboard/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/copy-to-clipboard/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/copy-to-clipboard.md">MD</a></td>
<td align="center"><b>CellTour</b><br><a href="https://koaning.github.io/wigglystuff/examples/celltour/"><img src="./mkdocs/assets/gallery/celltour.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/celltour/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/cell-tour/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/cell-tour.md">MD</a></td>
<td align="center"><b>WebcamCapture</b><br><a href="https://koaning.github.io/wigglystuff/examples/webcam_capture/"><img src="./mkdocs/assets/gallery/webcam-capture.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/webcam_capture/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/webcam-capture/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/webcam-capture.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>ThreeWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/threewidget/"><img src="./mkdocs/assets/gallery/threewidget.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/threewidget/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/three-widget/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/three-widget.md">MD</a></td>
<td align="center"><b>ImageRefreshWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/"><img src="./mkdocs/assets/gallery/imagerefresh.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/image-refresh/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/image-refresh.md">MD</a></td>
<td align="center"><b>HTMLRefreshWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/"><img src="./mkdocs/assets/gallery/htmlwidget.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/html-refresh/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/html-refresh.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>ProgressBar</b><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/"><img src="./mkdocs/assets/gallery/progressbar.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/htmlwidget/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/progress-bar/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/progress-bar.md">MD</a></td>
<td align="center"><b>PulsarChart</b><br><a href="https://koaning.github.io/wigglystuff/examples/pulsarchart/"><img src="./mkdocs/assets/gallery/pulsarchart.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/pulsarchart/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/pulsar-chart/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/pulsar-chart.md">MD</a></td>
<td align="center"><b>TextCompare</b><br><a href="https://koaning.github.io/wigglystuff/examples/textcompare/"><img src="./mkdocs/assets/gallery/textcompare.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/textcompare/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/text-compare/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/text-compare.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>EnvConfig</b><br><a href="https://koaning.github.io/wigglystuff/examples/envconfig/"><img src="./mkdocs/assets/gallery/envconfig.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/envconfig/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/env-config/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/env-config.md">MD</a></td>
<td align="center"><b>Tangle</b><br><a href="https://koaning.github.io/wigglystuff/examples/tangle/"><img src="./mkdocs/assets/gallery/tangle.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/tangle/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/tangle/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/tangle.md">MD</a></td>
<td align="center"><b>ChartPuck</b><br><a href="https://koaning.github.io/wigglystuff/examples/chartpuck/"><img src="./mkdocs/assets/gallery/chartpuck.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/chartpuck/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/chart-puck/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/chart-puck.md">MD</a></td>
</tr>
<tr>
<td align="center"><b>ChartSelect</b><br><a href="https://koaning.github.io/wigglystuff/examples/chartselect/"><img src="./mkdocs/assets/gallery/chartselect.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/chartselect/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/chart-select/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/chart-select.md">MD</a></td>
<td align="center"><b>ScatterWidget</b><br><a href="https://koaning.github.io/wigglystuff/examples/scatterwidget/"><img src="./mkdocs/assets/gallery/scatterwidget.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/scatterwidget/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/scatter-widget/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/scatter-widget.md">MD</a></td>
<td align="center"><b>DiffViewer</b><br><a href="https://koaning.github.io/wigglystuff/examples/diffviewer/"><img src="./mkdocs/assets/gallery/diffviewer.png" width="330"></a><br><a href="https://koaning.github.io/wigglystuff/examples/diffviewer/">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/diff-viewer/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/diff-viewer.md">MD</a></td>
</tr>
</table>

## 3rd party widgets

These widgets depend on 3rd party packages. They still ship with wigglystuff but have demos hosted on [molab](https://molab.marimo.io) because many of the dependencies are not compatible with WASM.

<table>
<tr>
<td align="center"><b>ModuleTreeWidget</b><br><a href="https://molab.marimo.io/notebooks/nb_K7QvvoASZErgKxwD8XSMWi"><img src="./mkdocs/assets/gallery/moduletree.png" width="330"></a><br><a href="https://molab.marimo.io/notebooks/nb_K7QvvoASZErgKxwD8XSMWi">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/module-tree/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/module-tree.md">MD</a></td>
<td align="center"><b>WandbChart</b><br><a href="https://molab.marimo.io/notebooks/nb_pbN8i6DyggB26Xrzw9Bztw"><img src="./mkdocs/assets/gallery/wandbchart.png" width="330"></a><br><a href="https://molab.marimo.io/notebooks/nb_pbN8i6DyggB26Xrzw9Bztw">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/wandb-chart/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/wandb-chart.md">MD</a></td>
<td align="center"><b>Neo4jWidget</b><br><a href="https://molab.marimo.io/notebooks/nb_ghifaw8nRCuDAgc1UTajXU"><img src="./mkdocs/assets/gallery/neo4j-widget.png" width="330"></a><br><a href="https://molab.marimo.io/notebooks/nb_ghifaw8nRCuDAgc1UTajXU">Demo</a> · <a href="https://koaning.github.io/wigglystuff/reference/neo4j-widget/">API</a> · <a href="https://koaning.github.io/wigglystuff/reference/neo4j-widget.md">MD</a></td>
</tr>
</table>
