https://www.youtube.com

well this is a media lab so I thought

I'd talk about media but um I'm going to

talk about a particular kind of media

which is media for thinking in and I'm

going to talk about a particular kind of

thinking which is understanding

systems so as an example of that um say

you've got some system out in the world

such as the planets going around the Sun

you want to understand what's going on

there so you take some measurements you

look for patterns you build a

theoretical model and that's a kind of

thinking that we call science it's uh

very important kind of thinking but you

can also go in the other direction

instead of going from the system to the

theory you can start from Theory and

build your own system like a spacecraft

to take you to a planet and that's the

kind of thinking that we call

engineering but either way that you're

going whether you're going from system

to a theory or from Theory to a system

understanding the system is really at

the heart of what you're doing so both

science and engineering or everywhere in

between a lot of it comes down to

understanding systems

and media matter because media are

Thinking Tools right the

representations that we use of the

system are how we think about it our

representations are um how we understand

this system and what we understand about

it and so if we want powerful new ways

of understanding complex systems if we

want to build powerful new systems we

need powerful new

representations and we need a powerful

new medium in which we can create and

work with those

representations so much of the way we

work with systems today is derived from

pencil and paper from pencil and paper

medium even when we're working on the

computer we're still thinking in pencil

and paper and I think there's a

incredible opportunity now to rethink

how we think about

systems so in this talk I'm going to um

show you a bunch of different examples

of different representations of

different systems and to try to kind of

give hints as to what this new medium

for working with systems might be these

examples are kind of from all over

there's like programming circuit design

and Signal processing and this and that

if you're not familiar with one of these

domains doesn't matter you don't need to

know any of the technical details all

that matters is the

representations every idea I show here

can be pretty much applied to pretty

much any any

domain so I'm going to start off with

taking a look at a scientific

paper this is a um paper on network

theory that was published in nature a

little while ago very influential paper

basically started an entire field of

network Theory and it kind of looks like

a paper right you got a lot of words and

numbers and here's a figure and here's a

table and there's another figure I'm

going to read a little bit to you from

this paper from the introduction second

paragraph where they're kind of setting

things up the networks of interest to us

have many vers with sparse connections

but not so sparse of the graph is in

danger of being disconnected

specifically we require that n much

greater than K much greater than log

much greater than one one or k much

greater than lular a ram graph will be

connected in this regime we find that L

goes as 2K much greater than one and C

goes as 3/4 as p goes as zero and this

is

incomprehensible um and this is a very

well-written paper this the authors are

excellent writers the what we have here

is the authors have a very rich picture

in their heads and they're trying to

compress that picture to transmit over a

very low bandwidth Channel which is this

stream of numbers and symbols right so

it's a very lossy compression and we've

got the reader on the other end trying

to decompress this picture into their

own head and it doesn't work very well

so I redesigned this paper and my

redesign looks a little bit like this so

you can see words and pictures very

tightly intertwined little bit of words

a little bit of pictures I'll read a

little bit to you from this part up here

where they're establishing the algorithm

that they used to generate these

networks that they study we start with a

ring of nend vertices and here we see a

ring of 12 vertices where each vertex is

connected to its K nearest neighbors

here we see k = 4 four connections like

so now they're all connected we choose a

vertex and the edge to its nearest

neighbor there's the vertex there's the

edge with probability P we reconnect the

edge at random there it is reconnected

we repeat this process moving clockwise

around the ring like

so so instead of just describing the

algorithm it's depicting the state of

the system at each step so this this is

what you normally would have to

construct in your head here the picture

on your head is just

Illustrated here they're um discussing

some relationships the regular lattice L

grows linearly with n we see L growing

linearly with n we see C is staying

constant the random Network L grows

logarithmically we see L logarithmically

we see C going as a reciprocal

relationship when we read the word

logarithmic we don't have to reconstruct

that relationship in our head you can

just see it

so what I'm doing here it's it's really

just a very simple trick it's to

understand the picture that's in the

author's head and just reproduce that so

we're showing the state of the system

we're showing the behavior of the system

as it goes through this

algorithm in my next example I'm going

to go to a completely different domain

but I'm going to use kind of the same

trick so this next example is um an

example from circuit design so here's a

