9. WEARABLES¶
.. in progress
Introduction: What Are Wearables?¶
Wearables are interactive objects or garments worn on the body that integrate technology, electronics, and textiles. They respond to the body or the environment and generate feedback through light, movement, heat, sound, or digital communication. Wearables extend the functionality of clothing—ranging from aesthetic effects to close-to-the-body interactions such as haptics or sensory feedback.
3 Main Categories of Wearables¶
Wearables can be broadly grouped into 3 functional areas:
- Visual Wearables (Light-Based Outputs)
This category includes LEDs, neopixels, fiber optics, and thermochromic materials that create visual effects or cause patterns and colors to change.
- Motion Wearables (Movement & Shape Change)
Motion is produced through actuators such as shape memory alloys (SMA), heating wires, or flip-dots, which bend, curl, fold, structure, or magnetically switch materials.
- Haptic & Sonic Wearables (Touch & Sound)
These include vibrotactile motors, textile speakers, and other feedback systems that generate haptic sensations or sound directly on the body.
Assignment – Tasks for This Week¶
For this Wearables week, you will create a total of 3 swatches:
1. Two Actuator / Output Swatches¶
Each swatch should be intentionally designed to be worn on the body.
Examples include: - Neopixel swatch - SMA (Shape Memory Alloy) swatch - Thermochromic heat sample - Flip-dot module - Vibration motor swatch
Each swatch should be tested using the microcontroller of your choice.
2. One Swatch with Input & Output¶
This swatch must include one sensor (input) and one actuator (output) of your choice. It must be intentionally designed as a wearable piece that can be worn on the body.
Example combinations: - Stretch sensor → LED - Button → Vibration motor - Light sensor → Neopixel - Soft pressure sensor → SMA element
INSPIRATION & REFERENCES¶
JOANNE PETIT FRERE¶
Joanne Petit-Frère is a sculptor & conceptual artist whose work blends hair architecture, adornment, & diaspora traditions. She creates intricate braided structures & wearable sculptures that explore identity, ritual & form — often activated through performance.
YING GAO¶
Ying Gao is a Montreal-based fashion designer & professor whose experimental work blends fashion, product design, & media technology. Exhibited internationally & featured in major publications like Vogue & The New York Times, her designs explore clothing as a responsive, transitional space shaped by social & urban environments.
LISA JIANG¶
Fashion & Illustration
Lisa Jiang is a London-based fashion designer & illustrator specializing in wearable kinetics — fashion that integrates movement, structure, & dynamic form. She studied Fashion Design Womenswear at the renowned Central Saint Martins & has since been developing innovative concepts at the intersection of fashion, technology, & performance.
I met Lisa during my internship at Iris van Herpen in Amsterdam.
Instagram: Lisa Jiang www.lisajiang.co.uk
BEHNAZ FARAHI¶
Behnaz Farahi is an Iranian-American architect & designer known for her interactive wearable technologies. such as a 3D-printed garment that responds to the viewer’s gaze by opening & closing its surface — exploring the relationship between technology, perception, & the body.
ANOUK WIPPRECHT¶
Anouk Wipprecht is a Dutch FashionTech designer who merges fashion with robotics, sensors, & microcontrollers to create interactive “technological couture.” Her pieces move, react, & communicate with the environment, turning clothing into intelligent systems. Her Spider Dress is a key example, using sensors & robotic arms to protect personal space. She collaborates with companies such as Intel, Google, Microsoft, & Audi, & works internationally between the US & Amsterdam.
www.anoukwipprecht.nl instagram: anoukwipprechtt
WILLIAM DARRELL¶
William Darrell is a kinetic artist who creates mechanical sculptures inspired by organic life forms & cosmic phenomena.
instagram: williamdarrell Thangs: William Darrell
CASEY CURRAN¶
Casey Curran is an artist known for his intricate hand-powered kinetic sculptures that explore the hidden structures of nature & existence. His works animate delicate systems of flora & fauna, inviting viewers to activate & experience them. Combining ornate craftsmanship with precise mechanics, his sculptures reflect themes of pattern, chaos, & emergence.
Curran has also collaborated with Iris van Herpen, creating kinetic elements for her haute couture collections, where his mechanical artistry merges seamlessly with her experimental fashion design.
www.caseycurran.com Instagram: Casey Curran
IDEA & CONCEPT¶
Anemone Reef on the Chest OceanHeart / Heartreef
For this assignment, I envision creating an “Anemone Reef on the Chest”— an interactive, body-worn organism that gently moves & glows with a soft, pulsating light. Placed over the heart, it mirrors the quiet rhythms of the body: expanding, contracting, shimmering—almost breathing with you.
Sea anemones are animals disguised as flowers— organisms that blur the boundaries between motion & stillness, between instinct & aesthetics. By placing their gentle forms on the chest, this wearable explores the dialogue between human physiology & marine biology. The soft movement & pulsing light recreate the subtle behaviors of these creatures, turning the body into a host ecosystem where human & anemone rhythms intertwine.
This project ends where contradiction begins: the most organic forms recreated through the most artificial means. Placing this technological organism on the chest reveals how naturally we welcome technology into intimate spaces— even AI— when it moves, pulses, & behaves like something alive. It makes us question what “natural” really means when machines can echo the rhythms of life so convincingly.
//
In the end, the piece carries a quiet paradox: the attempt to recreate something profoundly organic through technology. The anemone—soft, breathing, alive—is embodied here through code, circuits, & artificial intelligence.
& yet, when worn close to the heart, it feels strangely natural, as if the boundary between organism & machine softens for a moment. It reminds us how readily we allow technology to come close to us— even closer than we ever expected— simply because it learns to imitate life so well.
entering a state of calm attention— as if you are sharing a quiet conversation with another "living" being, not through words, but through movement, rhythm, and presence. .....
THE MODEL¶
I generated the anemone forms partly from my own reference photos & partly from images that I processed & transformed into 3D models using Studio.Trip.
Afterwards, I imported these models into Rhino & created a negative mold, which I then 3D-printed in PLA using Cura as the slicer.
For the material, I initially chose silicone. Its texture & flexibility come very close to the natural qualities of sea anemones. The silicone I’m using is translucent to semi-transparent, which allows each element to be illuminated from within.
As for natural alternatives—such as alginate-based bioplastics—they unfortunately require long curing times & tend to shrink significantly during the drying process.
THE PLACEMENT¶
THE TECHNOLOGY¶
1. VISUALS¶
Light Design¶
For the visual component, I chose to use Neopixels because they allow precise, individual control through an Arduino. With them, I can trigger each light separately, create soft pulsations, &generate the exact color atmosphere I want.
This makes Neopixels ideal for mimicking the subtle, breathing glow of anemones.
I created the Arduino code for controlling the Neopixels with the help of ChatGPT, which allowed me to quickly develop &adapt the animations & light behaviors.
Technical Setup¶
For this wearable, I am programming a set of 10 Neopixels using the Arduino IDE / Seeed XIAO RP2040.
The lighting design is inspired by the original colors of real sea anemones: a soft, organic color palette based on beige, cream, rose, anthracite, & dove blue.
Pixels 1 to 5 each transition between 2 colors from this palette, creating gentle, pulsating animations in different rhythms.
Starting from Pixel 6, the sequence repeats (Pixel 1 = Pixel 6, Pixel 2 = Pixel 7 …), keeping the pattern balanced across the full set of LEDs.
example:¶
Pixel 1 fades gradually between cream & dove blue in a 3-second cycle, brightening & dimming in a soft pulse, followed by a short pause before the loop restarts.
This creates a calm, breathing light effect—echoing the slow, hypnotic movements of sea anemones.
SET UP¶
10 Neopixels on a Seeed XIAO RP2040, with:¶
- 10 LEDs
- Pixels 1–5 each have their own color pair + speed
- Pixels 6–10 repeat 1–5
- Pixel 1 (& 6) = cream ↔ dove blue, 3-second pulsing cycle
All in a soft palette: beige, cream, rose, anthracite, dove blue You can paste this directly into the Arduino IDE.
Before upload:¶
- Install Adafruit NeoPixel library
- Set the correct LED_PIN to whatever pin your Neopixel data line is connected to.
COLOUR CODE¶
Wiring Overview Table¶
Power & GND¶
| # | From (Component & Pin) | To (Component & Pin) | Purpose / Note |
|---|---|---|---|
| 1 | Powerbank | XIAO RP2040: USB C | Supplies Power to XIAO |
| 2 | 5V | Driver VM | voltage input (9V) |
| 3 | - | Driver GND | Shared ground with entire system |
| 4 | Battery | XIAO 9V | Shared ground with entire system |
NeoPixels¶
| # | From | To | Purpose |
|---|---|---|---|
| 5 | XIAO D0 | NeoPixel Strip DIN | Data signal for all 10 NeoPixels |
| 6 | XIAO 5V | NeoPixel 5V | Power supply |
| 7 | XIAO GND | NeoPixel GND | Data signal reference |
Button¶
| # | From | To | Purpose |
|---|---|---|---|
| 8 | XIAO D2 | Button + | Input pin for button (with INPUT_PULLUP enabled) |
| 9 | Button – | XIAO GND | Connects D2 to GND when pressed |
Motor + Driver Bridge¶
| # | From | To | Purpose |
|---|---|---|---|
| 10 | XIAO 6 | Driver PWMA | PWM signal (controls motor speed) |
| 11 | XIAO D6 | Driver STBY | Enables driver (HIGH = active) |
| 12 | Driver AO1 | Motor + | Motor output |
| 13 | Driver AO2 | Motor – | Motor output |
| 14 | Driver AIN1 | XIAO D9 | Motor direction / terminal 1 |
| 15 | Driver AIN2 | XIAO D10 | Motor direction / terminal 2 |
| 16 | Driver GND | System GND / XIAO GND | Common ground for stable operation |
| 17 | Driver VCC | XIAO 3.3 V | Logic voltage for clip |
Toggle DC Motor with Button (Debounced) - XIAO RP2040 — TB6612FNG¶
- Press button → Motor ON
- Press button again → Motor OFF
- Debounce included
- Safe standby handling
- PWM speed = 255 (full speed)
THE CODE |¶
/**
* Project: Motor Toggle Control (TB6612FNG + XIAO RP2040)
* Behaviour:
* - On each button press -> toggle motor ON/OFF
* - Uses INPUT_PULLUP (button to GND)
* - Full speed (PWM = 255)
*
* Hardware:
* - DC Motor on TB6612 Channel A
* - TB6612FNG driver
* - Seeed XIAO RP2040
*
* Wiring (Pins below):
* PWMA = Motor PWM (speed)
* AIN1/AIN2 = Motor direction
* STBY = Enable TB6612
* BUTTON = GND when pressed
*/
#define PWMA D6
#define AIN1 D9
#define AIN2 D10
#define STBY D7
#define BUTTON D2
// Button + motor state
bool motorOn = false;
bool lastButtonState = HIGH; // Because of INPUT_PULLUP
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 50; // ms
void setup() {
// Motor driver pins
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(STBY, OUTPUT);
// Button via INPUT_PULLUP (active LOW)
pinMode(BUTTON, INPUT_PULLUP);
// Enable TB6612FNG
digitalWrite(STBY, HIGH);
// Initial motor OFF
updateMotor();
}
void loop() {
bool reading = digitalRead(BUTTON);
// Button changed? Start debounce window
if (reading != lastButtonState) {
lastDebounceTime = millis();
}
// After debounce delay, process a stable state
if ((millis() - lastDebounceTime) > debounceDelay) {
static bool stableButtonState = HIGH;
// Only react to changes in STABLE state
if (reading != stableButtonState) {
stableButtonState = reading;
// LOW = button pressed (INPUT_PULLUP)
if (stableButtonState == LOW) {
motorOn = !motorOn; // toggle motor state
updateMotor();
}
}
}
lastButtonState = reading;
}
/**
* Applies motor state:
* - ON: direction forward + max speed
* - OFF: PWM=0 (coast)
*/
void updateMotor() {
if (motorOn) {
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 255); // full speed
} else {
analogWrite(PWMA, 0);
}
}
Wiring Guide¶
| Component | Pin |
|---|---|
| XIAO D6 → | TB6612 PWMA |
| XIAO D9 → | TB6612 AIN1 |
| XIAO D10 → | TB6612 AIN2 |
| XIAO D7 → | TB6612 STBY |
| XIAO D2 → | Button → GND |
| XIAO 3V3 → | TB6612 VCC |
| XIAO GND → | TB6612 GND |
| Step-Down + | TB6612 VM |
| Step-Down – | GND (shared) |
| TB6612 A01 → | Motor + |
| TB6612 A02 → | Motor – |
All grounds MUST be shared (XIAO GND ↔ TB6612 GND ↔ Power supply GND)


























