Final Project#

MY FINAL PROJECT! For me it was already clear since the wearable II class that my final project will have to do with optical fibers. I thought long and hard about how optical fibers could be used. The final inspiration came from a visit to the Kunstgewerbemuseum (museum of Arts and Culture) in Berlin. There I was fascinated by the exhibition about fashion of the 18th century. The hoop skirts shown there gave the decisive “flash of inspiration” to my idea.

Foto © bpk - Bildagentur / Kunstgewerbemuseum, Staatliche Museen zu Berlin - Preußischer Kulturbesitz / Stephan Klonk │

Large hooped skirts were given a flattened, oval shape by means of internally attached tie bands, which gave the robe à la française its typical, laterally projecting silhouette.

While doing my research, I came across a funny video. On the subject: “How do I actually sit down correctly in a hoop skirt? As a small introduction to my topic :)

How to Sit in a Hoopskirt from Jennifer Rosbrugh on Vimeo.

On my pinboard I have recorded all inspirations on the subject of hoop skirts.

With all these wonderful impressions I have sketched what I have in mind, tried to collect all these impressions and ideas and capture them visually.

1 Research#

My research has focused on how a hoop skirt is constructed and what kind of materials it can be made of. And of course the big question how optical fibers can be integrated.

In my designs for the final project, I would like to incorporate as many techniques and methods as possible that I have tried and learned over the last few months through the Fabricademy classes.

To get a first idea of my design, I made a prototype with paper, scissors, wooden sticks and hot glue.

With this first prototype of a construction of the hoop skirt it was important for me to understand how this construction works. Which hoop is supported by what and which materials will be necessary. It was very helpful for me to try out these first designs in practice, so I could see, for example, that the top ring of the skirt had to be oval at best and also with an easy to open closure to be able to put it on better.

In the next steps I have to think about my persona and this hoop skirt. Why does my persona need a dress like that? And what does she think is good or bad about it?

2 What about my Persona?#

In the implications and applications class I created a persona and tried to highlight the needs for a new product.

The challenge now is to combine the areas “safety” and “fashion” and create a product for the persona that covers these needs.

The idea is to illuminate a belt/ribbon with optical fibers. This can be worn in road traffic / everyday / cycling. As an optical highlight, as a “icing on the cake”, this “safety belt” can be extended with an impressive illuminated hoop skirt. This hoop skirt could be attached to the belt with Velcro, buttons or magnetic fasteners.


I would like to design something that not only has a benefit or functionality, but also an aesthetic claim.

Something modern that picks up on the hoop skirt and reinterprets it.

Something daring, an eye-catcher!

3 Workflow timetable#

In this first timetable I wrote down my work packages and milestones. It was important for me to have enough time for the revision of the prototype and for the test phases.

4 Materials#

My project consists of three major core areas. The construction of the hoop skirt, the electronic components and the design of the dress. For these three parts I have listed the materials I need.

4.1 Hoop Skirt#

The rings were made with a 3D printer. The BigRep uses PLA, which is a biodegradable and recyclable plastic.

4.2 Electronic components#

4.3 Garment design#

5 Hoop skirt#

5.1 Testing 3D printing#

Here you can see the 3D printing process of the hoops. You can also download the stl-files for the 3D printer.

Big Rep Hoop Print from ViNN:Lab on Vimeo.

Here you can see the 3-D print of the top ring. An integrated hinge has been designed to make it easier to put it on and take it off.

In addition, cut-outs for the press buttons were integrated, in order to fasten later the vinyl petticoat.

This is the finished printed top ring with integrated hinge and glued snap fasteners.

5.2 Illuminate the skirt#

These are the first tests to light up the optical fiber in the hem of the vinyl. The program code was transferred to an Arduino Nano and tested with a high power RGB LED. During the tests it became clear that this LED gets too warm. Therefore I changed to the sewable and solderable neopixels during the further tests. These are not quite such bright, but still manage to make the optical fiber glow.

hoop skirt lightning from ViNN:Lab on Vimeo.

6 Electronics#

I used a green high power LED 3W for my first experiments with the side-emitting optical fiber. The lighting result was great.

The first experiments to control my LED`s were done with an Arduino Nano. For the later implication into the garment a more compact microcontroller will be used.

Next I tried to control the optical fibers from two sides with two different colored LED´s . With the Arduino the intensity of the LED`s can be controlled and so a lateral movement in the color gradient is created.

