Interaction & Generative Design Interface
🎛️ INDbox is an open-source physical computing interface designed for creative coding, generative design, and interactive media education.
It provides a standardized hardware input platform that allows students to explore sensor-based interaction systems without needing to build electronics from scratch.
The box acts as a bridge between the physical and digital world: tangible input is captured by a microcontroller and transmitted via USB to creative coding environments such as Processing, p5.js, TouchDesigner, Unity, or OpenFrameworks.
INDbox is not a consumer product but an educational interface and experimentation tool.
It enables students to:
- Understand input → transformation → output systems
- Design expressive mappings between sensors and visuals
- Prototype interactive installations quickly
- Work within a shared hardware standard
- Exchange code and ideas without hardware incompatibilities
Each INDbox contains:
- Microcontroller: ESP32 (USB-powered, Serial over USB)
- 2 × Push Buttons (discrete input)
- 1 × Rotary Potentiometer (continuous input)
- 1 × Ultrasonic Distance Sensors (spatial input)
- Custom 3D-printed enclosure
- Internal PCB / wiring harness
All sensor data is streamed via USB Serial to a host computer.
INDbox itself produces no visual output — all feedback happens in software.
All hardware files are available in this repository are open source. You are free to modify, reproduce, and adapt the design.
Step-by-step assembly guide:
The firmware is written in Arduino (ESP32 core).
It reads all sensors and streams standardized as simple CSV data:
btn1,btn2,pot,dist
Firmware flashing instructions can be found in flashing instructions
Includes:
- Arduino IDE installation
- ESP32 board setup
- USB driver notes
- Upload instructions
The INDbox is part of an educational program taught by the author at FH Joanneum and will be used during the summer semester 2026.
After the course, students are encouraged to share and publish their projects in a separate repository dedicated to INDbox-based work.
Please take a look at the INDbox Processing Library.
There is a small Python test script which allows for showing or capturing live data. Have a look at python.
Hardware and firmware are released under open-source licenses.
See LICENSE file for details.
INDbox v1: Initial educational release.