circuit that I'm working on and I'm not

done drawing it so let me finish drawing

it and that and now the circuit Works

although you can't actually see it

working you can't actually see anything

so we kind of have the same problem is

with that original paper is that the

system is doing something and we can't

see it doing anything if you were to

build the circuit on a lab bench you

could at least take an aill scope and

probe around and see what's going on at

this node what's going on at that node

so you should at least be able to do

that so here I'm showing the voltage of

that particular node and it's simulating

real time and we can see what it's doing

but you still can't understand the

system in order to understand the system

it's not enough to just see one variable

one voltage you have to see all the

voltages you have to see all the

variables you have to understand what's

happening here and here and here and

here and here and here and normally you

have to reconstruct that in your head

but if I spread these out a little bit

and switch to this representation now

you can see all the voltages across the

entire circuit I can scrub over them I

can see what's going on in this region I

can compare any two the one that I'm

mousing over right now it Shadow is

overlaid on all the other plots so I can

compare them I can adjust anything in

the circuit such as this resistor turn

it up or down and I see immediately how

the behavior

changes so we're a little bit further

towards understanding the behavior of

the system but still not enough we're

really only seeing half of the Behavior

now because in electronics there's both

voltage and current in order to

understand what the system is doing you

have to understand both of these things

so what I'm going to do is I'm going to

um replace each of these components here

such as this resistor with a plot of the

current going through that resistor so

right now each of those blue blocks

represents a component this one right

here is a resistor this one's a

capacitor you can see what it is because

they have a little badge but instead of

just being a um dead schematic symbol

now it represents behavior and so I can

um now at a glance see the entire

Behavior across the entire system all

the voltages all the currents compare

all of them I can change anything about

the system and see immediately how the

behavior changes in

response now this representation here

has all the same structural information

as

this you still have the resistor hooked

up to the capacitor hooked up to the

transistor the difference is now instead

of just being made out of these squiggly

symbols that were designed for pencil

and paper now it's made out of live data

where you can see what the system's

doing so so this is a paper about

Network Theory this is a engineering

design using the same trick which is

just showing the behavior of the

system so with those two examples in

mind I want to step back a bit and kind

of talk a little more abstractly about

what's going on

here one way I like to frame this work

is with a quote by Richard Hamming

Hamming was one of the old Bell Labs

guys um did world class world class

research in all sorts of fields I

thought a lot about how people think and

how people do research and in his paper

um the unreasonable effectiveness of

mathematics he he said

this just as there are odors that dogs

can smell and we cannot as well as

sounds that dogs can hear and we cannot

so too there are wavelengths of light we

cannot see and flavors we cannot taste

why then given our brains wired the way

they are does the remark perhaps there

are thoughts we can't think surprise you

Evolution so far may have blocked us

from being able to think in some

directions there could be Unthinkable

thoughts

now Heming was a brilliant guy and he

thought a lot about thinking and so what

I think is really interesting about this

passage is that to me there's a really

obvious

response where Hamming didn't go which

is to say so

um these these sounds that we can't hear

and these this light that we can't see

how do we even know about these things

in the first place well we build tools

we build tools that adapt these things

that are outside of our senses to our

human bodies to our human senses so we

can't hear ultrasonic sound but you hook

a microphone up to an oscope and there

it is you're seeing that sound with your

plain old monkey eyes right we can't see

cells and we can't see galaxies but we

build microscopes and telescopes

and these tools adapt adapt the world to

our human bodies to our human senses

right so when Hamming says there could

be Unthinkable thoughts we have to take

that as yes but we build tools that

adapt these Unthinkable thoughts to the

way that our minds work and allow us to

think these thoughts that were

previously Unthinkable and I'll give you

a couple examples of these kind of um

adapting tools probably the greatest one

in the history of humanity is writing

writing made thought visible writing

allowed us to think about

thinking um you know thinking and speech

used to be this really fleeting thing

writing allowed us to capture it to

study it and um it's widely considered

that the invention of writing was the

invention of reason it was the invention

of rational thinking when we had this

new representation where we could

capture thought and think about it

explicitly and the thing about having a

literate culture is that

um e if you have if you've grown up with

literacy you're now able to think in

