Body Code - by Anselm Hook

From the Slowcode movement manifesto

Jump to: navigation, search




'The Form' or Slow Code movement took off in the early teens and today in 2020 it is quite common to see parks full of young engineers, stripped down to their waists practicing their chi. What formerly was a sedentary and indeed solitary activity has become something of a sport with overtones of a religious crusade. Literally a full body language it recovered a functional foundation for both work and play that mapped to the modern requirements of digitally mediated interaction.

The movement has sparked a surprising cultural shift in the perception of programming, programmers and maker culture. Today the image of a modern programmer is one of somebody fit and socially engaged and spiritual. Quite different from the stereotype of the rationalist, overweight, myopic programmer of yesteryear.

Younger generations of hackers have embraced The Form as their own - and have taken the practice much further than anybody could have originally imagined. Much like dance, the movement has grown to see its own diverse stylistic flourishes. We have software parkour, contact improvisational co-creation sprints, air python versus air javascript, the original slow code aficionados versus a radical sub-culture that as of yet escapes definition.

Dystopic elements of the early 21st Century

Certainly many Bay Area residents were looking for something new, a way of working that was deemed 'holistic' - embracing the full body rather than just the mind. Research at the time showed that serious health risks such as diabetes and heart disease were actually not related to exercise but were related to inactivity - paradoxically it didn't matter how much one worked out, but rather how little one sat down. There were incentives to find ways to incorporate exercise into daily routine rather than having it blocked out as a separate activity. As well, exercise itself at the time, being divorced from work, was seen as less important and not entirely critical. By the end of the 20th century 80% of people in the western world had jobs which did not require exercise. The Industrial Revolution had within 100 years almost entirely displaced hard physical labor. Indeed the shift was so total that being fit was no longer perceived of as being lower class as it had originally been - rather it was something increasingly admired. Exercise gyms and suntan parlors were commonplace as a way for citizens to 'work-out' and present as being healthy. Men often dressed in formal wear that artificially emphasized their musculature and women wore clothing that emphasized their fertility. With the world economic crash these primal roles were driven even more to the forefront of modern culture. And it was into this shifting aesthetic that the movement first took.

Technology Trends

It's worth noting that an expert keyboard typist can type 120 characters a minute - and achieve a fairly high rate of sheer data transfer from mind to computer. At the time there were significant incentives to maintain the status quo. The initial growth of the air code movement had to overcome a barrier of being less efficient - and this was fueled by a conscious choice to accept working slower in order to involve more of the body.

Several technology trends also contributed.

  1. Crime detection automation was one contributor. In the United Kingdom there was an effort to mount thousands of live video-cameras around major metropolitan areas in order to reduce crime. Technologies were co-developed to track 'criminal posture detection' - where gait recognition, arm position recognition and body movement could be used to prioritize thousands of live video streams. These technologies required a high degree of understanding of human body posture and hundreds of papers were written on the topic and shared in the academic community.
  2. Sign language recognition was another influence. The sheer absolute number of people who used sign-language also created motivations to recognize fine hand position in real time; to translate sign into text or spoken word.
  3. Video games were of course early influencers. Video game developers were constantly looking for new input devices and among the more ambitious of the early efforts were the Microsoft Natal project and the Playstation PS4.
  4. Finally touch interfaces such as in phones showed a tactile interaction with data that gave people a sense of what it could be like to work with a physical interface. It wasn't much of an extrapolation from there to a full-blow heads up interactive mixed reality experience.

Natural Interface

Slow Code was seen as a natural interface to computing. In gesture studies of the Broca and Wernicke regions of the brain it was found that speech and sign language were derived from a common foundation. In fact extensive studies by Adam Kendon showed that gesture and speech could be part of a single thought process. In fact in culturally associated languages such as Portuguese, Italian, Haitian and Creole it is sometimes more clear that we 'conjure fluid meaning' out of a series of gestures and expressions as Meredith Andrews cited. This common neurological foundation supported a theory that a single fundamental semiotic system underlaid human discourse. Scientists from other disciplines also noted similar facts. Marvin Minsky observed in 'Society of Mind' that many of our metaphors are spatial and temporal. We "get on top of" an issue or we "are attracted towards" a subject for example. Cognitive philosophers such as George Lakoff went even further to argue that our reasoning itself was an embodied extension of our situated reality - that there was no 'rational homunculus' inside of our heads evaluating inputs and delivering outputs - that rather we were a fluid extension of the world and that many of our decisions were made just in time - that in a sense the world itself was our memory and our decision foundation. This was a way out of the 'matryoshka doll' philosophical conundrum of trying to resolve where our reasoning was based - and it also gave credence to the whole body movement.

