← Back to Index
Final Project

Maya's Mirror

Fab Academy Barcelona β€” 2026

Maya's Mirror β€” transformation sketch: reflection changing, distorting completely, remade in nature beautiful

Project Overview

Maya's Mirror is an interactive installation exploring memory, identity, transformation, aging, and beauty through a responsive mirror experience inspired by my grandmother Maya's experience with Alzheimer's.

A hidden monitor behind one-way mirror film displays generative visuals that track and gradually transform the viewer's face β€” from recognisable reflection to abstract distortion to flowers and vines drawn from Maya's own botanical artwork.

The goal of the experience is to create an emotional reflection on memory loss and beauty, encouraging viewers to think about identity beyond appearance and cognitive ability.

The Story Behind It

Young Shiv with grandmother Maya

Maya and me


My grandmother Maya passed away with Alzheimer's last year. We were very close, and she was one of the most artistic and emotionally expressive people in my family.

After she passed away, I found her diary filled with drawings of flowers, paisleys, vines, and handwritten reflections about life and beauty.

Maya's botanical drawings β€” flowers, vines, paisleys in blue, teal, and orange ink

Maya's drawings β€” flowers, vines, and paisleys in ballpoint pen


Maya's handwritten letter

Maya's handwritten reflections


One section of the letter deeply stayed with me. Despite losing her memory and struggling with Alzheimer's, she still wrote about gratitude and beauty.

"So what if I have become stupid? I look at the children playing in the fields. I see the sun, the moon, the flowers, the beauty of nature. Everything around us is gorgeous and beautiful, then why should I be upset?"

Maya's Mirror is my attempt to translate that philosophy into an embodied experience: reflection β†’ distortion β†’ reconstruction through nature.

Experience Flow

Four panels: reflection changing β†’ distorts completely β†’ remade in nature beautiful

Reflection β†’ distortion β†’ dissolution β†’ transformation


  1. User approaches mirror β€” reflection appears normal
  2. Presence detected β€” sensor triggers system (IR proximity, planned)
  3. Facial distortion begins β€” eyes and facial structure subtly shift
  4. Identity destabilises β€” reflection becomes abstract and unstable
  5. Dissolution β€” face loses recognisable structure
  6. Organic transformation β€” flowers and vines emerge from landmarks
  7. Final state β€” reflection blooms into a living garden

Components & Procurement

Hardware components have been ordered. The frame wood, acrylic sheet, and 3D-printed rear enclosure/spacing ribs are the remaining physical fabrication tasks.

Component Spec Status
Philips 24E1N1100A monitor
Philips 24E1N1100A
24" FHD IPS, 1920Γ—1080, 100Hz, 1ms MPRT, Adaptive Sync, HDMI 1.4, built-in speakers Ordered
Logitech C270 HD webcam
Logitech C270 HD
720p / 30fps, wide FOV, noise-reducing mic, illumination correction, USB Ordered
Lenovo ThinkCentre M910q Tiny
Lenovo ThinkCentre M910q
Core i5-6400T, 8GB RAM, 240GB SSD, Win 11 Pro β€” runs browser-based WebGL simulation via HDMI Ordered
One-way mirror window film
One-Way Mirror Film
Applied to back of acrylic sheet; reflective from front, transparent from rear when lit Ordered
CNC Wood Frame Plywood sheet; botanical motifs carved with ShopBot using RhinoCAM toolpaths from Maya's drawings To procure
Acrylic Sheet Clear acrylic cut to frame aperture; mirror film applied to back To procure
Rear Enclosure + Spacing Ribs 3D printed in PLA+; ribs maintain 10–25mm air gap between acrylic and monitor; rear cover removable (8 screws) To design & print

System Integration

Full system integration diagram: exploded view, cross-section, wiring diagram, PCB layout, airflow

Full system diagram β€” exploded view, cross-section, PCB, wiring, and airflow


The planned system has seven layers from front to back: CNC carved wood frame β†’ acrylic sheet with mirror film β†’ 10–25mm air gap β†’ 24" monitor β†’ custom PCB (XIAO ESP32S3) β†’ ThinkCentre mini PC β†’ 3D printed rear enclosure. Overall dimensions: 520mm Γ— 720mm Γ— 120mm.

  • CNC Frame β€” designed with ornate botanical motifs from Maya's drawings; to be milled on ShopBot with RhinoCAM toolpaths
  • Mirror Film β€” ordered; to be applied to back of acrylic sheet once delivered
  • Custom PCB (XIAO ESP32S3 Sense) β€” planned for IR proximity detection, ambient light sensing, LED lighting control, and serial communication to mini PC
  • Mini PC (ThinkCentre M910q) β€” ordered; will run browser-based WebGL simulation via HDMI to monitor
  • Webcam (Logitech C270) β€” ordered; will be mounted behind camera slot in top of frame
  • Ventilation β€” planned: hot air exhaust top, cool air intake bottom; thermal spacing via standoffs

