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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<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!