A way of life

Slow Code as also seen as a way of life. It was a conscious compromise - a choice to move more slowly to provide ones own full body a chance to participate in a conscious and deliberate set of constructive acts. This also had the side-effect of making Slow Code more social. Because it was slower, and more visible, it was possible for other people to collaborate more easily, and for novices to learn.

The aspiration was to challenge a set of boundaries that had emerged; boundaries between consumer and maker, between work and play, between composition and listening, between programming and exercise.

There was already something of a mysticism with respect to programming already. Software development was often framed as the developer developing software for the user - and the user being framed as a consumer of experiences, certainly not empowered to alter the functional behavior of the work. This attitude was encouraged by the software developers themselves.

The gnostic features of early software development has a tension where the product of programming was visible but the act itself was invisible.


  • comparison to drawing
  • a performative gesture -> easier for other to learn, more immediate, more stylelistic
  • suitable clothing
  • similar to body forms
 * yoga
 * tai chi
 * digital whole body musical instruments
 * taekwondo
 * capoeria
 * pictographs
 * yahoo pipes  
 * 3d modeling packages
 * sign language
 * magic and spell casting

Rich Vocabulary

at its core

 * high interface concepts
 * interaction is driven by a series of gestures
 * some gestures are flourishes
 * meta programming capabilities are core
 * useful for non programmers as well as programmers
 * uses whole body

It's hard to say where the primary katas first emerged from; clapping, swipes, panning, zooming, cloning and the other operations we all take for granted. Populist interactive and non-interactive entertainments of the time led the way with highly stylized examples of what this kind of rich interaction might feel like.

  * grabbing selecting dragging moving
  * sixth sense picture framing concept
  * taunts
  * rock paper scissors
  * fluid gestures as a part of speech
  * waving hello or goodbye
  * air marshaling
  * fist bump
  * eskimo kiss
  * air kiss
  * thumbs up
  * bowing
  * genuflect
  * handshake
  * salute
  * applause
  * gang sign
  * head bobble

Manipulating Space

  • marvin minksy spatio temporal reasoning
  • spatial metaphors
  • foundations of human cognition
  • cognitive philosophy

  • move world? > perhaps use both hands and be in a certain body position? a graceful tai chi movement?
  • rotate world? > same as above
  • circle something > circle a bunch of things to multi-select them?
  • move something > just grab it and move?
  • pick through > just keep tapping in a spot
  • stretch something > grab with both sides and stretch (or rotate maybe)
  • delete, copy, paste > have a trash bin? have a way to hold down the thing while pulling a ghost away > need to indicate shallow or deep copy and abstract or instance or clone
  • stack
  • wire together
  • snip apart
  • make something new
  • group
  • enter something and type or talk { attach labels }
  • colorize
  • library of parts
  • publish
  • synchronize with depot
  • fork?
  • rooms - join a room - leave a room?

interface concepts

  • rooms
  • trash can
  • library or palette
  • pages or distinct working areas

Object Oriented Programming

  • fundamental assumptions
* we wrap everything up inside of objects that can be manipulated in the 3d space
* an object exposes an arbitrary set of methods on some subject such as an image, memory or logic
* it makes sense to allow an object to be a prototype and for other objects to be instances of that prototype
* object prototype graphs effectively define the 'structure' of the app as a kind of tree of relationships
* object methods can be bound to each other and this represents the event based relationships as a kind of tree as well
* since there is no separation between abstraction and instance there is no distinct instance graph versus prototype graph
* all of the entities have a spatial location and can be piled together and grouped or wired together
* it may make sense to hide some of the abstract stuff, or to rotate that away into other dimensions
  • programming on top above
* defining objects
* defining classes
* defining methods
* defining variables
* wiring things together
* abstraction and macros
* error handling
* debugging