Physical Design

3D render of the CNC frame β€” ornate botanical relief with oval aperture, scrolling vines, acanthus leaves, and flowers

3D model of the CNC frame β€” oval aperture, scrolling vines, acanthus leaves, and botanical flowers derived from Maya's drawings


I modelled this frame from scratch. The oval aperture centres the viewer's face; the surrounding relief is densely packed with scrolling acanthus vines, layered leaves, and flowers that directly reference the motifs in Maya's sketchbook. The botanical surface is not decorative β€” it is the destination the simulation is moving toward.

Exploded component sketch: wooden frame, one way mirror, LED screen, electronics

Exploded component sketch

Stylised face emerging from botanical vines β€” the visual language of the transformation

Visual language: face emerging from vines

The CNC frame borrows directly from Maya's botanical drawings β€” paisleys, scrolling vines, and layered leaves translated into relief toolpaths on the ShopBot. The mirror's ornate quality is intentional: it signals ritual object, not smart device.

  • CNC milling the wooden frame β€” wood to be procured this week; ShopBot + RhinoCAM toolpaths
  • Mirror film to be applied to back of acrylic sheet once delivered
  • 3D printed rear enclosure and mounting hardware β€” to be designed and printed
  • Custom PCB β€” electronics to be finalised this week
  • LED perimeter lighting β€” planned as part of electronics integration

Simulation β€” All Iterations

The simulation went through six distinct versions before arriving at the final experience. Each iteration explored a different visual approach β€” warping, lighting models, growth algorithms β€” and informed what came next.

# Version Technique Link
01 Initial Warp First smooth displacement shader β€” WebGL UV push/radial warp on face landmarks. Dissolve mode triggers wave + noise + chroma split. β†— open
02 Face Change Refined warp with 3-stage timeline: slow identity slide (0–10s) β†’ rapid dissolve (10–13s) β†’ white fade. Botanical drawing layer added. β†— open
03 Asaro Layer Asaro lighting model drives vine density β€” bright face planes grow sparse long vines, dark planes grow dense short ones. Live sliders for vine length and thickness. β†— open
04 Full Face Flora Uniform vine density across the whole face mesh β€” no lighting bias. All 478 landmarks seeding growth simultaneously. β†— open
05 Larger Vines L-system vine grammar (FF[+F][-F], 3 iterations) growing from nose tip outward. Longer step length β€” vines reach the frame edge. β†— open
06 Nose Heavy Same L-system grammar with shorter step length β€” growth concentrates around the nose and mid-face, denser and more tangled. β†— open
07 Botanical Drawing Combined: 3-stage warp dissolve β†’ cream fade β†’ botanical line drawing from landmark anchors. Vine growth, flowers, spirals in Maya's colour palette. β†— open
08 Physarum ✦ Current True physarum polycephalum simulation β€” 6000 agents with biological sensor/scatter/decay behaviour, seeded at nose tip, forehead, chin, and temples. Face mask built from FaceMesh triangles. Live tuning panel. β†— open

Simulation β€” Current Version

The current simulation is a true physarum polycephalum (slime mould) model running live on the viewer's face. 6000 agents crawl across a UV-mapped face texture, following chemical trails left by other agents. The result looks exactly like the growth networks physarum builds in nature β€” branching, pruning, reinforcing efficient paths β€” except the substrate is a human face.

How Physarum Works

Each agent has three forward-facing sensors at Β±45Β° and centre. At every step it sniffs the trail concentration ahead, turns toward the strongest signal, deposits more trail, and moves forward. Trails decay each frame (controllable β€” lower decay = more pruning). When trail saturation exceeds a scatter threshold, the agent breaks away and explores new territory. The emergent result is a self-optimising network β€” the same algorithm physarum uses to find the shortest path between food sources.

Seeding on the Face