this much more powerful way even if

you're not writing at that very moment

you're still able to think literately

that was um that was Marshall mclin's

deal right you introduce a medium into

to society and it changes the thought

patterns of the society so writing was

this really powerful um tool for

allowing us to think thoughts that were

previously Unthinkable another really

great one was mathematical

notation so I'm going to show you a math

problem that was addressed by

the great mathematician alari in around

the year 900 he wrote what is the square

which when taken with 10 of its roots

will give us some total of 39 Now The

Roots before us in the problem are 10

therefore take five which multiply

itself gives 25 and so on and so on and

it would be another 800 years before

we'd be able to write that same problem

in this

form so there's a a structure that's

visible in that bottom form that's

invisible that's hidden in the recipe

and once you take that concept and make

it visible now you're able to think

explicit about it you're able to develop

means of manipulating it and the

invention of this notation is widely

considered to be the birth of modern

mathematics one reason being that once

you have in that bottom form you can

start to think well what if x isn't a

number what if it's X is a velocity or a

matrix or a member of some abstract

group and I think it's really

interesting that the birth of modern

mathematics is considered to be not any

particular mathematical concept cep but

a user interface

right so when I'm talking about um

thinking Unthinkable thoughts this is

the sort of thing I have in mind these

representations that make Concepts

visible that used to be invisible and

allow us to think explicitly about them

allow our minds to go in directions that

couldn't go

before now in the same way that if

you're going to build a microscope it

probably helps to know a little bit

about Optics know how the eye works if

if you're going to build a thinking tool

it probably helps to have some idea of

how people think about things and one

simple framework that I like is um one I

got from Dron Bruner who adapted it from

p and he talked about these three

different mentalities these three

different ways that people have of

thinking about things um which he called

the inactive the iconic and the symbolic

and in modern UI terms they might be

called interactive Visual and symbolic

so interactive is um is thinking by

doing by actively exploring performing

thinking with your hands being a body

embodied in space all that that second

Channel visual channel is thinking by

seeing especially seeing many things in

parallel being able to make comparisons

being able to recognize thing shapes

being um thinking with analogies a third

Channel symbolic is thinking with

language step-by-step logical reasoning

all that one great example of that first

Channel interactive is the discovery of

the structure of DNA by Watson and Crick

so Watson Crick had some data data from

rosand Franklin's x-ray experiments and

other kind of chemical knowledge but the

way that they were able to figure out

the structure of that molecule is they

went down to the machine shop and they

built these physical models out of brass

and wire and they went up to their

office and you know tried to fit them

together and they were ridiculed by

their colleagues their colleagues are

like hey it's Watson and Crick playing

with their toys again and then you know

10 years later Watson and Crick are like

yeah it's Watson and Crick playing with

our Nobel prizes again right so

this the structure of DNA was

Unthinkable like literally nobody could

think of it they were able to think this

thought by moving it from the symbolic

channel to the interactive Channel where

they could think with their

hands and nowadays of course all

chemistry students play with physical

models it's just totally standard a

great example of thinking that second

channel the visual Channel 1786 William

Playfair was writing a book about

economic trade balances in European

countries and his book was full of these

tables and numbers so many exports from

Finland next page so many exports from

Germany or whatever and he had a thought

which was you know what would make these

numbers each to understand is if I drew

a map of numbers and so he drew this

which was the first time anybody had

plotted data this was the first data

graphic he filled his book with these

things and invented the field of

statistical Graphics so again this was

this kind of Channel switch where he

took something that had been purely

symbolic the table of numbers is about

as symbolic as you can get and turned

into something that could be understood

in an entirely new

way so this sort of Channel switching is

basically what I'm trying to do here

this the behavior of this system can

only be understood symbolically you kind

of have to logically reason like here's

what a capacitor does here's what a

resistor does stepbystep simulate in

your head when we move to this

representation the structure of the

system is still symbolic we still have a

symbol for the capacitor symbol for the

resistor the behavior of the system

system can now be understood visually

and by visual I don't just mean like

seeing a plot but seeing many plots in

parallel being able to recognize shapes

being able to compare them that kind of

thing so we have the symbolic we have

the visual and then we also have this

interactive Channel where we can um

