A Spatial Environment for Python
Hi all! A little background: I've been working on natto.dev, a spatial environment for JavaScript. I'm really excited about new interfaces for code (leveraging metaphors we're good at, spatial reasoning, making state visible, design tools, etc). With all the buzz around PyScript, I discovered Pyodide and got it working inside natto. This Python version is a stripped down version of https://natto.dev (eg interactive outputs, multiplayer) so please check that out if this interests you. I'm excited to share this spatial environment for Python. Imagine Jupyter cells arranged on a 2D…
In plain words
A Spatial Environment for Python is a code editor that arranges Python cells on a 2D canvas instead of in a linear notebook format. Built with Pyodide, it runs Python directly in the browser. Cells automatically rerun when code changes or dependencies update, similar to spreadsheet behavior. The tool makes code dependencies explicit and allows users to duplicate panes through drag interactions. It is designed for developers who want an alternative to traditional Jupyter notebooks with spatial organization and automatic reactivity.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
Hi all! A little background: I've been working on natto.dev, a spatial environment for JavaScript. I'm really excited about new interfaces for code (leveraging metaphors we're good at, spatial reasoning, making state visible, design tools, etc). With all the buzz around PyScript, I discovered Pyodide and got it working inside natto. This Python version is a stripped down version of https://natto.dev (eg interactive outputs, multiplayer) so please check that out if this interests you. I'm excited to share this spatial environment for Python. Imagine Jupyter cells arranged on a 2D canvas. Some key differences from traditional Python notebooks: - By default, cells rerun whenever its code changes or an input reruns, like a spreadsheet! - Dependencies are explicit. There is no parsing or global scope. - Duplicate panes by option-dragging. This is a core interaction in design tools for exploring ideas. - State panes add interactive elements. Check out this scikit demo https://python.natto.dev/example/de5cae3dfbcb43919981cc14203... - Python execution happens in your browser as WASM via Pyodide (implementation detail, not design choice). This is currently a demo, not meant to replace your production ML notebooks. I would love to hear your feedback on any of this and your thoughts on new programming interfaces!
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 2d ago · opentrailpaper.com

Launched alongside, May 2022
the whole month →
Peerlist▲1,052A professional network w/ robust work profiles at its core
Life & fun · 2022 · peerlist.io



- MA
Life & fun · 2022 · github.com
