Skip to content

12. Skin Electronics

Research

neotouch Skin Electronics Speculation

Skin electronics represent a new frontier in wearable technologies, focusing on flexible, stretchable, and ultra-thin electronic devices that can interface directly with human skin. These devices are designed to monitor biometric signals, sense environmental changes, and provide interactive capabilities without compromising comfort or skin integrity.

The development of skin electronics combines material science, electrical engineering, and biocompatible design to create systems that can stretch, bend, and conform to the complex surfaces of the body. Common applications include health monitoring, physiological tracking, temporary tattoos with sensing functionality, and interactive biowear.

  • NeoTouch
  • Skin Electronics by Carlotta Premazzi, made with Eden.art
get inspired

Beauty Technology

Beyond Wearables

Beauty Technology is introduced as a subfield of wearable computing that transforms skin, hair, and nails into interactive platforms by embedding electronics directly into cosmetic products applied to the body.
It marks a shift: from visible wearables → to invisible, body-integrated aesthetics.

What Beauty Technology Is

Beauty Technology integrates technology into cosmetic products applied to the body, turning the human surface into an interactive interface.

Key aspects: - Invisible interfaces - Camouflaged Electronics/devices
- Natural behaviors as input (blinking, smiling, hair touching)
- Discreet and invisible interactions
- Human–device symbiosis - Applications in art, medicine, fashion, performance

On-body Technologies & Skin Interfaces

beauty-technology

Vega defines multiple layers of wearable placement: Inside-body (implants) | On-body(wearables) | Carried-on | Skin interfaces (directly on the skin)

Important considerations for skin interfaces: - Body movement
- Skin type (dry, oily, sensitive)
- Attachment and adhesion
- Weight and insulation
- Aesthetics
- Conductive materials and durability

Main Projects

(Hair, Skin, Nails)
Project Description Key Features / Examples Goal
Hairware – Conductive Hair Hair or extensions become capacitive sensors. • Chemically metallized strands
• Detects touch along root → middle → tip
• Up to 92% gesture accuracy
• Triggers digital or physical actions
Turning hair into an interactive input device.
Conductive Makeup – The Face as Interface Makeup acts as an invisible technological layer on the skin. Examples:
Blinklifier – blink-triggered interaction
Winkymote – IR remote control via blinking
Kinisi – expression-based controls (smile, brow raise)
Makeup becomes an invisible wearable interface.
TechNails – Interactive Nails Nails serve as hosts for micro-interactive components. Nail capabilities:
• NFC/RFID tags
• LEDs
• Sensors
Projects:
Twinkle Nails – mid-air gestures
Gimmickiano – body-conductive interaction
AquaDJing – water-reactive interface
Nails as micro-interaction platforms.

Skin as Display

Dermal Abyss: Tattoos that change color through: - Biosensors
- Fluorescent inks
- Chemical reactions

Applications: - Health monitoring
- Metabolic feedback
- Real-time body data visualization

The skin becomes a biological display.

On-Skin Rapid Prototyping

Techniques for fast prototyping: - Latex masks
- Pigments and glitter
- Microelectronics integration
- Gemma/Flora microcontrollers, NeoPixels


pHigment: Biodegradable Single-Use Cosmetics for On-body Chemical Sensing

The pHigment project, developed by the Interactive Organisms Lab (led by Dr. Katia Vega), explores a novel approach at the intersection of body-worn interfaces, chemistry, and sustainability. The goal is to replace existing single-use makeup products with biodegradable, colorimetric biosensing materials.

Project Overview and Dual Objective

The pHigment project tackles a dual objective: designing interfaces that are environmentally sustainable while also enabling on-body chemical sensing. The prototypes act as colorimetric biosensors, reacting visibly to pH changes and providing potential insights into dental health, vaginal chemistry, and skin surface conditions. At the same time, the project focuses on single-use cosmetics—such as temporary tattoos, eyeliner stickers, and press-on nails—to replace traditional synthetic materials, which often end up in landfills, with compostable and biodegradable alternatives. Through this approach, the project demonstrates how ephemeral beauty products can function simultaneously as responsive chemical sensors and sustainable wearable devices, redefining the relationship between cosmetics, technology, and environmental responsibility.

