
● personal project▸ 01ANov 2023 — Mar 2026
Nubecula
- role
- Design and development
- tools
- React
- Material UI
- p5.js
- GLSL
The idea
A page to set up a calm atmosphere: twelve ambiences (waves, forest, rain, fireplace, birds, crickets, wind, guitar, whale, Tibetan bowl, piano, frogs), each with its own volume, to mix freely. The project was born as Relax, my first React project; I picked it up again in 2026, and it became Nubecula, “little cloud” in Latin.
Seamless loops
An audio loop that restarts can be heard: a small jump, a silence, and the illusion breaks. So each sound plays two copies. Before one ends, the other starts, and the two crossfade over 2.8 seconds, along a cosine curve so the sum stays smooth.
A sound that breathes
A sound that is too regular ends up sounding false. As an option, each ambience's volume drifts slowly, at random and independently of the others, by 5 to 50% around its setting. The rain gets heavier, the wind drops, as outside.
A moving background
The background is a GLSL shader rendered by p5.js: warm and cool inks blending slowly through blend modes. Its six colours are set in the settings panel, and kept in the browser, with the master volume and the audio options. Immersive mode hides the interface and leaves only the background and the sound.



What I take from it
Two versions of the same project: first, audio players and sliders; in 2026, invisible loops, a living sound and a shader background. It measures the ground covered, and shows that a small personal project is worth coming back to.