The Solar Oracle Walkman: Difference between revisions
| Line 24: | Line 24: | ||
</gallery> | </gallery> | ||
=From | =From Sound Mapping to Vec2vec= | ||
Beyond sculptural design, the device encourages open collection of natural-dye data and serves as a minimal-viable prototype for asking whether photovoltaic energy could—or should—be traceable. At present, the sound engine is implemented in Max/MSP with RAVE, where a 7-dimensional I–V “fingerprint” is directly connected to the decoder’s latent inlets. This pragmatic choice exploits RAVE’s real-time, high-fidelity synthesis, but the mapping remains largely hand-crafted. | |||
Framing the process more generally, the mapping can be understood as a vec2vec-style cross-modal alignment: a bridge function projects photovoltaic features into the latent space of a neural audio synthesizer. Unlike the recent vec2vec work in natural language processing—which aligns embeddings within the same modality and assumes comparable semantic geometry across models—our case is cross-modal (physics → sound) and uses a generative decoder as its target space. This difference requires stronger priors, such as monotonicity (e.g. larger photocurrents should not map to quieter or “darker” sounds) and local smoothness (similar I–V curves should yield nearby latents). | |||
Looking forward, methods inspired by the “universal geometry of embeddings” suggest that reconstruction, cycle-consistency, and local-geometry preservation losses could stabilize this mapping, gradually shifting from ad-hoc sound mapping toward a principled vec2vec framework. In that sense, the Solar Mini-Disc Walkman not only produces reproducible sonic identities for each handmade cell, but also gestures toward a broader research question: how cross-system “languages” of energy and sound might be aligned in a universal latent space. | |||
<gallery widths=400px heights=300px> | <gallery widths=400px heights=300px> | ||
File:RAVE solar timbre map.png|A simple sound map diagram of I-V datas and RAVE latent space. | File:RAVE solar timbre map.png|A simple sound map diagram of I-V datas and RAVE latent space. | ||
Revision as of 18:32, 16 August 2025
Abstract
During a three-week micro-residency, I prototyped a “solar mini-disc walkman” that turns a handmade dye-sensitized solar cell (DSSC) into music. Building on my earlier portable, solar-powered starvation synth, I explore the “fingerprint” of a solar cell: using the I–V curve of each handmade DSSC as a musical score so its photovoltaic character becomes reproducible, generative sound. The instrument is self-powered: a 6×6 cm “solar mini disc” can be inserted and rendered to audio in real time. Beyond the artistic sculptural design, the device encourages open collection of natural-dye data and serves as a minimal viable prototype for asking whether photovoltaic energy could—or should—be traceable. The data-to-sound mapping is framed as cross-modal vector alignment: learning a mapping from a 7-D I–V feature vector into the latent space of a neural audio synthesizer (RAVE). Conceptually, this is closer to vec2vec-style embedding alignment between models than to full multimodal learning (which would co-train on large paired datasets); here we align representations across modalities without joint training.
-
The DIY I-V tester made by Marc Dusseiller.
-
The measurement of the I-V curve tester is uploaded to Thingspeak and a local server, and can be fetched in Max/MSP.
-
DIY DSSC with screen printed pattern and hollyhock dye made by Shih Wei Chieh.
-
DIY DSSC with cyanotype pattern made by Shih Wei Chieh.
The generative capacity and reproducibility of each solar disc
The audio output of each "solar disc" are expected to be reproducible, generative and variational, like a period of generative music with clear mechanism rather than completely randomness. To make each solar glass a generative device, I firstly assume I need to design a hash operation to gain a “finger print (F)” for each solar glass; A hash operation is the process of feeding input data—such as numbers, text, files, or a set of I-V curve parameters—into a mathematical function or algorithm to produce a hash value. Hash algorithms can take input of any length but always generate a fixed-length output. They are designed to be fast to compute, yield the same output for the same input, and produce drastically different outputs when the input changes even slightly.
As we know I-V curve is often used to analysis the characteristics of a solar cell, therefore it is ideally the finger print of the panel. In this research, the shape of I-V curve is deconstructed into to 7 features that are often used to measure different characteristics of the panel, and then apply machine learning to each feature so the shape can be learned by the computer. This method is expected to ensures the irradiance invariance, so the reproducibility of the audio output of the solar disc will be resilient even it's put under different light exposure. The finger prints F consists 7 features of the I-V curve: F = [FF (Fill Factor), Vmpp/Voc, Impp/Isc, Rs (series resistance), Rsh (shunting resistance), sum of curvature, total area of the I-I-V curve]. Noticing the calculation made here are dimensionless. A dimensionless feature vector is a set of numerical descriptors that have been normalized so they no longer carry physical units such as volts, amperes, or ohms. By converting raw measurements into dimensionless quantities—for example, by taking ratios like Vmpp/Voc or Impp/Isc, the features capture only the relative shape or behavior of the data, independent of its absolute scale. This process is crucial when comparing or classifying I-V curves under varying light intensities, as it ensures that differences in the vector reflect intrinsic device characteristics rather than changes in measurement conditions.
Ml.scale and ml.principle
To achieve the goal to recognize the shape of each "solar mini disc", ml.* library in Max/MSP could be a possible solution. Ml.* is a toolbox of machine learning algorithms implemented in Max to enable real-time interactive music and video with unsupervised machine learning, aimed at computer musicians and artists. The I-V curve tester is connected to computer and the 16 points of voltage and current measurements are sent to the computer via serial communications. A script of javascript is made in Windsurf to make the mathematics to generate a raw 7 features to facilitate the I-V curve fingerprint (the first and the second outlet): 1. F_ohmic = [FF, Vmpp/Voc, Impp/Isc, Rs, Rsh, curvature_sum, area] 2. F_dimless = [FF, Vmpp/Voc, Impp/Isc, Rs_dimless, Rsh_dimless, curvature_sum, area] 3. basics = [Voc, Isc, Vmpp, Impp] 4. A 64-points resample of the 16 points with smoother curve. For the first outlet, Rs and Rsh are in real physical units (Ω), so the vector mixes unitless ratios with dimensional quantities. The second outlet makes everything dimensionless, so the feature vector is “scale-free” and can be compared across cells with different sizes, Voc, or illumination.
The raw 7 features are first sent to ml.scale for normalization. They are then passed to ml.principle, which performs Principal Component Analysis (PCA). This converts the 7 values into a new 7-dimensional PCA space, though typically only the first two components (PC1 and PC2) carry most of the significant variance. In short, PCA is a mathematical method that rotates and compresses data into fewer dimensions while preserving as much variance as possible. ml.principle is the Max/MSP object that implements PCA: it learns the principal axes from training data, and then projects new data into that reduced space. I am not familiar with how fundamentally the mathematics works, however, I got an okay explanation from GPT below in the photo gallery.
-
The machine learning process for the raw 7 features: [FF, Vmpp/Voc, Impp/Isc, Rs, Rsh, curvature_sum, area] in Max/MSP.
-
The mathematical explanation for the principle component analysis made by GPT.
From Sound Mapping to Vec2vec
Beyond sculptural design, the device encourages open collection of natural-dye data and serves as a minimal-viable prototype for asking whether photovoltaic energy could—or should—be traceable. At present, the sound engine is implemented in Max/MSP with RAVE, where a 7-dimensional I–V “fingerprint” is directly connected to the decoder’s latent inlets. This pragmatic choice exploits RAVE’s real-time, high-fidelity synthesis, but the mapping remains largely hand-crafted. Framing the process more generally, the mapping can be understood as a vec2vec-style cross-modal alignment: a bridge function projects photovoltaic features into the latent space of a neural audio synthesizer. Unlike the recent vec2vec work in natural language processing—which aligns embeddings within the same modality and assumes comparable semantic geometry across models—our case is cross-modal (physics → sound) and uses a generative decoder as its target space. This difference requires stronger priors, such as monotonicity (e.g. larger photocurrents should not map to quieter or “darker” sounds) and local smoothness (similar I–V curves should yield nearby latents). Looking forward, methods inspired by the “universal geometry of embeddings” suggest that reconstruction, cycle-consistency, and local-geometry preservation losses could stabilize this mapping, gradually shifting from ad-hoc sound mapping toward a principled vec2vec framework. In that sense, the Solar Mini-Disc Walkman not only produces reproducible sonic identities for each handmade cell, but also gestures toward a broader research question: how cross-system “languages” of energy and sound might be aligned in a universal latent space.
-
A simple sound map diagram of I-V datas and RAVE latent space.
The design of the enclosure
-
Sony MD Walkman RZ-55. Image source: wikipedia.
References
- Jha, Rishi, Collin Zhang, Vitaly Shmatikov, and John X. Morris. 2025. “Harnessing the Universal Geometry of Embeddings.” arXiv:2505.12540. Preprint, arXiv, June 25. https://doi.org/10.48550/arXiv.2505.12540.
- https://www.hackteria.org/wiki/A_RAVE_and_starvation_synth_based_generative_sonic_device_powered_by_dye_sensitized_solar_cell
- https://github.com/shihweichieh2023/IVcurve_tester
- https://github.com/rjha18/vec2vec