pHigment scheme The pHigment prototypes rely on a safe, fully biodegradable fabrication method based on alginate formulations.

Fabrication Process

  1. Mixing water, red cabbage powder, titanium dioxide, glycerin, and sodium alginate.
  2. Casting the mixture into molds or thin layers.
  3. Treating it with a Calcium Chloride solution to polymerize the alginate.
  4. Drying the material to obtain thin, flexible cosmetic forms such as stickers or patches.

The result is a set of biodegradable, color-changing, skin-safe cosmetic devices that function as wearable chemical sensors.

Ph patch BIO-ALG-RCP-FILM-PH-001 sheet

Ph patch preparation and BIO-ALG-RCP-FILM-PH-001 sheet by Carlotta Premazzi

tools
  • Immersion Blender
  • Scale
  • Glass Jar (that will fit in the vacuum chamber)
  • Cameo
  • Vacuum Chamber
  • Double-sided Sticky Paper
  • Disposable Boats (2-3)
  • Tracing Paper
  • Scissors
  • Long Small Spoon
  • Spray Bottle
  • Plastic spreader or any straight and flat object to be used as such
  • Acrylic Sheet or Metal Oven-safe tray
Ingredients
  • 10 g calcium chloride
  • 100 g water

  • 100 g Water

  • 0.25 g Red Cabbage Powder
  • 0.1 g Titanium Dioxide
  • 5 g Glycerine
  • 2.5 g Sunflower Oil
  • 3 g Sodium Alginate
Recipes

To Make the Calcium Chloride Solution 1. Heat 100 g of water until hot, either on the stove or in a kettle. 2. Stir in 10 g of calcium chloride until dissolved. 3. Pour into a spray bottle and let cool completely.
- This solution can be stored and reused for multiple batches of biomaterial.

To Make the Biomaterial 1. Put the glass jar on the scale and tare it to zero. 2. Measure 100 g of water into the jar. 3. Measure the remaining ingredients in order, mixing with a clean spoon between additions:
- 0.25 g red cabbage powder on tracing paper, pour into jar
- 0.1 g titanium dioxide on tracing paper, pour into jar
- 2.5 g sunflower oil into a boat, pour into jar
- 5 g glycerine into a boat, pour into jar
4. Measure 3 g sodium alginate into a boat and add slowly while mixing with the immersion blender:
- Add very small spoonfuls to prevent clumping
- Can split into thirds or smaller portions (e.g., 10ths) for a smoother mixture
- Mix with the immersion blender on high until fully combined and smooth

Using the Vacuum Chamber 1. Place the jar (without lid) in the center of the chamber; tape it down if needed. 2. Close the lid and ensure the plug is tight. 3. Press "on" and select AI to set the timer to 15 minutes. 4. Watch for bubbling; pause if necessary. 5. Depressurize slowly after completion. 6. Scoop any clumps and gently stir with a spoon.

Pouring and Drying the Biomaterial 1. Prepare a flat surface for drying:
- Acrylic sheet or smooth non-stick surface for air drying (7 days or 3 warm sun days)
- Metal tray for oven/convection drying at 120-140 °F (~2 hours) 2. Pour biomaterial onto the surface and spread thin using a smoothing tool. 3. Shake Calcium Chloride solution and mist from ~1 foot away. 4. Let sit 5-10 minutes, material will shrink and edges lighten. 5. Respray edges and allow to dry completely. 6. Final product should be paper-like, smooth, face mask consistency. 7. Peel biomaterial carefully off the surface.

Cutting the Biomaterial 1. Prepare double-sided sticky paper. 2. Cut a rectangle of desired size. 3. Peel one side to expose adhesive. 4. Place biomaterial on sticky side, press from one side to the other. 5. Align paper on sticky cutting mat corner. 6. Turn on Silhouette machine and load the mat. 7. Connect via Bluetooth or cable. 8. Open Silhouette Studio and import image to trace. 9. Select "Trace", adjust threshold, hit "Trace" for outlines. 10. Arrange outlines on gridded mat matching biomaterial area. 11. Set page setup, correct machine, and media size. 12. Adjust cut settings:
- Material: double-sided adhesive or thicker (fabric/heavy paper)
- Autoblade enabled
- Blade depth: 10
- Force: high
- Speed: 3
- Passes: 1 (2 only for intricate designs) 13. Begin cutting, then unload mat and peel stickers. 14. Stick stickers on nails, eyes, arms, or legs to test pH environment.


