Shane Wei

Team Leader, focusing on the visual interactions of the project. Provide visual effects based on the data input.

View Portfolio »


Tianyi Liu

In charge of the back-end coding of this project. Recieve the data from the Arduino and remixed as music for output

View Portfolio »


Dennis Li

Working on building stable data input and physical structure of the project, working with sensors, wires and

View Portfolio»

Easy Interactions
Simply stand on the board and start your exercise.

Stand on the board, and start either dancing, jumping ,stampting your feets, lights and music will soon be on!

Immersive environment
Pleasant light music and lights and visuals.

Music and visuals will adjust by the tempo of your action, and will lead you to exercise steadily and safely.

You can customize your experience.

Music bass notes, chords and melodies are easy to customize, you alternative it with your favourites!

Problem Space

The concept is Fitlody, combination of physical fitness and melody. Our design collect the data from user doing exercises, and translate these data into musical and visual outputs. The core spirit of this design is Motivation and Creation. We want to combine fitness and music making, provide instant gratification for people exercising, in order to encourage them to keep fit. We also want it to be a good platform for beginners in music making to simply create their own music, to promote their interests and understanding in music.

Ideal Outcome

We intended to build a system that have multiple force sensors and will collect multiple dimensions of data that user exercising with fitness equipments, and based on these data, generate creative and enjoyable music and visual effects based on these data, which could also promote the experiece of user keeping fit.

Outcomes and Reflections


Multi-Dimension Data


Sensors placed inside different fitness equipments, collect data from different dimensions, allow program to detect different type of exercises.


Single-Dimention Data


Sensors placed on the ground and isn't connected to each other. Can only detect the user's force put on the ground. Only a few action could trigger the sensor.


Stable Inputs


Inputs are accurate and stable


Unstable Inputs


Sometimes the sensor just failed. It is limited by the materials. Due to the goverment restrictions, it's hard to get all the materials we want.


Generate Original and Enjoyable Music


Given different data, we could generate original and pleasant music that is suitable for the certain context, adjust by the user's states and moods.


Music Created from Preset Componets


The music is generated from the Tempo of user doing exercies, and adjust by the speed of user exercising.


Related Visual Effects


Visual effects that have a clear relation with the multi-dimension data, indicate the efforts using given while exercising.


Music Created from Preset Componets


Visual effects that run and pause with the user.

Design Process

Week 2-3 Ideation: Presentations and WorldCafe, we exchange our insights and ideas and explore the problem spaces.

Week 4-5 Proposal: BodyStorming and proposal Presentations, we did some domain research to help us understand the problem space. The previous work NW help us to determine the way of generating music, that is instead of using neural network to predict "next notes", we could combine some preset musical components.

Week 6-7 Failed Approach: Using CoreMotion framework in iOS to collect data.

Week 9-10 Prototyping: First interation and critiques. I go through every feedback carefully, and made some changes based on the feedback. We make the music more progressive, when the user start exercising, the bass notes will first jump in, and then the chords, and finally the melody; Also, feedback suggest us to focus on the relation between the music and data, and focus on the promotion we want our output have on our user. So we make the music tempo adjust by user's moving speeds, and guide them to exercise in a stead speed.

Week 11 Failed Approach: Using Wii Fitboard as data input which was capable for wider range. However, the bluetooth protocol to connect it with PC only support 32bit systems, and existing support codes was written by C++. So we failed to get any data from it.

Week 12 Prototyping: Building the physical structure of the final prototype, we come up with some ingenious physical design to use a FSR with range from 0-6 to successfully used to detect weight of human body. I was also working on finishing the coding part, we add more preset chord progression and tempo and melody, makes the music plump.

Builds and Demos

Physical builds

Code structure

The code is form by 3 components, the data input, data output, and main App.

The data input Based on PySerial to read readings from Arduino UNO.

The data ouput use python-rtmidi to output midi messages to midi port.

The main app has function of loop run every 500ms, has a HitController() to determine every beat user placed on the board, and have a TicksCount to count the current time. In order to have music in several channes played asynchronously, we build a MessageBox to deal with midi messages. The music is formed by three parts, Bass Note, Chords and melody, each of them have three presets and could played staggered.

Demo Song

Natsuha_SG ยท Fitlody Demo Song

Demo Video1

Demo Video2

About Me

Hi, I'm Tianyi Liu from Team X. Loves Music, Coding and Gaming.

Journal Entries:

First Iteration Report:

First Iteration Video:


Back-end Python Program relies on two libraries: PySerial and python-rtmidi

PySerial Used to read data from Arduino UNO:

python-rtmidi Used to send midi message to virtual midi port: