Date: Fri, 5 Jun 2015 17:46:09 -0700
From: Toby Schachman
Subject: Working with dynamic media together
Following a thread that was started with the "Noun Project wall" and Nagle's observations about how the chess learning community operates, I've been really interested in what it would mean to be able to make software, or make any computational stuff, together.

I'll elaborate on this idea of togetherness, but I'm reminded of the passage in Mindstorms about samba schools,

During the year each samba school chooses its theme for the next carnival, the stars are selected, the lyrics are written and rewritten, the dance is choreographed and practiced. Members of the school range in age from children to grandparents and in ability from novice to professional. But they dance together and as they dance everyone is learning and teaching as well as dancing. Even the stars are there to learn their difficult parts.
 
Every American disco is a place for learning as well as for dancing. But the samba schools are very different. There is a greater social cohesion, a sense of belonging to a group, and a sense of common purpose. Much of the teaching, although it takes place in a natural environment, is deliberate. For example, an expert dancer gathers a group of children around. For five or for twenty minutes a specific learning group comes into existence. Its learning is deliberate and focused. Then it dissolves into the crowd.

Papert goes on the describe the similarities and differences between LOGO and samba schools. But he doesn't point out one of the big differences, which is that in samba, the practice is extremely visible--visible to everyone in the space. If one of those spontaneous learning moments happens you can see that it's happening and join in.

And even when there isn't "deliberate and focused" learning, you pick up quite a lot of the dance just by watching other dancers. Sometimes you look for specific details (how does she do that one move) and sometimes you just pick up on overall "rhythms" (getting inspired by a dancer's quality of movement). At least this is my experience in e.g. capoeira class, breakdancing club, etc.

This is something that's missing with programming, or any other high-level computational art (3d modeling, computer music, etc). The closest we have is watching over the shoulder of a master, or in screencasts. These can be very important experiences in a learner's growth: I learned Photoshop by watching a friend at a summer camp, shader programming by watching Inigo Quilez's live-coding "improvisations", mathematical proofs by watching a teacher do them on a board--learning almost the way you'd learn a song. Learning the "rhythms" are as important as learning the techniques. For example, if you learn enough 3D modeling to understand the basics, and then you watch a master over the shoulder, you say "ah, that is fluency", and having that target is so helpful for pacing your growth.

But the visibility enabled by a screencast is meager compared to what you get in a dance community. You really need to actively seek it out (e.g. Nagle learning how RMO approaches computer vision problems). And that involves:

1. Knowing what your peers are working on, which is not so easy because of our "private" screens.
2. Asking permission to enter into that space, where we are used to being alone.

There is an open question whether programming is by nature "internal work" that requires long hours of quiet concentration, being alone. Or if that is just how we are used to doing it. I think it's worth leaving the question open.

So that is the visibility argument.

There is also the fact that it is very rare to actually do the work together. Say you and I are doing a project together, like making a computer game or editing a video. We can:

1. Work separately. We make a list of to-do's and then split them up, work separately, then regroup and repeat.
2. Take turns. This would be pair programming or maybe you sit at the keyboard and I direct you over your shoulder. "1.5 player".

It is rare that we can work together by which I mean being able to work in the same space at the same time, responding to and riffing off of what the other is doing. Or being able to combine our organisms to achieve a goal that would be cumbersome to accomplish as a single person.

Inline image 1

The only examples I can think of doing computer work together in this way are playing real-time multiplayer games and making music together (e.g. on two laptops/instruments).



So, I was trying to come up with a setup where this kind of computing together could be tried out. Here's my idea:

Inline image 2

It's the scale of a kitchen table (mine is 29" by 47") that seats 4 comfortably / 6 squished. It's based on the scale I had at Mirror Hacking Workshop which I think worked really well.

Inline image 3

The table is a multi-touch surface, perhaps an out-of-the-box solution like one of the "bezels" that we saw at Obscura or Ken's pressure-sensitive rubber(?) pads. Ideally the surface would be wood. The point is for it to feel like it's a table, not like it's a high-tech, expensive thing that was mounted horizontally. Ideally you should feel like you can work on the surface: draw pictures on paper, cut foamcore, have your water bottle on it, etc. This is why I'm thinking projection would be better than having a big TV under it, because it would feel more like a table. Also your legs need to fit under it comfortably. Like a table.

The specific interaction I have in mind is to be able to continue the second half of the mirror hacking workshop, where we make CAD models and print/laser them out as a natural progression of the first half (where we just explored the materials "by hand", as shown in the above pictures). There would be multi-touch CAD software for designing your pieces, you'd fabricate and get your physical pieces, and then iterate on the CAD again. So the table at any given time be a mix of digital and physical.

Inline image 4

The CAD, being on a work surface rather than a laptop, is visible, so it's easier for people to riff off each other, make suggestions, ask for help. Or people might spontaneously join together on a project. This is what happened during the first half of the workshop, when everyone was just playing with materials. The tools (scissors, tape) made the process visible, and this visibility enabled the spontaneous learning moments that Papert described of the samba schools.

Since it's all on one table, you can also pass somebody a shape, or divide up the space between people organically. If you and I decide we should combine our projects, then we can just bring our stuff together into the same area.

As an instructor, I noticed that it was easier during the first half to make suggestions based on what I saw as I walked around the room ("looks like the outside light is interfering with that effect, why don't you try putting it under the table"). But in the second half, I could only see a person on a laptop (were they good? were they stuck and on facebook?) and I had to say "how's it going" etc. and ask permission into their private space.

I'm going for that peripheral level of visibility. Not defensively private like a screen, but not public like you're on display either. You feel like you own the space where you're working, and normal social conventions apply. If someone is staring at what you are doing, then you can see that they're staring and say "hey look what happens when I do this..." or "quit staring at me" or whatever.

I have more ideas about how the multitouch CAD software will work which I will describe in a later email.