Project Story — ASRP.art
Inspiration
ASRP.art was born from a question that bridges science and art:
Can we measure the unmeasurable — the emotional resonance of art?
As researchers, artists, and engineers from ASRP (Advanced Scientific Research Projects), we were inspired by the idea that art is not only a cultural artifact but a neurocognitive event — a process unfolding in the brain, body, and field of perception.
The project evolved from our previous research on neurointerfaces, biometric sensors, and cognitive analytics, where we learned to translate subtle physiological signals into measurable patterns.
This inspired the vision of a system where art becomes an experiment, and the viewer becomes both the subject and co-creator.
What We Learned
We discovered that every aesthetic experience leaves a measurable trace — in heart rate, EEG patterns, skin conductance, and micro-dynamics of the eyes.
These signals form a multidimensional space of perception, represented mathematically as:
$$ \mathbf{P}(t) = [E(t), \; \Phi(t), \; G(t), \; D(t)] $$
Where:
- ( E(t) ): emotional arousal
- ( \Phi(t) ): EEG phase coherence
- ( G(t) ): skin conductance
- ( D(t) ): pupil dilation dynamics
Machine learning models can correlate these parameters with the emotional impact of artworks, enabling a new type of calibration and classification of artistic experiences.
We learned that subjectivity itself can become data — without losing its human depth.
How We Built It
We combined multiple technological layers:
- Neurointerface Modules – EEG headsets and biometric sensors capture real-time reactions.
- Data Pipeline – real-time synchronization and cleaning of multimodal physiological data.
- Cognitive Analytics Engine – deep learning models map emotional and cognitive states.
- NFT Meta-Layer – each interaction can be embedded into NFT metadata, adding uniqueness.
- Visualization Dashboard – shows the evolving “emotional field” of an artwork.
Example of a simplified signal normalization algorithm:
import numpy as np
def normalize_signal(signal):
return (signal - np.mean(signal)) / np.std(signal)
Built With
- ai
- custom
- customaimodels
- ecg
- esp32
- gsr
- lancgchain
- langraph
- llm
- matplotlib
- node.js
- plotly
- ppg
- scikit-learn
- typescript
Log in or sign up for Devpost to join the conversation.