Motivation

nbinteract aims to enable authors and educators to easily create and share interactive web pages.

Interactive explanations of concepts are useful for communicating and explaining tricky concepts. Consider these explanations for linear regression and conditional probability, for example.

However, making an interactive webpage often requires significant knowledge of web technologies and especially Javascript. While Jupyter widgets allow authors to generate interactive interfaces directly in a Jupyter notebook, sharing these demos typically requires readers to run the notebook. This causes issues when the reader's computer lacks (correct versions of) the packages needed to completely run the notebook.

nbinteract provides a single binary that converts Jupyter notebooks into HTML pages. The resulting HTML pages can be shared with the public, keeping any interactivity created using Jupyter widgets. For example, the interactive parts of this website are entirely generated from notebooks using nbinteract.

In addition, nbinteract provides a Python package. Once imported, nbinteract provides helper methods that allow users to create simple interactive visualizations with single function calls.