Building Raspberry Pi Projects by Drawing Pictures Instead of Writing Code

Ben Nuttall, the creator of a popular tool called gpiozero for controlling Raspberry Pi hardware, has proposed a new visual interface called "gpiozero flow" that lets users drag and drop devices onto a canvas and draw connections between them — no programming required. Nuttall announced the concept in a blog post on 25 July 2026, along with an installable Python package and a written specification for the first version.
A Raspberry Pi is a small, inexpensive computer popular with hobbyists, students, and educators. Its GPIO pins let you connect physical components like buttons, lights, motors, and sensors directly to the board. Traditionally, controlling those components meant writing code that dealt with electrical details: which pin, what voltage, how to detect a signal. Nuttall created gpiozero in 2015 to simplify that. Instead of working at the electrical level, developers interact with concepts like button presses, sensor readings, and motor direction.
The library supports three ways to program devices: polling (repeatedly checking whether something happened), event-based (running a function automatically when something happens), and declarative (describing relationships between devices that the library handles on its own). Think of the declarative approach like setting up a thermostat: you describe what you want — "turn on the heater when the temperature drops below 20 degrees" — and the system manages the details of checking and switching.
That declarative approach is the foundation for gpiozero flow. It uses a set of built-in functions — including negated, inverted, clamped, scaled, absoluted, booleanized, zipped, and smoothed — that let data pass from one device to another through transformations, all expressed as relationships rather than step-by-step instructions. The proposed web interface would let users build these relationships visually, drawing connections between on-screen device icons instead of writing Python code.
Nuttall compared his idea to Node-RED, an existing and popular tool that also lets users build programs visually by connecting on-screen blocks. But he was critical of Node-RED, calling it convoluted and focused on low-level pin details rather than on the devices themselves. The difference matters: Node-RED treats everything as generic message-passing blocks wired together, while gpiozero flow would represent physical components as objects with meaningful properties like direction, state, and threshold.
To build the web interface, Nuttall stated he used Claude, an AI assistant made by Anthropic, noting that the project required significant modern JavaScript knowledge. The published Python package, gpiozero-flow, includes both a websocket agent (a component that maintains a live connection between devices) and a web app that can be installed directly on a Raspberry Pi. Nuttall also wrote a specification for the first version.
The current gpiozero documentation, hosted at gpiozero.readthedocs.io and versioned across releases including 2.0.1.post1, 2.0.1.post3, and 1.6.0, does not yet include a dedicated page or reference for the flow tool. A site search for "flow" returns no results. This fits the project's current stage: a proposed concept with an installable prototype, not a finished and shipped feature.
It is worth noting that the gap between the existing system's maturity and the new interface's early status is significant. The transformation functions that flow would visualize are already tested and working in gpiozero's current releases. The web interface layer is new, and the specification suggests Nuttall is treating it as an experiment rather than a finished product.
The broader context here is where physical-computing tools stand in 2026. Node-RED has held a strong position among hobbyists and IoT developers for years, and any new tool needs to offer a genuinely different way of thinking, not just a different look for the same idea. Nuttall's device-focused approach is that difference, but whether people who already use Node-RED will switch is an open question that only real adoption data can answer.
Nuttall's use of Claude to build the JavaScript frontend reflects a pattern now common in open-source development: experts in one area (here, Python and hardware) using AI assistance to work in an area they need but have not mastered. The result was a working prototype, though Nuttall's own comments about the JavaScript complexity suggest the AI-generated code required meaningful human oversight rather than working straight out of the box.
The gpiozero library itself has been a staple of Raspberry Pi education and hobbyist projects since its introduction. Version 2.x is a significant update from the 1.6.x line, and the documentation at Read the Docs tracks that evolution. Whether flow eventually ships as part of gpiozero itself, as a separate companion package, or stays a proof of concept, it extends the library's core philosophy — that physical computing should be expressed in terms of devices and what they do, rather than pins and electrical signals — into the world of visual programming.