Detection and Features

The system is designed to provide quantitative health data from visible color changes.

The Sensing Mechanism works when exposed to body fluids such as sweat, tears, or saliva, causing the anthocyanin in the sensor to change color according to the fluid's pH level.

The Detection System interprets this color change using a custom light-controlled case and a mobile application. The app uses a Convolutional Neural Network (CNN) model to analyze the color and provide the corresponding pH value.

Enhanced Detection demonstrates improved sensitivity and accuracy over traditional, non-computer vision methods, showing that single-use biocosmetic sensors can serve both as chemical detectors and sustainable wearable devices.


🛠️ Tutorial: pHigment Biocosmetic Sensor

This tutorial assumes that you have already fabricated the raw alginate–anthocyanin biomaterial. For detailed instructions about compilation, required libraries, environment setup, refer to the main project documentation—either the README.md file in the repository’s root directory.


Phase 1: Material Preparation and Sensor Form
Step Action Notes
1. Dry the Biomaterial Dry the poured biomaterial sheet using your preferred method:
• 7 days in open air, or
• ~2 hours in an oven/convection oven at 120–140°F (dehydrator mode).
Ensure the sheet is fully dry, with no wet or tacky spots.
2. Cut the Sensor Forms Use a Cameo cutter or scissors (following Silhouette Studio Tutorial.pdf) to cut the dried sheet into the desired single-use cosmetic form: eyeliner strips, temporary tattoo patches, or press-on nails. The forms should be cleanly cut and ready for on-body application.
Phase 2: App Setup (Mobile Quantification)

The mobile app is essential—it converts visible color changes into quantitative pH values.

Step Action Notes
3. Get the Source Code Download the entire pHigment GitHub repository. The mobile application is located in the /app folder. This is a custom research app; it is not available on app stores.
4. Install the IDE Install Android Studio, the IDE required to compile and run the project. The project uses a standard Android structure (Gradle).
5. Open the Project** Open the entire pHigment repository (not only the /app folder) inside Android Studio.
6. Compile the App Open the repository in Android Studio and use the build tools to generate an APK file. Check the repository root (README.md, PDFs) for required libraries, especially for the CNN model.
7. Install on Phone Transfer the generated APK to your Android phone and install it manually. Enable “Install from unknown sources” if needed.
🔍 What Is in the /app Folder

The folder follows the structure of a typical mobile development project and contains everything needed for compilation:

Component Description
Source Code Java or Kotlin files implementing the app's logic and executing the CNN model to analyze color changes and compute pH values.
Resources User interface elements including layouts, images, and text strings.
Assets / CNN Model Contains the pre-trained CNN model, which serves as the “brain” of the app, converting RGB color values into pH readings.
Phase 3: Sensing and Measurement
Step Action Notes
7. Apply the Sensor Place the dried biocosmetic sensor (eyeliner strip, tattoo, or nail) on the desired body area. The patch will react upon contact with body fluids such as sweat, tears, or saliva.
8. Observe Color Change Wait for the anthocyanin dye (from red cabbage powder) to respond to the pH of the fluid. The material will shift color depending on the local pH level.
9. Quantify with App Use the custom-designed light-controlled case and open the mobile app to photograph the patch. The app's CNN model interprets RGB values and outputs the exact pH reading.

🎛️ Sensitive Matrix and Pressure Sensor

Stretchy Fabric Touchpad 5x5 demo Plusea Youtube Channel

A sensitive matrix is a grid where each intersection acts as a sensor node, typically using pressure sensors.

Pressure Sensor (FSR)

