TINK - sketching product experiences of connected objects
Tink is the result of my graduation project from the master in design for interaction at TUDelft. Tink is a web platform that connects products with one another via the Internet, it provides designers with a complete Internet of Things (IOT) development environment. Designers are provided with a rich stack of features to sketch, prototype and test IOT projects. Tink is a user-friendly, visual, collaborative, open-source tool for designers to build connected interactions among objects.
Tink is the result of my graduation project from the master in design for interaction at TUDelft.
Tink is a web platform that connects products with one another via the Internet, it provides designers with a complete Internet of Things (IOT) development environment.
Designers are provided with a rich stack of features to sketch, prototype and test IOT projects. Tink is a user-friendly, visual, collaborative, open-source tool for designers to build connected interactions among objects.
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>sketching</strong> <strong>product</strong> <strong>experiences</strong> <strong>of</strong> <strong>connected</strong> <strong>objects</strong>
A master thesis by<br />
Lorenzo Romagnoli<br />
Supervised by<br />
Elisa Giaccardi<br />
Aadjan van der Helm<br />
July 2014
Introduction<br />
This paper is a summary <strong>of</strong> my graduation<br />
project, for the master in Design for<br />
Interaction at TUDelft. The project was<br />
carried out in the environment <strong>of</strong> the<br />
IDStudiolab, a design research community<br />
<strong>of</strong> the Faculty <strong>of</strong> Industrial Design<br />
Engineering, between November 2013 and<br />
July 2014.<br />
The given assignment was to design<br />
a tool to support designers building<br />
experiential prototype <strong>of</strong> <strong>connected</strong><br />
<strong>objects</strong>.<br />
The report goes trough the process that I<br />
followed during this 7 months.<br />
In Chapter 1 the boundaries <strong>of</strong> the project<br />
are introduced: The topic <strong>of</strong> <strong>sketching</strong><br />
user <strong>experiences</strong> and design tools will be<br />
investigated. In the end <strong>of</strong> the chapter a<br />
working definition for “Connected Objects”<br />
is presented.<br />
In Chapter 2 the market analysis done along<br />
the project is presented: a categorization <strong>of</strong><br />
Connected Objects is proposed and several<br />
tools aimed at supporting the development<br />
<strong>of</strong> interactions with this kind <strong>of</strong> <strong>product</strong>s<br />
are analysed.<br />
At the end <strong>of</strong> the chapter initial design<br />
directions are presented.<br />
In Chapter 3 a user research carried out with<br />
interaction design students is discussed:<br />
the study was aimed at understanding the<br />
level <strong>of</strong> knowledge interaction designers<br />
have about <strong>connected</strong> <strong>objects</strong> and how<br />
interaction designers are able to draw<br />
system diagram <strong>of</strong> complex systems <strong>of</strong><br />
<strong>connected</strong> <strong>objects</strong>.<br />
The research, combined with the findings<br />
from the previous analysis led to the<br />
formulation <strong>of</strong> a program <strong>of</strong> requirements.<br />
In Chapter 4 the reader is introduced to<br />
<strong>TINK</strong>, the final design <strong>of</strong> this project:<br />
<strong>TINK</strong> is a web application to connect<br />
<strong>objects</strong> one to an other via the Internet,<br />
the platform is composed <strong>of</strong> two main<br />
components:<br />
• The first one is used to sketch system<br />
diagrams and define the behaviours<br />
<strong>of</strong> the <strong>connected</strong> <strong>objects</strong> and <strong>of</strong> the<br />
different entities involved in the<br />
design.<br />
• The second one is used to monitor the<br />
system, track and visualize data.<br />
In Chapter 5 the setup used to evaluate<br />
the platform is presented.<br />
Two prototypes where built in order to test<br />
the technical feasibility <strong>of</strong> the platform<br />
and the user experience. The setup and the<br />
results from the user test are discussed at<br />
the end <strong>of</strong> the chapter.<br />
In Chapter 6 an evaluation <strong>of</strong> the design is<br />
proposed. The main contribution that <strong>TINK</strong><br />
brings to the field <strong>of</strong> interaction design<br />
are explained followed by a reflection on<br />
the program <strong>of</strong> requirements introduced in<br />
chapter 3, and a list <strong>of</strong> recommendation for<br />
future developments.
Table <strong>of</strong> contents<br />
CHAPTER 1 9 CHAPTER 2 29 CHAPTER 3<br />
55<br />
Graduation assignment Market analysis User research<br />
1.1 Sketching for Interaction<br />
design<br />
1.1.1 Sketching with code<br />
1.1.2 Sketchy qualities<br />
1.1.3 From sketches to prototypes<br />
1.1.4 Terminology<br />
1.1.5 Graduation Assignment<br />
INSERT Sketchy programming tools<br />
INSERT Sketching an animated pattern<br />
using processing<br />
1.2 About tools<br />
1.2.1 A philosophical perspective<br />
on tools<br />
1.2.2 design tools<br />
1.3 The Internet <strong>of</strong> things<br />
11<br />
11<br />
14<br />
15<br />
17<br />
18<br />
10<br />
13<br />
19<br />
19<br />
24<br />
26<br />
2.1 Communication model for<br />
Connected Objects<br />
2.2 Categories <strong>of</strong> Connected<br />
Objects<br />
2.2.1 Objects linked to digital data<br />
2.2.2 Objects that publish data to<br />
the web<br />
2.2.3 Objects that pull data from<br />
the web<br />
2.2.4 Remote controlled Objects<br />
2.2.5 Bidirectional communication<br />
devices<br />
2.2.6 Objects networks<br />
2.3 Connected Objects toolbox<br />
2.4 Tools users<br />
2.5 Technology archetypes<br />
30<br />
32<br />
34<br />
35<br />
36<br />
37<br />
38<br />
39<br />
40<br />
42<br />
44<br />
3.1 Research questions<br />
3.2 Research setup<br />
3.3 Research results<br />
3.4 Discussion<br />
3.5 Program <strong>of</strong> requirements<br />
56<br />
57<br />
60<br />
63<br />
64<br />
2.5.1 Hardware<br />
2.5.2 S<strong>of</strong>tware<br />
2.5.3 Hardware + s<strong>of</strong>tware<br />
45<br />
48<br />
50<br />
2.6 Design directions<br />
52
CHAPTER 4 67 CHAPTER 5 83 CHAPTER 6<br />
97<br />
Final design Testing Evaluation<br />
4.1 Sketching <strong>TINK</strong><br />
68<br />
5.1 Prototyping <strong>TINK</strong><br />
84<br />
6.1 Main contribution<br />
98<br />
4.2 Project view<br />
4.3 Edit view<br />
4.4 Monitor view<br />
4.5 Workflow<br />
70<br />
72<br />
76<br />
78<br />
5.2 Connecting a c<strong>of</strong>fee<br />
machine to the Internet<br />
5.3 prototyping the user<br />
interface<br />
5.2 User test<br />
86<br />
88<br />
90<br />
6.2 Reflection on the program<br />
<strong>of</strong> requirements<br />
6.3 Recommendations<br />
6.4 Personal evaluation<br />
100<br />
102<br />
106<br />
4.6 Tink technology<br />
80<br />
5.2.1 User test goals<br />
5.2.2 User test setup<br />
5.2.3 User test results<br />
90<br />
90<br />
92
8 - <strong>TINK</strong><br />
Figure 1. Bill Verplank (2001),<br />
Interaction designers have to find answers to three questions:<br />
How do you do? How do you feel? How do you know?
Graduation Assignment - 9<br />
CHAPTER 1<br />
Graduation assignment<br />
In this chapter the boundaries <strong>of</strong> the project and the graduation<br />
assignment are presented.<br />
1. SKETCHING is considered the main activity designers are engaged<br />
with 1 ; I’ll explain how this practice goes beyond drawing with markers<br />
on paper, and what are the characteristics <strong>of</strong> it.<br />
2. I’ll then analyse TOOLS, and the role they play for designers.<br />
3. I’ll then discuss the broad topic <strong>of</strong> the INTERNET OF THINGS 2<br />
(IoT). I’ll propose several definitions from literature in order to define<br />
the domain and the boundary <strong>of</strong> the project. At the end <strong>of</strong> the chapter,<br />
a working definition for “Connected Objects“ is introduced.
10 - <strong>TINK</strong><br />
SKETCHY PROGRAMMING TOOLS<br />
The images below show two different IDE, Eclipse on the left, and Processing on the right.<br />
The s<strong>of</strong>tware written in JAVA in the Eclipse IDE produces the same result <strong>of</strong> the few<br />
lines <strong>of</strong> code written with Processing: the simple ellipse on white background shown in<br />
the third window. It should be clearer already how easier it is in Processing to display<br />
graphics therefore allowing quicker development and more iterations.<br />
The two s<strong>of</strong>tware differ a lot also in the interface, while Eclipse interface provides several<br />
panels and several buttons and options, Processing interface presents just few buttons:<br />
the most important <strong>of</strong> them, the play button, is the one that runs the sketch, during the<br />
development <strong>of</strong> a processing sketch it is going to be pressed several times in order to get<br />
a feedback on the result <strong>of</strong> the modification on the code.<br />
Figure 2. Comparison <strong>of</strong> Eclipse and Processing IDE
Graduation Assignment - 11<br />
1.1 Sketching for interaction design<br />
1.1.1 Sketching with code<br />
In my bachelor program in “Cinema and<br />
New Media Engineering”, I learned Java,<br />
an object-oriented programming language,<br />
meant for cross-platform development.<br />
It isn’t a very difficult programming<br />
language, however as most as other<br />
classical programming languages, it is<br />
quite structured. It was my first encounter<br />
with a programming language, and it<br />
required me to acquire knowledge on<br />
different levels: I had to learn lexicon,<br />
syntax, programming logic, programming<br />
paradigms, and programming tools.<br />
In my first programming course,<br />
programming graphical user interface was<br />
not covered. It wasn’t until a later and<br />
more advanced programming course that<br />
this topic was addressed. Each week’s<br />
assignment was to design a specific<br />
video game. Programming the Graphical<br />
User Interface (GUI) for these games<br />
required learning more lexicon but also<br />
new programming patterns. Displaying<br />
something on screen in Java was not that<br />
straightforward. Lots <strong>of</strong> libraries had to be<br />
imported and some difficult constructs had<br />
to be implemented.<br />
I gained an entirely new perspective the<br />
first day I started using Processing, a<br />
programming language for designers and<br />
artists to program images, animation,<br />
and interactions 3 . When I discovered that<br />
just a line <strong>of</strong> code was needed to draw an<br />
ellipse on screen, I was motivated to keep<br />
programming to explore what else I could<br />
do with it.<br />
I was inspired by that platform that made<br />
programming complex graphics quick and<br />
easy. My programming knowledge was<br />
still useful; processing is in fact based<br />
on Java. The difference between the<br />
two is that Processing hides most <strong>of</strong> the<br />
complexity required by Java. Processing’s<br />
fewer lines <strong>of</strong> code, is an improvement<br />
in efficiency: it is faster, there are fewer<br />
opportunities to make mistakes, and as a<br />
result programming flows more smoothly<br />
and is much more explorative. The absence<br />
<strong>of</strong> Java’s structured, boilerplate formatting<br />
makes Processing much more enjoyable.<br />
The way I learned how to program was<br />
mainly taught in my Bachelor as a way<br />
to solve problems. The practice <strong>of</strong> coding<br />
started always with understanding and<br />
deconstructing the given assignment, the<br />
deconstructing was done on paper, where<br />
the structure <strong>of</strong> the program was sketched.<br />
Once the program was clear on paper and<br />
in mind it was translated in code. The<br />
sketch on paper has to be correct. In that<br />
depends the effective translation <strong>of</strong> the<br />
project in to code.<br />
The process <strong>of</strong> coding described doesn’t<br />
allow for any creative exploration: from a<br />
good programmer is in fact required to gain<br />
complete awareness about the s<strong>of</strong>tware he<br />
will have to write before start coding: a
12 - <strong>TINK</strong><br />
SKETCHING AN ANIMATED PATTERN USING PROCESSING<br />
How to represent information trough the most unobtrusive moving pattern<br />
was the goal <strong>of</strong> this project. In particular it was required to use moving<br />
pattern to represent the emotional state <strong>of</strong> 5 best friends.<br />
The figures on the left are screenshots <strong>of</strong> different s<strong>of</strong>tware developed along<br />
the design process before getting to the final result.<br />
I started thinking at creating moving pattern like the one created for<br />
aerodynamic simulations.<br />
A first sketch was developed in Processing featuring a moving effector that<br />
was displacing dots on the screen according to its position. The dots got then<br />
<strong>connected</strong> by lines in order the resulted effect is show in the first image<br />
It was thought that using different styles to connect the dots to each other<br />
and having different displacement styles could provide enough material to<br />
represent different emotions. It was decided to make a new s<strong>of</strong>tware where it<br />
would have been possible to change those parameter on the fly and test how<br />
people would react to the different visualization.<br />
The iteration provided enough insights to proceed with the development <strong>of</strong> a<br />
new version <strong>of</strong> the s<strong>of</strong>tware. The movement <strong>of</strong> multiple elements on the grid<br />
would have made a really confusing visualization. Therefore it was decided<br />
to keep those in fixed position and instead have the grid sliding to create to<br />
create the movement.<br />
A sense <strong>of</strong> presence <strong>of</strong> multiple entities was given by having hidden entities<br />
that affect the grid by growing an diminish their interference resembling a<br />
breathing.<br />
It was observed that the breathing was perfect in giving some sort <strong>of</strong> agency<br />
to the grid, however it was thought that by having more control on the<br />
dynamic <strong>of</strong> the breathing could have gaining a higher level <strong>of</strong> expressivity.<br />
This lead to the final version <strong>of</strong> the s<strong>of</strong>tware where all the parameter could<br />
be modified via the interface. With the s<strong>of</strong>tware it was then able to prototype<br />
the behaviour <strong>of</strong> the movement for 5 different emotions and test them with<br />
participants<br />
Figure 3. Emotional Lockscreen (2013)
Graduation Assignment - 13<br />
bad structure or no structure might lead<br />
to errors and problems that might end up<br />
making him waste hours, days or months<br />
<strong>of</strong> work.<br />
The process <strong>of</strong> developing programs with<br />
Processing is instead less structured; I<br />
<strong>of</strong>ten just start by writing some lines <strong>of</strong><br />
code, compile the program and check the<br />
result on screen.<br />
Of course I kind <strong>of</strong> know what to expect<br />
from the code I write, but having the<br />
possibility to see the development <strong>of</strong> my<br />
work create a sort <strong>of</strong> dialogue between the<br />
s<strong>of</strong>tware and me. I iteratively react to what<br />
I see on screen moving from a simple idea<br />
to a more structured concept.<br />
I write a lot <strong>of</strong> spaghetti code, I don’t in<br />
fact care about performance or at how am<br />
I going to extend the s<strong>of</strong>tware. Especially<br />
in the first stages <strong>of</strong> the project I just<br />
want to explore different possibilities, this<br />
<strong>of</strong>ten lead to make me restart writing the<br />
s<strong>of</strong>tware from scratch several times before<br />
I get to a “final version”.<br />
In order to iteratively improve and react<br />
to the sketches, is very important to have<br />
direct feedback <strong>of</strong> the result <strong>of</strong> the code<br />
you are writing 4 . In fact while the practice<br />
<strong>of</strong> <strong>sketching</strong> on paper is very direct, in the<br />
sense that you immediately see what you<br />
are producing, the code is an abstraction<br />
(a description) <strong>of</strong> the final result, that the<br />
developer most <strong>of</strong> the time envision have<br />
to envision in his head.<br />
Developing programs in processing is for<br />
me the exact equivalent <strong>of</strong> <strong>sketching</strong> with<br />
code: I draw bunch <strong>of</strong> lines, I see how it<br />
goes and then I try to improve. Sometimes<br />
I discover that I have to start from scratch<br />
because the image produced or even just a<br />
movement just created gave me a complete<br />
new idea.<br />
The dialogue between the programmer and<br />
the code results in a creative process very<br />
similar to the one that happens when an<br />
artisan crafts a piece <strong>of</strong> wood, and the one<br />
between a designer and the material he<br />
uses.
14 - <strong>TINK</strong><br />
Table 1.<br />
Sketchy qualities,<br />
Buxton, B. (2010).<br />
Sketching User Experiences<br />
1.1.2 sketchy qualities<br />
Processing files are called sketches. The<br />
metaphor doesn’t only refer to the fact<br />
that the programming language is primarily<br />
aimed at the development <strong>of</strong> visual<br />
materials, it also describes other important<br />
characteristic <strong>of</strong> it:<br />
Table 1 presents a list <strong>of</strong> relevant attributes<br />
characterizing conventional sketches as<br />
analysed by Bill Buxton.<br />
Processing embeds several <strong>of</strong> the<br />
characteristics <strong>of</strong> the table:<br />
Programming in Processing is in fact way<br />
faster than using other programming<br />
languages, this promotes the exploration<br />
<strong>of</strong> several ideas.<br />
By tweaking some variables in the code<br />
different results can be achieved in the<br />
visualization. This can lead to unexpected<br />
errors that might inspire the designer in<br />
exploring new paths.<br />
The level <strong>of</strong> detailing <strong>of</strong> a processing sketch<br />
can be defined by the programmer.<br />
Processing sketches as they are programmed<br />
quickly are <strong>of</strong>ten rebuilt from scratch as<br />
soon as the ideas get more concrete along<br />
the design process.<br />
At this point Someone might argue that<br />
processing is for me a great <strong>sketching</strong> tool<br />
just because I have good programming<br />
skills; while more insight about the relation<br />
between tools and designer will be given<br />
later in this chapter, I’d like to state that<br />
even though a pencil might be considered<br />
a great tool for <strong>sketching</strong>, some skills are<br />
required in order to draw with it. For me in<br />
Quick:<br />
A sketch is quick to make, or at least gives the impression that that is so.<br />
Timely<br />
A sketch can be provided when needed.<br />
inexpensive<br />
Disposable<br />
Plentiful<br />
Clear vocabulary<br />
A sketch is cheap. Cost must not inhibit the ability to explore a concept, especially early in the design process.<br />
Sketches are disposable. If you can’t afford to throw it away when done, it is probably not a sketch. The investment with a sketch<br />
is in the concept, not the execution.<br />
Sketches tend to not exist in isolation. Their meaning or relevance is generally in the context <strong>of</strong> a collection or series, not as an<br />
isolated rendering.<br />
The style in which a sketch is rendered follows certain conventions that distinguish it from other types <strong>of</strong> renderings. The style,<br />
or form, signals that it is a sketch. The way that lines extend through endpoints is an example <strong>of</strong> such a convention,or style.<br />
Distinct gesture<br />
Constrained resolution<br />
Appropriate Degree <strong>of</strong><br />
Refinement:<br />
Not tight. Open. Free.<br />
Sketches are not rendered at a resolution higher than is required to capture their intended purpose or concept. Going beyond<br />
“good enough” is a negative, not positive. (Which is why I take marks <strong>of</strong>f student’s work if it is too good.)<br />
The resolution or style <strong>of</strong> a sketch’s rendering should not suggest a degree <strong>of</strong> refinement <strong>of</strong> the concept depicted that exceeds the<br />
actual state <strong>of</strong> development, or thinking, <strong>of</strong> that concept<br />
Ambiguity:<br />
Suggest & explore rather<br />
than confirm<br />
Sketches are intentionally ambiguous, and much <strong>of</strong> their value derives from their being able to be interpreted in different ways,<br />
and new relationships seen within them, even by the person who drew them.<br />
More on this later, but sketches don’t “tell,” they “suggest.” Their value lies not in the artefact <strong>of</strong> the sketch itself,<br />
but its ability to provide a catalyst to the desired and appropriate behaviours, conversations, and interactions.
Graduation Assignment - 15<br />
fact <strong>sketching</strong> on paper turns out to be as<br />
frustrating as programming is for most <strong>of</strong><br />
the people with no programming skills<br />
1.1.3 From sketches to<br />
prototypes<br />
In common design practice, “sketches”<br />
commonly refers to conventional<br />
drawings on paper. Words like “model” or<br />
“prototype” are commonly used to describe<br />
any other types <strong>of</strong> rendering outside <strong>of</strong><br />
the sketchbook. Although those words<br />
are <strong>of</strong>ten used interchangeably, I’d like<br />
to point out an important distinction<br />
between the two:<br />
Models can be either virtual or physical,<br />
and are <strong>of</strong>ten scaled three-dimensional<br />
representation <strong>of</strong> a design.<br />
Prototypes, on the other hand, are more<br />
refined and functional renderings <strong>of</strong> the<br />
final <strong>product</strong> that is built to be tested. 1<br />
In this terms, a model can be considered<br />
equivalent to a three-dimensional sketch;<br />
whereas a prototype is a usable, testable<br />
sketch. In figure 4 Buxton proposes a list<br />
<strong>of</strong> attributes characterizing the differences<br />
between sketches, which are open,<br />
explorative, and suggestive representation,<br />
while a prototype instead in more definitive<br />
representation with details.<br />
Figure 5 represents a typical interaction<br />
design process that starts with the<br />
ideation phase and ends with an evaluation<br />
Figure 5. The Dynamics <strong>of</strong> the<br />
Design Funnel<br />
Buxton, B. (2010).<br />
Sketching User Experiences<br />
Figure 4.<br />
Differences between sketches<br />
and prototypes<br />
Buxton, B. (2010).<br />
Sketching User Experiences
16 - <strong>TINK</strong><br />
Figure 6. The aim <strong>of</strong> the project, commissioned bi NCR was to design and build a fully working<br />
prototype <strong>of</strong> a “kind cashpoint”. Along the process several sketches, both on paper and physical,<br />
were iteratively produced before getting to the level <strong>of</strong> refinement <strong>of</strong> the experiential prototype<br />
shown in the big picture.
Graduation Assignment - 17<br />
phase. Along the process, through several<br />
iterations, the designer moves from ideas<br />
to formulating a concept, to refinement<br />
<strong>of</strong> that concept, and then detailing and<br />
designing the final <strong>product</strong>.<br />
Different kinds <strong>of</strong> sketches are used trough<br />
the all process: in the beginning <strong>of</strong> the<br />
process a lot <strong>of</strong> sketches are done quickly<br />
as an explorative technique to support the<br />
ideation phase.<br />
When the idea develops, tests are<br />
conducted to evaluate and improve the<br />
design. Several aspects <strong>of</strong> the interaction<br />
might be tested separately and integrated<br />
together in the next steps. At the end the<br />
integration <strong>of</strong> the different component <strong>of</strong><br />
the design (such as materials, aesthetics,<br />
interface…) will result in a <strong>product</strong> that<br />
will look, feel, and behave very similar to<br />
the one that is going to be produced.<br />
A sketch with this level <strong>of</strong> detailing is<br />
defined a prototype.<br />
The sketches done along an iterative design<br />
process are not just conventional paper<br />
sketch, but they can assume different<br />
forms according to the features that have<br />
to be understood, experimented, and<br />
tested. The sketch might take the shape <strong>of</strong><br />
a clay model, a mechanical contraption, or<br />
a website.<br />
While the practice <strong>of</strong> <strong>sketching</strong> is<br />
fundamental in every design practice, in<br />
the field <strong>of</strong> interaction design, <strong>sketching</strong><br />
covers even a more important role. If it is<br />
in fact possible to understand the visual<br />
aesthetic <strong>of</strong> a juicer from a rendering, it is<br />
impossible to experience how that object<br />
will feel like and will behave in your hands<br />
without a model, a prototype.<br />
1.1.4 Terminology<br />
The semantic problem between the use<br />
<strong>of</strong> the word “sketch” and “prototype”<br />
in the interaction design practice and in<br />
theory must be solved in order to avoid<br />
misunderstanding along the rest <strong>of</strong> the<br />
report.<br />
Two useful concepts have been identified<br />
to refer to those artefacts that are built<br />
along the design process and go beyond<br />
the conventional paper sketch but still<br />
don’t present the accuracy <strong>of</strong> a prototype.<br />
The practice <strong>of</strong> “<strong>sketching</strong> in hardware”,<br />
refers to the strong sketchy, almost messy<br />
and more designerly connotations, has<br />
the benefit <strong>of</strong> emphasizing the material<br />
and experimental qualities 5 . On the other<br />
hand, “experiential prototyping” highlights<br />
that the goal is to design and support the<br />
experience and not the prototype (or the<br />
built artefact). 5<br />
I will use in the concept <strong>of</strong> “experiential<br />
prototype” in the rest <strong>of</strong> the report as<br />
it provides more flexibility to describe<br />
the spectrum <strong>of</strong> sketchy and less sketchy<br />
artefacts produced along the design<br />
process to describe physical representation<br />
<strong>of</strong> the design developed with the scope <strong>of</strong><br />
testing a part or the entire interaction.<br />
Moreover, this term is the one commonly<br />
used within the TU Delft design community<br />
to describe to this practice.
18 - <strong>TINK</strong><br />
1.1.5 Graduation assignment<br />
The designer’s toolbox has been enriched<br />
in the last 15 years with all sorts <strong>of</strong> tools<br />
to realize experiential prototype, such as<br />
Processing. However, in the emerging<br />
field <strong>of</strong> the Internet <strong>of</strong> things (IoT) very<br />
few tools designed to address the specific<br />
needs and varied levels <strong>of</strong> competencies <strong>of</strong><br />
interaction designers. 5<br />
Because <strong>of</strong> the level <strong>of</strong> complexity <strong>of</strong> the<br />
systems designed in the area, most <strong>of</strong> the<br />
tools currently available are designed by<br />
engineers for engineers. As a result, these<br />
tools require significant expert knowledge<br />
in programming, electronics and signal<br />
processing.<br />
Tools targeting engineers are built on the<br />
assumption that the user <strong>of</strong> the tool knows<br />
exactly what is he going to build and how<br />
is he going to do it. Instead, in order to<br />
support interaction designers, there is a<br />
need for tools with “sketchy” qualities:<br />
tools that are versatile, rapid to use, and<br />
that encourage and support exploration.<br />
Those consideration lead to the formulation<br />
<strong>of</strong> a graduation assignment:<br />
Design a tool that supports the <strong>sketching</strong> and interactive prototyping <strong>of</strong> IoT <strong>product</strong>s.<br />
The tool should be suitable for education as well as pr<strong>of</strong>essional design practice.<br />
This tool should not require expert knowledge in programming, electronics, and signal<br />
processing; rather it should allow interaction designers to tinker with their ideas and<br />
stay focused on their creative process. It should enable interaction designers to sketch<br />
the interaction they may envision among data, people, and one or more physical <strong>objects</strong><br />
without having to bother about technical details. However, it should be designed so to<br />
satisfy the needs <strong>of</strong> both first-time and advanced users 6 .<br />
The tool won’t just help interaction designers overcome technical problems, but it will<br />
also enable them to explore new possible interactions arising from interconnecting<br />
data and <strong>objects</strong>.
Graduation Assignment - 19<br />
1.2 About tools<br />
1.2.1 A philosophical<br />
perspective on tools<br />
According to Heidegger, a tool is<br />
“something in order to…” it has therefore<br />
to be useful, helpful and serviceable. 7<br />
Technology, however, has “no essence”<br />
according to Hilde. Tools come into essence<br />
through their concrete use. 7 This means<br />
that the same artefact can have different<br />
identities in different contexts <strong>of</strong> use. Hilde<br />
refers to this property that tools embed as<br />
multi-stability: A hammer can<br />
be used to nail something in<br />
to the wall, but also to prevent<br />
paper to fly away. In the two<br />
different situations the value<br />
we attribute to the object is<br />
different.<br />
While all <strong>objects</strong> are multistable,<br />
users interacting with<br />
<strong>objects</strong> are never aware <strong>of</strong> the object<br />
condition. 7 Tools are in most <strong>of</strong> the cases<br />
experienced as invisible. Their essence is<br />
not apparent, as it is not in use:<br />
While typing on a keyboard, we don’t take<br />
in to account the action <strong>of</strong> typing; our<br />
thoughts are not even directed to the final<br />
goal <strong>of</strong> our interaction: that is translating<br />
thoughts into words that are appearing<br />
on a screen. We are just engaged in this<br />
activity.<br />
In the moment we interact with a tool to<br />
accomplish an action, the tool became an<br />
extension <strong>of</strong> our body. 8<br />
The only moment we reflect on the<br />
Tools are in<br />
most <strong>of</strong> the<br />
cases<br />
experienced<br />
as invisible.<br />
materiality <strong>of</strong> the tool is when it misbehaves<br />
or it stops working. 7 In this moment, the<br />
tool is not experienced anymore as an<br />
invisible extension <strong>of</strong> ourselves but as<br />
something extraneous. In that moment the<br />
mediating role that the tool had on our<br />
interaction becomes clear.<br />
Are tools all <strong>of</strong> a kind?<br />
If we look at tools just from a functional<br />
point <strong>of</strong> view, most <strong>of</strong> the tools that can<br />
be found around us were designed with<br />
specific scopes: A lamp is used<br />
in order to be able to see in the<br />
dark, a watch is used to keep<br />
track <strong>of</strong> time and a telephone<br />
to talk to people over long<br />
distances.<br />
Some tools are different. A<br />
Swiss army knife, for example,<br />
is a tool that doesn’t prescribe<br />
a specific use, it is in fact “multi-purpose”.<br />
The Swiss army knife is not a good knife, is<br />
not a good scissor, nor a good corkscrew.<br />
However, it is a very well designed tool: it<br />
is easy to carry around, lightweight, and<br />
therefore useful in several situations.<br />
The multi-purpose knife differs from a<br />
kitchen knife because it was designed with<br />
openness in mind; while the kitchen knife<br />
was optimized according to ergonomic<br />
principles and different cutting styles for<br />
kitchen use, the Swiss army knife was<br />
optimized to be serviceable in different<br />
contexts, compact, and lightweight.<br />
As already discussed, all <strong>objects</strong> are
20 - <strong>TINK</strong><br />
multistable: they can assume different<br />
meanings and purposes depending on the<br />
contexts <strong>of</strong> use. 7<br />
Our Swiss army knife, however, which was<br />
designed to operate in many different<br />
contexts and perform many different<br />
functions, goes beyond the definition <strong>of</strong><br />
multistability, we could almost claim that<br />
this object is<br />
Multistable 2<br />
Multi-purpose tools are Multistable 2 as<br />
they are not designed to accomplish one<br />
specific function but many at the same<br />
time.<br />
In this sense it can be stated that they<br />
are “more open” and therefore they can be<br />
used in different ways in different contexts,<br />
and therefore acquire different meanings.<br />
A light bulb, for instance, is an object<br />
designed to illuminate a space. Its reason<br />
d’être is very specific, but still it can<br />
assume different meanings according to<br />
the use we can make <strong>of</strong> it. The light bulb<br />
on top <strong>of</strong> the kitchen table acquires a<br />
different meaning from the bulb placed in<br />
the corridor because <strong>of</strong> the different types<br />
<strong>of</strong> activities and behaviours that it can<br />
facilitate in those spaces.<br />
This value, in terms <strong>of</strong> the behaviours<br />
and activities a light bulb can facilitate,<br />
is especially apparent when it burns out<br />
and no longer works. When a light bulb<br />
is broken, it comes out <strong>of</strong> its state <strong>of</strong><br />
invisibility and asks for intervention.<br />
While the malfunctioning lamp in the<br />
kitchen urges to be replaced quickly, it will<br />
probably take us longer time to remember<br />
to buy a new bulb for the corridor. We are<br />
triggered to replace the bulb in the kitchen<br />
as soon as possible because we realized<br />
that the functioning bulb in the kitchen<br />
facilitates social interactions and relations<br />
that tend to be centred in the kitchen, the<br />
heart <strong>of</strong> many households.<br />
In the moment <strong>of</strong> the replacement we<br />
are also engaged with the materiality<br />
<strong>of</strong> the object: we experience the bulb as<br />
something physical, not just as “an object<br />
in order to…”, we reflect on the shape it<br />
has and on how to replace it. 7<br />
Once the bulb has been replaced it goes<br />
back to its invisible state. We are no<br />
engaging with it consciously. The lamp will<br />
keep on accomplishing its role without us<br />
to realize about the value it gives to our<br />
lives.<br />
In figure 8, Lampada Arco by Piergiacomo<br />
and Achille Castiglioni is shown. If we<br />
analyze it just in functional terms, Lampada<br />
Arco and the generic tungsten light bulb<br />
serve exactly the same task; but these<br />
two <strong>product</strong>s are very different from each<br />
other. While Arco was designed with a very<br />
specific context in mind, the generic light<br />
bulb was designed to be used inside the<br />
Castiglioni brother’s famous lamp as well<br />
as in millions <strong>of</strong> other lamps. Analyzing the<br />
differences between these two <strong>product</strong>s in<br />
terms <strong>of</strong> engagement, we discover that<br />
while the light bulb, as already discussed,<br />
keeps you engaged just in the moment you<br />
have to replace the bulb, Lampada Arco<br />
<strong>of</strong>fers several ways in which it can engage<br />
with the users.
Graduation Assignment - 21<br />
Figure 7. swiss Army knife<br />
(1884), Victorinox
22 - <strong>TINK</strong><br />
We might think that the Arco’s design is<br />
something with a very little “openness<br />
level” as the design is very explicit and has<br />
a very specific function. However the lamp<br />
was designed to be very flexible responding<br />
to the need <strong>of</strong> dynamism required by modern<br />
houses. The shape <strong>of</strong> this lamp makes it<br />
possible to produce light on a table without<br />
the need <strong>of</strong> hanging from the ceiling. As<br />
it is not hung from a ceiling, it makes it<br />
possible owners to change the layout <strong>of</strong><br />
the room without being concerned about<br />
drilling holes and changing the wiring. The<br />
lamp is easily moved and transported via<br />
a hole in the marble block that serves as<br />
the lamp’s base. The hole is placed in the<br />
marble block’s centre <strong>of</strong> gravity, the owners<br />
can easily lift the lamp using a broomstick<br />
inserted in the hole. The lamp can also<br />
transform its shape, the long arm can be<br />
extended or retracted to adjust its height.<br />
Lampada Arco is targeting end user, people<br />
willing to buy the lamp and put it in their<br />
houses. The light bulb is targeting both end<br />
user and designers: the end user needs to<br />
buy a bulb in order to replace a broken one;<br />
lamp designers have to design their object<br />
around the light bulb and must consider<br />
its shape, size, luminosity, temperature it<br />
might reach etc.. In this sense a light bulb<br />
becomes a material for the designer.<br />
From a sensorial point <strong>of</strong> view, the<br />
elegance and simplicity <strong>of</strong> the shape, and<br />
the materials can be appreciated.<br />
In my personal experience however this<br />
kind <strong>of</strong> lamp also provides an additional<br />
level <strong>of</strong> engagement since I recognize the<br />
iconic value this lamp has in the history<br />
<strong>of</strong> Italian design, I appreciate the ideas<br />
that give shape to the <strong>product</strong>. All the<br />
contextual information I know about the<br />
<strong>product</strong> makes me value the <strong>product</strong> even<br />
more. 7 I am engaged with it and appreciate<br />
the <strong>product</strong> in the same way I can be<br />
engaged by an art piece.<br />
While the light bulb and Lampada Arco<br />
are serving the exact same task, they are<br />
targeting two different user groups. While
Graduation Assignment - 23<br />
Figure 8. Lampada Arco (1962), Achille Castiglioni, Piergiacomo castiglioni for Artemide
24 - <strong>TINK</strong><br />
1.2.2 design tools<br />
Pieter Jan Stappers’s work comes useful in<br />
my attempt to categorize different kinds <strong>of</strong><br />
<strong>objects</strong>.<br />
The sketch in figure 9 consists <strong>of</strong> a number<br />
<strong>of</strong> layers <strong>of</strong> design, each named after the<br />
main actor in it. Stappers refer to these<br />
as ‘meta-levels’, which help us understand<br />
how tools, the people that use them, and<br />
the process <strong>of</strong> design are inter-related:<br />
When we apply meta levels to<br />
design, we have users <strong>of</strong> tools we<br />
call <strong>product</strong>s, designers <strong>of</strong> those<br />
<strong>product</strong>s who use ‘design tools’,<br />
and people who create those tools,<br />
sometimes referred to as ‘design<br />
researchers’ or ‘methods developers’ 9<br />
Within this schema, the Lampada Arco can<br />
be placed as a tool designed by <strong>product</strong><br />
designers for consumer; the light bulb<br />
instead stays on a superior level and have<br />
the role <strong>of</strong> design tool that the <strong>product</strong><br />
designer need to use when has to design<br />
a new lamp.<br />
Openness comes with a limitation:<br />
In order to operate those kinds <strong>of</strong> “open<br />
tools” some skills are required. For example,<br />
in order to replace the light bulb, we need<br />
know how to replace the bulb within lamp.<br />
Similarly, the knife <strong>of</strong> the Swiss Army Knife<br />
is a multipurpose tool not specifically<br />
designed to cut bread, but as it is an open<br />
tool, it can if we manipulate it in order to<br />
accomplish the task.<br />
In the same way <strong>product</strong> designer<br />
starts designing a <strong>product</strong> by defining<br />
requirements based on user research,<br />
designers <strong>of</strong> tools should start from a<br />
good understanding <strong>of</strong> their users: <strong>product</strong><br />
designers.<br />
Design tools in fact should be designed<br />
based on the expertise designers have 6<br />
and be able to integrate smoothly into<br />
their design process. Design Tools should<br />
empower designers, requiring from them<br />
a minimum effort in acquiring new skills<br />
that are not part <strong>of</strong> their main expertise. 6<br />
Generally speaking we can state that a<br />
bigger level <strong>of</strong> openness in a <strong>product</strong><br />
makes it serviceable at a higher level <strong>of</strong><br />
meta-design. Design tools have therefore a<br />
bigger level <strong>of</strong> openness since they have to<br />
allow <strong>product</strong> designers to use them in as<br />
many projects as possible.
Graduation Assignment - 25<br />
Figure 9. Meta-levels in design Stappers, P. J. (2009). Meta-levels in Design Research.
26 - <strong>TINK</strong><br />
1.3 The Internet <strong>of</strong> Things<br />
In the last 10 years microcontrollers<br />
have become smaller in size, more energy<br />
efficient, and cheaper. Consequently, it<br />
has become possible to embed them into<br />
everyday <strong>objects</strong>. 10 As a result <strong>of</strong> this<br />
technological development, large and small<br />
companies have started to connect everyday<br />
<strong>objects</strong> (from dishwashers to umbrellas) to<br />
the Internet. This has created a ubiquitous<br />
connection between the physical and the<br />
digital world: a new social web in which<br />
both people and <strong>objects</strong> communicate.<br />
This web <strong>of</strong> inter<strong>connected</strong> and responsive<br />
<strong>objects</strong> is commonly referred to as the<br />
Internet <strong>of</strong> Things 2 .<br />
The IoT is a hard to define precisely. In<br />
fact, many different groups have already<br />
tried to define the term, although its<br />
initial use has been attributed to Kevin<br />
Ashton, an expert on digital innovation.<br />
Each definition shares the idea that the<br />
first version <strong>of</strong> the Internet was about data<br />
created by people, while the next version<br />
is about data created by things. In 2009,<br />
Ashton said it best in this quote from an<br />
article in the RFID Journal 2 :<br />
“If we had computers that knew<br />
everything there was to know about<br />
things - using data they gathered<br />
without any help from us - we<br />
would be able to track and count<br />
everything, and greatly reduce waste,<br />
loss and cost. We would know when<br />
things needed replacing, repairing<br />
or recalling, and whether they were<br />
fresh or past their best”.<br />
Other authors have tried to come up with<br />
other names and definitions to highlight<br />
particular aspects <strong>of</strong> IoT <strong>objects</strong>. For<br />
example, Bruce Sterling talks about<br />
“Spimes” highlighting the way those object<br />
can be tracked:<br />
“Things that are searchable, track<br />
their location, usage histories and<br />
discourse with the other things<br />
around them”. 12<br />
Julian Bleecker instead, embracing Latour’s<br />
actor network theory, refers to those kinds<br />
<strong>of</strong> <strong>objects</strong> as “Blogjects,” emphasizing<br />
the capabilities for this object to produce<br />
contents:<br />
Blogjects became first class citizens<br />
with which we will interact and<br />
communicate, they won’t just be<br />
things <strong>connected</strong> to the internet<br />
but things participating within the<br />
internet. 11<br />
Kuniavsky on the other hand underline the<br />
pervasive computing aspect that those<br />
object embed and highlights their ability<br />
in processing information. He refers to<br />
them as “smart things” and defines it as:<br />
“Things that do information<br />
processing and networking, but are
Graduation Assignment - 27<br />
not experienced as general purpose<br />
computing or communication<br />
devices.” 10<br />
Boreland instead defined “meta <strong>product</strong>s”<br />
as:<br />
“Information fueled <strong>product</strong>s and<br />
services that will be around us as a<br />
network whenever we need them” 13<br />
In this definition the element <strong>of</strong><br />
pervasiveness is present, but it additionally<br />
provides that those <strong>product</strong>s are always<br />
<strong>connected</strong> to services, and that they are<br />
powered by data and information.<br />
It is clear after this overview how the Broad<br />
domain is still not defined yet. In order<br />
to be able to operate in it I formulated a<br />
statement that summarizes several aspect<br />
<strong>of</strong> the definition just discussed in a more<br />
practical formulation.<br />
To the internet<br />
Embed computers<br />
Store information<br />
Propose decision<br />
<strong>connected</strong><br />
<strong>objects</strong><br />
inform<br />
decisions<br />
To the enrironment<br />
Object looking<br />
To other <strong>objects</strong> To people<br />
Produce information<br />
Take decision<br />
Figure 10. Definition <strong>of</strong> Connected Objects<br />
I will use the name “<strong>connected</strong> <strong>objects</strong>” to refer to<br />
<strong>objects</strong> that are somehow <strong>connected</strong> to the Internet,<br />
to other <strong>objects</strong>, and to people. Connected <strong>objects</strong><br />
are able to contain and/or create information.<br />
These <strong>objects</strong> don’t necessarily look like computers,<br />
even though they have microcontroller inside.<br />
Connected <strong>objects</strong> are able to make decisions or<br />
influence our decisional process.
Figure 11. Make magazine vol 36 (2014)
CHAPTER 2<br />
Market analysis<br />
In the beginning <strong>of</strong> the chapter, a COMMUNICATION MODEL to<br />
analyse different kind <strong>of</strong> IoT <strong>product</strong>s is proposed.<br />
Market research was conducted to define more concretely what<br />
kind <strong>of</strong> <strong>objects</strong> fall in the category <strong>of</strong> “Connected Objects.” 70<br />
projects where analysed with respect to the communication<br />
model, and grouped into 6 CONNECTED OBJECT PRODUCT CAT-<br />
EGORIES.<br />
A similar analysis was conducted on the tools designed to<br />
support the creation <strong>of</strong> experiential prototypes <strong>of</strong> <strong>connected</strong><br />
<strong>objects</strong>. The tools have been deconstructed according to their<br />
features, and thus 9 TECHNOLOGICAL ARCHETYPES are defined<br />
here within.<br />
TARGET USERS for the different tools are identified.<br />
At the end <strong>of</strong> the chapter the first design directions are<br />
presented.
30 - <strong>TINK</strong><br />
2.1 Communication model for <strong>connected</strong><br />
<strong>objects</strong>.<br />
Figure 12. Wall Analysis <strong>of</strong> Connected<br />
Objects<br />
After having acquired a theoretical<br />
knowledge on the topic <strong>of</strong> IoT, an analysis<br />
was conducted on 47 research and design<br />
project in order to gain a more practical<br />
understanding on the topic.<br />
The list <strong>of</strong> projects was initially retrieved<br />
from a research done by Emma Gores and<br />
Elisa Giaccardi on socially tangible media.<br />
In order to have a complete picture <strong>of</strong><br />
different kind <strong>of</strong> IoT <strong>product</strong>s other 23<br />
projects where then added to the initial<br />
set.<br />
A system diagram was drawn for each<br />
project analysed, a special focus was given<br />
in mapping out the connections between<br />
the different elements involved in the<br />
system.<br />
As a first result <strong>of</strong> the analysis five entities<br />
were identified as recurring actors that<br />
are most <strong>of</strong> the time present in systems<br />
<strong>of</strong> <strong>connected</strong> <strong>product</strong>s. This 5 entities<br />
communicate and exchange information<br />
between each other in a fixed structure.<br />
Figure 13 shows a communication model<br />
representative <strong>of</strong> how information can flow<br />
between the different entities. The flow <strong>of</strong><br />
information is also representative <strong>of</strong> how<br />
the different entities interact with each<br />
other.<br />
Objects<br />
In a pervasive technology perspective,<br />
<strong>objects</strong> are the one that, equipped with<br />
sensors, actuators, micro controllers and<br />
networking capabilities, evolve. They<br />
become able to contain, create, share<br />
information and sometimes take or suggest<br />
decision. In this perspective <strong>objects</strong> are<br />
actively taking part to a conversation with<br />
users.<br />
Other <strong>objects</strong> can mediate interaction with<br />
<strong>connected</strong> <strong>objects</strong>. Those will be touch<br />
point <strong>of</strong> the same system. For example a<br />
system can be composed <strong>of</strong> an object that<br />
post data on the Internet, the data can<br />
then be fetched through a web browser or<br />
displayed via an other <strong>objects</strong>.<br />
Data<br />
Data is the base element <strong>of</strong> an informational<br />
system. 13 Data can be recorded by sensors<br />
embedded inside <strong>objects</strong> or produced<br />
directly by people in the digital world.<br />
Data can be transmitted from object to<br />
object, stored and analysed. Data enables<br />
the system to be smart.<br />
Users<br />
Without users, systems do not need to<br />
exist. All systems are designed around<br />
users, who produce data or make valuable<br />
use <strong>of</strong> information collected via <strong>objects</strong><br />
and devices.<br />
Users never have direct access to data,<br />
their access to the information stored in<br />
to the cloud is always mediated by either<br />
<strong>objects</strong> or devices
Market analysis - 31<br />
Devices<br />
The device, or multi-purpose device can be<br />
a smartphone or a laptop. In most cases it<br />
has a screen and an interface that allows<br />
people to visualize and manipulate digital<br />
information.<br />
While <strong>objects</strong> can manipulate and present<br />
data as well, object are, in most cases,<br />
very specialized things. Devices are not<br />
specialized but multi-purpose. Different<br />
programs/apps can be installed on them<br />
allowing endless possibilities.<br />
Places<br />
Places serve as stages for the<br />
interaction to happen. Object can<br />
have direct interaction with users, but<br />
they can also can interact with their<br />
users indirectly by affecting people’s<br />
environment.<br />
Places in fact can be controlled,<br />
monitored and modified by <strong>objects</strong>.<br />
DEVICES<br />
PEOPLE<br />
DATA<br />
OBJECTS<br />
Figure 13. Communication model<br />
for Connected Objects<br />
PLACES
32 - <strong>TINK</strong><br />
2.2 Categories <strong>of</strong><br />
<strong>connected</strong> object<br />
Different system <strong>of</strong> Connected Objects are<br />
characterized by a different communication<br />
flow: the stream <strong>of</strong> information going from<br />
one entity to another can follow different<br />
paths.<br />
For instance having a smart watch that<br />
collects data and stores it online presents<br />
a clear information flow that starts from<br />
the user that generates the data -> the<br />
device that reads the data and logs it-><br />
and a database (cloud) where the data is<br />
then stored.<br />
6<br />
actuator<br />
sensor<br />
actuator<br />
sensor<br />
BIDIRECTIONAL COMMUNICATION TOOLS<br />
KISSINGER<br />
LUMITOUCH<br />
The projects analysed were grouped in<br />
6 categories according to the kind <strong>of</strong><br />
communication flow implemented.<br />
The categories are not mutually-exclusive,<br />
and some overlaps can be identified.<br />
5<br />
TVILIGHT SMART<br />
STREET LIGHTING<br />
OBJECTS NETWORKS<br />
ADDICTED TOASTER<br />
Figure 14. Overview <strong>of</strong> the<br />
6 categories <strong>of</strong> Connected<br />
Objects
Market analysis - 33<br />
1<br />
#011231=#ff0000 - 2-12-2013<br />
#011231=#FFFF00 - 3-12-2013<br />
2<br />
OBJECTS LINKED TO DIGITAL DATA<br />
OBJECTS THAT PUBLISH DATA ON THE WEB<br />
GOOGLE TALKING SHOE<br />
OV-CHIPKART<br />
DEVICES<br />
PEOPLE<br />
FITBIT AUREA<br />
DATA<br />
SMART CITIZEN<br />
PLACES<br />
OBJECTS<br />
AMBIENT UMBRELLA<br />
SKUBE<br />
GOODNIGHT LAMP<br />
LG-<strong>TINK</strong>Q<br />
PHILIPS HUE<br />
REMOTE CONTROLLED OBJECTS<br />
INSTACUBE<br />
LITTLE PRINTER<br />
OBJECTS THAT PULL DATA FROM THE WEB<br />
4<br />
3
34 - <strong>TINK</strong><br />
2.2.1 - Objects linked to digital Data<br />
#011231=#FFFF00 - 3-12-<br />
Figure 15. OV-Chipcart<br />
This category comprehends physical <strong>objects</strong><br />
that are linked to some kind <strong>of</strong> digital data.<br />
Historically it is the first manifestation <strong>of</strong><br />
IoT <strong>product</strong>s. In principle the category<br />
comprehends all the object that are<br />
<strong>connected</strong> a treaceble unique identifier.<br />
The identification can be achieved through<br />
unique ID numbers, barcodes or QRCodes.<br />
The most seamless interaction, however,<br />
is achieved through RFID tags that can be<br />
hidden inside any object.<br />
This category <strong>of</strong> <strong>product</strong> is very important<br />
in the History <strong>of</strong> the Internet <strong>of</strong> Things.<br />
When Kevin Ashton in 1999 invented the<br />
term IoT, he was actually envisioning<br />
a world where <strong>objects</strong> were uniquely<br />
addressable and it would have been<br />
possible for a computer to process those<br />
object in the same way it processes data. 2<br />
Object that are uniquely addressable via<br />
RFID are not the only component <strong>of</strong> a<br />
system based on RFID. Other components<br />
(RFID scanner, computer, database etc.)<br />
are necessary in order to connect <strong>objects</strong><br />
to data.<br />
Linking atoms and bits is the first step in<br />
order to extend <strong>product</strong>s with information.<br />
“Tale <strong>of</strong> Things” 14 is the name <strong>of</strong> a project<br />
that makes use <strong>of</strong> RFID technology to<br />
connect people’s memories to real world<br />
<strong>objects</strong>; the memories are in form <strong>of</strong> video<br />
and are recorded by the owner <strong>of</strong> the<br />
<strong>product</strong>s.<br />
If we explain the project in this ways it is<br />
hard to see the direction <strong>of</strong> the information<br />
flow. But looking at the whole service we<br />
notice that firstly, pieces <strong>of</strong> information<br />
flow from a user to a server: when a new<br />
object is added the story <strong>of</strong> the object<br />
is recorded and saved. Then a link in a<br />
database is created between the object and<br />
the information. In this way when a new<br />
user will inspect the object, the user will<br />
be able to retrieve the information linked<br />
to it. The information this time will flow<br />
from the database to the user.<br />
While in the previously discussed example,<br />
<strong>objects</strong> are not able to produce information<br />
by themselves; RFID technology can also<br />
allow this kind <strong>of</strong> interaction. In the case<br />
<strong>of</strong> the OV-Chipkard 15 (Figure 15), Every time<br />
the card is scanned, the time and location<br />
<strong>of</strong> the card –and its owner- is recorded in<br />
a database. Information in this case is<br />
flowing from the card to the dataset, but<br />
within the same system information also<br />
flows in the other direction since every<br />
time the card is scanned, the device ask<br />
the database how much credit is left on it.
Market analysis - 35<br />
2.2.2 - Objects that publish data to the web<br />
This category comprehends all <strong>product</strong>s<br />
that are able to directly connect to the<br />
Internet and publish content.<br />
More and more environments and <strong>objects</strong><br />
are getting equipped with sensors. This<br />
allows us to keep track and read information<br />
that was invisible before. The contents<br />
published online are then accessed through<br />
other media. Objects are able to directly<br />
interact with social networks like twitter,<br />
or log the data in dedicated database.<br />
We can divide <strong>objects</strong> that are part <strong>of</strong> this<br />
category in three sub-groups:<br />
Sensors: the <strong>product</strong> is nothing more than<br />
a bunch <strong>of</strong> sensors <strong>connected</strong> to some<br />
electronic that post the sensor readings<br />
online. It is the case <strong>of</strong> the Smart citizen<br />
project 16 (Figure 16), a sensor board that<br />
collects different types <strong>of</strong> environmental<br />
data and publishes them on a website.<br />
Objects that embed sensors: The <strong>product</strong>s<br />
already have a “non-digital” purpose but<br />
are equipped with sensors in order to track<br />
and monitor something related to the<br />
interaction.<br />
In most cases these types <strong>of</strong> <strong>objects</strong> <strong>of</strong>fer<br />
the user other touch points to visualize the<br />
data. Fit-bit Aria 17 (Figure 16) is a digital<br />
scale system able to identify different users<br />
and record the measurement on-line, this<br />
allows the user to keep track <strong>of</strong> progress<br />
over time. The time scale adds another<br />
dimension allowing the user to transform<br />
the singular data into more valuable<br />
information. The user might, for example,<br />
discover a pattern related to the amount <strong>of</strong><br />
physical activity done in a certain period,<br />
thus allowing him to keep track <strong>of</strong> the<br />
effectiveness <strong>of</strong> his training.<br />
Object that transform data in<br />
information: This is the case <strong>of</strong> <strong>objects</strong><br />
that instead <strong>of</strong> publishing raw data online,<br />
are able to make sense <strong>of</strong> it and transform<br />
it into meaningful information. An example<br />
<strong>of</strong> this kind <strong>of</strong> approach is the “Talking<br />
Shoe” project by Google 18 (Figure 18),<br />
where the data retrieved by the sensors are<br />
used to determine what kind <strong>of</strong> activity the<br />
user is doing. After the analysis the shoes<br />
can talk to their user trough a speaker and<br />
the user’s smartphone to motivate him in<br />
his sporting activity.<br />
Figure 16. Smart citizen board<br />
Figure 17. Fit Bit Aria<br />
Figure 18. Google talking shoe
36 - <strong>TINK</strong><br />
2.2.3 - Objects that pull data from the web<br />
Figure 19. Skube (2012), A.<br />
Nip, R van der Vleuten, M.<br />
Borch, A. Spitz<br />
Figure 20. Ambient Umbrella<br />
(2007), Ambient devices<br />
The category comprehends <strong>product</strong>s that<br />
use the Internet connection to retrieve<br />
data and operate according to it.<br />
Often the interaction with those <strong>product</strong>s<br />
is aimed at creating seamless connections<br />
between users and Internet, moving away<br />
the people from the classical browser.<br />
This is achieved by embedding digital<br />
information in to tangible <strong>product</strong>s<br />
Objects in this category can be physical<br />
representation <strong>of</strong> social network, like<br />
Instacube 20 and Skube 19 (Figure 19): A<br />
digital frame, the first, which display<br />
Instagram photos, and an audio player<br />
<strong>connected</strong> to Spotify and Last FM.<br />
In both case it is possible to access<br />
the social network using a specialized<br />
tool. Thus making the interaction more<br />
contextual.<br />
Some projects in the category can be<br />
described as interfaces aimed at providing<br />
access to digital contents in a more<br />
meaningful and contextual way. This is the<br />
case <strong>of</strong> the Ambient Umbrella 21 ,(Figure 20)<br />
an Umbrella with Internet connection that<br />
reads the weather forecast and informs<br />
the user if it is necessary to go out with<br />
it by changing the colour <strong>of</strong> a light on the<br />
umbrella itself. The Umbrella is particularly<br />
relevant because apart from displaying<br />
data, again it goes beyond providing<br />
just data to the user, it in fact proposes<br />
decision for the user giving suggestions on<br />
weather to go out with the umbrella.<br />
Transforming data in to information is<br />
what make the object “smarter”. While the<br />
umbrella cannot operate autonomously and<br />
can just propose decision, other <strong>objects</strong><br />
use the data to operate autonomously.<br />
An example could be an irrigation sensor<br />
that before watering the plants will also<br />
check the weather forecast, If it discovers<br />
that it is going to rain in the afternoon<br />
it might take the decision to not watering<br />
the plants<br />
This kind <strong>of</strong> <strong>objects</strong> aimed at automation<br />
and process optimization has been largely<br />
used already in the industry. Lately the<br />
as the cost <strong>of</strong> the electronic and s<strong>of</strong>tware<br />
is diminishing smart <strong>objects</strong> are being<br />
developed also for end users especially in<br />
the context <strong>of</strong> “smart home“.
Market analysis - 37<br />
2.2.4 - remote controlled <strong>objects</strong><br />
Objects <strong>connected</strong> to the Internet can be<br />
“remotely controlled”.<br />
There is a big distinction between<br />
<strong>objects</strong> that are controlled by a web or a<br />
smartphone interface, and <strong>objects</strong> that are<br />
remotely controlled by other <strong>objects</strong>.<br />
The simplest example <strong>of</strong> a <strong>product</strong> that is<br />
part <strong>of</strong> the first category is the Philips Hue<br />
lamp 22 (Figure 21) : A programmable light<br />
bulb with Wi-Fi connection. Through a<br />
smartphone app the user is able to change<br />
the colour <strong>of</strong> the light. Because this action<br />
usually takes place when the user is in the<br />
same place <strong>of</strong> the lamp, the smartphone<br />
app doesn’t have to provide any feedback<br />
to the user.<br />
This doesn’t happen in the case <strong>of</strong><br />
remotely controlled <strong>objects</strong> that are in<br />
other locations. The LG smart appliances<br />
with THINQ 23 technology is a family <strong>of</strong><br />
inter<strong>connected</strong> house appliances that the<br />
user can remotely monitor and control from<br />
a web app. The monitoring feature implies<br />
this time a two-way communication<br />
between the device and the user.<br />
Objects can also be controlled by other<br />
<strong>objects</strong>, this is the case <strong>of</strong> the Goodnight<br />
Lamp (Figure 22), a family <strong>of</strong> inter<strong>connected</strong><br />
lamps that let you share your presence and<br />
availability to your loved ones easily and<br />
in an ambient way 24 .<br />
In this case a main lamp is <strong>connected</strong> to<br />
other lamps that are remotely controlled<br />
by the first one. When the main lamp<br />
(controller) is turned <strong>of</strong>f, the others do the<br />
same.<br />
Figure 21. Hue (2012), Philips<br />
Figure 22. Good night lamp (2012),
38 - <strong>TINK</strong><br />
2.2.5 - Bidirectional communication devices<br />
actuator<br />
sensor<br />
sensor<br />
actuator<br />
The good night lamp described previously<br />
is somehow very close to this category <strong>of</strong><br />
<strong>product</strong>s.<br />
The category comprehends in fact devices<br />
aimed at connecting people in different<br />
places via tangible interfaces. Products<br />
in this category are also referred to as<br />
tele-presence <strong>product</strong>s.<br />
An example is Kissenger (Figure 24), a<br />
system composed <strong>of</strong> two devices that<br />
provides a way <strong>of</strong> transferring a kiss on the<br />
distance 25 . It provides a physical interface<br />
which enables kiss communication for<br />
several applications facilitating intimate<br />
human tele-presence with the real and<br />
virtual worlds.<br />
Figure 23. Kissinger (2011),<br />
Lovotics<br />
What sets this category apart from the<br />
one discussed earlier is the possibility <strong>of</strong><br />
having a two-way communication between<br />
the devices. Products in this category<br />
are specular, the sensor on one device<br />
are “directly” <strong>connected</strong> to actuators on<br />
another device.
Market analysis - 39<br />
2.2.6 - Objects Networks<br />
This category <strong>of</strong> <strong>product</strong>s is the least<br />
explored in the IoT landscape, it<br />
comprehends networks <strong>of</strong> many <strong>objects</strong><br />
which talk and communicate with each<br />
other.<br />
Networks <strong>of</strong> <strong>objects</strong> can be composed<br />
<strong>of</strong> similar or different type <strong>of</strong> <strong>objects</strong>.<br />
The connection between them can be<br />
hierarchical or horizontal.<br />
Network <strong>of</strong> object use the network to share<br />
data between each other, they usually<br />
don’t influence each other directly but is<br />
the global behaviour <strong>of</strong> the network that<br />
influence the single entity.<br />
An example <strong>of</strong> this kind <strong>of</strong> <strong>product</strong> is the<br />
TVilight system for smart lighting 26 (Figure<br />
24): A networks <strong>of</strong> street light poles able<br />
to dim the light when no one is present<br />
on the street. The light poles communicate<br />
with each other in order to provide the<br />
required light level when someone is<br />
passing by.<br />
The poles have to share information<br />
between each other: when the sensor on<br />
one pole detects an approaching car it has<br />
to notify the 10 poles next to it to turn on<br />
their light as well.<br />
Addicted toaster 27 (Figure 25) is<br />
another good example <strong>of</strong> a network <strong>of</strong><br />
inter<strong>connected</strong> <strong>product</strong>s.<br />
Addicted Toasters are toasters that love to<br />
be used, toasters with agency and desires,<br />
toasters that will get jealous <strong>of</strong> other<br />
toasters that are appreciated more.<br />
The toaster communicate to each other to<br />
know how their fellow Toasters are faring.<br />
If a toaster thinks that it is not being used<br />
enough, it will try to get itself transported<br />
to someone else that makes more toast.<br />
Figure 24. City Sense (2012),<br />
TVilight<br />
Figure 25. Addicted Toaster (2012),<br />
Simone Rebaudengo
40 - <strong>TINK</strong><br />
2.3 Connected <strong>objects</strong> toolbox<br />
Until now the topic <strong>of</strong> what kind <strong>of</strong> tool is<br />
needed in order to sketch and prototype this<br />
kind <strong>of</strong> <strong>product</strong>s has not been discussed. In<br />
order to have a clear overview <strong>of</strong> existing<br />
tools, a market research was conducted .<br />
The research focused on tools both<br />
commercially available on the market and<br />
on Kickstarter projects.<br />
In figure 26 an overview <strong>of</strong> the different<br />
tools analysed can be observed.<br />
Three categories <strong>of</strong> tools have been<br />
discovered, S<strong>of</strong>tware, Hardware, and<br />
combination <strong>of</strong> the two.<br />
The tools are placed on the graph according<br />
to the category they are part <strong>of</strong> and the<br />
level <strong>of</strong> technical skills required in to use<br />
them.<br />
Not all the tools can facilitate the<br />
development <strong>of</strong> experiential prototype <strong>of</strong><br />
all 6 categories <strong>of</strong> <strong>connected</strong> <strong>objects</strong>. The<br />
one that are easier to use, in fact, are most<br />
<strong>of</strong> the time limited to the development<br />
<strong>of</strong> interactions <strong>of</strong> a specific a category.<br />
More advanced tool, on the other hand<br />
can be used to prototype any kind <strong>of</strong><br />
communication model described, however<br />
as those tools are more versatile they<br />
Figure 26. Map <strong>of</strong> the tools for<br />
Connected Objects.<br />
HARDWARE<br />
sensem<br />
SOFTWARE<br />
Smart Things<br />
Ninja Sphere<br />
Readymate<br />
Twine<br />
Wemo<br />
HW+SW<br />
Staple Connect<br />
Nabaztag<br />
Wemo Make<br />
SKILLS RULER
Market analysis - 41<br />
require more technical knowledge from the<br />
user.<br />
More information on each specific platform<br />
can be found on the blog I used to<br />
document the research phase <strong>of</strong> the project<br />
http://<strong>connected</strong><strong>objects</strong>.tumblr.com/ .<br />
Arduino YUN<br />
Spark<br />
Pinocchio<br />
Raspberry PI<br />
Electric Imp<br />
Intel Edison<br />
e<br />
IFTT<br />
Maker Swarm<br />
Ninja block<br />
r
42 - <strong>TINK</strong><br />
2.4 Tools users<br />
Figure 27. End User, Maker and developer:<br />
3 target user <strong>of</strong> Connected<br />
Object tools<br />
The fact that different tools require<br />
different levels <strong>of</strong> skill as shown in Figure<br />
26 is also directly <strong>connected</strong> to the fact<br />
that the different solutions are targeting<br />
tree different user groups:<br />
The End-user<br />
End users might be interested in Connected<br />
Object tools to simplify their life, keep in<br />
touch with people and monitor things over<br />
longer distances.<br />
In terms <strong>of</strong> skill, end user don’t have<br />
electronic or programming background,<br />
they are however able to operate<br />
smartphone apps and computers.<br />
As already discussed in the chapter about<br />
tools, end user <strong>product</strong>s present a limited<br />
amount <strong>of</strong> “openness”. Tools designed<br />
for end users are most <strong>of</strong> the times a<br />
combination <strong>of</strong> hardware and s<strong>of</strong>tware. This<br />
creates a uniform user experience, does
Market analysis - 43<br />
not require the user to choose a specific<br />
platform and limits the functionalities to<br />
what is really needed.<br />
In order to be simple to use, end user tools<br />
usually perform one very specific task,<br />
providing a very limited amount <strong>of</strong> options.<br />
The Maker<br />
Makers are interested in IoT tools that<br />
allow them to bring their ideas to life.<br />
They have some programming or electronic<br />
experience, but in most <strong>of</strong> the cases they<br />
start working on a project by looking at<br />
tutorials online.<br />
Makers look for versatile tools: usable in<br />
different contexts and for multiple projects.<br />
Since makers look for the easiest way to<br />
implement their ideas, they prefer to hack<br />
and modify tools rather than starting with<br />
something from scratch.<br />
The Developer<br />
Prototyping s<strong>of</strong>tware and hardware is part<br />
<strong>of</strong> the developer’s pr<strong>of</strong>ession.<br />
Most <strong>of</strong> the time developers have<br />
engineering backgrounds, therefore they<br />
are either very capable in s<strong>of</strong>tware or in<br />
electronics.<br />
Tools targeting developers make use <strong>of</strong> the<br />
specific expertise developers have.<br />
In the research for example several<br />
boards targeting s<strong>of</strong>tware developers were<br />
identified. The Tessel Board, for instance,<br />
is targeting web developers, it comes with<br />
a set <strong>of</strong> sensors that can easily be snapped<br />
on to the board to facilitate the electronic<br />
development. Additionally the Tessel board<br />
can be programmed in Javascript, a very<br />
common web programming language.<br />
Developers look for tools that are scalable,<br />
efficient and stable. They have to feel in<br />
control <strong>of</strong> the project, and even though<br />
they might make use <strong>of</strong> third party<br />
libraries, they are able to understand and<br />
modify those if required.<br />
While the categorization might seem very<br />
strong, it is clear in the graph ... that there<br />
is some overlap between tools for endusers,<br />
makers and developers.<br />
Makers in fact might be interested in<br />
hacking a <strong>product</strong> designed for end-user<br />
in order to accomplish their goals and<br />
at the same time developers might use<br />
maker tools to quickly produce and test a<br />
prototypes.<br />
The interaction designer<br />
Defining the average skill level <strong>of</strong><br />
interaction designers is not easy.<br />
A big debate is going on about how much<br />
interaction designers need to know about<br />
coding or electronics.<br />
According to the study program followed,<br />
some users might be more skilled with<br />
programming and electronic and some<br />
won’t. If I look at my fellow interaction<br />
design student trained at TU Delft, I can<br />
place most <strong>of</strong> them between makers and<br />
end users, in fact some have good making<br />
skills, but most <strong>of</strong> them do not.
44 - <strong>TINK</strong><br />
Figure 28. Exploded view <strong>of</strong> a bike,<br />
from “Things came apart” (2013),<br />
Todd McLellan<br />
2.5 Technology<br />
archetypes<br />
New prototyping tools are produced<br />
every day. Every new board and s<strong>of</strong>tware<br />
announced has some distinctive difference<br />
from the others. However, several<br />
characteristics are shared amongst them.<br />
The different tools summarized in figure 26<br />
have been deconstructed in terms <strong>of</strong> their<br />
core features and several tool archetypes<br />
were identified. The deconstruction<br />
followed different criteria for the 3<br />
different categories <strong>of</strong> hardware, s<strong>of</strong>tware<br />
and HW+SW.
Market analysis - 45<br />
2.5.1 Hardware<br />
A wide range <strong>of</strong> different electronic<br />
prototyping boards are present on the<br />
market, each <strong>of</strong> them comes with a<br />
different set <strong>of</strong> specifications regarding:<br />
• Connection capabilities (usb,<br />
bluetooth, wifi, ethernet, zigbee,<br />
etc.)<br />
• Numbers <strong>of</strong> available input output<br />
• I/O capabilities (i2c, PWM, ADC etc.)<br />
• Programming language (C, javascript,<br />
python, linux, MaxMsp etc.)<br />
• Processing power<br />
• Hack-ability 5 (does the board come<br />
with a fixed set <strong>of</strong> extension sensors<br />
or can you connect a wide range <strong>of</strong><br />
other electronic devices?)<br />
An electronic platform is required whenever<br />
an experiential prototype requires reading<br />
value from the world and/or affecting it<br />
trough sensors and/or actuators.<br />
Although this category <strong>of</strong> archetypes<br />
describes hardware platforms, it must be<br />
specified that in most <strong>of</strong> the cases, in order<br />
to define the behaviour <strong>of</strong> an electronic<br />
board, the board has to be programmed.<br />
The practice, also known as physical<br />
computing 29 requires the user to acquire<br />
knowledge on two quite different discipline<br />
such as programming and electronics.<br />
Some boards however are intended to<br />
make the application <strong>of</strong> interactive <strong>objects</strong><br />
and environments more accessible. Thus<br />
allowing interaction designers to use them.<br />
Two main strategies are leading the<br />
development <strong>of</strong> electronic prototyping<br />
boards for interaction designers:<br />
• The first one is providing the user<br />
with an “easier” way to program the<br />
board. In the case <strong>of</strong> Arduino 28 for<br />
example it was decided to use an IDE<br />
that is very minimal and similar to<br />
processing with which Arduino also<br />
shares the programming language.<br />
Lego Mindstorm 30 instead can be<br />
programmed via a graphical user<br />
interface by connecting several<br />
building blocks together (Figure 29).<br />
• The second strategy is lowering<br />
the barrier <strong>of</strong> the electronic<br />
development 31 : Some platforms come<br />
with pre-assembled modules that the<br />
user can just plug in to the board<br />
without worrying about resistors<br />
capacitors or breadboard. Examples<br />
<strong>of</strong> this are the tinker kit for Arduino<br />
(Figure 30) and the Phidgets board 32 .<br />
Because my focus for this project is<br />
analysing tools aimed at the development<br />
<strong>of</strong> experiential prototypes <strong>of</strong> <strong>connected</strong><br />
<strong>product</strong>s, the different boards were<br />
categorized according to the strategy<br />
used to connect them to the Internet, the<br />
different connection layouts respond to<br />
the different needs <strong>of</strong> every project.<br />
Figure 29. Lego mindstorm<br />
programming interface.<br />
Figure 30. Arduino Tinkerkit.
46 - <strong>TINK</strong><br />
Figure 31. Classification <strong>of</strong><br />
wireless technology according<br />
to transmission range and data<br />
rate<br />
EVERY BOARD IS DIRECTLY CONNECTED<br />
TO THE INTERNET<br />
The configuration is used when a single<br />
<strong>product</strong> needs to connect to the Internet<br />
in order to communicate to the cloud or to<br />
other devices.<br />
Wi-Fi, Ethernet and GPRS are the main<br />
technologies able to provide the board<br />
with a direct Internet connection.<br />
Ethernet connection is the easiest way to<br />
connect a device to the Internet, most <strong>of</strong><br />
the time no configuration is needed, thus<br />
allowing the <strong>product</strong> to be installed easily.<br />
Since in most <strong>of</strong> the environments it is<br />
not possible to connect a device directly<br />
to the home router with a cable, <strong>product</strong>s<br />
with WiFi connectivity are becoming more<br />
popular.<br />
This kind <strong>of</strong> wireless connection,<br />
however does not significantly improve<br />
the portability <strong>of</strong> the object due to the<br />
relatively short range (Figure 31). Projects<br />
equipped with WiFi are in fact most likely<br />
limited to the domestic environment.<br />
3g and GSM connection on the other hand<br />
provides the maximum level <strong>of</strong> portability.<br />
Products equipped with this kind <strong>of</strong> wireless<br />
modules can be <strong>connected</strong> to the Internet<br />
from areas where no other connection is<br />
available and in contexts where the device<br />
is moving. (e.g. In drones, on cars, for<br />
shipment tracking etc.)<br />
While connecting a <strong>product</strong> directly to<br />
the Internet presents several advantages,<br />
it also has some downsides related to<br />
the relatively high price and the big<br />
power consumption. Thus making this<br />
connection layout not optimal for projects<br />
comprehending large networks <strong>of</strong> sensors<br />
close to each other, or for wearable and<br />
portable devices.
Market analysis - 47<br />
SEVERAL NODES CONNECTED TO A<br />
GATEWAY<br />
This kind <strong>of</strong> configuration is used when<br />
a large number <strong>of</strong> <strong>objects</strong> have to be<br />
<strong>connected</strong> together and/or to the Internet<br />
and are relatively close to each other.<br />
In this case Radio connections (<strong>of</strong> which<br />
the actual most implemented standard<br />
is Zigbee) can be used to connect the<br />
different nodes together. If an Internet<br />
connection is then needed, few nodes can<br />
be equipped with an Internet connection<br />
and serve as gateways for the entire<br />
system.<br />
The layout presents some advantages:<br />
the node-to-node radio communication<br />
is a cheap technology, it can provide a<br />
long-range connection, and it requires a<br />
small amount <strong>of</strong> energy to function, thus<br />
allowing this <strong>product</strong> to operate for a long<br />
time on batteries.<br />
The main disadvantage is related to the<br />
fact that two communication protocols<br />
have to be implemented in order to have<br />
the nodes able to talk to each other and to<br />
the Internet.<br />
THE DEVICE USES THE INTERNET<br />
CONNECTION OF AN OTHER DEVICE<br />
This kind <strong>of</strong> configuration is mainly used<br />
for <strong>product</strong>s that have to be small, cheap,<br />
low power, or just need to communicate<br />
over a short distance on local networks.<br />
This is the case <strong>of</strong> all the wearable sensors<br />
that are <strong>connected</strong> to smartphones (e.g.<br />
nike Fuelband 33 ). The smartphone is able<br />
to analyse the data provided by the sensor<br />
and serves as a bridge between the object<br />
and the Internet.<br />
Bluetooth low energy (BLE) is going to be<br />
the main technology that will make use <strong>of</strong><br />
this kind <strong>of</strong> layout 34 .<br />
While the technology is very promising<br />
due to it’s low price and the low power<br />
consumption, the development <strong>of</strong> a<br />
<strong>product</strong> that uses this kind <strong>of</strong> connection<br />
layout is relatively difficult since it is<br />
required to program both the electronics<br />
and the smartphone app.
48 - <strong>TINK</strong><br />
S<strong>of</strong>tware<br />
In Order to develop standalone, “non<strong>connected</strong><br />
Object”, just the s<strong>of</strong>tware for<br />
the board needs to be developed. However,<br />
when developing interactive application<br />
for <strong>connected</strong> <strong>objects</strong>, all the other<br />
devices, websites, and other services that<br />
are <strong>connected</strong> to the board need to be<br />
programmed as well. Most <strong>of</strong> the time the<br />
programming is done through coding and<br />
usually different programming languages<br />
are used in different contexts (php and/<br />
or Javascritp for web, iOS or android for<br />
devices, c for Arduino etc…).<br />
While, as discussed already, very few<br />
Interaction designers have programming<br />
knowledge, in most <strong>of</strong> the time this<br />
knowledge doesn’t go much further then<br />
some Arduino, Processing or Max MSP.<br />
For this reason, several tools have been<br />
developed in order to lower the barrier <strong>of</strong><br />
coding <strong>of</strong> <strong>connected</strong> <strong>product</strong>s and allow<br />
people with no or very little programming<br />
skills to be able to configure and automate<br />
some behaviors.<br />
Several common functionalities have been<br />
discovered during the analysis on s<strong>of</strong>tware<br />
tools. We will refer to those as s<strong>of</strong>tware<br />
archetypes. Those archetypes are not<br />
related to a specific tool, in fact tools in<br />
this category embed most <strong>of</strong> the time more<br />
than one archetype.<br />
THE DATA LOGGER<br />
This kind <strong>of</strong> s<strong>of</strong>tware allows the collection<br />
<strong>of</strong> data measured by the object. Examples<br />
<strong>of</strong> this kind <strong>of</strong> application are Patchube 35<br />
and Xively 36 .<br />
Some library is usually provided in order to<br />
interface the hardware to the website that<br />
collects data.<br />
Usually the s<strong>of</strong>tware provides standardized<br />
modules to visualize different types <strong>of</strong><br />
data, however the data can also be logged<br />
on a spreadsheet and then visualized via<br />
external s<strong>of</strong>tware.
Market analysis - 49<br />
THE EVENTS LINKER<br />
Event linkers are a type <strong>of</strong> s<strong>of</strong>tware which<br />
facilitate the programming <strong>of</strong> simple event<br />
based behaviors:<br />
Events can be triggered by sensors (e.g.<br />
The temperature dropped) or by digital<br />
events (e.g. Receive an email, like on<br />
Facebook etc.). The triggered actions can<br />
be either digital (e.g. Send an email) or<br />
physical (e.g. Turn on the light).<br />
Some linking s<strong>of</strong>tware allow the linking<br />
<strong>of</strong> discrete values (e.g. Adjust the level <strong>of</strong><br />
the light according to the loudness <strong>of</strong> the<br />
room).<br />
Most <strong>of</strong> the time the mapping <strong>of</strong> a trigger<br />
to an action doesn’t allow for complex<br />
condition (If this and that…)<br />
THE SDK<br />
A s<strong>of</strong>tware development kit (SDK or<br />
“devkit”) is typically a set <strong>of</strong> s<strong>of</strong>tware<br />
development tools that allows for the<br />
creation <strong>of</strong> applications for a certain<br />
s<strong>of</strong>tware package, s<strong>of</strong>tware framework,<br />
hardware platform, computer system, video<br />
game console, operating system, or similar<br />
development platform.<br />
It may be something as simple as the<br />
implementation <strong>of</strong> one or multiple<br />
application programming interfaces (API)<br />
in the form <strong>of</strong> some libraries to interface<br />
to a particular programming language<br />
or include sophisticated hardware to<br />
communicate with a certain embedded<br />
system.<br />
An example <strong>of</strong> a SDK is Temboo 37 : a set<br />
<strong>of</strong> API that allows you to interface your<br />
hardware platform with more than 100<br />
different third party web services. Through<br />
its web interface Temboo goes beyond<br />
providing just a s<strong>of</strong>tware library, it is also<br />
able to generate pieces <strong>of</strong> code ready to be<br />
copy-pasted.
50 - <strong>TINK</strong><br />
S<strong>of</strong>tware + Hardware<br />
These kinds <strong>of</strong> solutions are most <strong>of</strong> the<br />
time a combination <strong>of</strong> one <strong>of</strong> the previously<br />
listed hardware and s<strong>of</strong>tware archetypes<br />
developed to target mainly end-users or<br />
makers.<br />
THE SENSOR BOX<br />
The sensor box is an electronic board<br />
that includes one or more sensors; it is<br />
<strong>connected</strong> directly or indirectly to the<br />
Internet where the data is stored.<br />
Often it comes together with a piece <strong>of</strong><br />
s<strong>of</strong>tware that is used to configure the<br />
board, keep track, and visualize the logged<br />
data. The s<strong>of</strong>tware might also allow the<br />
user to perform some linking action (e.g.<br />
If the temperature rises over 40° send me<br />
an email.)
Market analysis - 51<br />
THE REMOTELY CONTROLLED OBJECT<br />
This category comprehends all the devices<br />
that can be remotely controlled to switch<br />
home appliances on or <strong>of</strong>f, open doors,<br />
change the colour <strong>of</strong> the lights etc.<br />
They come with a piece <strong>of</strong> s<strong>of</strong>tware that<br />
enables the user to remotely control them.<br />
Products in this category are <strong>of</strong>ten<br />
accessible via open source API, thus<br />
making it easy for makers and designers to<br />
include them in their projects.<br />
Moreover those <strong>product</strong>s can be <strong>connected</strong><br />
to other platforms (see the smart home<br />
gateway category).<br />
Philips hue 22 or the Belkin WeMo switch 38<br />
are part <strong>of</strong> this category.<br />
THE SMART HOME GATEWAY<br />
A smart home gateway allows several<br />
devices to be <strong>connected</strong> to the Internet.<br />
The gateway implements several<br />
communication methods and protocols,<br />
thus allowing it to connect to devices<br />
manufactured by different companies that<br />
are implementing different communication<br />
protocols. Its role is to create connections<br />
between remotely controlled <strong>objects</strong>,<br />
sensor boxes and devices.<br />
Through a configuration app several<br />
pr<strong>of</strong>iles can be configured, the house can<br />
be monitored and special events can be<br />
linked together.<br />
An important parameter when deciding to<br />
buy such a platform is related to how many<br />
third party devices it can connect to.<br />
Some smart gateways are open source and<br />
based on open hardware, this allows the<br />
user to modify its behaviour adding more<br />
nodes and sensors to the system.
52 - <strong>TINK</strong><br />
Design directions<br />
From the research on IoT <strong>product</strong>s, it<br />
emerged that category 6 (networks <strong>of</strong><br />
inter<strong>connected</strong> <strong>objects</strong>) is the least<br />
explored: While the topic <strong>of</strong> creating an<br />
infrastructure to connect <strong>product</strong>s one<br />
to the other in order to leverage the<br />
full potential <strong>of</strong> IoT application is very<br />
relevant within the IoT community 39 , very<br />
few project, between the one analysed,<br />
go in the direction <strong>of</strong> creating network <strong>of</strong><br />
inter<strong>connected</strong> <strong>objects</strong>.<br />
Several reasons can be discovered behind<br />
this:<br />
• The level <strong>of</strong> complexity <strong>of</strong> this kind <strong>of</strong><br />
system is quite high.<br />
• No design tools have been designed<br />
to sketch this type <strong>of</strong> <strong>product</strong>s.<br />
• Prototyping networks <strong>of</strong> <strong>objects</strong> can<br />
be quite expensive in terms <strong>of</strong> money<br />
and time since multiple <strong>objects</strong> have<br />
to be prototyped in order for the<br />
network behaviour to appear.<br />
My project will try to address those<br />
problems; The tool I’m going to design<br />
will therefore assist designers building<br />
experiential prototype <strong>of</strong> networks <strong>of</strong><br />
inter<strong>connected</strong> <strong>product</strong>s.<br />
This doesn’t mean that the tool won’t be<br />
used for the development <strong>of</strong> IoT <strong>product</strong>s<br />
from other categories. Networks <strong>of</strong> <strong>objects</strong><br />
in fact can embed all the communication<br />
flows characterising <strong>of</strong> the other categories.<br />
The tool will be a s<strong>of</strong>tware solution<br />
that will assist interaction designers<br />
in developing experiential prototype <strong>of</strong><br />
<strong>connected</strong> <strong>objects</strong>.<br />
The s<strong>of</strong>tware will support the development<br />
<strong>of</strong> physical interactive prototyping, and it<br />
will work in combination with a hardware<br />
platform.<br />
The chosen board will have a direct<br />
connection to the Internet. This<br />
connection layout might not be the most<br />
optimal one for every project, especially<br />
considering the higher costs <strong>of</strong> equipping<br />
a prototyping board with this kind <strong>of</strong><br />
connection. However this connection<br />
layout will provide enough flexibility to<br />
develop all kind <strong>of</strong> experiential prototype<br />
<strong>of</strong> <strong>connected</strong> object.
Market analysis - 53
CHAPTER 3<br />
User research<br />
USER RESEARCH was conducted to understand how designers think<br />
and design complex systems.<br />
During the sessions with users, participants were asked to design and<br />
represent a system <strong>of</strong> <strong>connected</strong> <strong>objects</strong>.<br />
In this chapter, the setup <strong>of</strong> the research is explained and the findings<br />
are discussed. From the results the PROGRAM OF REQUIRE-<br />
MENTS is formulated and is described in this chapter’s conclusion.
56 - <strong>TINK</strong><br />
After having analyzed different categories<br />
<strong>of</strong> <strong>connected</strong> <strong>objects</strong> and the tools that<br />
can be used to build experiential prototype<br />
<strong>of</strong> those a research was conducted in order<br />
to acquire knowledge about the target<br />
users <strong>of</strong> the design.<br />
3.1 Research questions<br />
The research was aimed at answering the<br />
following research questions:<br />
-What’s the level <strong>of</strong> knowledge that interaction designers have regarding<br />
IoT <strong>objects</strong>?<br />
-How interaction designers design complex systems?<br />
-How interaction designers represent complex system?<br />
-How can we help designers evaluate all the possibilities <strong>of</strong>fered by IoT<br />
<strong>product</strong>s?<br />
-The research was also partially aimed at validating the relevance <strong>of</strong><br />
using the communication model designed in chapter two as a tool to give<br />
structure to the representation <strong>of</strong> complex systems <strong>of</strong> <strong>connected</strong> <strong>objects</strong>.
User research - 57<br />
3.2 Research setup<br />
The research was structured as a generative<br />
session organized in 7 phases alternating<br />
idea generation with synthesis phases.<br />
A facilitator had the role <strong>of</strong> explaining<br />
the different exercises and assisting the<br />
participants when they where in doubt or<br />
stuck. The research involved 4 sessions and<br />
2 participants took part in every session.<br />
Most <strong>of</strong> the participants were interaction<br />
design students at the end <strong>of</strong> their master,<br />
one <strong>of</strong> them was a student <strong>of</strong> computer<br />
science at the end <strong>of</strong> his master. The<br />
participants were chosen based on different<br />
levels <strong>of</strong> technological skills:<br />
• 2 participants never had programming<br />
experience;<br />
• 2 had a very little, never done a project<br />
without assistance or following a step<br />
by step tutorial;<br />
• 3 had Arduino programming<br />
experience; they were able to program<br />
simple s<strong>of</strong>tware autonomously<br />
• 1 was a s<strong>of</strong>tware developer<br />
In a step-by-step approach the participant<br />
had to, first, design a complex system and<br />
then make a representation <strong>of</strong> it.<br />
Markers and different exercise sheets for<br />
the different phases <strong>of</strong> the session were<br />
given to the participants. A set <strong>of</strong> card<br />
was also designed to help the participants<br />
generate idea on different topics.<br />
Phase 1 - Imagine that a specific<br />
object is <strong>connected</strong> to the Internet<br />
what will it do?<br />
The session started by asking the<br />
participants to brainstorm on the possible<br />
design that could arise from connecting a<br />
simple object to the internet (Figure 32).<br />
Different <strong>objects</strong> were used as starting<br />
points in different sessions (c<strong>of</strong>fee mug,<br />
c<strong>of</strong>fee machine and a plant).<br />
Phase 2- summarize your concept<br />
The participants were then asked to choose<br />
one idea from the brainstorm session and<br />
summarize it either graphically or in words.<br />
Figure 32. A result from phase<br />
1 (Imagine a c<strong>of</strong>fee maker<br />
<strong>connected</strong> to the Internet,<br />
What will it do?)
58 - <strong>TINK</strong><br />
Phase 3- Imagine if…<br />
Figure 33. Usahe <strong>of</strong> the set <strong>of</strong><br />
cards to expand the original<br />
idea<br />
In phase three the goal was to expand the<br />
concept just created. The set <strong>of</strong> cards was<br />
introduced in this phase. According to the<br />
concept developed in the previous phase,<br />
different cards where provided by the<br />
facilitator.<br />
The cards were supposed to encourage the<br />
participants to expand their idea with new<br />
features: On every card a statement was<br />
provided (e.g. Imagine if the plants could<br />
post on social network; imagine if the<br />
plant could be <strong>connected</strong> to an other plant<br />
etc.) (Figure 33).<br />
Every statement was related to a<br />
technological feature or possibility typical<br />
<strong>of</strong> <strong>connected</strong> <strong>objects</strong> extracted from the<br />
analysis <strong>of</strong> the IoT projects.<br />
If a feature was already been implemented<br />
in the design, the facilitator had the<br />
possibility <strong>of</strong> skipping the card.<br />
4- Summarize the new idea<br />
At this stage an ulterior synthesis phase<br />
was required; The participants where asked<br />
to combine all the new features in a new<br />
concept. The participants could chose<br />
to exclude some features if they were<br />
considering them unnecessary for their<br />
design.<br />
Figure 34. Representation <strong>of</strong><br />
the interactions between the<br />
entities inside the communication<br />
model
User research - 59<br />
Phase 5- Sketch the communication<br />
flow between the different touch<br />
points<br />
In this phase, the communication model<br />
designed in chapter 2 was used*; a<br />
printout <strong>of</strong> the communication model<br />
without the connecting arrows was given<br />
to the participants. A short explanation<br />
<strong>of</strong> how the model was meant to work was<br />
provided. To the participants was asked to<br />
deconstruct the envisioned interaction in<br />
different actions, for every action identified<br />
it was required to draw an arrow from the<br />
entity that was performing the action<br />
towards the receiver <strong>of</strong> it (Figure 34).<br />
Phase 6- Draw a system diagram <strong>of</strong><br />
the system<br />
The participants had to draw a system<br />
diagram <strong>of</strong> the designed system (Figure<br />
35). The participants where asked to<br />
visualize the system as they would have<br />
done in the case they had ask a developer<br />
to program it.<br />
Phase 7- Comments and remarks<br />
At the end <strong>of</strong> the session a short interview<br />
with the participants about the exercises<br />
was done.<br />
Figure 35. Sketch <strong>of</strong> the system<br />
diagram: The cloud become a<br />
big brain that monitors and<br />
control the behaviour <strong>of</strong> the<br />
system.<br />
* The communication model presented in chapter 2 was not comprehensive <strong>of</strong> the places entity, this one was added<br />
consequently to some observation gained during the research.
60 - <strong>TINK</strong><br />
Research results<br />
The recording <strong>of</strong> the sessions were<br />
analysed; the most important findings are<br />
here presented:<br />
Interaction designers’ knowledge<br />
on the possibilities <strong>of</strong>fered by IoT<br />
<strong>product</strong>s:<br />
All the participants demonstrate to have a<br />
very good knowledge about the possibilities<br />
that connecting <strong>product</strong> to the Internet<br />
could bring to the design practice. In the<br />
initial brainstorming phases in fact already<br />
several topics came out.<br />
Participants with more technical skills<br />
produced less ideas then participants with<br />
less technical skills, we might reconnect<br />
this to the fact that technical minds<br />
tend to focus too much on the technical<br />
feasibility <strong>of</strong> their idea, this results in a<br />
limitation in the idea generation phase.<br />
The use <strong>of</strong> inspirational card to<br />
develop new ideas<br />
The set <strong>of</strong> card was valued as a very<br />
important tool to generate new ideas and<br />
have a good overview <strong>of</strong> all the technical<br />
possibilities brought by the possibility <strong>of</strong><br />
connecting object to the Internet.<br />
Some participants stated that the cards<br />
were very useful since they were promoting<br />
reflection on single aspect <strong>of</strong> the<br />
interaction at the time.<br />
While the cards where very good in trying<br />
to inspire new ideas on a technological<br />
level, there were no cards tackling a user<br />
centred design perspective. These made<br />
the users experience the set <strong>of</strong> cards more<br />
as technology-driven than a design driven<br />
tool.<br />
The communication model as a tool<br />
to structure the system<br />
The participants to the test experienced<br />
the communication model very positively.<br />
The tool helped them to deconstruct their<br />
concepts in small actions.<br />
The strict division between the facet <strong>of</strong> the<br />
interaction proposed by the communication<br />
model, forced the participants to think in<br />
terms <strong>of</strong> minimal pieces <strong>of</strong> interaction and<br />
helped them deconstruct their concept in a<br />
very efficient way.<br />
The cyclical structure <strong>of</strong> the model, allowed<br />
the user to decide where to start filling it<br />
in:<br />
• A first approach used was to start<br />
by listing the data needed by<br />
the system. Connections were then<br />
created according to which actor in<br />
the scheme was producing and using<br />
the data.<br />
• A second approach was to focus<br />
on one facet <strong>of</strong> interaction at the<br />
time, for instances on the interaction<br />
between the object and the user,<br />
once that section <strong>of</strong> the graph was<br />
completed, the participants focused<br />
on another section. The connection<br />
between consecutive actions<br />
happening in different sections was
User research - 61<br />
analysed at the end.<br />
• A third approach used, was to<br />
consider an action as a consequent<br />
set <strong>of</strong> events happening on different<br />
layers. This approach requires a<br />
very good understanding <strong>of</strong> how the<br />
system is working and therefore was<br />
mostly used by the participant with<br />
s<strong>of</strong>tware engineering background.<br />
While most <strong>of</strong> the session started with<br />
different approaches, at the end <strong>of</strong> the<br />
exercise, in all the session was observed<br />
a switch towards the third approach <strong>of</strong><br />
filling the scheme. This can be interpreted<br />
as a consequence <strong>of</strong> the fact that the<br />
scheme, after a short learning time is<br />
easily understood and therefore is used in<br />
a fluent way.<br />
At first glance some participants found<br />
the model confusing: the openness <strong>of</strong><br />
the model in fact does not suggest any<br />
procedure to fill it in nor a clear starting<br />
point.<br />
Some other limitation <strong>of</strong> the model were<br />
discovered:<br />
• In a complex system <strong>of</strong> <strong>connected</strong><br />
object multiple entities can play a<br />
role, Expanding the diagram with<br />
multiple users, <strong>objects</strong> and devices<br />
might be required in order to have a<br />
clear representation <strong>of</strong> the system,<br />
however, this might result in a<br />
complicated tangle <strong>of</strong> arrows.<br />
• If an object performs an action<br />
towards the environment, this is not<br />
considered by the diagram.**<br />
In the section <strong>of</strong> the model between object<br />
and data, it is interesting to notice that<br />
while the data being sent to the cloud<br />
are always simple data, (a number, a<br />
location etc.. ) the data that the object<br />
or a device retrieve from the cloud are<br />
most <strong>of</strong> the times complex information<br />
(preferences, behaviours etc…) derived<br />
from data recorded over time and/or by the<br />
collections <strong>of</strong> data produced by different<br />
entities.<br />
Designing the system diagram<br />
The assignment <strong>of</strong> designing a system<br />
diagram was voluntarily vague; no<br />
indication on how a system map is<br />
supposed to look like was given in order to<br />
not influence the participants. Due to this<br />
reason four completely different system<br />
diagram were produced.<br />
Anna and Claudia designed the system map<br />
as a series <strong>of</strong> actions that are happening<br />
one after the other. The system diagram<br />
they designed represent how different<br />
actions are happening in a chronological<br />
order.<br />
This kind <strong>of</strong> system is therefore very close<br />
to a representation <strong>of</strong> the concept in the<br />
form <strong>of</strong> a storyboard.<br />
In the short interview done after the test<br />
it was stated by the participants that<br />
** The communication model presented in chapter 2 was modified including the places entity in order to solve<br />
this issue.
62 - <strong>TINK</strong><br />
a step was missing: The detailing <strong>of</strong> the<br />
interaction in the form <strong>of</strong> a scenario was<br />
highly valued.<br />
Anna Stated that telling the story helps her<br />
“taking the system out <strong>of</strong> her minds”.<br />
Luke and Fabian struggled with the<br />
system map:<br />
They first tried to represent the system in<br />
the form <strong>of</strong> a state machine; they determine<br />
the basic states that their object could<br />
assume and then tried to relate those state<br />
with the input (data and sensor) the object<br />
was collecting.<br />
Not confident in their result they quickly<br />
got stuck.<br />
Gyan and Jenn started by envisioning<br />
the object as an entity that has input and<br />
output. The other elements <strong>of</strong> their system<br />
“the cloud” was represented as a big brain.<br />
Arrows were used to connect the object to<br />
the cloud. The big brain was envisioned as<br />
an entity able to collect data from every<br />
object <strong>connected</strong> to the system, process<br />
the information and control the <strong>objects</strong><br />
behaviours.<br />
Their system was also <strong>connected</strong> to<br />
Facebook, this was represented outside the<br />
brain as a separate block.<br />
Then he used arrows to connect all those<br />
entities, every arrows was representative<br />
<strong>of</strong> the information flowing between the<br />
different actors.<br />
Due to the fact that the concept was not<br />
very clear in his mind when he started<br />
drawing the system map, a lot <strong>of</strong> questions<br />
about the behaviour <strong>of</strong> the system raised.<br />
This supports the thesis that drawing a<br />
system diagram helps designer thinks at all<br />
the possible interaction that might occur.<br />
Fabio represented the system with two<br />
different sketches:<br />
He first draw the system architecture<br />
representing in which way different<br />
“entities” are <strong>connected</strong> to each other<br />
(In his map the entities are all physical<br />
entities: e.g the cloud is composed <strong>of</strong> a<br />
server and a database); The second sketch<br />
was instead a timeline representing how<br />
request and responses are flowing between<br />
the different parties involved in the<br />
system.<br />
In this way he divided the representation <strong>of</strong><br />
“the information” from the representation<br />
<strong>of</strong> the entities part <strong>of</strong> the system.<br />
Tommie’s diagram resulted in a complicate<br />
tangle <strong>of</strong> lines: He tried to represent<br />
multiple <strong>objects</strong> in his map, he divided the<br />
“cloud” in to a server and a database, and<br />
did an attempt to structure the DB setup.
User research - 63<br />
3.4 Discussion<br />
The result <strong>of</strong> the research provides a lot <strong>of</strong><br />
insights that will be used as a basis for the<br />
ideation phase.<br />
INSPIRATION<br />
The set <strong>of</strong> cards can be helpful in an initial<br />
brainstorm, especially in situations where<br />
the technological skills <strong>of</strong> the participants<br />
is not very high. The set <strong>of</strong> cards should<br />
however be expanded or integrated with<br />
other tools in order to take into account<br />
both the technological aspect <strong>of</strong> the<br />
system but also a user centred perspective.<br />
ZOOM IN AND OUT<br />
When designing a complex system, it is very<br />
important to maintain a clear overview <strong>of</strong><br />
how the system is supposed to behave, but<br />
also have the possibility to zoom in the<br />
detail <strong>of</strong> the interaction.<br />
DECONSTRUCT<br />
Deconstruct the system in smaller block is<br />
an engineering technique to analyse and<br />
solve problems. Interaction designers are<br />
not used to this practice but if assisted<br />
with tools, they can easily experience<br />
the advantages <strong>of</strong> this problem solving<br />
technique.<br />
OPENNESS<br />
As already discussed, a high level <strong>of</strong><br />
openness requires more skills from the<br />
users. The exercise <strong>of</strong> filling in the<br />
communication model was more successful<br />
then the one about representing the<br />
system diagram. This was probably due<br />
to the fact that in the last exercise the<br />
participants had to start from a blank page<br />
while in the previous one the structure <strong>of</strong><br />
the communication model was provided.<br />
The Communication model was at the same<br />
time open, in the sense that user could<br />
start filling it in the order they preferred,<br />
but also fixed since it was already<br />
proposing a way to schematize the system<br />
and suggesting ways <strong>of</strong> deconstructing the<br />
interaction in smaller actions.<br />
ANALYSING DATA<br />
Analysing data and making sense <strong>of</strong> them<br />
was defined as one <strong>of</strong> the very challenging<br />
activities.<br />
In the design <strong>of</strong> the system diagram, <strong>of</strong>ten<br />
the representation <strong>of</strong> how the data is<br />
transformed into higher-level information<br />
was not considered. In most <strong>of</strong> the cases<br />
it was assumed that an entity - somewhere<br />
in the cloud - was able to analyse data and<br />
make sense <strong>of</strong> those.<br />
In order to help designer to make sense<br />
<strong>of</strong> the data collected, it can be helpful<br />
to provide a meaningful visualization <strong>of</strong><br />
those.<br />
LEVELS OF ABSTRACTION<br />
Interaction designers design complex<br />
system on a higher level <strong>of</strong> abstraction<br />
than programmers and engineers are use to<br />
do. The tool should facilitate this process<br />
<strong>of</strong> abstraction.
64 - <strong>TINK</strong><br />
3.5 Program <strong>of</strong> requirements<br />
The observation from the test leads to the<br />
formulation <strong>of</strong> a program <strong>of</strong> requirement<br />
for the platform.<br />
1) Platform goal<br />
1.1 The s<strong>of</strong>tware should allow the<br />
development <strong>of</strong> experiential prototype <strong>of</strong><br />
<strong>connected</strong> <strong>objects</strong>.<br />
1.2 While it should mainly target the<br />
needs <strong>of</strong> the development <strong>of</strong> networks <strong>of</strong><br />
<strong>connected</strong> object (category 6), this will<br />
result in allowing the construction <strong>of</strong><br />
experiential prototype that are part <strong>of</strong> any<br />
other category presented in chapter 2.<br />
1.3 The s<strong>of</strong>tware will embed the sketchy<br />
quality discussed in chapter one.<br />
1.4 It should provides tool for storing<br />
visualizing, analysing and understanding<br />
data<br />
2) Target users<br />
2.1 The s<strong>of</strong>tware is meant to target<br />
interaction designers.<br />
2.2 While the full potentiality <strong>of</strong> the<br />
s<strong>of</strong>tware will be available to users with<br />
a minimum level <strong>of</strong> understanding <strong>of</strong><br />
Arduino code, the platform should be<br />
understandable by Interaction designers<br />
with different level <strong>of</strong> coding skills.<br />
3) Versatility<br />
3.1 The s<strong>of</strong>tware should assist the<br />
development <strong>of</strong> experiential prototype<br />
along the all design process. It should allow<br />
users to explore different possibilities in<br />
the beginning <strong>of</strong> the design process, but<br />
also developing more detailed experiential<br />
prototypes for testing purposes.<br />
3.2 The platform won’t force the user in<br />
a strict work-flow, but will allow different<br />
users do define their own flow.<br />
4) Openness and level <strong>of</strong> visibility<br />
The platform will provide different levels <strong>of</strong><br />
accessibility:<br />
4.1 It will help designers keep the overview<br />
<strong>of</strong> the system and at the same time allow<br />
them to have access to the details <strong>of</strong> the<br />
interaction.<br />
4.2 The s<strong>of</strong>tware should help designers<br />
deconstruct the envisioned interaction in<br />
basic construction blocks. In doing so, the<br />
distinction between the different facet <strong>of</strong><br />
the interaction should be promoted.<br />
4.3 The s<strong>of</strong>tware will be open source and<br />
hack-able. A set <strong>of</strong> API should be provided<br />
allowing expert users to have full control<br />
over the platform and enable them to<br />
integrate the advantages brought by the<br />
s<strong>of</strong>tware in their usual work-flow.
4.4 Moreover, it should be possible to<br />
operate the s<strong>of</strong>tware and modify behaviours<br />
remotely, and when electronic boards are<br />
not <strong>connected</strong><br />
5) Usability<br />
5.1 When programming in hardware, it<br />
is <strong>of</strong>ten difficult to understand whether<br />
the code is performing as expected, the<br />
platform should therefore provide the users<br />
with real time feedbacks about the state <strong>of</strong><br />
the hardware.<br />
5.2 The interface should be clear and<br />
understandable for a better user experience.
CHAPTER 4<br />
Final design<br />
Guided by the program <strong>of</strong> requirements, an ideation phase lead<br />
to the DESIGN OF <strong>TINK</strong>, a web platform that makes it easy to<br />
connect <strong>product</strong>s to one another.<br />
In this chapter, the 3 MAIN COMPONENTS <strong>of</strong> the platform are<br />
presented together with an analysis <strong>of</strong> the TECHNOLOGY envisioned<br />
for the implementation <strong>of</strong> the design.
68 - <strong>TINK</strong><br />
4.1 Sketching <strong>TINK</strong><br />
Following the program <strong>of</strong> requirement<br />
an ideation phase started. Several ideas<br />
where produced based on the insights<br />
gained trough the user research and the<br />
market analysis; the ideas however felt very<br />
<strong>connected</strong> to each other, as if they where<br />
just different features <strong>of</strong> a bigger platform.<br />
As soon as I started drawing pieces <strong>of</strong><br />
the interface I started connecting the<br />
different ideas together. The <strong>sketching</strong><br />
helped me taking out the ideas from my<br />
mind, iteratively reflect on those and make<br />
modification to the initial concept.<br />
This ideation process resulted in the<br />
design <strong>of</strong> <strong>TINK</strong>: a web platform that<br />
connects <strong>product</strong>s with one another via the<br />
Internet. Think builds upon the program <strong>of</strong><br />
requirements laid out in previous chapters<br />
<strong>of</strong> this report <strong>of</strong>fering designers a complete<br />
Internet <strong>of</strong> Things (IOT) development<br />
environment to sketch experiential<br />
prototype <strong>of</strong> <strong>connected</strong> <strong>objects</strong>. <strong>TINK</strong><br />
is a user-friendly, visual, collaborative,<br />
open-source tool for designers to build<br />
<strong>connected</strong> interactions among <strong>objects</strong>.<br />
User-Friendly<br />
<strong>TINK</strong> targets interaction designers with<br />
minimal Arduino experience who are able<br />
to read and understand at least some<br />
Arduino code.<br />
This visual platform has a low barrier to<br />
learning and its full functionality is easily<br />
discoverable through use.<br />
Visual<br />
The interface hides most <strong>of</strong> the complexity<br />
<strong>of</strong> the system, allowing users with different<br />
skill sets to explore it, and learn the<br />
different components <strong>of</strong> the platform.<br />
<strong>TINK</strong> provides users with visual building<br />
blocks to create functionality without<br />
requiring any code to be written. Users<br />
more comfortable in writing code can do<br />
so within <strong>TINK</strong> and open, modify, or create<br />
new building blocks to share with the<br />
community.<br />
<strong>TINK</strong> is composed <strong>of</strong> 2 main components:<br />
one for editing the system and one for<br />
monitoring it.<br />
• The edit view combines system<br />
diagram <strong>sketching</strong> environment with<br />
a building block library and an code<br />
editor<br />
• The monitor view combines a map<br />
displaying the locations <strong>of</strong> the<br />
entities and graphs visualizing data<br />
recorded by the entities.<br />
Collaborative<br />
This web platform allows different users<br />
will be able to access, modify, and monitor<br />
the project remotely and simultaneously<br />
Open Source<br />
As an open source tool, similar to<br />
Wordpress and other content management<br />
systems (CMS), it will be possible to use a<br />
central version <strong>of</strong> the system, or install a
Final design - 69<br />
private copy on a private server.<br />
Figure 36. Sketches <strong>of</strong> <strong>TINK</strong>’s wireframe
70 - <strong>TINK</strong><br />
4.2 PROJECT VIEW<br />
In order to be able to access the platform,<br />
users have to create a <strong>TINK</strong> account.<br />
Accounts can be <strong>connected</strong> to Google and<br />
Facebook and other third party providers to<br />
benefit from 3 main points:<br />
• Data related to the third part<br />
services can be used to set the initial<br />
information needed to integrate third<br />
parties services into the project.<br />
• Connecting the account with Google<br />
or Facebook allows users to import an<br />
address book which can then be useful<br />
to share the project with friend and<br />
colleagues.<br />
• The login to the platform can be<br />
smoother as it is not needed to sign up<br />
with a new user-name and password.<br />
Users have the possibility to create and<br />
store projects online. For every project it<br />
is possible to sketch an individual system<br />
diagram and access the monitor view.<br />
Data will be logged/recorded continuously,<br />
even if the user is <strong>of</strong>fline and they will be<br />
visible once the user logs.<br />
Sharing<br />
Visualize data<br />
To user who is not in charge <strong>of</strong> the<br />
prototyping might be given permission to<br />
just visualize the data.<br />
This user might use the data observed<br />
to verify the design or write reports. The<br />
permission to visualize the data can also<br />
be given to stakeholders or clients so<br />
that they can start gaining insight on the<br />
project while a research is being conducted.<br />
Modify System diagram<br />
The research showed that although not all<br />
interaction designers are able to program<br />
an Arduino, most <strong>of</strong> them are capable to<br />
design a system diagram. Users granted<br />
with this permission will have the ability<br />
to sketch and modify the system diagram.<br />
Modify code<br />
Programmers will be able to use the system<br />
diagram as sketched by the designer and<br />
fill in the code needed to have everything<br />
working. The user granted with this<br />
permission will have full access <strong>of</strong> the<br />
entire platform.<br />
Since most <strong>of</strong> the time design projects<br />
are carried out in groups, a project can be<br />
shared among multiple users. According<br />
to the roles and level <strong>of</strong> expertise <strong>of</strong><br />
the different group members, different<br />
permissions can be given to the different<br />
users.
Final design - 71<br />
Monitor<br />
Edit<br />
Ciao<br />
Lorenzo<br />
NAME:<br />
Connected C<strong>of</strong>fees<br />
SHARING:<br />
Federico<br />
Gyan<br />
Ciao<br />
Lorenzo<br />
Luke<br />
Your projects:<br />
Wink<br />
Connected mugs<br />
Connected plants<br />
Create a new one
4.3 SYSTEM VIEW<br />
The system view is the core component<br />
<strong>of</strong> the tool. It was inspired by how the<br />
participants <strong>of</strong> the research drew system<br />
diagrams <strong>of</strong> complex systems.<br />
In the system diagrams every entity taking<br />
part in the system is drawn. The entity’s<br />
behavior is defined by the building blocks<br />
attached to it.<br />
Three kind <strong>of</strong> building blocks were designed:<br />
Data to track, Triggers and Actions.<br />
Lines are used to connect building blocks<br />
together, and are representatives <strong>of</strong><br />
messages being exchanged by the entities.<br />
ADD NEW...<br />
CONNECTED OBJECT<br />
A device <strong>connected</strong> to the Internet<br />
CONNECTED OBJECT<br />
C<strong>of</strong>fee Machine<br />
ID studiolab_c<strong>of</strong>fe_001<br />
LOCATION 52.001883 - 4.369763<br />
Clone<br />
Data To Track<br />
C<strong>of</strong>fe made<br />
Triggers<br />
New c<strong>of</strong>fee<br />
Actions<br />
Deploy<br />
C<strong>of</strong>fee Machine<br />
New c<strong>of</strong>fe<br />
Monitor<br />
Edit the full code<br />
Edit<br />
Alarm<br />
Boolean Action<br />
Turn on siren<br />
115.4<br />
Ciao<br />
Lorenzo<br />
Set siren speed<br />
Entities settings<br />
Settings for each entity are defined in<br />
a setting panel that can be opened by<br />
clicking on the gear next to the name.<br />
For the different type <strong>of</strong> entities different<br />
settings will need to be filled in.<br />
For instance while the <strong>connected</strong> Object<br />
will require information about location and<br />
an unique ID. Web services are going to<br />
require information on the user account<br />
and eventual API key that have to be used.<br />
WEBSERVICE<br />
An external web service (Google, Facebook, twitter, etc...)<br />
DATA ANALIST<br />
It knows everything about the data you are recording,<br />
it can be used to analyze the data recoderd from the <strong>objects</strong><br />
Cloning Entities<br />
System entities<br />
Four different types <strong>of</strong> entities are<br />
identified: Connected Objects, Web<br />
Services, Data Analyst and Devices.<br />
While Connected Objects and Devices were<br />
directly derived from the communication<br />
model described in chapter 2, the data<br />
element, represented by a cloud in the<br />
system diagram, is split into two new<br />
entities (web services and devices). Data<br />
elments are also integrated in every entity<br />
as the possibility to store data related to<br />
any entity. (see image ..)<br />
PLACES<br />
PEOPLE<br />
DEVICE<br />
You can use it to remotely control the system from an<br />
external device<br />
OBJECTS<br />
DEVICES<br />
DATA<br />
CONNECTED<br />
OBJECT<br />
<strong>TINK</strong> enables the connection<br />
<strong>of</strong> physical <strong>objects</strong> to the<br />
internet. Those object will<br />
then be able to trigger<br />
and be triggered by other<br />
entities, either other<br />
physical or digital.<br />
In order to be functional<br />
every Connected Object has<br />
to be powered by a micro<br />
controller. At the moment<br />
Tink supports Arduino YUN,<br />
but it will be possible to<br />
extend the tool to other<br />
Arduino compatible boards.<br />
WEB SERVICE<br />
<strong>TINK</strong> connects <strong>objects</strong> and<br />
users together, not only<br />
trough a physical interfaces,<br />
but also trough the digital<br />
online sphere. The web<br />
service entity allows to<br />
listen to events happening<br />
on social networks or other<br />
web services providers (e.g.<br />
counting like on FB), or<br />
perform actions (e.g upload a<br />
picture to Dropbox).<br />
DATA<br />
ANALYST<br />
<strong>TINK</strong> provides functionalities<br />
to track, visualize and analyse<br />
data. Data can be produced<br />
by <strong>connected</strong> <strong>objects</strong> and by<br />
other kinds <strong>of</strong> entities. The<br />
Data Analyst has the ability<br />
to inquire the database<br />
where all the data related<br />
to the project is stored and<br />
produced derived.<br />
This entity is helpful when<br />
it is necessary to analyse<br />
data coming from multiple<br />
entities. (e.g obtaining<br />
the average value <strong>of</strong> data<br />
recorded by multiple devices).<br />
DEVICE<br />
Through Think <strong>objects</strong> can<br />
be monitored and controlled<br />
via different devices. This<br />
entity facilitate the building<br />
<strong>of</strong> simple user interfaces that<br />
can be used to interact with<br />
the the system (e.g visualize<br />
data on a smartphone,<br />
remotely control a <strong>connected</strong><br />
object etc.)<br />
Often <strong>connected</strong> <strong>objects</strong> taking part to a<br />
network are just clones one <strong>of</strong> the other<br />
and are supposed to behave in the exact<br />
same way.<br />
The “clone” feature allows to create copy <strong>of</strong><br />
the same entity, the resulted cloned entity<br />
will behave in the same exact way <strong>of</strong> the<br />
original one since it will preserve the same<br />
building blocks, however different settings<br />
will have to be specified, in order to make<br />
the uniquely addressable.<br />
Cloned object will be represented in the<br />
system diagram in a group with the icons<br />
partially overlapping each other, this will<br />
reduce the eventual tangle <strong>of</strong> lines that<br />
could result from having too many entities<br />
<strong>connected</strong> to each other on the system<br />
diagram<br />
Data to Track
Building blocks<br />
Data To Track triggers Actions<br />
Building block library Code editor Deploy<br />
The behaviour <strong>of</strong> every entity is identified<br />
by tree different building blocks:<br />
The colour used in the design <strong>of</strong> the<br />
building blocks helps distinguish the type:<br />
blue for Data to Track, orange for Triggers<br />
and yellow for Actions.<br />
The shape <strong>of</strong> the right and left side <strong>of</strong><br />
the building block represent the kind <strong>of</strong><br />
messages that the building block uses as<br />
input/output.<br />
Nothing<br />
Boolean<br />
Int<br />
Floats<br />
Strings<br />
The messages that can be sent between the<br />
blocks have to be either boolean, string,<br />
int or floats.<br />
If the blocks uses messages, the value <strong>of</strong><br />
the message will be displayed inside the<br />
shape, attached either on the right or on<br />
the left <strong>of</strong> the building block.<br />
ciao<br />
Data To Track<br />
Integer trigger 110<br />
String action<br />
115.4<br />
String trigger<br />
Connections<br />
Float action<br />
Boolean trigger<br />
ciao<br />
115.4<br />
110<br />
Connections can be made by dragging the<br />
coloured outlet <strong>of</strong> a building block towards<br />
the coloured inlet <strong>of</strong> an other building<br />
blocks. The type <strong>of</strong> the outlet <strong>of</strong> the first<br />
has to match the inlet <strong>of</strong> the second.<br />
While the dragging is performed, a line<br />
will be pulled between the mouse and<br />
the starting building block. The shape <strong>of</strong><br />
the connectors helps visualizing where a<br />
certain message can be sent and therefore<br />
which building block can be <strong>connected</strong><br />
together.<br />
Entities are able to<br />
collect data. The data to<br />
track building block allow<br />
users to record events<br />
and data coming from<br />
the entities. The data<br />
recorded will be then<br />
visualized in the monitor<br />
view. According to the<br />
type <strong>of</strong> data recorded,<br />
this will have different<br />
visualization styles in the<br />
monitor view.<br />
According to the entity<br />
that is recording data,<br />
the data recorded might<br />
be related to either a<br />
physical data sensed by<br />
a <strong>connected</strong> object (e.g<br />
data sensed by a sensor<br />
embedded in a <strong>connected</strong><br />
object) or a digital event<br />
recorded by a virtual<br />
entity (e.g. how many<br />
like a picture got on<br />
Facebook, the average<br />
value <strong>of</strong> the sensor read<br />
among multiple entities<br />
etc.).<br />
Every entity can listen for<br />
events, and fire an action<br />
accordingly. Triggers<br />
are the blocks used to<br />
listen to events; Triggers<br />
are visible in the system<br />
diagram where they can<br />
be <strong>connected</strong> to Actions<br />
building blocks. either<br />
from the same or different<br />
entities.<br />
Triggers don’t accept any<br />
kind <strong>of</strong> input messages,<br />
but in order to be<br />
attached to an action<br />
they have at least to send<br />
out a boolean message.<br />
Every time a Data to Track<br />
building block is created<br />
a trigger related to that<br />
data is automatically<br />
generated. The user is<br />
allowed to use it, delete<br />
it or modify it.<br />
Again, according to the<br />
type <strong>of</strong> entity, triggers<br />
might be related to<br />
physical events or digital<br />
one according to the<br />
type <strong>of</strong> entity they are<br />
<strong>connected</strong> t0.<br />
When a trigger <strong>connected</strong><br />
to an action sends out<br />
a new value, the action<br />
<strong>connected</strong> to the trigger<br />
will be performed.<br />
Actions have to accepts<br />
(at least) a boolean<br />
message as input, and<br />
are able to send out<br />
messages as output.<br />
Again, according to the<br />
type <strong>of</strong> entity, triggers<br />
might be related to<br />
physical events or digital<br />
one.<br />
Add a new action to C<strong>of</strong>fe machine<br />
Initialize the global variable you will need here<br />
int relayPin = D6;<br />
Initialize the variable you will need here<br />
pinMode (relayPin , OUTPUT);<br />
Write the Check_C<strong>of</strong>fe_Made function<br />
String newAction ( float val){<br />
}<br />
Featured actions<br />
Boolean<br />
switch digital<br />
Action<br />
Pin<br />
Boolean<br />
Change neopixel<br />
Action<br />
color<br />
My actions<br />
ring bell<br />
Turn the table<br />
Or start from scratch<br />
new Action<br />
Boolean<br />
New Action<br />
Action<br />
String trigger<br />
A new building block can be added to the<br />
entity by clicking the appropriate plus<br />
button.<br />
Once the button is pressed a popup panel<br />
is shown in the foreground on top <strong>of</strong> the<br />
system diagram; The popup gives the<br />
user the possibility to choose between<br />
predefined building blocks or to create a<br />
new one from scratch.<br />
The user also has the possibility to save<br />
customized building blocks in a personal<br />
library in order to be able to reuse them in<br />
other future projects.<br />
Update LCD text<br />
LCD<br />
Search in the library<br />
Boolean Action<br />
turn servo motor<br />
Because the technological nature <strong>of</strong> the<br />
different entities is quite diverse different<br />
programming languages are going to be<br />
needed in order to define the behaviours <strong>of</strong><br />
the different entities.<br />
It was decided to focus just on <strong>connected</strong><br />
object entities for the scope <strong>of</strong> this project,<br />
some recommendation on how to configure<br />
the other entities will be provided in the<br />
recommendation section.<br />
The <strong>connected</strong> Object Building block<br />
is programmed using the Arduino<br />
programming language (C).<br />
The coding <strong>of</strong> the block presents a similar<br />
structure to the way Arduino code is<br />
structured, the editor presents in fact<br />
three distinctive areas to fill in with code<br />
as listed below:<br />
•Firstly the global variables that is needed<br />
in the rest <strong>of</strong> the snippet has to be defined.<br />
•Secondly the code that will have to go in<br />
the void setup() function <strong>of</strong> the Arduino<br />
code has to be defined.<br />
•The last area is where the behaviour <strong>of</strong> the<br />
building block is specified. The user has to<br />
fill in this block by writing a function. The<br />
skeleton <strong>of</strong> the function will be pre-filled<br />
by the system. The user will have to define<br />
what kind <strong>of</strong> message will the block sends<br />
out as output, and what kind <strong>of</strong> values the<br />
function requires as input.<br />
servo float newAction ( String val){<br />
String action<br />
115.4<br />
Once the code is created it needs to be<br />
uploaded to the boards. When the deploy<br />
button is pressed Arduino code will be<br />
generated and uploaded on to the specific<br />
board. If clones <strong>of</strong> that entity are present<br />
on the system diagram they will be updated<br />
as well.<br />
When the code <strong>of</strong> a building block gets<br />
modified the deploy button will be<br />
highlighted reminding the user that he<br />
needs to deploy the code to the hardware<br />
in order to be able to see the modification.<br />
The little downward pointing arrow can<br />
be used to access advanced features such<br />
as visualizing or downloading the code in<br />
order to modify it in a different IDE.
74 - <strong>TINK</strong><br />
Draw the system diagram<br />
ADD ENTITY<br />
CHOOSE THE TYPE<br />
GIVE A NAME TO THE ENTITY<br />
UPLOAD A PICTURE<br />
Entity are added by clicking the<br />
plus button on top left corner.<br />
From a side panel it is possible to<br />
choose the type <strong>of</strong> entity.<br />
Double-click on the entity name<br />
makes it editable.<br />
Dragging an image on the entity’s<br />
will replace the default one.<br />
ADD BUILDING BLOCK<br />
CHOOSE FROM THE LIBRARY<br />
CHANGE BUILDING BLOCK NAME<br />
MODIFY CODE<br />
Building blocks are added to the<br />
entity by clicking the appropriate +<br />
button in the side bar<br />
SET CONNECTED OBJECT ID<br />
It is possible to choose a Building<br />
block from the Building Block<br />
Library<br />
DEPLOY THE CODE<br />
Double-click on the trigger name<br />
makes it editable.<br />
DRAG CONNECTIONS<br />
The code editor comes pre-filled<br />
with basic code that has to be<br />
modified according to the electronic<br />
configuration<br />
Every entity needs a unique ID,<br />
configurable by clicking the gear on<br />
the right <strong>of</strong> the entity name on the<br />
side panel<br />
Once the code is modified the<br />
deploy button needs to be pressed<br />
to upload the code on the hardware<br />
Connections are created by<br />
dragging the right or left sides <strong>of</strong><br />
the building block.
Final design - 75<br />
Visual feedback<br />
HOVERING A CONNECTION<br />
HOVERING A BUILDING BLOCK<br />
By Hoovering with the mouse<br />
a connection, the entity and<br />
building blocks <strong>connected</strong> to it are<br />
highlighted.<br />
A (x) button appears that can be<br />
used to delete the connection<br />
By Hoovering with the mouse a<br />
building block, the entity and<br />
building blocks <strong>connected</strong> to it are<br />
highlighted<br />
Testing<br />
ENTITY IS OFFLINE<br />
BUILDING BLOCK IS EXECUTED<br />
MANUALLY TRIGGER ACTIONS<br />
RECEIVING MESSAGES<br />
When entities are not <strong>connected</strong><br />
are going they appear desaturated<br />
in the system diagram.<br />
When a building block is executed<br />
and produces an output message, it<br />
will shortly blink.<br />
Actions can be manually triggered<br />
by clicking on the left inlet.<br />
When messages are exchanged<br />
between the entities are going to<br />
be visible in the system diagram<br />
inside the building block.
4.4 THE MONITOR<br />
VIEW<br />
76 - <strong>TINK</strong><br />
studiolab-c<strong>of</strong>fe<br />
C<strong>of</strong>fee made<br />
SUM every 5 min<br />
The monitor view allows the user to<br />
visualize the data recorded by the<br />
<strong>objects</strong>, seeing the location <strong>of</strong> the<br />
different entities and control that the<br />
system is working as expected.<br />
The monitor view is divided in two<br />
parts, on the left the data recorded by<br />
every entity are visualized while on the<br />
right a map shows the location <strong>of</strong> the<br />
different <strong>objects</strong><br />
8:00 8:20 8:40 9:00 9:20 9:40 10:00 10:20 10:40 11:00 11:20 11:40 12:00 12:20<br />
1 apr 2013 from 8:00 to 12:20<br />
THE MAP VIEW<br />
The <strong>connected</strong> <strong>objects</strong> that have been<br />
added to the system diagram can be<br />
dragged to the map, in a specific position.<br />
The map <strong>of</strong>fers a spacial overview on how<br />
the entities are distributed.<br />
The map provides also the user with live<br />
feedback oh how the system is behaving.<br />
From the map it is possible to check if the<br />
entities are <strong>connected</strong> and functioning.<br />
Moreover every time an entity performs<br />
an action, a pop-up will appear on top <strong>of</strong><br />
the entity with the name <strong>of</strong> the trigger or<br />
action performed.<br />
other and knowing what they are doing<br />
gives the user the ability to observe<br />
collective network behaviours emerging<br />
from the capability the entity have to<br />
communicate to each other.<br />
When the user clicks on a <strong>connected</strong><br />
object, the data related to it are visualized<br />
on the left side <strong>of</strong> the screen.<br />
DATA VISUALIZATION<br />
For each “data to track” <strong>connected</strong> to an<br />
entity a data visualization is made.<br />
Data can be filtered and grouped based on<br />
time and location information. Moreover<br />
different type <strong>of</strong> visualization should be<br />
proposed according to the type <strong>of</strong> data<br />
recorded.<br />
Having the overview on how the entities<br />
are exchanging information between each
Monitor<br />
Edit<br />
Ciao<br />
Lorenzo<br />
Final design - 77<br />
Boolean Action<br />
Turn on siren<br />
Alarm Studio-Mingle<br />
New c<strong>of</strong>fe<br />
studiolab-c<strong>of</strong>fe<br />
reception-c<strong>of</strong>fe<br />
Edit the full code<br />
Monitor view<br />
ENTYTY COMES ONLINE<br />
ACTION IS PERFORMED<br />
When entities are not <strong>connected</strong><br />
are going they appear desaturated<br />
in the map view.<br />
Whenever a building block is<br />
executed a pop-up wit the name <strong>of</strong><br />
the building block will appear on<br />
top <strong>of</strong> the entity. The pop-up fades<br />
out after 3 seconds.
78 - <strong>TINK</strong><br />
4.5 <strong>TINK</strong> Workflow<br />
Mike wants to design a network <strong>of</strong> lamp<br />
to stay in touch with family and friends<br />
leaving in different time zones.<br />
He analyses the design and discovers<br />
that he will need several components to<br />
prototype the system.<br />
<strong>TINK</strong> is the perfect platform to prototype<br />
networks <strong>of</strong> <strong>connected</strong> <strong>objects</strong>. Therefore<br />
Mike start by creating a <strong>TINK</strong> account.<br />
He prepares the electronics by hooking up<br />
an Arduino YUN to a lamp.<br />
Then He start using <strong>TINK</strong> to program the<br />
lamp behaviour. He starts by adding a new<br />
<strong>connected</strong> object to the system diagram.<br />
He configure the just created Connected<br />
Object giving it an ID and defining the<br />
location.<br />
Mike looks in to the building block library<br />
for an action to operate a relay. He picks<br />
an Actionbuilding blocks called “digital<br />
switch“<br />
He decide to slightly modify the code<br />
according to his electrical setup.<br />
Then he deploys the code on to the lamp<br />
to check that everything is working as<br />
expecting
Final design - 79<br />
The lamp is now <strong>connected</strong> to <strong>TINK</strong> and its<br />
behaviour can be monitored on the system<br />
diagram.<br />
It’s now time to connect the other lamps<br />
to the platform.<br />
Other two prototype are made and shipped<br />
to friends in new York and Shanghai.<br />
Mike can control when the lamps will be<br />
<strong>connected</strong> to the Internet And when they<br />
are going to be turned on.<br />
Mike has a new idea, he wants to receive<br />
a notification on his phone every time all<br />
three lamps are turned on.<br />
He modify the system diagram adding two<br />
new entities a data analyst and a webservice.<br />
Since the system is all hooked up to the<br />
platform he can remotely deploy the code.
80 - <strong>TINK</strong><br />
4.6 <strong>TINK</strong> technology<br />
Web Technology<br />
<strong>TINK</strong> is developed as a web application.<br />
The s<strong>of</strong>tware will run inside a web-browser<br />
providing several advantages:<br />
• It will be cross-platform,<br />
• It won’t require any installation<br />
• A Tink project will be accessible from<br />
multiple locations<br />
• The s<strong>of</strong>tware will be easier to maintain<br />
as s<strong>of</strong>tware updates don’t require to<br />
be installed by the user but can be<br />
directly deployed.<br />
<strong>TINK</strong> is structured maintaining a separation<br />
between front-end and back-end as shown<br />
in Figure 37.<br />
The different part <strong>of</strong> the platform are<br />
<strong>connected</strong> to a server, that will route all the<br />
messages exchanged between the entities<br />
and provide access to the database.<br />
In order to provide real time, two way<br />
communication between <strong>connected</strong><br />
<strong>objects</strong>, <strong>TINK</strong> web-app and devices Tink<br />
make use <strong>of</strong> Web sockets.<br />
In order to clarify how the different<br />
components communicate to each other an<br />
example is proposed:<br />
Let’s consider the system made <strong>of</strong> a c<strong>of</strong>fee<br />
machine that publishes a twit every time a<br />
c<strong>of</strong>fee is made.<br />
The <strong>connected</strong> object informs the server via<br />
web-socket; if the user is <strong>connected</strong> to the<br />
platform, the server will notify him/her <strong>of</strong><br />
the happening <strong>of</strong> the event: via web-socket<br />
the message will be sent to the browser;<br />
The server will also perform a http request<br />
to the twitter server using its public API,<br />
in order to publish the twit.<br />
Separating front end and back-end<br />
is crucial in the development <strong>of</strong> this<br />
kind <strong>of</strong> application as it will improve<br />
maintainability and performance. Moreover<br />
it will be possible for third parties to make<br />
use <strong>of</strong> public API to access the platform.<br />
Via the API it will be possible to access<br />
the data, log custom events. It will be<br />
possible for developers to create new<br />
interfaces to interact with <strong>TINK</strong> via custom<br />
made interfaces.<br />
Arduino YUN<br />
The hardware platform that was decided<br />
to use as core electronics for <strong>connected</strong><br />
<strong>objects</strong> is the Arduino YUN, a new Arduino<br />
that combines a small Linux computer<br />
with a small Atmel 32u4Chip. The Linux<br />
computer gives to the Arduino the extra<br />
power <strong>of</strong> connecting to the internet via<br />
wired and wireless connection.<br />
The Bridge Library for Arduino enables the<br />
Linux side <strong>of</strong> the Arduino to communicate<br />
to the Atmel side.<br />
The Arduino YUN is programmed with<br />
standard Arduino code and supports<br />
natively 90% <strong>of</strong> the libraries and shield
Final design - 81<br />
developed for standard Arduino boards,<br />
making it a very versatile platform to<br />
develop IoT applications.<br />
Arduino YUN will be the first board to<br />
be supported by <strong>TINK</strong>, but in the future<br />
libraries for other hardware platform will be<br />
released as well.<br />
DATABASE<br />
BACK-END<br />
THIRD<br />
PARTY<br />
API<br />
DEVICES<br />
PLATFORM<br />
SERVER<br />
FRONT-END<br />
ARDUINOS YUN<br />
PHYSICAL<br />
FRONT-END<br />
Figure 37. Tink system diagram
CHAPTER 5<br />
Testing<br />
In this chapter, the TESTING SETUP used to evaluate the design <strong>of</strong><br />
<strong>TINK</strong> is discussed.<br />
The test was aimed at evaluating the FEASIBILITY OF THE TECH-<br />
NOLOGY proposed for <strong>TINK</strong>, as well as an interaction designer’s USER<br />
EXPERIENCE <strong>of</strong> the platform.<br />
These two points are examined with two different PROTOTYPES presented<br />
at the beginning <strong>of</strong> the chapter.<br />
The chapter ends with a list <strong>of</strong> important RESULTS gained trough the<br />
testing.
84 - <strong>TINK</strong><br />
5.1 Prototyping <strong>TINK</strong><br />
The design phase was followed by a<br />
prototyping phase aimed at the realization<br />
<strong>of</strong> an experiential prototype for testing<br />
purposes.<br />
Considering the limited amount <strong>of</strong> time,<br />
it was decided to directly go in the<br />
implementation <strong>of</strong> a digital working<br />
version <strong>of</strong> the platform without doing any<br />
test with paper prototypes.<br />
A digital working prototype was also<br />
preferred as it would provoke as much<br />
insight as possible on the design. Users<br />
in front <strong>of</strong> a paper prototype understand<br />
the sketchiness <strong>of</strong> the artefact and tend<br />
to be less detailed in the feedback they<br />
provide. Moreover, as one <strong>of</strong> the goals <strong>of</strong><br />
the user test is to determine how much this<br />
platform support the <strong>sketching</strong> <strong>of</strong> complex<br />
systems, it will be difficult to determine<br />
this from a low fidelity prototype that is<br />
sketchy by definition.<br />
the idea proposed.<br />
Figure 38 shows the technologies that<br />
where experimented and tested during the<br />
implementation <strong>of</strong> the two prototypes.<br />
The picture highlights how the different<br />
technologies were used to developed<br />
different parts <strong>of</strong> the prototype. Because<br />
<strong>of</strong> time constraints, the technologies were<br />
not combined in a single platform, and two<br />
different prototypes where developed:<br />
• The first prototype was built<br />
to challenge the difficulties <strong>of</strong><br />
connecting an Arduino to the Internet<br />
via web-sockets;<br />
• The second one was mainly concerned<br />
with the implementation <strong>of</strong> the<br />
platform’s user interface for the<br />
purposes <strong>of</strong> the user test.<br />
It was decided to prototype the platform<br />
using a full stack <strong>of</strong> current web<br />
technologies. This might not be the<br />
most reasonable choice from a design<br />
perspective, as it might cost a lot <strong>of</strong> time<br />
to develop. However, the decision was<br />
taken in order for the designer to learn<br />
and get familiar with new technologies<br />
that are becoming quite common in the<br />
field <strong>of</strong> interaction design. Additionally,<br />
developing a prototype using real web<br />
technologies provided opportunities for<br />
the designer to reflect on the feasibility <strong>of</strong>
Testing - 85<br />
Backend<br />
express<br />
PROTOTYPE 2<br />
User Interface<br />
for user test<br />
PROTOTYPE 1<br />
Connecting a c<strong>of</strong>fee<br />
machine to the Internet<br />
Physical frontend<br />
socket.io<br />
socket.io<br />
Frontend<br />
Figure 38. <strong>TINK</strong> technologies
86 - <strong>TINK</strong><br />
5.2 Connecting a c<strong>of</strong>fee machine to the<br />
Internet<br />
The first test was aimed at understanding<br />
how to connect an Arduino YUN to the<br />
Internet via Web-Socket.<br />
The first trial system was installed on the<br />
c<strong>of</strong>fee machine at the StudioLab. The idea<br />
was to hack the c<strong>of</strong>fee machine to measure<br />
it’s usage during the day and visualize the<br />
data on a web-page.<br />
Developing this prototype was also a<br />
good way to test how much a simple data<br />
visualization can help discovering patterns<br />
and information that otherwise would not<br />
be evident.<br />
A web NodeJs server based on Express<br />
was developed. The server implements<br />
Socket.IO in order to receive the data from<br />
Arduino. The data is stored in a MongoDb<br />
database and visualized on a public webpage<br />
using a well-known JavaScript data<br />
visualization library called d3js.<br />
All the project’s code and the Arduino<br />
library’s installing instructions are<br />
published on GitHub and are retrievable<br />
at https://github.com/lorenzoromagnoli/<br />
SocketIOYunClient.<br />
A proximity sensor was hidden inside the<br />
c<strong>of</strong>fee machine(Figure 40). The sensor was<br />
able to detect if a cup was placed in front<br />
<strong>of</strong> it and therefore count how much the<br />
c<strong>of</strong>fee machine was used along the day.<br />
The sensor was <strong>connected</strong> to a battery<br />
powered wireless Arduino board, developed<br />
inside the StudioLab, called Schizzo (Figure<br />
40). The Schizzo was <strong>connected</strong> via Xbee<br />
to an Arduino YÙN (41) <strong>connected</strong> to the<br />
Internet network <strong>of</strong> the faculty via WIFI.<br />
An Arduino library was developed to<br />
connect the board to a custom web server.<br />
The developed library, modeled on the<br />
SpaceBrew library for Arduino YUN, makes<br />
use <strong>of</strong> Socket.IO library to provide real-time<br />
bidirectional event-based communication<br />
to the Arduino YUN. Socket.IO was chosen<br />
as it works on every platform, browser and<br />
device, focusing equally on reliability and<br />
speed.<br />
This trial ran for a couple <strong>of</strong> days recording<br />
live data <strong>of</strong> the StudioLab’s consumption<br />
<strong>of</strong> c<strong>of</strong>fee. The data was publicly visible on<br />
a website for the length <strong>of</strong> the experiment.<br />
The screen-shot presented in Figure 42 is<br />
a representation <strong>of</strong> the experiment, the<br />
bar-chart grouped the amount <strong>of</strong> c<strong>of</strong>fee<br />
that was made be the machine every 15<br />
minutes.<br />
From the visualization it was possible to<br />
identify trends on the usage <strong>of</strong> the object:<br />
People arrive to work in the morning<br />
between 8.30h and 10h; the consumption<br />
<strong>of</strong> c<strong>of</strong>fee keeps on growing until lunch,<br />
when it drops because <strong>of</strong> the lunch break;<br />
after lunch, the next peak is reached around<br />
16h; after that, the amount <strong>of</strong> c<strong>of</strong>fee keeps<br />
on dropping until the time people leave<br />
the <strong>of</strong>fice, around 18h.<br />
What is also interesting to observe from<br />
the data visualization is how the c<strong>of</strong>fee
Testing - 87<br />
consumption peaks correspond to the<br />
complete hours that actually correspond<br />
with the time people schedule meeting or<br />
lectures.<br />
It should be clear how this simple data<br />
visualization already provided a lot <strong>of</strong><br />
information on the pattern <strong>of</strong> use <strong>of</strong> this<br />
object. This is a good confirmation <strong>of</strong><br />
the fact that visualizing data is the first<br />
step to comprehend patterns and observe<br />
behaviors previously unknown.<br />
Figure 39. The c<strong>of</strong>fe machine <strong>of</strong><br />
the experiment<br />
Figure 40. Schizzo + proximity sensor<br />
Figure 42. Screen-shot <strong>of</strong> the web-page visualizing the c<strong>of</strong>fee machine usage<br />
Figure 41. Arduino YUN with Xbee shield
88 - <strong>TINK</strong><br />
5.3 Prototyping the user interface<br />
A second prototype was developed with the<br />
intention <strong>of</strong> running a user test to evaluate<br />
the user experience <strong>of</strong> <strong>TINK</strong>.<br />
The development <strong>of</strong> a fully functional<br />
prototype <strong>of</strong> the entire system goes beyond<br />
the scope <strong>of</strong> the project because it would<br />
require months <strong>of</strong> development.<br />
Instead this partial prototype focused just<br />
on the implementation <strong>of</strong> the edit view,<br />
and to left out the monitor view.<br />
Time constraints also made it impossible<br />
to integrate the work done for the first<br />
technology test in the second prototype.<br />
The prototype was therefore not functional,<br />
as it was unable to connect to physical<br />
“<strong>connected</strong> <strong>objects</strong>“ (Arduino YUN).<br />
What was functional on this prototype were<br />
the main elements <strong>of</strong> the interface (the<br />
edit view to sketch and edit the system<br />
diagram) as well as the back-end used to<br />
save users information and save projects.<br />
The developed prototype will therefore be<br />
able to:<br />
• Create a new project<br />
• Access the system diagram editor<br />
• Add entities to the diagram<br />
• Add building blocks to the entities<br />
• Connect building blocks with each<br />
other.<br />
The prototype developed won’t allow to:<br />
• Share the project<br />
• Access the map view and visualize the<br />
data<br />
• Edit the code<br />
• Use the different types <strong>of</strong> building<br />
block connectors<br />
• Upload a custom picture for the<br />
entities<br />
• Clone entities<br />
• Deploy the s<strong>of</strong>tware<br />
• Get real time feedback<br />
• Access the building block library<br />
The prototype was built on top <strong>of</strong> the stack<br />
<strong>of</strong> JavaScript technology shown in Figure<br />
38.<br />
The front-end was implemented using<br />
AngularJs, a framework that facilitates the<br />
development <strong>of</strong> dynamic web applications.<br />
Since in modern browsers it is possible to<br />
include SVG tags into web pages, it was<br />
decided to use the vector markup language<br />
to code the system diagram. This was<br />
mainly adopted to solve the problem <strong>of</strong><br />
drawing arrows to connect one building<br />
block to another and be able to arrange<br />
elements freely in the page.<br />
The back-end, with the role <strong>of</strong> storing data,<br />
was built on top <strong>of</strong> SailsJs, a web framework<br />
aimed at the development <strong>of</strong> real-time web<br />
application. SailsJs is able to automatically<br />
generate the required API to interact with<br />
several types <strong>of</strong> databases. Moreover it
Testing - 89<br />
natively supports SocketIO allowing an<br />
easy integration with the Arduino library.<br />
MongoDB was chosen for the project as<br />
it provides several advantages for data<br />
intensive types <strong>of</strong> applications.<br />
The generated APIs where used to connect<br />
front-end and back-end.<br />
Figure 43 shows the interface <strong>of</strong> the<br />
prototype developed, an example project<br />
representing a simplified version <strong>of</strong> the<br />
system diagram <strong>of</strong> the Goodnight Lamp 24<br />
project was drawn for demonstration<br />
purposes .<br />
Figure 43. Screenshot <strong>of</strong> the<br />
prototype <strong>of</strong> <strong>TINK</strong>’s interface.
90 - <strong>TINK</strong><br />
5.4 User Test<br />
As described in the previous chapter,<br />
<strong>TINK</strong> is a big platform made <strong>of</strong> several<br />
components. While testing the entire<br />
platform would require an extended test<br />
with a fully functional prototype, a user<br />
test was performed using the partially<br />
developed prototype.<br />
The test focused on understanding how<br />
interaction designers with different levels<br />
<strong>of</strong> technical skills use <strong>TINK</strong> to sketch a<br />
system diagram <strong>of</strong> Connected Objects.<br />
5.4.1 User test goals<br />
As the main contribution brought by <strong>TINK</strong><br />
is the possibility <strong>of</strong> <strong>sketching</strong> system<br />
diagram <strong>of</strong> <strong>connected</strong> <strong>objects</strong> composed<br />
<strong>of</strong> multiple entities and devices, the test<br />
examined the following research questions:<br />
• Does the platform allow the <strong>sketching</strong><br />
<strong>of</strong> system diagram <strong>of</strong> IOT kind <strong>of</strong><br />
<strong>product</strong>s?<br />
• Is the naming scheme used for the<br />
platform comprehensible?<br />
• Do interaction designers feel<br />
empowered by <strong>TINK</strong>?<br />
• Do programmers feel facilitated by<br />
<strong>TINK</strong><br />
• Is the interface usable?<br />
5.4.2 User test setup<br />
Similarly to the layout <strong>of</strong> the user research,<br />
the test involved six interaction designers<br />
with different levels <strong>of</strong> programming skills.<br />
Each hour long session had two participants<br />
working together.<br />
The participants involved in the study<br />
never saw the platform before the test.<br />
The test, divided in 4 phases were videorecorded<br />
for future analysis.<br />
The main phases <strong>of</strong> the test consisted<br />
<strong>of</strong> designing a <strong>connected</strong> <strong>product</strong>s, and<br />
representing the system diagram <strong>of</strong> it; first<br />
on paper and then using <strong>TINK</strong>.<br />
1)DESIGN A CONNECTED PRODUCT (10min.)<br />
A design assignment was given to the<br />
participants:<br />
MY SOCIAL LIFE<br />
How can I become less entwined with<br />
social media? Social media appears<br />
to eat the time and energy that I<br />
would rather spend with my friends<br />
and family in real life. Do I feel I will<br />
miss out on important updates? What<br />
does it mean to be <strong>connected</strong> through<br />
social media? Could you invent a way<br />
to move me from online to <strong>of</strong>fline<br />
interactions with my friends? How<br />
can I move from social media to<br />
social life?<br />
Because during the first session it was<br />
observed that the participants were taking<br />
much more time than expected to come<br />
up with an idea due to the complexity <strong>of</strong><br />
the assignment, in the second and third
Testing - 91<br />
session the assignment was reformulated<br />
in a more concrete example.<br />
EXPRESSING AVAILABILITIES<br />
Due to our constant connection to<br />
the internet trough different mobile<br />
platforms and devices, we are always<br />
reachable.<br />
Refusing a call might result in a<br />
bad experience for the caller, but is<br />
sometimes necessary.<br />
How can we notify our availability to<br />
friends and family trough a tangible<br />
interaction?<br />
The participants where asked to brainstorm<br />
on the assignment and design a <strong>product</strong><br />
that would solve the given problem. At<br />
the end, they where asked to represent a<br />
system diagram <strong>of</strong> the designed <strong>product</strong> on<br />
paper.<br />
3) USE <strong>TINK</strong> (25min.)<br />
In the third phase the participants had to<br />
use <strong>TINK</strong> to draw the system diagram for<br />
the <strong>product</strong> envisioned in the first phase<br />
<strong>of</strong> the session. Help was provided by the<br />
facilitator just in case the participants got<br />
stuck or when explicitly requested.<br />
4) INTERVIEW (15min.)<br />
Once the participants where satisfied with<br />
their system diagram they were asked<br />
to explain it. An interview was then<br />
conducted to discuss their <strong>experiences</strong>,<br />
the difficulties they encountered with the<br />
interface and gain feedback on the overall<br />
experience.<br />
Figure 44. Setup <strong>of</strong> the user-test<br />
2)EXPLANATION OF <strong>TINK</strong> (10min.)<br />
<strong>TINK</strong> functionalities where then<br />
demonstrated and explained to the<br />
participants. The roles <strong>of</strong> the different<br />
entities and building blocks <strong>of</strong> the <strong>TINK</strong><br />
system were described to the participants<br />
and also provided to them in a printout,<br />
which would be available for their reference<br />
in the next phase <strong>of</strong> the testing.<br />
It was highlighted during the presentation<br />
how important it was to give selfexplanatory<br />
names both to the entities and<br />
to the building blocks.
92 - <strong>TINK</strong><br />
5.4.3 User test results<br />
The test produced a lot <strong>of</strong> useful data and<br />
insights. Participants generally had positive<br />
experience with the concept behind <strong>TINK</strong>,<br />
a functional and easily adaptable system<br />
diagram.<br />
The purpose, function and aesthetics where<br />
understood and appreciated by users.<br />
Testing did reveal several usability<br />
dimensions <strong>of</strong> the platform that could<br />
be improved. Some <strong>of</strong> these confusions<br />
are rooted in the functions <strong>of</strong> the<br />
prototype being tested on, and its<br />
limited functionality. Other challenges<br />
have straightforward resolutions which<br />
are addressed in the next chapter <strong>of</strong> this<br />
report.<br />
PLATFORM’S PURPOSE<br />
The main objective <strong>of</strong> the platform is to<br />
support the interaction designer build<br />
experiential prototype <strong>of</strong> complex system<br />
<strong>of</strong> <strong>connected</strong> object.<br />
Both expert coders and designers with no<br />
previous coding experience experienced<br />
the platform positively. The graphical<br />
representation <strong>of</strong> the entities on a<br />
system diagram was considered useful<br />
and necessary especially for interaction<br />
designers that are not used to deal with<br />
complexity. In one participant’s words:<br />
It help visualizing [..] it makes<br />
it much easier to write the code<br />
since it creates an overview on the<br />
system. You will have to think more<br />
consciously at all the requirements<br />
and pieces you will have to build.<br />
The participants experienced positively the<br />
completeness <strong>of</strong> the platform, even though<br />
the facilitator had to intervene several<br />
times to clarify some matters. The entities<br />
included in the platform allowed everyone<br />
to represent the envisioned design.<br />
SKETCHINESS<br />
The sketchiness <strong>of</strong> the platform was<br />
not evaluated positively. Participants<br />
found usability issues with the system.<br />
In particular they found the process <strong>of</strong><br />
drawing the system diagram cumbersome<br />
and slow.<br />
It must be considered however that the<br />
prototype tested was not comprehensive<br />
<strong>of</strong> all the functionalities and presented<br />
several bugs.<br />
The fact that no real object could be<br />
<strong>connected</strong> to the platform, and the<br />
absence <strong>of</strong> real-time feedback, influenced<br />
the evaluation <strong>of</strong> the sketchiness <strong>of</strong> the<br />
platform. Moreover the impossibility<br />
<strong>of</strong> testing the behaviour <strong>of</strong> the system<br />
diagram produced, prevented the user<br />
the possibility to iterate on their design<br />
and made the participants experience the<br />
representation <strong>of</strong> the system diagram as a<br />
very mental exercise. It must be highlighted<br />
how this observation are really far from the<br />
intentions <strong>of</strong> the design.<br />
Most importantly, some participants in the<br />
testing found that the platform provided<br />
inspiration for how to develop the original<br />
concept while using <strong>TINK</strong>.<br />
This supports the thesis that <strong>TINK</strong> can<br />
facilitate idea generation, and iterative
Testing - 93<br />
development <strong>of</strong> design.<br />
USAGE AND UNDERSTANDING OF THE<br />
DIFFERENT COMPONENTS<br />
The platform proposes several names to<br />
distinguish the different types <strong>of</strong> entities<br />
and building blocks.<br />
Even without full functionality <strong>of</strong> the<br />
platform users were mostly able to<br />
understand the names used to understand<br />
different elements. Generally speaking the<br />
entities where understood correctly.<br />
The ‘Data Analyst’ entity was the only one<br />
that left the participants with some doubts<br />
about its role. While a more understandable<br />
name could be found, I believe that the<br />
meaning <strong>of</strong> the entity could become clear<br />
once the user will be able to experience its<br />
functionalities.<br />
The representation <strong>of</strong> the data analyst on<br />
the system diagram was also experienced<br />
as somewhat confusing because <strong>of</strong> the way<br />
it is represented on the system diagram:<br />
1) The way it is represented doesn’t<br />
highlight the fact that the data analyst is<br />
able to have an overview on the rest <strong>of</strong><br />
the system, as it is able to access data<br />
recorded by any other object. Making this<br />
metaphor more visible graphically would<br />
lead to a better understanding <strong>of</strong> the role<br />
<strong>of</strong> the entity.<br />
2) More confusion arose by the fact that<br />
the connections between data to track<br />
building block and data analyst are not<br />
required. Test Participants expressed their<br />
expectation <strong>of</strong> this connection<br />
BUILDING BLOCKS<br />
The building blocks were more confusion<br />
then the entities to the participants.<br />
This might be related to the fact that in<br />
order to operate on the building blocks a<br />
bigger level <strong>of</strong> understanding on how the<br />
system works is required.<br />
While designers with more technical skills<br />
where able to understand the difference<br />
between a trigger and an actuator, this<br />
was more confusing to people with no<br />
coding experience.<br />
The correct interpretation <strong>of</strong> the building<br />
blocks was also influenced by the fact<br />
that during the test it was not required<br />
for participants to fill in the code <strong>of</strong> the<br />
building blocks. The participants that were<br />
able to code would have understood better<br />
how to make use <strong>of</strong> them if they would<br />
have been told what is actually behind the<br />
building blocks.<br />
Designers with less technical skills<br />
sometimes had problems in correctly<br />
understanding the difference between<br />
triggers and actions. This can be related<br />
to the possible shift in perspective that<br />
is required when dealing with technology:<br />
while designers are used to think from the<br />
user perspective, technologists are more<br />
used to think in term <strong>of</strong> the technology’s<br />
perspective. For instance a “press the<br />
button” was interpreted as an action by a<br />
designer while it was correctly understood<br />
as a trigger from the developers.<br />
Dividing the system diagram in different<br />
building blocks was sometimes not<br />
done in the expected way. For instance,<br />
instead <strong>of</strong> dividing object’s behaviours in<br />
all the possible state <strong>of</strong> that action, the<br />
participants <strong>of</strong>ten tended to group all those
94 - <strong>TINK</strong><br />
state in a single action. This approach does<br />
not go in the direction <strong>of</strong> creating minimal<br />
building blocks.<br />
The building blocks library addresses this<br />
issue by proposing examples building<br />
blocks and a guideline to structure them.<br />
The same issue could also be solved by<br />
providing example projects that would<br />
show the advantages <strong>of</strong> this code folding<br />
practice.<br />
also different from programming with MAX-<br />
MSP or other visual programming languages<br />
that expose every single functional<br />
element to the user. <strong>TINK</strong> proposes a way<br />
<strong>of</strong> programming that is more close to the<br />
concept <strong>of</strong> flow based programming.<br />
While new user won’t find big problems in<br />
adopting the new paradigm, experienced<br />
users, who have worked for years in this<br />
other platforms might find it more difficult<br />
to switch to this new coding paradigm.<br />
The role <strong>of</strong> the “data to track” building<br />
block was considered confusing as well.<br />
This was mainly due to the fact that it was<br />
proposed on the same level <strong>of</strong> triggers and<br />
actions.<br />
Participants to the test were more<br />
accustomed thinking at Arduino as a black<br />
box that produces output according to an<br />
input provided.<br />
Because <strong>of</strong> this assumption, the ‘data to<br />
track’ building block was <strong>of</strong>ten interpreted<br />
as the one that reads raw data from the<br />
sensors. The triggers as a condition or a<br />
mapping function on the data, and the<br />
action was correctly understood as the task<br />
performed by the entity.<br />
LEARNING CURVE<br />
The platform is quite big and therefore<br />
it requires time to be explored and fully<br />
understood. The way the platform should<br />
be used is quite novel from other tools<br />
users might be used to.<br />
Coding with <strong>TINK</strong> is different from coding<br />
with Arduino and other imperative<br />
languages, as the code is supposed to be<br />
fragmented into building blocks. But, it is<br />
USER TEST SETUP<br />
During the second session, testing the<br />
platform’s user interface, the participants<br />
could not find any way to transfer messages<br />
from one building block to another.<br />
This lead them to sketch a system diagram<br />
that made intensive use <strong>of</strong> the data to track<br />
building block and data analyst entity,<br />
instead <strong>of</strong> Trigger and Action Building<br />
Block. Thus resulting in a System diagram<br />
not representing all the connections and<br />
relations between the entities.<br />
While this way <strong>of</strong> using the platform should<br />
be discouraged, as it goes against the idea<br />
<strong>of</strong> visualizing the behaviour <strong>of</strong> the network<br />
<strong>of</strong> entities in the form <strong>of</strong> the system<br />
diagram. It can be said that the platform<br />
demonstrated a big level <strong>of</strong> openness as<br />
participants discovered way <strong>of</strong> using it not<br />
envisioned by the designer. In addition, the<br />
current version <strong>of</strong> the design introduced in<br />
the previous chapter, already presents the<br />
possibility to exchange messages between<br />
<strong>objects</strong> and it could be enough to solve<br />
this issue.
Testing - 95<br />
When developing experiential prototype<br />
choices are made in order to adopt the<br />
easiest and quicker way to get to an<br />
artefact that is functional to the testing<br />
<strong>of</strong> the experience. This most <strong>of</strong> the time<br />
require the designer to make a compromise<br />
between developing with the envisioned<br />
technology or downscale the design due<br />
to the difficulties <strong>of</strong> implementing a final<br />
prototype.<br />
The prototype used during the test did<br />
not providing any kind <strong>of</strong> limitation as to<br />
what kind <strong>of</strong> hardware could be <strong>connected</strong><br />
to it, or which kind <strong>of</strong> web-services could<br />
be used. During the test, participants were<br />
trying to implement all the details <strong>of</strong> the<br />
interaction in the system diagram. However<br />
a confrontation with the real limitation <strong>of</strong><br />
the platform would have made them reflect<br />
and came up with more practical solutions<br />
to achieve the same envisioned experience.<br />
USABILITY<br />
Participants found the interface<br />
aesthetically appealing, and appreciated<br />
its clarity and simplicity.<br />
Several usability issues were however<br />
discovered during the user test. Several <strong>of</strong><br />
these were bugs and interface design flaws<br />
the designer had already been aware <strong>of</strong>.<br />
The user test was fundamental in<br />
uncovering other specific aspects <strong>of</strong> the<br />
platform to improve.<br />
Dragging<br />
The test participants tried to use the drag<br />
and drop gesture to perform actions that<br />
were not supported by the platform, or<br />
that were implemented differently.<br />
One particular usability issue was<br />
discovered in how the mouse was used<br />
with the connection function.<br />
When the mouse was being used to drag a<br />
connection between to building block, it<br />
was not clear where or when the mouse was<br />
supposed to be released<br />
The next chapter <strong>of</strong>fers some<br />
recommendations on how to improve the<br />
platform’s gestural interfaces, which will<br />
improve the usability <strong>of</strong> the drag and drop<br />
gestures.<br />
Consistency<br />
The current design features a single button<br />
with a plus (+) to add entity, which<br />
after rotating the button by 45° degrees<br />
becomes an x icon to close the same<br />
panel. The little detail was not properly<br />
understood by participants and took some<br />
time to figure out that the same element<br />
was both used to open and close the same<br />
panel.<br />
Order<br />
Sometimes creating complex systems with<br />
<strong>TINK</strong> resulted in a messy tangle <strong>of</strong> lines.<br />
This doesn’t facilitate the comprehension<br />
<strong>of</strong> the system diagram. A routing<br />
mechanism should be proposed to avoid<br />
this to happen.<br />
Some participants also expressed the desire<br />
to be able to rearrange the building blocks<br />
around in order to be able to be able to<br />
visually group blocks building blocks<br />
together and make the representation <strong>of</strong><br />
the system diagram more free and at the<br />
same time more comprehensible.
CHAPTER 6<br />
Evaluation<br />
Here, the graduation project as a whole is evaluated.<br />
Firstly, by considering the MAIN CONTRIBUTIONS that <strong>TINK</strong> would<br />
bring to the field <strong>of</strong> design.<br />
Then with a reflection on how well the PROGRAM OF REQUIRE-<br />
MENTS IS SATISFIED.<br />
Next, an extensive list <strong>of</strong> RECOMMENDATIONS for future development<br />
<strong>of</strong> <strong>TINK</strong> is <strong>of</strong>fered based on the results <strong>of</strong> the user tests.<br />
The chapter closes with a PERSONAL EVALUATION <strong>of</strong> the work done.
98 - <strong>TINK</strong><br />
6.1 Main contributions<br />
What follows is a point to point evaluation<br />
on the program <strong>of</strong> requirements presented<br />
at the conclusion <strong>of</strong> chapter 3.<br />
provides crucial insights that will inform<br />
the design process.<br />
1)<strong>TINK</strong> provides a structure to organize<br />
and represent system diagrams.<br />
System diagrams are well known, and<br />
necessary tools to engineers and s<strong>of</strong>tware<br />
developers, at the same time, because <strong>of</strong><br />
their graphical appeal, can easily be drawn<br />
by interaction designers. Tink serves as a<br />
base for cross-expertise discussion between<br />
designers and developers, Its robust<br />
technical components adequately serve<br />
the needs <strong>of</strong> developers while the graphic<br />
appeal speaks to the design community.<br />
3)<strong>TINK</strong> combines all the features needed<br />
for developing <strong>connected</strong> object in a<br />
single platform<br />
<strong>TINK</strong> is a complete platform; designers<br />
won’t have to switch between different<br />
tools in order to build their experiential<br />
prototype <strong>of</strong> <strong>connected</strong> <strong>objects</strong>.<br />
Other existing platforms aren’t as allemcompassing.<br />
<strong>TINK</strong> combines functions<br />
<strong>of</strong> several different programs into a single,<br />
stream-lined platform and process.<br />
2)<strong>TINK</strong> is for all stages <strong>of</strong> the design<br />
process<br />
<strong>TINK</strong> supports the designer throughout<br />
the entire process <strong>of</strong> creating a <strong>connected</strong><br />
object.<br />
It supports the early exploration and<br />
<strong>sketching</strong> phases, and also allows<br />
interaction designers to make informed<br />
decisions, refine and modify the initial<br />
idea, all the way up until an experiential<br />
prototype <strong>of</strong> the final <strong>product</strong> is made.<br />
<strong>TINK</strong> supports quick iterations and testing:<br />
the behaviours <strong>of</strong> the system can be<br />
modified on the fly and tested. Moreover,<br />
it allows the tracking <strong>of</strong> data from the<br />
beginning <strong>of</strong> the design process; which<br />
4)<strong>TINK</strong> support designers in structuring<br />
the code.<br />
Code is structured and hidden inside<br />
<strong>TINK</strong> making it reusable and easy to<br />
write. Even interaction designers with no<br />
coding experience can access <strong>TINK</strong> basics<br />
functionalities, make use <strong>of</strong> the building<br />
block library, and draw system diagrams.<br />
Typically interaction designers writing<br />
Arduino code rely on using code found<br />
from other sources (be it on the Internet or<br />
from an example folder) and copying and<br />
pasting it into their project. However, this<br />
collage <strong>of</strong> different snippets <strong>of</strong> pre-formed<br />
code from multiple sources tends to create<br />
conflicts and can not easily be tailored to<br />
individual projects.
Evaluation - 99<br />
With <strong>TINK</strong> however, pieces <strong>of</strong> code are<br />
structure in such a way that makes them<br />
autonomous from other pieces. Thus<br />
allowing a graphical representation <strong>of</strong><br />
them in building blocks, the Autonomy <strong>of</strong><br />
the building block from each other makes<br />
it also possible the to save them into a<br />
building block library, for a future reuse in<br />
to other projects.<br />
This building block library leverages the<br />
practice <strong>of</strong> looking for pre-written code<br />
online interaction designers are used<br />
to, <strong>of</strong>fering this service within the <strong>TINK</strong><br />
platform itself. The library provides an<br />
<strong>of</strong>ficial repository <strong>of</strong> working snippets<br />
that can be integrated inside the project--<br />
without even looking at the code.<br />
5)<strong>TINK</strong> promotes social coding and<br />
group-work<br />
A big open source community is driving<br />
the market <strong>of</strong> DIY tools for prototyping.<br />
<strong>TINK</strong>’s design builds on this value <strong>of</strong><br />
communality with its own platform library<br />
which promotes and encourages users to<br />
contribute their own code as a building<br />
block for their personal project, as well as<br />
that <strong>of</strong> others.<br />
Group-work is additionally facilitated<br />
by <strong>TINK</strong>’s general usability across a<br />
multidisciplinary team; as well as by the<br />
fact that it is an online platform that can<br />
be accessed by multiple people in real<br />
time.
100 - <strong>TINK</strong><br />
6.2 Reflection on the program<br />
<strong>of</strong> requirements<br />
A reflection on the program <strong>of</strong> requirement<br />
presented in chapter 3 is important for a<br />
correct evaluation <strong>of</strong> the design.<br />
2)Target users<br />
1) Platform goal<br />
1.1 The design <strong>of</strong> <strong>TINK</strong> allows, for<br />
networks <strong>of</strong> <strong>connected</strong> <strong>objects</strong> to<br />
be developed, it make possible the<br />
development <strong>of</strong> experiential prototype <strong>of</strong><br />
networks <strong>of</strong> <strong>connected</strong> object, and also<br />
the development <strong>of</strong> experiential prototype<br />
part <strong>of</strong> other Connected Object categories<br />
presented in chapter 2.<br />
1.2 The result from the user test cannot<br />
evaluate the sketchiness <strong>of</strong> the platform,<br />
since several features were missing<br />
from the prototype itself. Several <strong>TINK</strong>’s<br />
features however can be re-conducted to<br />
sketchy qualities: <strong>TINK</strong> in fact improves the<br />
speed <strong>of</strong> developing networks <strong>of</strong> <strong>connected</strong><br />
<strong>objects</strong>, supports exploration <strong>of</strong> different<br />
solutions, provides direct feedback to<br />
the user allowing for quick iterations and<br />
inspiration for the user about different<br />
possibilities and potential <strong>of</strong> the network<br />
created.<br />
1.3 Tink allows the storing and visualization<br />
<strong>of</strong> data. The evaluation <strong>of</strong> the data is left<br />
to the user, the visualization is already a<br />
powerful tool that supports the designer<br />
in understanding and observing recurrent<br />
patterns within the data.<br />
2.1 The main target users <strong>of</strong> the s<strong>of</strong>tware<br />
are interaction designers. While the<br />
s<strong>of</strong>tware provides several levels <strong>of</strong> access<br />
for users with different skills sets, in<br />
order to access the most <strong>of</strong> the potential<br />
<strong>of</strong> <strong>TINK</strong>, a minimum <strong>of</strong> understanding <strong>of</strong><br />
Arduino coding is needed.<br />
2.2 While it is debatable whether it is<br />
necessary for interaction designer to learn<br />
how to code, this platform can and does<br />
provide support to interaction designers<br />
with no coding knowledge. Some ideas<br />
on how this goal could even better<br />
implemented will be discussed in the<br />
recommendation section.<br />
3) Versatility<br />
3.1 <strong>TINK</strong> can assist the development <strong>of</strong><br />
experiential prototypes at all steps <strong>of</strong> the<br />
design process.<br />
3.2 The ‘building block’ function allows<br />
for exploration <strong>of</strong> different possibilities,<br />
inspiring the user to test different solutions<br />
before getting to a final design.<br />
3.3 The platform doesn’t force any strict<br />
work-flow: Users can start by defining the<br />
layout <strong>of</strong> the entire system diagram or<br />
start by testing each trigger and behaviour
Evaluation - 101<br />
related to an entity before adding the<br />
second one.<br />
3.4 The monitor view, meant especially for<br />
testing purposes, can also be very useful<br />
in the beginning <strong>of</strong> the process as it might<br />
give the designer relevant insights for the<br />
continuing <strong>of</strong> the project.<br />
4) Openness and level <strong>of</strong><br />
visibility<br />
4.1 The platform provides different level <strong>of</strong><br />
accessibility:<br />
As discussed during in the section on the<br />
user test, <strong>TINK</strong> helps designers having an<br />
overview on the system and at the same<br />
time allows the designer to go in to the<br />
detail <strong>of</strong> the interaction. Since the building<br />
blocks are not fixed, the behaviour <strong>of</strong> every<br />
single block can be personalized via code.<br />
The platform also supports the ability to<br />
separately test each and every single<br />
aspect <strong>of</strong> the interaction.<br />
4.2 The s<strong>of</strong>tware helps designer deconstruct<br />
the envisioned interaction in different<br />
parts: The users testing the platform had<br />
no difficulty identifying the type <strong>of</strong> entities<br />
that they needed in their design. However,<br />
the division <strong>of</strong> the actions into building<br />
block was not always done as expected:<br />
while engineering are used to the division<br />
in functional building block, designers<br />
tent to talk about the interaction with the<br />
system on a bigger level <strong>of</strong> abstraction.<br />
Suggestions on how to improve the design<br />
according to the requirement are provided<br />
in the recommendation section <strong>of</strong> this<br />
chapter.<br />
4.3 The s<strong>of</strong>tware was developed based on<br />
open source s<strong>of</strong>tware and hardware, all the<br />
code produced for the project can be found<br />
on GitHub.<br />
The possibility <strong>of</strong> operating the s<strong>of</strong>tware<br />
prior to the electronic being <strong>connected</strong><br />
is an important feature envisioned in the<br />
design that unfortunately could not be<br />
tested.<br />
5) Usability<br />
5.1 The platform provides users with<br />
several ways to get feedback on the status<br />
<strong>of</strong> the network’s hardware. The entities in<br />
fact visually display when they are not<br />
properly <strong>connected</strong> to the platform.<br />
5.2 Moreover, whenever a building block is<br />
executed, visual feedback is presented to<br />
the user showing the value <strong>of</strong> the message.<br />
5.3 The usability <strong>of</strong> the platform presented<br />
several issues during the user test, most <strong>of</strong><br />
these problems however were <strong>connected</strong> to<br />
the level <strong>of</strong> development <strong>of</strong> the platform.<br />
The overall usability experience <strong>of</strong> the<br />
platform was positive.
102 - <strong>TINK</strong><br />
6.3Recommendations<br />
What follows are some recommendations<br />
and ideas for further developments <strong>of</strong> the<br />
platform based on the findings from the<br />
user tests<br />
TARGET USERS<br />
confusing and redundant. A possible<br />
solution would be to enable each building<br />
block to track its own data produced.<br />
The metaphor <strong>of</strong> the recording button<br />
(Figure 46) could be used as a reference<br />
button for users to enable this feature.<br />
Figure 45. Proposal for more<br />
explicit building blocks<br />
Figure 46. Using the methaphore <strong>of</strong><br />
the record button to track data<br />
While the platform already wants to be<br />
designer friendly, it still can sometimes<br />
favour an audience that is fluent with<br />
coding. Future iterations <strong>of</strong> this platform<br />
could be designed to be even more<br />
accessible to a non technical audience.<br />
BUILDING BLOCKS<br />
As observed during the user test, the most<br />
critical point that designers with little<br />
coding <strong>experiences</strong> found confusing was<br />
the structure <strong>of</strong> the building block. Some<br />
small and simple changes can begin to<br />
resolve these conflicts.<br />
Just by adding few words before the name<br />
<strong>of</strong> the building blocks some guidance can<br />
be provided on the role <strong>of</strong> the different<br />
types blocks.<br />
IF, DO can be placed respectively in front<br />
<strong>of</strong> the trigger and action blocks to aid in<br />
clarifying the meaning <strong>of</strong> the block for<br />
users. (Figure 45)<br />
TRACKING DATA<br />
Test users building found having a building<br />
block dedicated to the tracking <strong>of</strong> data<br />
ENTITIES<br />
An attempt was done in making all entities<br />
consistent: All <strong>of</strong> them have similar<br />
representation style, and the same set <strong>of</strong><br />
building blocks.<br />
This choice should be reconsidered. Having<br />
more tailored properties for the different<br />
entities might actually result in a better<br />
user experience <strong>of</strong> the platform.<br />
Because the coding/detailing <strong>of</strong> the<br />
building blocks for the other entities<br />
still need to be tested with users, there<br />
is room for in-depth analysis <strong>of</strong> the<br />
advantages and disadvantages brought by<br />
the customization <strong>of</strong> the different entities<br />
in terms <strong>of</strong> structuring, representation,<br />
naming etc...<br />
Connected object<br />
An approach to making building block<br />
more friendly for designers would be to<br />
restructure the dichotomy trigger-action <strong>of</strong><br />
the building block format into a structure<br />
that more accurately mirrors the setup <strong>of</strong><br />
the physical prototyping board.<br />
I <strong>of</strong>ten hear fellow interaction design
Evaluation - 103<br />
students talking about Arduino as a black<br />
box that produces some output according<br />
to some input (Figure 47).<br />
and “trigger” building block, the role <strong>of</strong><br />
an action building block might be not<br />
necessary.<br />
This vision could be explored in a future<br />
<strong>TINK</strong> iteration dividing the working logic<br />
represented now in trigger->action in<br />
input->mapping->output as presented in<br />
Figure 48.<br />
This division might provide several<br />
advantages for an interaction designer<br />
that are is used to code as it is also closer<br />
to the way sensors (input) and actuator<br />
(output) are physically a attached to the<br />
electronic prototyping board.<br />
On the other hand, this separation <strong>of</strong> roles<br />
proposed here may actually be experienced<br />
as limiting by more advanced users. The<br />
choice <strong>of</strong> a more specific target group<br />
might be useful in understanding how to<br />
improve the definition <strong>of</strong> the behaviours <strong>of</strong><br />
the entity.<br />
Data analyst<br />
A different structure could be proposed for<br />
the implementation <strong>of</strong> the Data Analyst<br />
entity based on the type <strong>of</strong> features that<br />
the entity requires to perform:<br />
• Represent data <strong>of</strong> the collective<br />
behaviors <strong>of</strong> multiple entities<br />
• Create alerts (triggers) on particular<br />
group behaviors observed.<br />
While the two feature explained might be<br />
satisfied by the role <strong>of</strong> the “data to track”<br />
Another proposal can be made on how the<br />
entity should be further developed.<br />
As the main role <strong>of</strong> the entity is to inquiry<br />
the database, the programming language<br />
to operate on this entity should be similar<br />
to common filtering/querying mark-up<br />
used for similar purposes.<br />
A good starting point could be looking<br />
at how filtering and querying is done on<br />
spreadsheets.<br />
However, as it should be possible to define<br />
action on the data collected some sort<br />
<strong>of</strong> programming logic should be adopted<br />
to create conditions and triggers on the<br />
elaborated data.<br />
To provide direct feedback to the user<br />
on what kind <strong>of</strong> data he/she is trying to<br />
collect, it will be important to provide the<br />
data-visualizations representing the result<br />
<strong>of</strong> the query (Figure 49).<br />
Web service<br />
The web service object is probably the one<br />
that was more successfully envisioned and<br />
executed. For this entity, the meanings <strong>of</strong><br />
triggers and action building blocks were<br />
fully understood.<br />
For the further development <strong>of</strong> the entity,<br />
I suggest to investigate the possibility <strong>of</strong><br />
an integration <strong>of</strong> <strong>TINK</strong> with third party<br />
services such as Temboo and IFTT that<br />
Figure 47. Arduino: a box that<br />
produces outputs according to<br />
the inputs<br />
Figure 48. Restructuring the<br />
building blocks in input, mapping,<br />
output.<br />
Figure 49. Providing visual<br />
feedback to data queries
104 - <strong>TINK</strong><br />
already provide a reach set <strong>of</strong> API to<br />
interact with web services.<br />
As connecting to third part API is always<br />
quite an advance feature, some sort <strong>of</strong><br />
building block library will be very useful to<br />
provide designers with a rich set <strong>of</strong> options<br />
to choose from. This also will inspire the<br />
designer in finding new solutions.<br />
Device<br />
DRAGGING<br />
While the interface already supports the<br />
drag and drop <strong>of</strong> entities and arrows, the<br />
gesture should be used to support also<br />
other kinds <strong>of</strong> actions in order to provide<br />
a more consistent experience. Drag and<br />
drop could be for example used to add and<br />
delete entities, and to reorder building<br />
blocks.<br />
The role <strong>of</strong> the device is maybe the least<br />
clear aspect <strong>of</strong> the entire platform, It could<br />
be implemented in different way with<br />
different goals in mind.<br />
In addition, whenever a dragging action<br />
start, the possible target for the dropping<br />
should highlight in order to provide<br />
guidance to the user.<br />
Figure 50. An Idea to develop<br />
interfaces to interact with <strong>TINK</strong><br />
The easiest approach would be to define<br />
a set <strong>of</strong> APIs that would allow designers<br />
to send and receive information from the<br />
platform. This will require users to write<br />
code or use other tools that can produce<br />
interactive prototyping <strong>of</strong> user interfaces.<br />
For example someone could build an<br />
interface in html and define js/ajax call to<br />
<strong>TINK</strong> server to retrieve or post data on-line.<br />
This approach is similar to what Space<br />
Brew 40 and Noam 41 are capable <strong>of</strong>.<br />
Designing a system to create simple<br />
interfaces from the platform itself, able to<br />
connect to the other entities would be a<br />
more designer friendly solution.<br />
Simple UI elements such as forms, buttons,<br />
sliders, graphs could be just dragged and<br />
dropped and <strong>connected</strong> to the system<br />
diagram. (Figure 50)<br />
SCALABILITY<br />
<strong>TINK</strong> is meant for building experiential<br />
prototypes and facilitating the design<br />
process. At this stage, the platform can’t<br />
be to deploy system in to <strong>product</strong>ion and<br />
won’t support the deployment on large<br />
number <strong>of</strong> nodes. However solutions to<br />
facilitate the scaling <strong>of</strong> a prototype to<br />
<strong>product</strong>ion could be investigated.<br />
CONNECTING THIRD PARTY OBJECT<br />
While <strong>TINK</strong> allows to connect custom<br />
Connected Object between each other<br />
based on Arduino YUN, <strong>TINK</strong> not yet allow<br />
interactions with other third party <strong>objects</strong>.<br />
However with the burgeoning development<br />
<strong>of</strong> IoT <strong>objects</strong> come plethora <strong>of</strong> possibilities<br />
for future connectivity with <strong>TINK</strong>. <strong>TINK</strong>
Evaluation - 105<br />
should provide tools to interact with third<br />
party <strong>objects</strong> API. (Figure 51)<br />
the possibility <strong>of</strong>fered by the Web Service<br />
entity from the <strong>connected</strong> object<br />
DEVELOPING THE HARDWARE<br />
While <strong>TINK</strong> supports interaction designers<br />
with building the s<strong>of</strong>tware, it doesn’t help<br />
the designer in dealing with the hardware.<br />
As discussed in the beginning <strong>of</strong> the<br />
report, developing hardware remains a big<br />
challenge for designers.<br />
<strong>TINK</strong> could support the development <strong>of</strong><br />
electronics by providing tutorials on how<br />
to hook up hardware to the platform. These<br />
tutorials could be integrated within the<br />
building block library in order to provide<br />
a clear correlation between code and<br />
hardware.<br />
ROADMAP<br />
The development and release <strong>of</strong> the<br />
platform can be done in several incremental<br />
steps.<br />
1) The first alpha version <strong>of</strong> <strong>TINK</strong> will just<br />
include the possibility <strong>of</strong> working with<br />
<strong>connected</strong> <strong>objects</strong>. It will be possible<br />
to visualize the data collected by those<br />
<strong>objects</strong> and access the functionalities <strong>of</strong><br />
the monitor view.<br />
2) The building block library will be added<br />
featuring a selection <strong>of</strong> building block<br />
related to the <strong>of</strong>ficial Arduino Libraries<br />
(LCD, servo, stepper etc…)<br />
A Temboo library will be released as well<br />
so that user will be able to access some <strong>of</strong><br />
3) The Data Analyst entity will be released.<br />
It will include the possibility <strong>of</strong> doing data<br />
analysis on the collected data and create<br />
triggers related to the combined behaviour<br />
<strong>of</strong> the object in the system.<br />
As this feature is not implemented in any<br />
tool on the market, extensive testing will<br />
be necessary to determine the effectiveness<br />
<strong>of</strong> it.<br />
4)<strong>TINK</strong> Web Service entity will be<br />
released. The Temboo library will remain<br />
as a secondary alternative for connecting<br />
<strong>objects</strong> to third party services such as<br />
social networks.<br />
5)The device entity will be implemented<br />
and released gradually. Firstly, the<br />
possibility <strong>of</strong> creating a device trigger<br />
will be implemented. This will work as a<br />
custom web address, to which the user can<br />
make a post request, passing the data, in<br />
order to activate a trigger on <strong>TINK</strong>’s system<br />
diagram.<br />
The designer will have to write the code to<br />
draw the interface and make the request.<br />
The Device entity could then evolve in the<br />
direction <strong>of</strong> creating a GUI to design the<br />
interface and link it to other entity.<br />
Figure 51. Proprietary entities
106 - <strong>TINK</strong><br />
6.4 Personal Evaluation<br />
The project resulted to be a long and<br />
passionate journey.<br />
I have to admit that I started working<br />
on this project with several personal side<br />
goals in mind.<br />
Even though in the beginning I had no clue<br />
what I was going to design, I knew that<br />
I wanted to do a graduation project that<br />
would end with a “final design”: I didn’t<br />
want to end up my final project presenting<br />
just a sketchy concept but I wanted to get<br />
to the point <strong>of</strong> designing the details <strong>of</strong><br />
it. Moreover, even though I had no clue<br />
about what I was going to be designing<br />
for, I knew that I wanted to produce a fully<br />
working prototype <strong>of</strong> the final design.<br />
Looking back at it, I have to say that those<br />
goals where quite ambitious considering<br />
how broad the assignment was.<br />
I started the project trying to free my mind<br />
from any preconception <strong>of</strong> what I could<br />
have end up designing, trying to be as<br />
open as possible to any inspiration that<br />
would strike me.<br />
It ended up to be a 7 months <strong>of</strong> intense and<br />
satesfactory work, almost evenly balanced<br />
between research and design.<br />
I’ll present here several Highlights that I<br />
valued from this long journey.<br />
RESEARCH<br />
The ‘following the flow’ approach resulted<br />
in devoting a lot <strong>of</strong> this project’s time in<br />
research.<br />
I was not expecting this from the<br />
beginning, as I consider myself more <strong>of</strong><br />
a “maker“ than a “researcher”; however I<br />
found the activity <strong>of</strong> building knowledge<br />
quite gratifying.<br />
While I’m really pleased with the results<br />
from the market analysis concucted, the<br />
two highlights I want to mention about<br />
this phase are related to the user research<br />
and the week spent on “the philosophy<br />
book”:<br />
- I’m not a big fan <strong>of</strong> user research, I’m <strong>of</strong><br />
the opinion that we cannot really ask our<br />
users what they want as they are not aware<br />
<strong>of</strong> what they might want. However I have<br />
to say that in this project, the research<br />
done with users was very insightful.<br />
As I love arguing (I guess my mentor team<br />
realized that), but I was not working in a<br />
team, the user research was probably the<br />
best way to question my choices.<br />
- At some point in the process my mentor<br />
suggested to read a book about the<br />
phenomenology <strong>of</strong> things 7 , the importance<br />
findings I got out <strong>of</strong> this book are<br />
summarized in chapter one. I have to say it<br />
was the most relaxed week <strong>of</strong> my project, it<br />
was a welcomed diversion and inspiration<br />
to my project
Evaluation - 107<br />
DESIGN<br />
After the research phase I jumped into the<br />
design. Probably my approach to it was<br />
probably not very conventional, as instead<br />
<strong>of</strong> producing many ideas, I jumped straight<br />
in to wireframing the features <strong>of</strong> a huge<br />
application.<br />
I pushed myself to go into the details <strong>of</strong><br />
the app as soon as possible, to work on<br />
shapes, colors, animations and the little<br />
interaction details.<br />
I’m happy for the way I managed to<br />
include most <strong>of</strong> the knowledge built along<br />
the process inside the design <strong>of</strong> <strong>TINK</strong>. The<br />
process <strong>of</strong> including different features in<br />
<strong>TINK</strong> was very smooth and never forced.<br />
PROTOTYPING<br />
I like to use every project I take on as an<br />
opportunity to learn some new skill sets.<br />
In this project I decided that I wanted<br />
to experiment with some state <strong>of</strong> the art<br />
web technologies: Most <strong>of</strong> the technology<br />
and frameworks I used to develop the<br />
two prototypes previously described were<br />
new to me, and, <strong>of</strong> course, it didn’t go as<br />
smoothly as expected.<br />
In the end, I couldn’t manage in fact to<br />
achieve my goal <strong>of</strong> a fully functional<br />
prototype because <strong>of</strong> time constraints.<br />
I could have probably developed a working<br />
prototype <strong>of</strong> <strong>TINK</strong> using other kinds <strong>of</strong><br />
technologies I’m more confident with, in<br />
probably half the time. While this might<br />
have lead to a smoother end <strong>of</strong> the<br />
graduation project, especially regarding<br />
the setup and result from the user test,<br />
I‘m still happy that I took the chance to<br />
experiment and learn new stuff.<br />
PROJECT’S RESULTS<br />
I have to admit that I’m really pleased with<br />
the results <strong>of</strong> my work.<br />
Both with the results from the research<br />
phase (communication model and<br />
categories <strong>of</strong> <strong>connected</strong> <strong>objects</strong>), and with<br />
the final design.<br />
<strong>TINK</strong> is not ready to be announced as a<br />
magnificent tool to develop experiential<br />
prototype <strong>of</strong> <strong>connected</strong> <strong>product</strong>s, as<br />
demonstrated by the user research.<br />
And this makes totally sense as it is just<br />
the result <strong>of</strong> a 7 months solo graduation<br />
project.<br />
However I believe that with my Graduation<br />
project however I managed to properly<br />
investigate the topic, gaining a lot <strong>of</strong><br />
insights that might be used in a redesign<br />
<strong>of</strong> the platform or in a new design.<br />
For sure one <strong>of</strong> the most important results<br />
is the learning experience that I got from<br />
the project.<br />
CONCLUSIONS<br />
In summary, with this project I was not only<br />
able to develop and build a novel concept<br />
and tool, it was also an opportunity to<br />
explore new skills, ways <strong>of</strong> thinking and<br />
important phases <strong>of</strong> the design process<br />
that I had not yet been exposed to.<br />
For this project, I not only developed<br />
my pre-existing area <strong>of</strong> expertise, but<br />
also explored other critical fields and<br />
dimensions <strong>of</strong> design. I appreciate and<br />
value the experience <strong>of</strong> this project because<br />
it made me a more informed, thoughtful<br />
and technical interaction designer
108 - <strong>TINK</strong><br />
References<br />
1. Buxton, B. (2010). Sketching User<br />
Experiences: Getting the Design Right<br />
and the Right Design: Getting the Design<br />
Right and the Right Design. Morgan<br />
Kaufmann.<br />
2. Ashton, K. (2009). That ‘internet <strong>of</strong><br />
things’ thing. RFiD Journal, 22, 97-114.<br />
3. Reas, C., & Fry, B. (2006). Processing:<br />
programming for the media arts. AI &<br />
SOCIETY, 20(4), 526-538.<br />
4. Victor, B. (2012, September 1). Learnable<br />
programming. . Retrieved June 1, 2014,<br />
from http://worrydream.com/#!/<br />
LearnableProgramming<br />
5. Moussette, C., & Dore, F. (2010). Sketching<br />
in Hardware and Building Interaction<br />
Design: tools, toolkits and an attitude<br />
for Interaction Designers. Proc. <strong>of</strong> Design<br />
Research Society<br />
6. Resnick, M., Myers, B., Nakakoji, K.,<br />
Shneiderman, B., Pausch, R., Selker, T.,<br />
& Eisenberg, M. (2005). Design principles<br />
for tools to support creative thinking.<br />
7. Verbeek, P. P. (2010). What things do:<br />
Philosophical reflections on technology,<br />
agency, and design. Penn State Press.<br />
8. McLuhan, M. (1994). Understanding<br />
media: The extensions <strong>of</strong> man. MIT press.<br />
9. Stappers, P. J. (2009). Meta-levels in<br />
Design Research.<br />
10. Kuniavsky, M. (2010). Smart Things:<br />
Ubiquitous Computing User Experience<br />
Design: Ubiquitous Computing User<br />
Experience Design. Elsevier.<br />
11. Bleecker, J. (2006). A manifesto for<br />
networked <strong>objects</strong>—cohabiting with<br />
pigeons, arphids and aibos in the internet<br />
<strong>of</strong> things.<br />
12. Sterling, B., Wild, L., & Lunenfeld, P.<br />
(2005). Shaping things. Cambridge, MA:<br />
MIT press.<br />
13. Rubino, S. C., Hazenberg, W., & Huisman,<br />
M. (2011). Meta <strong>product</strong>s: Meaningful<br />
design for our <strong>connected</strong> world. Bis<br />
Publishers.<br />
14. TOTeM Labs. (2010, April 1). Tales <strong>of</strong><br />
Things. Tales <strong>of</strong> Things. Retrieved June<br />
18, 2014, from http://tales<strong>of</strong>things.com/<br />
about/<br />
15. OV-chipcard F.A.Q. (n.d.).OV-chipkaart.<br />
Retrieved June 18, 2014, from https://<br />
www.ov-chipkaart.nl/klantenservice/<br />
vragenenantwoorden/<br />
16. Smartcitizen. (2012, January 1). Smart<br />
Citizen. Retrieved June 18, 2014, from<br />
http://www.smartcitizen.me/pages/<br />
smartcitizen<br />
17. Ricker, T. (2012, April 23). Fitbit Aria Wi-<br />
Fi scale review. The Verge. Retrieved June<br />
18, 2014, from http://www.theverge.<br />
com/2012/4/23/2966393/aria-scalereview-fitbit-wi-fi<br />
18. Google and Adidas Unveil a ‘Talking Shoe’<br />
at SXSW | Special: SXSW - Advertising<br />
Age. (2013, March 1). Advertising Age<br />
Special Report SXSW RSS. Retrieved June<br />
18, 2014, from http://adage.com/article/<br />
special-report-sxsw/google-adidasunveil-a-talking-shoe-sxsw/240299/<br />
19. Spitz, A. (2012, October 1). Skube - A<br />
Last.fm & Spotify Radio . { sound + design
References - 109<br />
}. Retrieved June 18, 2014, from http://<br />
www.soundplusdesign.com/?p=5516<br />
20. About Instacube. (2014, January 1).<br />
Official Instacube Website RSS. Retrieved<br />
June 19, 2014, from http://goinstacube.<br />
com/about-instacube/<br />
21. Carnoy, D. (2007, April 1). Ambient<br />
Devices’ weather-forecasting umbrella<br />
now available - CNET. CNET. Retrieved<br />
June 19, 2014, from http://www.cnet.<br />
com/news/ambient-devices-weatherforecasting-umbrella-now-available/<br />
22. Introducing Philips hue: the world’s<br />
smartest LED bulb, marking a new era<br />
in home lighting. (2012, October 29).<br />
Introducing Philips hue: the world’s<br />
smartest LED bulb, marking a new era<br />
in home lighting. Retrieved June 19,<br />
2014, from http://www.newscenter.<br />
philips.com/main/standard/news/<br />
press/2012/20121029-introducingphilips-hue.wpd#.U6KUmo2SxgM<br />
23. Discover LG Smart ThinQ Appliances.<br />
(n.d.). Smart Appliances: Discover LG’s<br />
Smart ThinQ Appliances. Retrieved June<br />
19, 2014, from http://www.lg.com/us/<br />
discover/smartthinq/thinq<br />
24. About us. (2014, January 1). The Good<br />
Night Lamp. Retrieved June 19, 2014,<br />
from http://goodnightlamp.com/about/<br />
25. Samani, H. A., Parsani, R., Rodriguez,<br />
L. T., Saadatian, E., Dissanayake, K. H.,<br />
& Cheok, A. D. (2012, June). Kissenger:<br />
design <strong>of</strong> a kiss transmission device. In<br />
Proceedings <strong>of</strong> the Designing Interactive<br />
Systems Conference (pp. 48-57). ACM.<br />
26. CitySense - Tvilight. (n.d.). Tvilight.<br />
Retrieved June 19, 2014, from http://<br />
www.tvilight.com/<strong>product</strong>s/citysense/<br />
27. Addicted Products, a scenario <strong>of</strong><br />
future interactions where <strong>product</strong>s are<br />
addicted to being used” S.Rebaudengo,<br />
W.Aprile, P.Hekkert, Design and Emotion<br />
conference, 2012<br />
28. Arduino – FAQ (n.d.). Arduino. Retrieved<br />
June 30, 2013, from http://arduino.cc/<br />
en/Main/FAQ.<br />
29. O’Sullivan, D., & Igoe, T. (2004). Physical<br />
computing: sensing and controlling the<br />
physical world with computers. Course<br />
Technology Press.<br />
30. Lego Mindstorms user guide. Retrieved<br />
June 19, 2014, from http://www.lego.<br />
com/en-us/mindstorms/downloads/userguides/enus/<br />
31. Powell, R. (2012, July 1). Programming<br />
for Interaction Designers. . Retrieved ,<br />
from http://repository.tudelft.nl/view/<br />
ir/uuid%3Af4c76373-a1d6-4bf8-b002-<br />
9ddecb58e9d9/<br />
32. Greenberg, S., & Fitchett, C. (2001,<br />
November). Phidgets: easy development<br />
<strong>of</strong> physical interfaces through physical<br />
widgets. In Proceedings <strong>of</strong> the 14th<br />
annual ACM symposium on User interface<br />
s<strong>of</strong>tware and technology (pp. 209-218).<br />
ACM.<br />
33. R/GA. (n.d.). Nike+ FuelBand - R/<br />
GA. RGA. Retrieved June 19, 2014,<br />
from http://www.rga.com/work/nike-
110 - <strong>TINK</strong><br />
fuelband/<br />
34. BAJARIN, T. (3012, November 1).<br />
How Bluetooth 4.1 and BLE Will Drive<br />
New Innovation. . Retrieved June 19,<br />
2014, from http://www.pcmag.com/<br />
article2/0,2817,2427234,00.asp<br />
35. Haque, U. (2004). Pachube project.<br />
Pachube project.<br />
36. Xively. (n.d.). What is -. Retrieved June<br />
19, 2014, from https://xively.com/<br />
whats_xively/<br />
37. About Temboo. (n.d.). About :: Temboo.<br />
Retrieved June 19, 2014, from https://<br />
www.temboo.com/about<br />
38. WeMo switch. (n.d.). . Retrieved June<br />
19, 2014, from http://www.belkin.com/<br />
us/p/P-F7C027/<br />
39. Patterson, S. M. (n.d.). How the ‘Internet<br />
<strong>of</strong> Thing’ will become the Internet <strong>of</strong><br />
Things. Network World. Retrieved June 19,<br />
2014, from http://www.networkworld.<br />
com/article/2365080/opensourcesubnet/how-the-internet-<strong>of</strong>-thing-willbecome-the-internet-<strong>of</strong>-things.html<br />
40. About. (n.d.). Spacebrew. Retrieved June<br />
20, 2014, from http://docs.spacebrew.cc/<br />
about/<br />
41. Bridge The Gap Between Hardware And<br />
S<strong>of</strong>tware.. (n.d.). noamio. Retrieved June<br />
20, 2014, from http://noam.io/
References - 111