The problem with the high power LED is the radiating heat. So I looked around for alternatives. I tested Neopixels and the Lulu-Board from kobakant. I sewed both versions into the fabric.

6.1 Experiments with LULU#

Lulu project by Maurin, Mika and Hannah (2016-2019)

On the Webpage of kobakant you can have a look at their fabulous LULU board. Its a cooperation with Maurin Donneaud.

And here you can watch out the LULU webpage

I did first experiments with it and connected optical fibers. The program code is delivered by an Arduino. I used a Gemma for the sewn-in variant.

Next a prototype for an adapter will be designed and printed in 3D. This adapter should optimize the connection between the board and the optical fiber.

Here you can download the stl-file of the adapter to connect the LULU with the optical fiber.



The first attempts with the Lulu boards were with an Arduino and the Breadboard. A program code made the LEDs in the Lulus flash.

kobakant_lulu_test_optical fiber from ViNN:Lab on Vimeo.

Then I sewed a Lulu board into a piece of fabric. I used Karl Grimm yarn. A Gemma board delivered the program code and made the optical fiber connected with the adapter glow. You can see this here in the video.

6.2 Experiments with neopixels#

Next I tried two variants of neopixels, to solder and to sew in. Both are connected in series and controlled by a program code on the Gemma-board. The program code contains a flashing of the RGBs in different intervals.

Therefore two adapters were constructed (for the sewable and for the neopixels to be soldered). These adapters optimize the connections between the neopixels and the optical fibers and prevent a scattering loss of the light.

7 The design of the garment#

My inspiration :)

Alexander McQueen (British, 1969–2010) Ensemble Eshu, autumn/winter 2000–2001 Dress of beige leather; crinoline of metal wire Courtesy of Alexander McQueen Photograph © Sølve Sundsbø / Art + Commerce

Last week I spent a morning in the fashion studio with Anke from fashionschool and discussed my first hoop skirt ideas. We talked about different materials and ideas for the integration of my optical fibers. The result of my first prototype is a complete reinterpretation of a hoop skirt. As upper material for the skirt I used Vinyl and cut the skirt out of one piece so that no stitching is necessary.

The optical fibers are attached to the hem.

In the next steps I will integrate more tires and test different methods. One variant is made of bendywood, a very flexible hardwood. Another variant is made of plastic with the 3D printer.

I also have to decide how I want to place the electronics in the most inconspicuous way possible. The current consideration is a side-mounted bag, also made of vinyl.

The second big and inspiring meeting was on the theme of “upper material of the dress”. Alexander McQueen with his fantastic dress (see picture) gave the decisive inspiration. I wanted to create something that was both veiled and provocative. Something that is both traditional and innovative. I chose an imitation leather whose brown colour reminds me of the characteristic wrapping paper, but at the same time it falls into folds, reminiscent of traditional historical garments. Due to the asymmetrical shape, only half of the hoop skirt is covered and the construction of the skirt remains visible. The vinyl petticoat creates more volume and the radiating light of the LEDs reflects in a special way.

The last big meeting with the sewing crew was the final fitting of the dress. The dress was made of one piece of fabric and sewn only at the waist under the arm.

7.1 The final finishing of the garment#

The complete outfit consists of three components: The construction of the hoop skirt, the electronics and the design of the garment. The last step is to join these three parts together.

Step 1: The construction of the hoop skirt is fixed to the doll. The top ring is printed with a hinge to make it easier to put on. Hot glue is used to fix the Velcro straps. The hoop skirt is foldable and transportable. The top ring is equipped with an optical fiber.

Step 2: The vinyl petticoat is attached to the top ring with the snap fasteners. The optical fiber is sewn into the hem with nylon yarn. The adapters for the Neopixels are fastened at the ends.

Step 3: The dress is pulled over this construction. A Gemma board with two sewable neopixels is integrated below the neckline using conductive yarn.

Step 4: The Gemma boards are powered by 3 power banks.

20190320_124700 from ViNN:Lab on Vimeo.

8 List of materials#

Qty Description Price Link Notes
1 Vinyl 30 EUR local shop 2 meters
1 optical fibers 45 EUR Amazon 5 meters
1 Arduino nano 20 EUR (local shop)
5 High Power LED 8 EUR Amazon
5 Neopixels, sewable 10 EUR adafruit
10 Neopixels 20 EUR adafruit
3 Gemma Board 30 EUR adafruit
1 PLA filament 16 EUR 3DK Berlin 320 g
1 conductive thread 4 EUR (local shop) 10 meters
1 velcro tape 5 EUR local shop 3 meters
6 snap fasteners 4 EUR local shop
3 Powerbank 30 EUR Amazon
1 artif. leather 30 EUR local shop 2 meters
1 Nylon Thread 2 EUR local shop 10 meters
1 kobakant lulu kobakant
5 elec. resistance 2 EUR

10 Code for the LULU#

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>

#define PIN 6

// Parameter 1 = number of pixels in strip
// Parameter 2 = Arduino pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

void setup() {
  // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket
  #if defined (__AVR_ATtiny85__)
    if (F_CPU == 16000000) clock_prescale_set(clock_div_1);
  // End of trinket special code

  strip.begin();; // Initialize all pixels to 'off'

void loop() {
  // Some example procedures showing how to display to the pixels:
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
//colorWipe(strip.Color(0, 0, 0, 255), 50); // White RGBW
  // Send a theater pixel chase in...
  theaterChase(strip.Color(127, 127, 127), 50); // White
  theaterChase(strip.Color(127, 0, 0), 50); // Red
  theaterChase(strip.Color(0, 0, 127), 50); // Blue


// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    strip.setPixelColor(i, c);;

void rainbow(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));

// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;

  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));

//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on


      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off

//Theatre-style crawling lights with rainbow effect
void theaterChaseRainbow(uint8_t wait) {
  for (int j=0; j < 256; j++) {     // cycle all 256 colors in the wheel
    for (int q=0; q < 3; q++) {
      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, Wheel( (i+j) % 255));    //turn every third pixel on


      for (uint16_t i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off

// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  WheelPos = 255 - WheelPos;
  if(WheelPos < 85) {
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  if(WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  WheelPos -= 170;
  return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);

11 Code for the NEOPIXEL#

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#define PIN 1
// constants won't change. They're used here to 
// set pin numbers:
int LED=8;
const int ledPin = 1;     // the number of the neopixel strip
const int numLeds = 8;
int helligkeit= 100; 
Adafruit_NeoPixel strip = Adafruit_NeoPixel(6, PIN, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(6, ledPin);
//Adafruit_NeoPixel strip = Adafruit_NeoPixel(numLeds, ledPin, NEO_GRB + NEO_KHZ800);

void setup() {
  strip.setBrightness(100); // 1/3 brightness ;
void loop() {

  strip.setPixelColor(0, 255, 0 , 0);
  strip.setPixelColor(1, 0, 255, 0);
  strip.setPixelColor(2, 0, 0, 255);
  strip.setPixelColor(3, 255, 0,255);
  strip.setPixelColor(4, 0, 255, 255);
  strip.setPixelColor(5, 255, 255, 255);
  strip.setPixelColor(6, 255, 0, 0);
  strip.setBrightness(150); ;
  delay (500);
  strip.setPixelColor(0, 255, 0 , 0);
  strip.setPixelColor(1, 0, 255, 0);
  strip.setPixelColor(2, 0, 0, 255);
  strip.setPixelColor(3, 255, 0,255);
  strip.setPixelColor(4, 0, 255, 255);
  strip.setPixelColor(5, 255, 255, 255);
  strip.setPixelColor(6, 255, 0, 0);
  strip.setBrightness(1); ;
  delay (500);

12 pitch presentation#

The pitch presentation was part of the Review of prototyping and shows the first milestone in the process to the final product.

13 review of storytelling#

During the review of storytelling the focus was on the presentation technique and the further development of the prototype.

14 What happened to the persona again?#

Finally, we summarize the need of the persona again: A product that combines fashion and function!

Here we see the result: A dress that can be easily folded and even transported by bike. The top ring of the Hoop Skirt functions as an illuminated safety belt when cycling.

Just watch the video and you’ll see what I mean.

Hoopskirt by bike from ViNN:Lab on Vimeo.

15 final presentation#

Final presentation eva ismer from Eva Ismer

Thank you#

I would like to thank Anastasia and Cecilia for the great time during the Fabricademy. I got so many great impressions and learned so much!

Many thanks also to Adriana for all the valuable hints and support.

Thank you ViNN:Lab team, Isabel, Hans… 1000 thanks for everything!

I would like to thank Anke from fashionschool especially. For all the inspiration, for the courage and for the competent and creative help with the realization of the final dress.