A Force Sensitive Resistor (FSR) is a variable resistor that detects physical pressure, squeezing, or weight.

  • With no pressure, the resistance is extremely high.
  • When pressure increases, the resistance decreases.
  • Its unit of measurement is the Ohm (Ω).

FSR Construction

An FSR is made of: - A piezoresistive material (Velostat, Linqstat, EeonTex)
- Sandwiched between two conductive electrodes (conductive thread, copper braid, conductive fabric, copper tape)

When pressure is applied: - The material compresses
- Electrical pathways form
- Resistance decreases


🔌 Circuit for Analog Sensors (Voltage Divider)

Analog sensors such as pressure, light, and temperature sensors are often variable resistors.
To read their resistance using a microcontroller (e.g., Arduino UNO), a voltage divider is used.

Voltage Divider

Created with two resistors in series.
If one resistor is the sensor, the output voltage changes according to the sensor's resistance.

Formula: Vout = R2 / (R1 + R2) * Vin

Connection to Arduino

  • The sensor (variable resistor) is placed in series with a fixed resistor (R1).
  • The junction between the two resistors goes to an analog input (e.g., A0).
  • The Arduino reads a value between 0–1023, proportional to the applied force.

🧩 Matrix Implementation

A pressure-sensitive matrix is created by crossing conductive rows and columns separated by a thin layer of piezoresistive material (such as Velostat), forming an FSR at each intersection.

Reading a Matrix (Example: 3×3 Grid)

  • Rows (A0, A1, A2): set as analog inputs with internal pull-up resistors
  • Columns (D4, D5, D6): set as digital outputs

Scanning Method

  1. Activate one column at a time (set pin to LOW)
  2. Read the analog values from each row
  3. Move to the next column
  4. Repeat

This creates a full pressure map across the matrix.


Fabrixiao

Fabrixiao

📚 Overview

FabriXiao is a small microcontroller board designed for wearable electronics and soft circuits, developed by Adrián Torres as part of Fabricademy. It is based on the Seeed Studio XIAO form factor, often using RP2040 or ESP32-C3, making it compact, programmable, and suitable for textile integration.

FabriXiao aims to provide an accessible platform for creating interactive textile projects, integrating sensors, actuators, and haptic feedback.

  • 🧩 Hardware licensed under CC BY-SA
  • 💻 Software compatible with Arduino IDE, CircuitPython, or MicroPython

🛠 Hardware

FabriXiao includes digital and analog I/O pins designed for wearables and textiles:

  • Digital I/O Pins: Up to 11
  • Analog Input Pins: 3–5 (depending on board version)
  • Power: 3.3V logic, USB-C for power and programming
  • Size: Ultra-compact, compatible with small textile projects
  • Microcontroller: RP2040 or ESP32-C3 (depends on version)
⚙️ Key Features
  • Tiny form factor for soft circuits and wearables
  • Supports I2C, SPI, UART communication
  • Compatible with NeoPixels, servos, and haptic actuators
  • Works with pressure sensors, capacitive touch, and resistive inputs
🎛 Inputs & Outputs

FabriXiao can interface with multiple sensors and actuators:

  • Inputs:
  • Pressure sensors (like the ones shown in the Fabricademy tutorial)
  • Capacitive touch sensors
  • Force-sensitive resistors (FSR)
  • Outputs:
  • LEDs / NeoPixels
  • Vibrating motors / haptic actuators
  • Relays and small actuators

It is designed to be sewn or integrated into fabrics, connecting sensors and outputs with conductive thread or flexible wires.

💻 Software
  • Programming languages: Arduino C/C++, MicroPython, CircuitPython
  • IDEs: Arduino IDE, Thonny, or VS Code with PlatformIO
  • Supports libraries for sensors, NeoPixels, and haptic feedback
  • Easy integration with serial communication for debugging or PC control
📚 References

References & Inspiration

skin-electronics-cp-moodboard Skin Electronics inspiration moodboard by Carlotta Premazzi


Process and workflow

Pressure / Sensor Matrix → ESP32-S3 → OSC → Processing → TouchDesigner

