Celestial Fruit on Earthly Ground
Interactive online installation
2025 Update: Looking at this text today, my tastes about what is good software, art or writing have changed. I would do many technical and interpersonal aspects of the project differently, and I would not be writing about it in this voice. But growing up is part of the process, and the post is now a sort of time capsule of the past me.
I am proud of my contribution to the realization of celestialfruit.org (the link is now sadly defunct) with Jonathan Reus. The installation is an ongoing and open interactive artwork. It’s conceived as a living tapestry of visual and sonic traces gathered through artistic collaborations and micro-commissions.
The work focuses on the five-string banjo, a historically complex musical instrument that can be thought of as a map of material-embodied cultures, packed with the stories and ideas of people; their migrations and exchanges. Moving around through an online virtual universe, the visitor navigates and reassembles these elements in a way that mirrors the transmission and transformations of culture itself as a living, moving, and complex entity. Besides the interactive experience, the work also operates as a method and engine for driving future collaborations at the meeting points of musical instruments, technology, and tradition.
This collaboration flexed my programming muscles in more than one way. It might be my first finished project where experimentation and changing the feature set regularly was the go to modus operandi instead of something unwelcome. During the three-month initial development period, I had to keep some semblance of structure while not overoptimizing or locking myself into a design corner. It sort of worked and I am not terribly unhappy with the resulting codebase, although the amount of cleanup tasks this produced is daunting. I am sure I'll get to that backlog one day (:
Having to implement a data driven scene building system and an animation system with simple scripting all over again makes me think whether I should finally bite the bullet and learn a game engine like Godot or Unreal instead of always rolling my own. I do admit that the tight time constraints made me step outside of my comfort zone and use way more framework-ey libraries than I otherwise would. The experience was as expected: there were a lot of out-of-the-box features, and a lot of out-of-the-box bugs. If I had to guess, the features still outweighted the extra trouble, even if it made me grumpy at times.

A gourd; has secrets inside