A dialogue between data, body, and city. Master's Thesis (TFM) - Generative Art Installation & Biofeedback.
We live in the era of the Smart City: cities optimized by data and efficiency. However, the WHO warns of a growing urban mental health crisis. We are digitally connected, yet emotionally isolated.
This project intervenes in "Non-Places" (Marc Augé's concept): anonymous transit spaces where we coexist but do not connect.
Can design, acting through technology and generative art, create a bridge of empathy within these anonymous spaces?
During development, the project evolved drastically based on ethical findings:
| Phase 1: Exploration (Discarded) | Phase 2: Final Proposal (Biofeedback) |
|---|---|
| Use of Computer Vision for facial emotion detection. | Use of Biometric Sensors (pulse) + Environmental Data. |
| Perceived as Surveillance. | Perceived as Connection. |
| Focus on "EGO" (identification). | Focus on "ECO" (systemic connection). |
The system synchronizes the "slow" pace of the city with the "fast" pace of the human body through a hybrid architecture:
- Brain: ESP32 Microcontroller (Dual Core).
- Core 0: Wi-Fi and WebSockets management.
- Core 1: Uninterrupted sensor reading.
- Sensor: MAX30102 (Pulse Oximetry).
- Latency: < 100ms (perceptual real-time).
External APIs are integrated to define the city's "mood":
- Acoustic Stress: Noise level (dB) [SmartCitizen].
- Collective Flow: Transport demand [TMB API].
- Atmosphere: Weather and pressure [OpenWeatherMap].
How to merge human pulse (10ms) with atmospheric pressure (1h)?
We use Pandas and pd.merge_asof to align time series by proximity, allowing the "slow" state of the city to modulate the user's "fast" visual response.
- Engine: p5.js + WebGL (Shaders).
- System: +4,000 fluid particles at 60 FPS.
- Poetic Logic:
- High Noise + Low Pressure → Agitated particles ("Urban Anxiety").
- Fluid Traffic + Stable Weather → Harmonic particles ("Calm").
- User Pulse → Acts as an anchor and modulator of the chaos.
- Node.js (v16+)
- Python (3.8+)
- ESP32 Device (for the full experience)
- Clone the repository:
git clone [https://github.com/Raquel-bena/Emotions-in-Transit.git](https://github.com/Raquel-bena/Emotions-in-Transit.git)
- Environment Configuration:
Rename
.env.exampleto.envand add your API Keys (TMB, OpenWeather). - Run Frontend:
npm install npm run dev
- Run Python Server:
cd server pip install -r requirements.txt python app.py
- Node Network: Installation of multiple totems to compare the "emotional state" across different neighborhoods.
- New Variables: Air Quality (PM2.5) and Social Media Sentiment Analysis.
- 5G Integration: Greater autonomy for installations in public spaces.
- Live Demo: Emotions in Transit (Render)
- p5.js Collection: Editor Sketches
- Portfolio: Instagram @rb.graphicx
Developed by Raquel Benavides