Sensitive-Matrix-5x1-montage Sensitive-Matrix-5x1 Sensitive Matrix 5x1 by Carlotta Premazzi Sensitive-Matrix-5x1 Schematics Sensitive Matrix 5x1 by Carlotta Premazzi

📁 Files

  • Matrix_1x6_ESP_OSC_5-dic-2025.ino — ESP32-S3 code (OSC sender)
  • PRO_pressure_1x6_matrix_vis_grey.pde — Processing visualization
  • NewProject.1.toe — TouchDesigner OSC receiver & mapping

🧩 Overview

This project enables the creation of a touch-sensitive or pressure-responsive matrix using 5 analog sensors, processed by an ESP32-S3, visualized in Processing, and mapped in TouchDesigner.

Workflow

The sensors are read through analog inputs, processed by the ESP32-S3, and transmitted wirelessly using OSC:

TOUCH / PRESSURE

COPPER TAPE SENSOR

Xiao ESP32-S3 Reads Analog Signal

OSC Message via WiFi AP

Processing (real-time visualization and debug)

TouchDesigner (creative mapping and interaction)

⚙️ 2. Hardware

Components

  • Seeed Studio Xiao ESP32-S3
  • 5 analog sensors (copper tape, force-sensitive, capacitive, etc.)
  • Insulating tape
  • USB cable, wires, solder
  • Soft material (foam, neoprene, felt) for pressure layers
  • Computer with Wi-Fi(Windows/Mac/Linux)
Why Only 5 Sensors? — Important Technical Note

The ESP32-S3 (especially the Xiao variant): - does not support analog input on all pins
- has pins tied internally to USB, flash memory, PSRAM, or boot mode
- becomes unstable with high-impedance sensors
- may crash or reboot when using incompatible pins

✔️ Stable ADC Pins Used

Sensor Physical Pin GPIO ADC Channel
S1 1 GPIO1 ADC1_CH0
S2 2 GPIO2 ADC1_CH1
S3 3 GPIO3 ADC1_CH2
S4 4 GPIO4 ADC1_CH3
S5 5 GPIO5 ADC1_CH4

Pins 6–10, 33–35 are avoided due to noise or internal conflicts.

🟠 4. Sensor Wiring

Each copper sensor wiring:

COPPER PAD → ANALOG PIN (S1–S5)

OTHER SIDE → GND

Tips for stability":
  • Isolate copper from the surface using tape
  • Add a 1 MΩ resistor to GND if using capacitive materials
  • Keep wires short to reduce noise

💻 5. Software Architecture

The project consists of three software layers:

Layer Description
ESP32 Arduino code Reads analog sensors and sends OSC messages
Processing sketch Real-time visualization of sensor activity
TouchDesigner Maps sensor data into audiovisual or interactive content

ESP32-S3 / Arduino IDE → OSC Transmission

File: Matrix_1x6_ESP_OSC_5-dic-2025.ino

ESP32 OSC Sensor – Arduino Example

/* ESP32 OSC Sensor – Arduino Example

Read 5 analog sensors on A0–A4, scale their values, and send them via OSC (Open Sound Control) over WiFi UDP to a PC (e.g., TouchDesigner). The ESP32 acts as a WiFi Access Point.

5-12-2025 by Carlotta Premazzi, Gulhelme Martins, Fabricademy

This example code is for educational purposes. */

include // ESP32 WiFi library

include // UDP communication library

include // Open Sound Control library

// ==================== // Global Variables // ==================== int sensorval1; int sensorval2; int sensorval3; int sensorval4; int sensorval5;

// ==================== // WiFi / UDP / OSC Configuration // ==================== const char SSID_AP = "espap"; // ESP32 AP name const char PASS_AP = "123456789"; // ESP32 AP password

// IP configuration for ESP32 Access Point IPAddress apIP(192, 168, 10, 1); // ESP32 IP IPAddress apGW(192, 168, 10, 1); // Gateway IP IPAddress apMASK(255, 255, 255, 0); // Subnet mask

// Destination IP and port for OSC messages IPAddress destIP(192, 168, 10, 255); // Broadcast IP (all devices) const uint16_t destPort = 8000; // Destination port (TouchDesigner)