Growth is seeded at the topographic high points of the face β€” nose tip (landmark 4), forehead centre (10), chin (152), left temple (234), right temple (454). These are the first points you would touch pressing fingers to a face. From these seeds the mould spreads outward, finding every contour and cavity. A face mask built from FaceMesh triangles constrains growth to the face surface only.

Live Controls

The tune panel exposes nine parameters in real time: trail decay, deposit strength, trail floor (established paths never fade below this), sensor angle, sensor distance, scatter threshold, step size, steps per frame, and agent lifespan. Pulse injects a burst of fresh agents. Field mode shows the raw trail texture. Regrow reseeds from scratch.

Physarum Technical Stack
Agents              β€” 6,000 particles; each has position, heading, age
Sensor model        β€” 3 sensors at Β±saDegΒ° and 0Β°, distance sd px
Behaviour           β€” sniff β†’ turn toward max trail β†’ deposit β†’ step
Scatter             β€” if trail[centre] > scatter% of MAX_TRAIL β†’ random heading
Trail texture       β€” 256Γ—256 Float32Array, diffused + decayed each frame
Face mask           β€” rasterised from FaceMesh triangle mesh in UV space
Seed points         β€” landmarks 4, 10, 152, 234, 454 (nose/brow/chin/temples)
WebGL render        β€” trail texture uploaded as floraTex; mesh rendered with UVs
MediaPipe FaceMesh  β€” 478 landmarks; UV coords recomputed each frame

Simulation β€” Development Progress

The browser-based simulation runs WebGL with MediaPipe FaceMesh. It went through several distinct phases across the semester.

Early prototype: face shown with tiled facial-region patches displaced across the face β€” blocky glitch distortion

Phase 1 β€” early distortion prototype: facial region patches displaced across face using MediaPipe landmarks

Asaro lighting phase: dark sculptural face rendered with purple nebula-like particle clouds and vine silhouettes

Phase 2 β€” Asaro lighting model: face rendered as a dark sculptural form with physarum particle clouds and vine growth

Phase 1 β€” Facial Patch Distortion

The first working prototype used MediaPipe FaceMesh to isolate rectangular regions around key landmarks (eyes, nose, mouth) and displaced them across the face. The effect was deliberately glitchy β€” more horror than poetic. Useful for proving the webcam β†’ canvas pipeline, but not the right visual language.

Phase 2 β€” Asaro Head + Physarum

Shifted to an Asaro lighting model that treats the face as a low-poly sculptural form. Physarum-inspired particle trails (slime-mould growth) were overlaid using FaceMesh UV coordinates, creating branching networks across the face surface. The palette β€” deep purple, midnight, pink star-points β€” felt closer to dissolution than horror.

Phase 3 β€” Vine Growth Model (Current)

Current version uses a vine growth system with inertia: branches extend from nose-tip and facial landmarks, attracted to other landmarks, avoiding paths already drawn. The result is a generative botanical drawing that grows across the face in real time β€” directly referencing Maya's ballpoint pen drawings. A live-tunable parameter panel (growth speed, branch count, curl, attraction radius) is exposed for calibration.

Electronics

The electronics system is currently under active development. The planned system uses a Seeed Studio XIAO ESP32S3 Sense as the central embedded controller β€” handling sensing, lighting, and communication between the physical installation and the generative visual system running on the mini PC.

  • IR proximity sensing β€” detecting when a person approaches the mirror and waking the interactive simulation
  • Ambient light sensing β€” adapting brightness and visibility conditions behind the mirror film
  • LED lighting control β€” driving perimeter or environmental lighting integrated into the frame
  • Serial communication with mini PC β€” transmitting sensor events and interaction states to the browser simulation
  • Power distribution β€” routing shared low-voltage power to sensors and lighting systems

Current Schematic β€” What Is Wired

The KiCad schematic defines three connected subsystems on the XIAO ESP32S3:

Function Pin Component Status
NeoPixel LED ring D2 β†’ 100Ξ© β†’ LED_DATA J1 connector (5V, DATA, GND) + 100Β΅F decoupling cap C2 Schematic complete
IR proximity sensor D4 ← SIGNAL J3 connector (3V3, SIG, GND) Schematic complete
USB serial (to mini PC) D+ / Dβˆ’ Existing USB connection β€” no extra hardware Planned in firmware

One flag for review: D4 is also the IΒ²C SDA line on the XIAO ESP32S3. If an ambient light sensor (IΒ²C) is added later, the IR signal will need to move to D6 or D7 to avoid a conflict. Keeping this open as a decision point.

Planned Integrations β€” No Extra Hardware Required

