The Solar Oracle Walkman: Difference between revisions

From SGMK-SSAM-WIKI
Jump to navigation Jump to search
Line 78: Line 78:
: <code>A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)</code>
: <code>A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)</code>


=Experimental Setup=
=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 made in Windsurf generates 7 raw features to facilitate the I-V curve fingerprint (the first and the second outlet). These 7 features reflects the true characteristic of the measured solar devices: 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-point 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.
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. The raw 7 features are first sent to ml.scale object for the normalization in range from 0 to 1. The values 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 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.


<gallery widths=400px heights=300px>
<gallery widths=400px heights=300px>

Revision as of 19:57, 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 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). In the vec2vec framework, semantic stability is maintained through three key constraints: reconstruction (the translated representation can be mapped back to the source), cycle-consistency (round-trips preserve meaning), and vector space preservation (VSP), which ensures that pairwise distances among embeddings remain intact across the mapping. While these methods were originally developed for aligning text embeddings, they provide a valuable reference for future work: similar constraints could regulate how photovoltaic features enter the RAVE latent space, ensuring that sonic identities preserve the geometric relationships of their underlying energy curves. 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.

     ┌────────────────────┐
     │  DSSC I–V Features │    (7D fingerprint)
     │ [FF, Vmpp/Voc,     │
     │  Impp/Isc, Rs,     │
     │  Rsh, curvature,   │
     │  area]             │
     └────────┬───────────┘
              │
              ▼
    ┌──────────────────────┐
    │   vec2vec-style      │
    │   Bridge Mapping     │
    │  (priors: monotonic, │
    │   smoothness, etc.)  │
    └─────────┬────────────┘
              │
              ▼
    ┌──────────────────────┐
    │   RAVE Latent Space  │
    │ (semantic geometry,  │
    │   VSP constraints)   │
    └─────────┬────────────┘
              │
              ▼
    ┌──────────────────────┐
    │  Sound Synthesis     │
    │ (real-time audio     │
    │   decoder in nn~)    │
    └──────────────────────┘

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-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.

Feature definitions (scale-free)

The 7-D fingerprint is defined as: F = [FF, Vmpp/Voc, Impp/Isc, Rs*, Rsh*, Σκ, A*] All features are computed on a 64-point resampled I–V trace and normalized by Voc and Isc to be invariant to irradiance and device size.

FF (fill factor)
FF = (Vmpp * Impp) / (Voc * Isc)
Vmpp/Voc and Impp/Isc
Scale-free ratios capturing the operating point at maximum power.
Rs* and Rsh* (dimensionless ohmic estimates)
First estimate the local slopes on the resampled curve:
Rs ≈ -ΔV/ΔI (evaluated near I ≈ Isc)
Rsh ≈ -ΔV/ΔI (evaluated near V ≈ Voc)
Then report dimensionless forms:
Rs* = Rs * (Isc / Voc)
Rsh* = Rsh * (Isc / Voc)
Σκ (curvature_sum)
Sum of absolute turning angles along the 64-point polyline of the I–V trace: for each consecutive pair of segments s_i = (ΔV_i, ΔI_i), accumulate
|angle(s_i, s_{i+1})|, and report Σκ = Σ |angle(s_i, s_{i+1})|.
(Intuition: larger Σκ indicates a more “bent” I–V shape.)
A* (normalized area under the I–V curve)
Definition: area from V=0 to V=Voc divided by (Isc * Voc).
Discrete approximation on the resampled trace:
A* ≈ (Σ I[i] * ΔV[i]) / (Isc * Voc)

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. The raw 7 features are first sent to ml.scale object for the normalization in range from 0 to 1. The values 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.

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). In the vec2vec framework, semantic stability is maintained through three key constraints: reconstruction (the translated representation can be mapped back to the source), cycle-consistency (round-trips preserve meaning), and vector space preservation (VSP), which ensures that pairwise distances among embeddings remain intact across the mapping. While these methods were developed for aligning text embeddings, they provide a useful reference for future design: similar constraints could regulate how photovoltaic features enter the RAVE latent space, ensuring that sonic identities preserve the geometric relationships of their underlying energy curves. In that sense, the Solar Mini-Disc Walkman not only produces reproducible sonic identities for each handmade DSSC, but also gestures toward a broader research question: how cross-system “languages” of energy and sound might be aligned in a universal latent space.

The design of the enclosure


References

  1. 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.
  2. https://www.hackteria.org/wiki/A_RAVE_and_starvation_synth_based_generative_sonic_device_powered_by_dye_sensitized_solar_cell
  3. https://github.com/shihweichieh2023/IVcurve_tester
  4. https://github.com/rjha18/vec2vec