WiFiUDP Udp; // UDP object

// ==================== // Setup // ==================== void setup() { Serial.begin(115200); delay(200);

// Configure ESP32 as Access Point with fixed IP
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apGW, apMASK);
WiFi.softAP(SSID_AP, PASS_AP);
delay(200);

// Debug output
Serial.println("AP active");
Serial.print("SSID: "); Serial.println(SSID_AP);
Serial.print("PASS: "); Serial.println(PASS_AP);
Serial.print("AP IP: "); Serial.println(WiFi.softAPIP());

// Start UDP on local port 9000
Udp.begin(9000);

}

// ==================== // Function to send OSC messages // ==================== void sendOSC() { OSCMessage msg("/touch"); // OSC address

// Add sensor values
msg.add(sensorval1);
msg.add(sensorval2);
msg.add(sensorval3);
msg.add(sensorval4);
msg.add(sensorval5);

// Send OSC message over UDP
Udp.beginPacket(destIP, destPort);
msg.send(Udp);
Udp.endPacket();
msg.empty(); // Clear message

}

// ==================== // Main loop // ==================== void loop() { // Read analog sensors A0–A4 and scale 0–1023 to 0–255 sensorval1 = analogRead(A0) / 4; sensorval2 = analogRead(A1) / 4; sensorval3 = analogRead(A2) / 4; sensorval4 = analogRead(A3) / 4; sensorval5 = analogRead(A4) / 4;

// Print sensor values for debugging
Serial.print(sensorval1); Serial.print("\t");
Serial.print(sensorval2); Serial.print("\t");
Serial.print(sensorval3); Serial.print("\t");
Serial.print(sensorval4); Serial.print("\t");
Serial.println(sensorval5);

// Send OSC message
sendOSC();

// Small delay (~20 messages per second)
delay(50);

}

  • Configure ESP32-S3 as WiFi Access Point (SSID: espap)
  • Read 5 analog values (A0–A4)
  • Divide values by 4 → 0–255
  • Send OSC messages on port 8000 via broadcast

Broadcast mode allows any computer in the network to receive OSC without setting an IP.

🔌 ESP32-S3 Setup — Step-by-Step

Arduino IDE Settings

  • Board: your ESP32-S3 module
  • Port: correct USB/COM
  • Upload speed: 115200 (stable)
  • USB CDC on Boot: disable if Serial fails
  • Install drivers → CP2102 or CH340
  • Wi-Fi must stay ON for stable boot

Serial Workflow

  1. Upload code
  2. Open Serial Monitor → Clear Output
  3. Close Serial Monitor
  4. Press RST
  5. Wait 1s before opening Processing

Processing → Real-Time Visualization

File: PRO_pressure_1x6_matrix_vis_grey.pde

Processing Visualization – 5 Analog Sensors A0–A4

/ Visualization of 5 sensors (A0–A4) Format: 1 row x 5 columns Each rectangle represents a sensor value. /

import processing.serial.*;

Serial myPort; int rows = 1; // 1 row int cols = 5; // 5 columns int totalSensors = 5;

float[] sensorValue = new float[totalSensors];

int rectW, rectH;

void setup() { size(600, 400);

// Rectangle dimensions
rectW = width / cols;
rectH = 100;

println(Serial.list()); // list available serial ports

// >>> CHANGE THIS INDEX TO MATCH YOUR SERIAL PORT <<<
myPort = new Serial(this, Serial.list()[9], 9600);

myPort.clear();
myPort.bufferUntil('\n');

background(255);
rectMode(CORNER);

}

void draw() { background(255);

int index = 0;

for (int x = 0; x < cols; x++) {
    fill(sensorValue[index]);
    rect(x * rectW, 0 * rectH, rectW, rectH);

    index++;
    if (index >= totalSensors) return;
}

}

