Diente de León hero
SELECTED WORK

Diente de León

Blow Into the Mic, Scatter the Seeds

CLIENT Self-initiated
YEAR 2024
ROLE Creative Technologist
Generative Artist
TOOLS p5.js, WebGL
Web Audio API
OVERVIEW

I made this during my first few months in a new city, still adjusting to a new routine — which, uncomfortable as it is, comes with a strange upside. Being an outsider sharpens your attention. I found myself far more moved by the walk from my apartment to the subway station than by any of the tourist-y places I'd been told to see, in leaf shapes I didn't recognize from home. Diente de León is a full 3D dandelion clock, built entirely in p5.js using WebGL, grown out of that noticing.

APPROACH

Blow into your microphone, and the input volume gets mapped in real time to a force that pushes the dandelion's branches apart — scattering the seed head the way wind actually does. Press a key, and it resets, ready to blow again. It's built around a universal, slightly superstitious gesture: everyone has blown on a dandelion clock and counted the puffs at some point.

That noticing turned into a smaller assignment first — generating variations on the shape of one specific leaf from a tree on my route. Diente de León is where I took that same instinct further, into a full 3D dandelion clock.

Coding a shape forces you to actually understand it — every coordinate, every branch has to be decided on and abstracted into something a machine can build. That process is most of why I picked a dandelion in the first place: its 3D structure was interesting to build, and its "blow to disperse" interaction was already built into the plant itself.

Diente de León generative dandelion
  • WebGL / 3D geometry — the seed head is real 3D geometry, not a flat sprite.
  • Objects + arrays — each branch is its own object, stored and updated together in an array.
  • for() loops generate the radial branch geometry of the seed head.
  • Live microphone input, mapped with map() to a force that blows the branches outward, with an on-screen volume bar for feedback.
  • Key input resets the branches to their starting position.

try the sketch in the p5.js editor → (opens in a new tab)

Interaction demo — coming soon
10 Sec TO DEMO
Live Mic BREATH INPUT
3D WebGL GEOMETRY