In-Sync: Digitisation Process (Part 2)

In case you are interested, you can find part 1 here!

Let’s make some fabric sensors !

First off, all credit to kobakant, for their amazing work. Superb repository! I am not going to talk about how this thing works, because I didn’t invent it, and also they do it much better. Hard-soft connections can be found here.

Cooking Ingredients:

  • Arduino Megas x2
  • Homemade fabric sensors
  • Touchdesigner
  • Lots of patience
  • Wood
  • Tough fabrics, used curtains in this case
  • Velostat and conductive thread
  • Lots of wires
  • Computer

Let’s try with RF shielding fabric

So to make a big mat for the final seat, of course it would be prudent to make small ones, like 3 times smaller to be exact. Some quick sewing and soldering and we are off to the races, with the WRONG material. I was just trying to be cheapskate and resourceful at the same time; used some ‘RF’ shielding material. From the test below, clearly it didn’t work. It was basically a big fat switch.


Ordered some velostat, and yes! It works.. kinda. Now just have to scale it up accordingly.

Time for the real stuff.


First design, I am just going with the flow and trying my best to construct a logical design. The wires come together at the end for a soft-hard transition, for easy wire connection.


Make it straight

Important to keep the threads straight and hot-gluing them to keep in position. Also, don’t forget to always leave the extra lengths of threads on until AFTER you hot glue everything. Only trim when the hot glue is set, duh…


Soft-to-Hard transition

First decent finished piece!

Obviously, this wasn’t the first full piece I made. In fact, the third. Few things I picked up. The conductive thread shouldn’t be too thick; makes it hard to do everything. Ideally 2-ply would do. And always leave plenty of thread at the end for easy soft-to-hard sewing. Experimenting with 2-3mm stitch spacing, I felt that 2mm gives a neater result, and doesn’t really use much more thread; not sure about thread usage actually πŸ™‚ .. Also, I made the terminals face same direction for both pieces, for obvious reasons …


Hot-glue keeps it neat

Yes, hot glue does solve everything in this case. I really don’t think it’s possible to make a reliable product if you choose this type of connection.


Buttons for easy removal

To ‘attach’ all three pieces together, I decided against stitching as I wanted to make the pieces as serviceable as possible. So I used buttons instead. This way I can simply button the sensor onto the chair seat.


Positioning on seat

Positioning by eyeball, I am guessing most people will sit at the bottom 1/3 of the seat, and also because my sensor is only 27 x 27cm; due to the size of velostat I could procure. But I figured technically I could cut out strips of velostat and sew them onto the stitching, so I could increase the mileage of the velostat use. I’m playing it safe though as time was tight.


Slits for cable relief

Slits are required for the terminal ends to hang loosely so that nothing breaks when 100s of pounds are applied onto the sensor. Small strips of fabric are used to reinforce the sides of the slits in an opposing direction.


Fitting complete !

Sitting on it and not breaking anything was a sign of relief. Now I just need to go through the whole process and create the second piece.


Top layer for beauty sake

Before I could test run, I had to solder lots of wires; nope, the crimped ones aren’t going to cut. I ran a count, and am proud to say that I did over 100s of soldered joints by the end of the project. But I still had to rely on hot glue πŸ™‚

Lots of connections in this batch; 96 in total!


Here you can see it kinda works, it’s a little noisy and off in accuracy at certain parts. But otherwise I am glad that something even flashes..


Piece 2

New layout; maximize wire spacing ?

As I am making another set, why not have some fun and experiment a little? So I decided to try out a new layout and see if I can notice any tangible difference. Here the layout is for maximizing wire spacing, so that I can delay the tiny spacing as long as possible, but it does burns your pockets…


Practice makes perfect?

Getting neat and tidy joints take time; 1-2 hrs on average!

All done, hot glue to tie up everything

new layout all done, last piece as well!


Lessons learnt from sewing 6 pieces of these things.

no knot necessary?

Tying knots mean the thread length needs to be more, which equals extra cost. So being cheapskate me, I struggled with tying knots while having short ends. But I realized that you can get away by just having it loosely looped while pulling it through, but does require a finer touch.


needle just needs to pull thread thru


Tie a knot! You can never tie too many knots when you are doing e-sewing.

be sure to tie a knot !

wala! second set done

I must say, this second set seems much improved. In appearance I mean.


Second set integrated onto chair, support strips added at wire terminal areas

Last stretch, the sensor is integrated and we are done


makeshift arduino platform, with barebones cable relief

Simple makeshift board for mounting the megas, with tremendous cable management and strain relief.


cables start and end wires labeled for easy install


Software is eating the world

But mine doesn’t. Touchdesigner is all the rage these days, and I have no intention of bucking the trend.

Bird’s eye view of the whole setup

I try to modularise as much as I can so that the logic can be made/fixed independently, OOP style, so to speak.

This module simply receives data from Arduino and converts it into a usable format. TD is receiving the serial data in rows, as I tried sending all 121 values all at once but doesn’t play well.


