Intelligent Interactive Products

Intelligent Interactive Products

As an elective this year I followed Intelligent Interactive Products, a course about machine learning. The course consisted of two challenges that were done in groups. I did both challenges with the same group. In the group, I was responsible for the machine learning algorithm for both challenges.


The first challenge was “Do something right.” The aim of this challenge was to create a working prototype with machine learning. Our concept was a body posture sensor that could distinguish several positions while a person was sitting. We used the relative position between two accelerometers to measure someone’s posture. Based on this the systems gives advice on how the person is sitting and how they can improve.


For the second challenge, we had to do “The right thing.” The concept we came up with was an application that would use the microphone of your phone to measure how much water you use per day. With the knowledge the application provides the user can take action to reduce their water consumption.
We build a working prototype using processing and the built-in microphone of a laptop. Our algorithm was fairly decent at distinguishing a tap, shower, and toilet.

Code and app


Following this course gave me a good understanding of the basics of machine learning and at least a basic level of skill in applying and using machine learning. The course further fuelled my interest in programming and it improved my overall skill in Processing.

In collaboration with: Jesper van Bentum - Michiel Laane

Course reflection

In my mid-term reflection, I reflected a lot on the overall goals for this course and what I have learned. Those goals remained the same, getting more experience and a better understanding of how to use data and data analysis, so I won’t repeat them in this reflection.

Group dynamic

The group dynamic has not really changed during this project. We stayed together as a group, we also kept the roles we had within the group. We did have some difficulty with the collaboration. One of the group members did not give the course a lot of priority and thus we mostly met with just two, Jesper and me to work on the project.
We had some difficulty selecting a new topic for this challenge. I was fine sticking to the topic we picked for the mid-term project, but the others thought that we had to change too much to make it suitable for the final project. Because of this, it took a while before we agreed on a new topic.
I personally still think we could have expanded and improved the project from the mid-term quite a bit and I had a pretty good idea of how we could do it.
Jasper and I did all the coding for this project, we had a nice division in this where we both did different parts of the coding. Our work fit well together and I think our collaboration added to the final result.


It was nice to work with sound and fft as this was something we tried at the beginning of the course, but could not figure out. I hoped I could get the same level of understanding of the code that I had during the mid-term project. Although I came quite a long way, the fft code was more complex and I had trouble figuring out how to change all the different parameters so it would work the way I wanted.
I did manage to rewrite the example code to such an extent that it was suitable for how we wanted to use it. In the process, I tried a lot of different things to make the code better, like adding some features to the SVM.
Near the end of the project I tried rewriting the code so that it would work with the Weka KNN, but that posed too big of a challenge. It required me to basically write an entirely new code, as there was no KNN example that used live data input. With more time I might have figured it out.

I do feel that the course has taught me a lot of new skills when it comes to programming and I think I have enough understanding of the examples and algorithms that I can use them in future projects. I will definitely try to use them whenever possible.


I feel that I have learned more from the first challenge than from the second. This could be because I liked our first topic better or that the group work was better divided during the first challenge. In this project, I put all my effort into getting something that worked instead of trying out a lot of new things. Despite that this course has further fuelled my interest in programming and machine learning. It has contributed greatly to my skill in programming and it has provided me with a good understanding of machine leering and the skill to apply this in the future.