void serialEvent(Serial myPort) { String inString = myPort.readStringUntil('\n');

if (inString != null) {
    inString = trim(inString);
    String[] values = split(inString, "\t");

    if (values.length == totalSensors) {
        for (int i = 0; i < totalSensors; i++) {
            int raw = int(values[i]);
            float mapped = map(raw, 0, 1023, 255, 0);
            sensorValue[i] = constrain(mapped, 0, 255);
        }
    }
}

}

  • Read sensor values via Serial (for calibration/debugging)
  • Display 5 rectangles (1×5)
  • Color intensity = pressure level

Useful for: - Hardware setup
- Workshop demos
- Sensor calibration

🎨 8. Processing Setup

  • Use Java mode
  • Find serial port with:

java println(Serial.list()); myPort = new Serial(this, Serial.list()[2], 9600); Add a 1-second delay before opening port

Visualization: 5 rectangle, Darker = more pressure


TouchDesigner → Creative Mapping

File: NewProject.1.toe

  • Receive OSC on port 8000
  • Parse address /touch
  • Output CHOP channels: touch0–touch4
  • Drive visuals, audio, geometry, shaders, or interactions

🎚️ 9. TouchDesigner Setup Guide

  • OSC In CHOP
  • Port: 8000
  • Broadcast: enabled
  • Address: /touch
  • Channels:touch0, touch1, touch2, touch3, touch4

Connect to:

  • Math CHOP (scale, smooth)
  • TOPs (visuals)
  • SOPs (geometry)
  • DATs
  • Audio CHOPs
  • GLSL shaders

Tools

Results

Video

Sensor Test at Biolab Lisbon

Reference

📚 Research Groups & Industrial Technologies

Rogers Research Group

  • Rogers Research Group (2015). Epidermal electronics research. University of Illinois at Urbana–Champaign.

Stretchable Electronic Skin

  • Someya, T., & Sekitani, T. (2015). Stretchable electronic skin systems. The University of Tokyo.

Wearable Skin Sensors


🖐 On-Body Interface Research

iSkin

  • Weigel, M., Lu, T., Bailly, G., Oulasvirta, A., Majidi, C., & Steimle, J. (2015). iSkin: Flexible, Stretchable and Visually Customizable On-Body Touch Sensors for Mobile Computing. Proceedings of CHI 2015.

NailO

  • Kao, H.-L. C., Dementyev, A., Paradiso, J. A., & Schmandt, C. (2015). NailO: Fingernails as an Input Surface. Proceedings of CHI 2015.

🩸 Skin as Display / Biosensing Tattoos


✨ DuoSkin – Temporary Metallic Tattoos as Interfaces


💄 Beauty Technology Projects (Katia Vega)

  • Hairware (2014) – Conductive hair extensions as capacitive sensors.

  • Blinklifier (2014) – Conductive makeup for eye-based interaction.

  • Winkymote (2014) – Infrared remote controlled by blinking.

  • Kinisi (2015) – Facial expression wearable interface. MIT Media Lab.

  • TechNails (2015) – Interactive nails for ambient interaction.

  • Gimmickiano (2015) – Body-based musical interface.

  • AquaDJing (2015) – Water-reactive DJ interface.

  • Interactive Carnival Masks (2016) – MIT Media Lab.


👩‍💻 Additional Profiles


🛠 Online Tools & Libraries

  • Adafruit Industries (2016) – LED Masquerade Mask tutorial.

  • Adafruit Industries (2016) – PN532 NFC/RFID Arduino library.

  • BeautyTech NFC Twinkle Nails (2015) – GitHub repository by Vega.

  • Hairware code repository (2015) – GitHub repository by Vega.


Lecture on December 2th, 2025, Global Instructors: Katia Vega * Global Tutorial: Emma Pareschi * Local Instructors: Guilherme Martins


Student checklist

  • [ ] Document the concept, sketches, references also to artistic and scientific publications
  • [ ] Design a “skin-circuit”, exploring the replication of the examples bewlow or: -- [ ] the Skin masquerade party project -- [ ] the Twinkle Nails project -- [ ] interactive tattoo -- [ ] explore how to create a new skin electronics accessory.
  • [ ] Document the project and included all source files and all materials used
  • [ ] Upload your design files and source code
  • [ ] Make a video with your skin electronic working
  • [ ] Make a short performance/concept of your project functioning (extra credit)