The data is pretty noisy, partly because I believe of the many imperfections of the homemade sensor, and also the lack of calibrated tests based on the conductive threads I used. In short, lots of data fixing before it’s in usable form.


This part is simply to automate the process of changing instruments/sample combinations every set interval, so that I don’t have to pay someone to sit there and press a button. Also, I can experiment with combinations and add/remove them easily.


Many connections, but it’s because we are dealing with 2 chairs, and each chair’s sensor has 9 spots that correspond to 9 different sound files. TD makes it easy, and very fast as well.


Here the sound files are switched out according to what combination is selected. Again, TD has made it easy; here I am switching between 9 sound files x 8 combinations = 72 files, all achieved with some dragging and dropping.


Here the outputs from the sensor visualisation are combined, and I have added a ‘watercolor fx’ just for added visual interest. and partly because the iMac has enough muscle to run everything at 60fps.



The day has come for showcase !


Special mention(again):
Sensor Fabric based on work & research by Kobakant

Special thanks to:

  • Interactive Spaces Class of 2020 Sem 1
  • Prof. Kristy
  • Prof. Dejan
  • Bryan Leow
  • Poh Zhang Yu
  • Man Wei (videography!)
  • Phenomenal staff at SPMS Making and Tinkering Lab, for technical and logistical support.

Thanks for dropping by!

Iteration: In-Sync


  • transmission of touch was limited to only sitting up and down
  • sound was almost non-existent
  • distance was too close for much impact


  • overhead shelter that doubles up as simple mode of interaction; grid of free-moving leaves above, supported by net-like structure, users can tug on the net either side, like a primitive and limited form of interaction
  • a double sided acoustic guitar in the middle, strummable from both sides
  • sonification of movement; use of pickups to amplify movement sounds, strategically placed on the undersides of the seating area and cloth
  • responsive musical chair; could encourage users to ‘play’ with the seat more, use of fabric sensing grid
  • digitalisation of communication cone.