adjust the structure of the system and

see how the behavior responds so we can

have hypotheses and test them out play

out what if scenarios build associations

between how we're interactively probing

the system and how the behavior is

responding so we're kind of firing on

all three cylinders here instead of this

just being a big pile of symbols we've

got the symbolic we've got the visual

and we've got the interactive and

they're all kind of working together and

reinforcing each

other so in the next example I want to

show not just having multiple

representations but having different

representations for the same behavior

being able to look at the same behavior

in different

ways so this is an example from signal

processing this is a digital filter

again don't worry if you don't know what

that is this is just a system here are

some equations that describe how it

works and here is one way of

representing what the system is doing

it's frequency

response and the system has two

parameters the cut off in the que and I

can grab this knob and drag left and

right to adjust one drag up and down to

adjust the other you'll notice there's

something else happening when um when

I'm dragging this around so if you look

up here there's this coefficient KF

that's being multiplied and in this

representation I have no idea what KF is

like is it near zero is it near one is

it near 100 is it negative I have no

idea what the range of number is as I'm

interacting you'll see that number

changes to a concrete coefficient and

now I can get a sense of exactly what

coefficients I'm dealing with over here

we're seeing numbers appearing in the

equation where before there were

Expressions so we can get a sense of the

the coefficients there up here we're

seeing a step response a Time D main

response and below we're seeing the

poles in the zplane that's a frequency

domain thing like the Voss transform and

then over here we're seeing how the for

transform is responding so these are

five different ways of looking at the

behavior of the system and as I'm

interacting we're seeing all five of

them responding at once we're seeing

these five different perspectives on the

system each with its own insights and

we're seeing how they all dance together

as I change these parameters and what

this does is this allows you to build up

associations

in your mind so when you adjust the

parameter you see okay the poles are

moving this way which is making the

oscillation go in this way and making

the peak and the for8 transform go this

way you see all these representations

changing together you build associations

between them and the idea is that that

ultimately leads to what we call

intuition the idea that there's some

desired response I want and I kind of

know how to get there because I've seen

um when this happens that also happens

that also happens happens you've seen

the system from so many different angles

that you kind of you can feel your way

around

it this is a very different way of

thinking than traditional analytic um

you write a whole bunch of pages of

grungy equations and come out with the

answer way of

thinking

so we need to see the behavior of the

system we need to see the entire

Behavior across the entire system all

the variables some once we need to be

able to interact with the system see how

the behavior changes we need multiple

representations of the behavior see it

from different perspectives and

different

angles something else that we need is to

be able to interact with the behavior

all of done so far and what I'm doing

here is interacting with the structure

of the system I'm changing parameters

and then we're just looking at the

behavior but you can do more than look

at the behavior you can also work with

the behavior so in this next example um

what I have here is an environment for

working with difference equations and

again don't worry too much about what

that means but here I'm defining a

variable called a and I can set it to a

constant and as I move it up and down

you can see that we have this kind of

Flatline plot here because it's

constant but I can also say that at each

step we're going to subtract a little

bit off of

a and I'm going to set the initial value

here and then you can see that each step

of time we're subtracting a little bit

off and we get this ramp going down and

I can change that constant and get a

different slope

ramp but something else that's really

interesting to do is say on each step

instead of subtracting a constant I'm

going to subtract a little bit from some

other variable which I'm going to call B

and then B I'm H step I'm going to add a

little bit of that

a let me connect these two so they're

always the same and what we get is this

kind of recursive relationship where

they end up oscillating so here's two

variables I made called A and B and they

turn into this sign OC

mayble Define a variable C which when a

is positive give me a one if a is

negative give me a negative one and now

we've turned it into a square wave and

then integrate that square wave and when

you integrate a square wave you get a

triangle wave so taking this behavior

and then transforming it in different

ways maybe bring out relationships that

are

interesting so far I've mostly just been

working over here on the structure of

the system but I can also work over on

the behavior so let's say I want to know

how big this per period is what's the

period of the sine wave well I can just

click and drag over a region and measure

it so I dragged over that region I can

see that it's about 68 samples wide and

you're also seeing something over here

which is saying the mean is zero which

makes sense if it's a full period but I

can also look at the max or the Min or I