Two additional behaviours are planned using only the connections already schematically defined:

  • Computer sleep/wake status β€” a small Python script on the ThinkCentre monitors user idle time and sends a single byte over USB serial ('W' = wake, 'S' = sleep). The XIAO reads this on the existing D+/Dβˆ’ connection and responds by dimming the LED ring or suspending the IR trigger. No new pins or components needed.
  • Smart room light control β€” the XIAO ESP32S3 has WiFi on-chip. When the simulation enters its final botanical state, the XIAO can send an HTTP request to a WLED strip, Philips Hue bridge, or Home Assistant instance on the local network β€” shifting the room lighting to match the palette of the experience. No relay, no extra wiring.
Planned Firmware Logic
IR sensor detects presence     β†’ send 'W' trigger to mini PC β†’ simulation starts
PC sends 'S' (idle/sleep)      β†’ dim LED ring, pause IR watch
PC sends 'W' (active)          β†’ restore LED ring, re-enable IR
Simulation reaches final state β†’ ESP32S3 WiFi POST β†’ room light shifts palette

The PCB is planned in KiCad as a compact, single-sided board to simplify fabrication and integration into the rear enclosure. Current development is focused on final sensor selection, connector strategy, mounting layout, power architecture, and fabrication method (milled vs externally manufactured). The electronics are intentionally designed to remain visually hidden so the emotional experience stays the focus rather than the computational system behind it.

Project Definition

  • What is it? An interactive mirror installation that transforms a user's reflection in real time.
  • Who is it for? Visitors in galleries, exhibitions, museums, and reflective public spaces.
  • What does it explore? Memory, transformation, Alzheimer's, identity, grief, and beauty.
  • Input Devices: Webcam (facial tracking) + IR proximity sensor + ambient light sensor (electronics TBD)
  • Output Devices: 24" monitor behind mirror film + LED perimeter lighting (planned)
  • Processing: Browser WebGL + MediaPipe FaceMesh (laptop/mini PC) + XIAO ESP32S3 Sense (sensing + lighting)

Development Timeline

January – February

  • Research and concept refinement
  • First MediaPipe + WebGL prototype
  • Facial patch distortion proof of concept

March

  • Asaro lighting model development
  • Physarum particle trail overlay
  • L-system vine experiments
  • 3D frame design β€” botanical motifs modelled from Maya's drawings

April

  • CNC frame design in Rhino; ShopBot milling (tongue drum week)
  • Electronics planning β€” KiCad PCB schematic begun
  • Vine growth simulation with inertia and landmark attraction
  • System integration diagram completed
  • Barduino ESP32-S3 as WiFi access point serving simulation

May – June

  • Procurement closes β€” wood, acrylic, electronics finalised
  • CNC frame milling with botanical motifs
  • Electronics build and integration
  • Mirror film application and air gap calibration
  • Full system assembly and testing
  • Global review β€” mid-June

Challenges

  • Mirror film transparency vs monitor brightness β€” key unknown until physical assembly
  • Webcam alignment through the frame slot β€” requires precision once hardware arrives
  • Electronics finalisation β€” sensor selection, connector strategy, and PCB layout still being decided
  • Distortion visual language β€” finding the line between poetic dissolution and horror (resolved through simulation iterations)
  • Thermal management inside sealed rear enclosure β€” to be addressed in 3D enclosure design
  • CNC botanical relief carving β€” complex toolpaths, fabrication time a concern

What Worked / What Didn't

What worked

  • Physarum simulation β€” biological agent model produces genuinely organic growth on the face
  • Vine growth model β€” visually cohesive and directly referencing Maya's drawings
  • MediaPipe FaceMesh in browser β€” low-latency, no server required
  • Emotional narrative β€” transformation arc from reflection to garden is legible
  • 3D frame design β€” botanical motifs from Maya's sketchbook translate well into relief geometry

What didn't

  • Early facial patch distortion β€” too horror-coded, abandoned
  • L-system vines β€” too mechanical, not organic enough
  • Asaro + physarum overlay β€” beautiful but too abstract for the emotional narrative

Inspirations & References

  • Maya's original botanical drawings and handwritten letter
  • Interactive mirrors and installation art (smart mirror tradition)
  • Physarum polycephalum (slime mould) growth simulation
  • Asaro head lighting model
  • MediaPipe FaceMesh documentation
  • Alzheimer's narratives and lived experiences
  • Indian floral and paisley visual traditions