Fabric Sensing grid (

design sketches

possible location


In Sync – Process (Part 1)


I started the design in CAD, after having a loosely similar sketch. In the first iteration, the sitting area was much wider, basically a 1m x 1m square. After all the design was done, I prepared a cutlist, and upon realising the ridiculous amount of wood the design required, I had to go back to the digital board and do major revisions.

Design Iteration 1

I first down-sized the sitting space to a cosy 60cm x 60cm square, and reduced the number of legs. I was pretty confident this amount of wood was structurally sound, as I have made sofas of similar design before(actually slimmer in design). I was very relieved when the updated cutlist reflected an almost 30% reduction in wood requirements. On hindsight, I am glad I downsized the structure as the timeframe was challenging enough as it is.

Design Iteration 2


The building of this project took place over an intense five days, at least for me.. But it was great to do some building from time to time, and I am proud to share my process..

The wood was all sourced kindly from the IM room; alas there were many twisted ones, but as a lot of my construction used short lengths, much of the twist was mitigated as I processed and glued them up. Also, I would like to add that the whole process involved no heavy machinery, πŸ™‚ only a cordless drill and sander.

Cut planks to length

Measuring, cutting alone took a full day, in total there were close to 80 pieces, derived from about 6 x 2.4m planks. Then the planks were fitted, cut and glued according to the CAD design.

Glue planks for strength

When one half of the frame was done, a dry fit was done to make sure that the translated CAD design worked in real world. At this point it was pretty spot on. Though I must admit the frame was not entirely square; about 5mm longer on one half.

First rough framing complete

After all the parts were ready, lots of sanding was done to remove the blemishes and cracks in the wood. This part was certainly one of the most demanding.

Sanding mania

With the framing ready, the time has come for throwing in some cloth for the seating. I had on hand some used curtains; these were plenty strong for our purposes. After a bit of trial and error, I made 2 straight stitches on each side to act as sleeves for them to slide onto the frame. I try to make this as modular as possible, so I avoided using staples, even though it would be much faster.

Marking & sewing stitches to cloth

Fitting cloth to frame

As there was plenty of sanding to be done, I sanded one half per day and applied wax so that I can use the time while the wax is drying to sand the other half. It was pretty gratifying to see the crappy wood transform into something that look somewhat luxurious πŸ™‚ By the way this is kapur timber.

Applying wax finish on first batch of sanded parts

Finished all sanding ! This is how the planks look before wax

Moment of truth! A first full assembly of one half. The legs are properly fitted for the first time, with the addition of the bottom leg tie supports. I deviated a little from the CAD for the supports, as it didn’t negatively affect the strength and looked more visually interesting, seen here in a cascading style. Some sewing was also done on the straps, repurposed from cargo tie-downs. Three of these were more than enough to help support the weight of seaters. Bryan, Zhifeng and Bao also bravely helped me test-run the strength of the cloth seats. Seeing Bao sit comfortably on the chair, I was confident the structure could handle itself.

First full assembly of one side, sign of relief!

The other half was done much faster, and after some finishing touches the whole design is fully realised and ready to go! It was Friday, so I decided to also quickly throw together a cart to house the dismantled structure, and get it all packed and ready to go for installation on Monday evening.

Full assembly complete

All packed and ready to go

Setup went by smoothly, as this is an analog project I guess? Digital projects tend to throw you curveballs. I also added some greens for good measure. I was lucky to have Gwen, Yenee and Amanda to help me test-run. I am glad they had a bit of fun.

Setup at location

First eager participants :p

Presentation day. In general I think the structure held up well. In terms of interactivity, it was limited. Most of the interaction occurred as people sat and got up, making it see-saw-ish. Also, the tin-can contraption was more of visual eye-candy than functional. I think there are many opportunities for further development. And hopefully for the next iteration we can have this outdoors for better effect.

Cheers !

Critique day

Check out part 2 , as the project gets ‘digitised’ !

MicroPerf 3 – GPS Texting

GPS Texting is a flash mob done by Yixue, Ashley and Daryl. It involves 5 performers receiving visual cues from their phones to form a gigantic β€œWE β™‘ SG” using ropes laid on the ground. This was done at an open field near Geylang Industrial Estate.

Bird’s eye view of performance site

The initial idea was for each performer to access a web app (that is made using glitch and mapbox) that shows a map, their current location, and letter which they are supposed to β€œdraw”. Each performer would utilise the GPS function on their phone to guide them on which direction to go and how long each side of the string will be.

Site 1 & 2 shown in Mapbox software


Webapp made to coordinate movement

However, on the day of performance, the chosen site was really muddy and wet, (making it very hard to walk). The GPS was also not accurate enough, perhaps due to reduced letter sizes(insufficient rope) and cloud cover. Furthermore, half of our performers were kids (Yixue’s nephews and niece), so we decided to improvise.

Test-run with new setup

The final flash mob performance consist of 5 performers, forming a letter each. There is also another conductor who is positioned at a higher level to guide the performers below by streaming a real-time video from above so that the performers below could check on their phones if their letters are placed correctly. Each performer would first form the letter on their own, then adjust accordingly with the help of the video stream.

Final Result



With the idea in hand, a webapp was quickly prototyped to assess the feasibility of using GPS for such a purpose. The GPS is usable at large distances, therefore a suitable scale was required for the whole thing to work. The initial scales of letters required on average 60-70m of rope per letter. However, insufficient rope resulted in an attempt to tweak the letter sizes, which proved to be a bad decision.

Left: Glitch was instrumental in making a functional app with minimal fuss.
Right: Measuring tool for estimating distances.

The original plan was to have the performers open the same app on their phones. The app is synced; so the map will show the performer the next point to move towards relative to their current location.

Instructions for performers

For performers to visualise…

Materials and Tech

  • 5 reels of 55m white rope
  • Mobile phones
  • Glitch platform (nodejs app)
  • Firebase Realtime database (for synchronization)
  • Geolocation Api
  • Mapbox

Sem project Ideation 2

The thing: Our hands !

We use it to make sound, create visuals, orchestrate, feel etc.

During this crisis, the loss of connection within society has become even more apparent. So how can continue to connect with others in new and interesting ways, sensorially and visually?

Player can communicate by using hand gestures over the leap motion controller/some other hand gesture detection device.

On the other side, another player can connect by experiencing the ‘mist’ performance that’s orchestrated from the other end.


Dress code: Black


Topic/context: Connection during covid

Tech: Leapmotion, TD, Arduinos, Ultrasonic misters, DIY sensing pad

Covid: Is observed. One player at each station. Use sanitizer as misting liquid

Ideas for Project 1

Sync (Longing, connection)

  • 2 players sit across each other
  • they are connected by touch via the ropes, and can feel each other’s movements
  • the string with cone provides audio feedback between players

Night scenario

An illuminated trough of water in the middle that can highlight the movement of the strings.

the seating areas can be slightly illuminated to provide a hint of participants

Initial Ideas for Semester Project


  • Each slave node consists of five LEDs
  • the LEDs on the slave node shine according to how close a player is and how many are near a node(about a meter from the node, this is designed with COVID precautionary measures in mind)
  • each player, on entering, will bring up a webapp on their mobile. the app tracks their movement and generates colors and sounds continuously as they move around the space
  • once a slave node has five players stationed there, it will shine brightly (in a particular color that is in sync with the color shown of the user’s mobile browser) and a soothing melody is played as well
  • there are 2-3 of these slave nodes
  • as more of the 3 slave nodes are occupied, the master node’s brightness will increase, more sounds are also produced
  • the ambient sounds are also modulated partially by the players movement around the space
  • there is possibly a projection near the master node with a dynamic visual generated in realtime(a tracing of collective movement of people around space)

Initial Ideas for Flash Mob Perf


  • There are several zones each associated with different instruments
  • players start anywhere on the playing field, with their mobile browser pointing to a given webapp; they have no idea what instruments are in each zone
  • on entering a zone, they will see a prompt on the browser, with some instructions for how to make sounds(by shaking phones etc.)
  • users are allowed to explore the area, with the possibility of realizing that there are different instruments
  • users will be able to hear in realtime the collective sounds that are made by all players