diff --git a/slides/python.md b/slides/python.md
new file mode 100644
index 0000000000000000000000000000000000000000..63cac18dad8ccaac46356e02de339a56424315aa
--- /dev/null
+++ b/slides/python.md
@@ -0,0 +1,61 @@
+---
+title: Python bindings
+---
+
+# DuMu^x^ Python bindings
+
+## Using DuMu^x^ from Python
+
+* Based on just-in-time (JIT) compilation of Python binding code
+* Experimental feature: only a small subset of functionality is available
+* See [Python test apps](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/tree/master/test/python)
+
+## Configuration
+
+* Enabled and built by default!
+* `dune-common` configures a [Python virtual environment](https://docs.python.org/3/library/venv.html) (`dune-common/build-cmake/dune-env`)
+* Automatically created and set up when running `dunecontrol`
+* To activate: `source dune-common/build-cmake/dune-env/bin/activate`
+
+## Configuration
+
+For more control, follow
+
+```
+./dune-common/bin/dunecontrol bexec rm -r CMakeFiles CMakeCache.txt
+python3 -m venv venv
+source venv/bin/activate
+./dune-common/bin/dunecontrol --opts=dumux.opts configure
+./dune-common/bin/dunecontrol --opts=dumux.opts make -j
+```
+
+which installs Python bindings into the activated virtual environment.
+
+## Example Python code
+
+* See [dumux/test/python/test_1p.py](https://git.iws.uni-stuttgart.de/dumux-repositories/dumux/-/blob/master/test/python/test_1p.py)
+* With virtual environment activated, run
+
+```
+python3 test_1p.py
+```
+
+* First time takes very long, due to a lot of JIT
+* Second run is much faster
+
+## Small exercise
+
+* Increase the number of grid cells to $100 \times 100$
+* Add a constant source term of $10.0$
+* Note that you don't have to recompile
+* Visualization: `pip install pyvista` and append
+
+```py
+import pyvista as pv
+mesh = pv.read("test_1p_box_numeric-00000.vtu")
+mesh.plot(show_edges=True, full_screen=True)
+```
+
+## Further resources
+
+* [DuMu^x^ documentation](https://dumux.org/docs/doxygen/master/python-bindings.html)