can like Define my own reductions if I

want to know root mean squ or whatever

so another way of looking at it

selecting regions and then running

reductions over them now this period is

68 samples wide but then as I change

this the period is also changing and

this selection is kind of going out of

sync so I'd have to select it again and

then I want to know what it is for that

so I have to select it again and that

gets kind of tedious I'd like to know

how the period changes when I change

this coefficient here so what I can do

is over here have a search field and in

search field I can put in any condition

such as show me everywhere where a is

negative and now I've got these regions

I can click on where a is negative it

found all the places where a was

negative and I can search for anything I

can find where a is less than b or I can

find where a at time n + 1 is greater

than a at n now it's found all the

writing slopes right so what I'm doing

here is normally called solving called

solving an equation solving a systems

but here it's treated as searching which

is a very different way of thinking

about

it so I want that period so I can just

kind of Select from one to the other and

now it's selected over a full period And

I can see that as 82 samples wide

as I change this coefficient I see that

number is

changing but it's not really enough to

just look at that number the width of

that I want to see how that width

changes as I'm changing this coefficient

here so all I need to do is draw a line

from one to the

other and now it's plotting one against

the other so this is a plot of as we

vary that coefficient in the equations

it's measuring the width and plotting

it so every point on this plot

corresponds to a particular system every

point on this plot corresponds to a

particular set of coefficients here

which means that the plot as a whole is

not about any particular system but an

entire family of systems so we've

abstracted over that coefficient and

we're looking at entire family of

systems comparing

them in this case this kind of looks

like a reciprocal type relationship a 1

overx type thing and so one over the

period is frequency so maybe we should

be looking at frequency instead so I'm

going to define a new variable here I

need some sample rate so say 48 khz

divided by n and so here's the sample

width and now here's the frequency of

the sine

wave and I can plot versus that and we

can see this has kind of a linear

relationship

so we need to see the behavior of the

system we need to see the entire

Behavior across the entire system all

variables once we need to interact with

the system see how the behavior changes

we need to be able to see multiple

representations of the behavior and we

need to not just see the behavior but be

able to interact with it to be able to

measure it reduce it transform it search

it whatever makes sense for this

particular system and we need to be able

to abstract over individual systems and

look at families of systems compare

between

them now the next example I'm going to

show you is about having multiple

representations linked together and this

is a um a programming example

actually so what I'm showing here is a

2d vector graphics engine this was

written by Dan amling who's one of Alan

K's researchers and it's remarkable

because it does everything that a normal

2D Graphics engine like quz Ciro does

except quz chiro are like Millions lines

of code and this is 500 lines of code

that's the entire code base right there

and Dan was able to do this because he

invented a language called Nile in which

which the sorts of operations he wanted

to do could be expressed very

compactly this is an example of n code

and the language is really beautiful the

algorithms are expressed very elegantly

in the language and they're very elegant

algorithms and you can read the code and

have no idea what's going on because you

can't see the behavior of the system so

working with Dan I made it an

environment for um exploring Nile code

and I'll give you a couple examples this

first one is kind of a toy program in NY

and NY is it's kind of like the Unix

pipeline it's a pipeline language you

put in data and then it a process runs

on it and feeds data to the next process

and next process and down the pipeline

um so what you see here we're putting

Five Points into the pipeline and you

see Four Points up there because the

first and the last one are duplicated

and then those Five Points go into this

process called make polygon that outputs

for beas which goes into this process

and that process and down the chain and

so over here you're seeing a picture A

visual representation of what's in that

pipe and then over here you're actually

seeing the source code of the process

because NY is so compact that the source

code for a process can normally just be

stuck on the side like a

caption so what you're seeing at each

stage is the data at that stage in the

pipeline and if I go up here to um the

initial input you'll notice that as I

point to any of these um initial points

you're seeing B's highlight in Black

down the pipeline so what you're seeing

is this point went into the next process

and out came this beer and then what

happened to that beer well it got

rounded it got transformed you're

chasing a particular piece of data all

the way through the pipeline and of

course I can grab the initial input and

adjust it and you can see how the data

is changing all the way through the

pipeline but I can also do this in the

middle so if I point to the speci path

it's showing not just where that data

