Project Info

Plantcasso

Devpost

Inspiration

The starting point for our project was artist David Bowen's Plant Machete, where plant signals were mapped into control signals for a robot arm holding a machete. We decided to take it one step further--what if the temporal changes of the artistic expression were retained? And better yet if this piece of technoart also had some practical uses.

What it does

This landed us with Plantcasso. By mapping a plant's electric biosignals into servo control signals, we are able to visualize through both the arm's movements and drawn brushstrokes a plant's hidden signs of life and signs of agitation from the environment. This in turn converts our piece into a multi-functional installation: it is as much a work of performance art as visual art; the plant's paintings can serve as true random signals for cryptographic hashes akin to CloudFlare's lava lamps; anomalies such as wildfires, air quality degredation, or plant sickness can be detected AND visually presented as chaos in the plant's paintings.

How we built it

The project can be broken down into four main segments. The first and most critical is reading the plant signals. By using conductive gel pads and an INA333 instrument amplifier we are able to detect and boost the voltage differences across a plant's leaves and stem, which are then read into an ESP32-S3 Supermini. The second part of the project is an unsupervised clustering model. With a dataset of collected plant readings, we sample sequences, extract a number of meaningful features, and project them into 3D space, after which we run a clustering algorithm. This is trained on a laptop; the resulting weights are deployed onto the ESP32-S3 for real-time inference. The third segment is the arm control: we 3D printed a robot arm motivated by 5 MG-90 servos, and map the plant signals to points in the legal range of motion such that as the plant lives, so does the arm--and so does the painting. Finally, we implement a deshboard where we can see rolling graphs of information such as the plant's agitation, detected voltage, and spikes in activity.

Challenges we ran into

The first challenge was just getting the signals at all. Plant biosignals are infamously weak and noisy. A lot of work went into filtering the signal to keep it as clear and clean as possible; not just through software filters but also in hardware with changing pad adhesion points periodically, braiding cables, and building physical isolation. The second challenge was finding features that made sense for anomaly detection. A little literature research yielded the hjorth complexity as a good indicator of externally-induced spikes, and thus was weighed more heavily in our final clustering implementation. Finally, the largest nightmare was also teh simplest: getting the servos to play nice. Using a 16-channel servo control board over I2C was fickle, to say the least. For this we relied on redundancies and checks, but at the end of the day we have little choice but to cross our fingers.

Accomplishments we're proud of

The project works--it reads signals, it reacts to agitation, and the arm does what it's supposed to. The fact that such an abstract idea was able to be realized in such a short time is amazing enough in and of itself. The clustering was clean, the arm looked alive, and aside from lacking a more reliable servo motor control interface it's just about everything we envisioned it to be.

What we learned

The devil's in the details, and it's the things you least expect that might trip you up. We thought processing the plant signals would be the hard part, but it was fighting with the servo motors that kept us up all night. ALWAYS verify your hardware works! We also learned that mint plant stems are more fragile than expected.

What's next

We're going to build a better hardware rig and try a broader range of plants than just our proof-of-concept mint. The idea is to gather a generalized dataset and map corresponding clusters for a variety of environmental stimuli such as fire, carbon dioxide concentrations, and other signals that we can't test at the venue but would make this infinitely more practical and useful in disaster-prone areas.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CIn code
  • CSSIn code
  • FlaskIn code
  • HTMLIn code
  • Next.jsIn code
  • PythonIn code
  • ReactIn code
  • Tailwind CSSIn code
  • TypeScriptIn code
  • C++Claimed

9 of 10 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

  • Claude CodeConfig
  • CodexConfig

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

268 KB

Source files

29

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars