13.09.2016 Views

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.

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!