went but where it came from as well so

you're seeing the entire history of that

particular um object both past and

future so so this is an example of um

representations that are linked together

where you point to part of one

representation and all the corresponding

parts of other representations are

highlighted bringing them all together

so that was kind of a toy program in

Nile what you see here is the actual

rasterization texturing pipeline that

they use in their system the rizer looks

like that and the texturing looks like

that you put in beas and outcome spel at

the end you don't have to follow this in

detail but what's really interesting is

that you can kind of tell what the

systems do doing just by going down and

looking at the pictures and kind of even

ignoring the code you can just see like

this data turned into that data that

turned into that data you notice that

there's different types of

representations for different types of

data so this process right here for

example outputs a stream of real numbers

so what's a good way of representing a

stream of real numbers well we'll just

try a bar chart so the environment tries

to pick a visualization that makes sense

for the particular type of

data so for the final example I'd like

to address the question of how all these

representations come to be in the first

place if you want a medium for working

with these representations the question

of how you create them is pretty

Central the thing about visualizations

is that they're visual we understand

them visually that you know that second

channel the visual thinking Channel and

so I think it's essential that they be

created in the same way created by

thinking visually and creating a picture

visually is is just called Drawing right

we've been drawing forever since the

time of cave paintings people have been

creating pictures by direct manipulation

of the picture itself and um

before before computers that was kind of

the only way to do it right so um if you

were a scientist or engineer you know 50

years ago you had your pad of graph

paper you had your um your pocket full

of pens and when data came along you

would just draw it so

for example you know say I'm um a

scientist I run an experiment I get some

data I want to understand what's going

on so um I say well there's a couple of

variables I measured which seem to be

related so I'm going to plot one versus

the other as a um as a kind of scatter

plot here but the order that these

samples was taken also matters so I'm

going to connect them up with a line and

there's there's something else I

measured which was the the width like a

the region that these samples are valid

and I'm just going to draw that like so

and um it also matters whether these

samples cover the entire space or if

there's gaps I'm going to take a

highlighter and kind of fill in the

columns that these

samples cover and I can see that um

there's a gap right here that's not

covered by any sample and a gap over

here and so on and so there's this

wonderful um expressiveness and

directness in drawing that when you want

to see something you're like I want to

see marginals I need to see my marginals

you just

go right and there are your marginals

right and um the downside of this way of

working of course is that we're

producing this all by hand so that

limits um how complex it can be and it's

kind of a oneoff for the particular data

set so if we get new data we have to

like throw this away and draw a new

picture right and you have the same

problem with computer-based drawing

tools like illustrator they're one-offs

for predictive data set and so what

we've seen is that people have turned

away from drawing and have instead

turned to writing code that generates

pictures and processing or whatever and

working in this very um indirect

symbolic linguistic nonvisual way of

creating

pictures so instead what I'd like to

show you is a tool for drawing Dynamic

pictures a tool for creating datadriven

pictures pictures by direct manipulation

of the picture itself and I'm not going

to go into too much detail here because

this tool is kind of a talk in itself

the tool I have here it's like

illustrator it's a vector drawing tool I

can draw a line I can draw a shape and I

can scale it and I can rotate it and all

that the only thing that's different

from illustrator is that as I do these

things it's recording a series of steps

I drew a line drew a shape scaled it

rotated it and so on and these steps can

be parameterized by data that rotation

for example Le I can hook it up to a

parameter now when I change the data the

picture

changes so that's the only magic here I

have this spreadsheet like data

environment and I can hook it up to the

steps of the

picture so if I'm have that same

situation that I drew here I've got my

data I want to um understand what's

going on well maybe I'll start off

drawing it as a kind of scatter plot so

I'm going to draw a rectangle over the

entire canvas and scale the width by one

of the variables and scale the height by

the other variable and make that a guide

and draw a little dot at the end and now

I've plotted my first point I can Loop

that over all the points and now I've

got this kind of scatter plot now I want

to draw that line connecting all of the

points

so I'm going to draw a line using the

line tool from the previous point to the

next point and now I need to move my

little marker to keep track of where the

previous point was go goes around and

I've got this path and I'm going to make

it a little bit wider and make it

orange okay and now I um I want those

widths those regions that I was drawing

before so I'm going to draw a line

across the canvas scale it down by that

width variable and just kind of plop it

over here on the data point draw the

little wings that I had

before now I want that thing I did with

a highlighter I want to see the regions

that these are covering so I'm just

going to use a rectangle tool and draw a

rectangle whose top is at the top of the

canvas and whose bottom is at the bottom

of the

canvas and let me get rid of the stroke

there and make it

orange so now I can see there's a gap in

the samples here and there's this region

here that was overlapped by two samples

now I'm kind of losing track of what

direction this is going like whether

it's the samples were taken clockwise or

counterclockwise Direction so I think

instead of see lines between them I'd

rather see arrows so what I'm going to

do is I'm just going to draw an Arrow

Head just totally kind of freehanding it

here and plop it over here on the point

and rotate it by some amount which I

rotate by should rotate it by whatever

the angle that line

was and so now I've got my arrows kind

of chasing around the

path make it

Orange

let's scale it down so it's not so

ridiculous and now the scatter plot dots

are just kind of getting in the way so

I'm going to um select that and hide it

and so on and so I drew this picture the

same way I draw an illustrator by you

know directly manipulating the canvas

but this is driven by data so if I have

another data

set I drop it

in I get a new

picture I have a new data

set drop it in I get a new picture or if

I just go into the data by hand I can

just grab this number and kind of wiggle

it around and you see the picture

changing and um just as before if I

wanted to add anything I want marginals

I just use the line tool and draw a line

and now I've got marginals direct

manipulation of the picture itself

thinking geometrically instead of

thinking algebraically thinking visually

instead of thinking in language so this

tool can create all the graphics that

you kind of expect from a

visualization you can create Dynamic

shapes

yeah but what's important is that you

can kind of follow your own thought

process and create pictures that never

created before in their dynamic R by

data they can be used as representations

for systems in the same way of

everything I've been talking about so

far so to sum

up we need to see the behavior of the

system if we want a medium a new medium

for working with these systems for

understanding them in powerful new ways

we need to be able to see the behavior

of the system that's what we can do now

that we couldn't do on pencil and paper

we need to see the entire state of the

system across all the variables all at

once be able to make comparisons

recognize things we need to be able to

adjust the system see how the behavior

responds immediately see how the

behavior responds make those

associations between what we're changing

and how the behavior

responds we need multiple

representations of the system looking at

the behavior in different ways through

different lenses bringing out different

insights being able to compare them make

associations between these

representations we need to not just see

the behavior but also be able to inter

interact with it by measuring it

searching it transforming it whatever

makes sense this idea of being able to

interact with the behavior of the system

is super important we're normally over

here interacting with the structure of

the system and that becomes the system

so for example when you're programming

you're working in code you're thinking

about code you're you're interacting

with the code you're staring at the code

all the time the code becomes the

program but code doesn't matter what

matters is what the program is doing and

so we need representations where we're

over here on the doing side we're

focusing on the behavior of the system

we're interacting with the behavior

system we're staring at the behavior of

the system the behavior of the system

becomes what it's all

about we need um to be able to abstract

over individual systems see entire

families of systems and be able to

compare them we need multiple

representations that are linked together

point to one component and all the other

components are hooked up we need

different representations for different

types of data and most importantly we

need a way of creating these

representations that's in line with

everything else that I've been talking

about and I think that means drawing it

drawing these representations direct

manipulation of the picture

itself

so everything that I've shown you so far

are

hints these are nibbling at the corners

of a big problem the big problem being

what is this new medium for

understanding

systems we need to get away from pencil

and paper

thinking even when you're working on the

computer you're still thinking in pencil

and paper all the techniques we have for

working with systems are derived from

pencil and paper especially programming

um programming you're working in a

written language written languages were

designed for writing in the bottom right

corner here that's dyra handwriting he

handw wrote everything he led ically

reasoned about everything the idea of

visually and interactively exploring the

behavior of system wasn't even on his

radar he probably would have found it

repugnant and that's the Legacy that

we've

inherited so I think we have this

opportunity to reinvent how we think

about systems to create this new medium

and I don't know what that Medium is but

if you like to help find it let me know

thanks