Crafting Code at the Demo-scene - ACM Digital Library

0 downloads 0 Views 873KB Size Report
Jun 21, 2014 - craftsmanship we explore code as a design material. Theoretically we draw ... platforms [2, 10]. ..... scene backwards, creating a form of reversed instant replay. In another ... screen to all-white for a few milliseconds, creating a.
Craft

DIS 2014, June 21–25, 2014, Vancouver, BC, Canada

Crafting Code at the Demo-scene Nicolai Brodersen Hansen PIT-CAVI Aarhus University [email protected]

Rikke Toft Nørgård TDM Aarhus University [email protected]

ABSTRACT

Kim Halskov PIT-CAVI Aarhus University [email protected]

part of this approach researchers and designers conduct material explorations, and begin to answer Fernaeus and Sundström’s [3] call for the development of a language of materials. Similarly Vallgårda [14] in considering the result of these developments within the field, highlights how interaction design have arrived at the point where it mirrors other design practices. It is about giving form [7] to things that offers themselves for specific actions.

This paper introduces the idea of craftsmanship as a way of understanding the shaping and re-shaping of code as a material crafting practice. We build our analysis on a qualitative study of a coder engaged in creative and expressive programming on an old hardware platform. The contribution of the paper is a set of conceptual categories: craft engagement, craftsmanship rhythm and craftsmanship expressivity, that conceptualizes coding as crafting.

CRAFTING IN DESIGN AND HCI

Author Keywords

This paper takes as its point of departure, that craftsmanship theory as well as the development of a language for craftsmanship thinking and tinkering with materials might prove well suited to offer insights into this new material focus of design and HCI. If design and HCI is a material practice, the skillful acts of designing must have some component of crafting as well. We contribute to the growing body of research briefly outlined above by suggesting a further development of Sennett’s craftsmanship thinking [13]. We do this by developing three central conceptual categories in relation to programming and other practices that uses digital materials: craft engagement, craftsmanship rhythm, and craftsman expressivity.

Design materials, materials, craftsmanship, code ACM Classification Keywords

H.5.m. Information interfaces and presentation (e.g., HCI): INTRODUCTION

By understanding creative and expressive coding as craftsmanship we explore code as a design material. Theoretically we draw on Sennett’s ideas of craftsmanship practices [13] and on the grounds of Sennett’s philosophy we develop a set of conceptual categories for understanding coding as craftsmanship. To explore coding as crafting we examine a single case from a larger study of “the demo-scene”, a 30-year-old subculture of hobbyists creating digital art on different platforms [2, 10]. The motivation for the paper is a desire to tie together professional craftsmanship practices and hobbyist DIY and Maker culture by casting the demo-scene participants as competent craftsmen engaged in the vocation of crafting code. Here we examine one kind of DIY, a coder hobbyist setting up a proverbial workshop to craft with code and old hardware as design materials.

The categories emerged by viewing and analyzing coding as craftsmanship. The objective of the analysis was to identify central categories in coders’ relationship to their code material. The emerged and developed categories show that coders can take on an attitude to coding that share strong similarities with the relationship between craftsman and craft in [13]. Thus, the categories are inspired by Sennett but developed by us through looking specifically at crafting code at the demo-scene.

In recent years design and HCI have seen the development of new forms of information technology. The availability of new design materials like the Lilypad Arduino [1] and different smart materials [8] leads to a material turn [11] in design or what [15] labels a new paradigm: a material approach. This material approach takes as its departure different materials, rather than the purpose of a system. As

THE DEMO-SCENE

The demo-scene is a computer subculture whose members produce 'demos', audio-visual presentations that run in realtime on a computer. The main goal of a demo is to show off technical skill as well as audio-visual aesthetical sense. Hence, a “demo” is short for demonstration, referring to the fact that one demonstrates achievement of these three aspects. Demos runs on different platforms, ranging from both old hardware like the Commodore 64 or the Commodore Amiga, to contemporary platforms like the PC or even Arduino. A demo takes from anywhere to a few days to several months to create and the creators go to “demo-parties”, conventions of up to 1000 people that meet for a weekend to compete and show off their work.

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]. DIS '14, June 21 - 25 2014, Vancouver, BC, Canada Copyright is held by the owner/author(s). Publication rights licensed to ACM. ACM 978-1-4503-2902-6/14/06…$15.00. http://dx.doi.org/10.1145/2598510.2598526

35

Craft

DIS 2014, June 21–25, 2014, Vancouver, BC, Canada

W We have conducted a wider study of the demoscene, an nd ccollected a rich r material consisting of o observation ns, innterviews, cultural artifacts, as well as a literature stud dy. C Currently, the biggest databaase of demosceene production ns, hhttp://www.pou uet.net, lists 60733 6 demos,, created und der 111253 differentt group names.. Although dwiindling in size,, it is still a subcullture with a rich background of work to draaw uupon. There haave been a num mber of studies of especially th he ccultural backgrround of this phenomenon p [2 2, 6, 10], or no onaacademic techn nical discussion ns [9].

compeetent and sedim mented craft knnowledge of tools and the GA computer too experiment w with the materiaal of code. AMIG

C CRAFTMANSH HIP AND CODIING

T The demo-scen ne members absorb themselvees in the craftin ng oof digital materrials, shaping them t into demo os. Graphics an nd ssounds are algorithmically crreated or transsformed throug gh ccode that contro ol for instance: the position of o a camera in 3d 3 sspace; the textture on a geneerated vista; th he augmentatio on aand transformaation of an objject made in 3D 3 software. By B eexperimenting with code and d algorithms th he demo-sceneers ccraft the consstituent parts that make a demo into a ggraphical-musical rhythmic whole. w

Figure 1 – Screeenshots from the demo ‘Fractture’

This fuusing of skills and tools is w what allows coders to, by shapingg and craftinng, transform m ‘raw materrials’ into pleasinng demos. Onne tool usedd was the oppen source softwaare “Rocket” a “sync-trackeer” [5] that prrovides an easy w way of synchrronizing musicc and visuals in demos. Rockett is a library that can eitheer communicaate with an editor over network socket, or plaay back an expported data set.

T The way the crafting codeer works resem mbles Sennettt’s nnotion of the craftsman c [13]. Looking thro ough the lens of S Sennett we can n begin to com mprehend and appreciate ho ow thhe coder can become rhytthmically engaaged with craaft m materials; with crafting a skilll-full aestheticc expression an nd, thhrough this, become aestthetically exprressive throug gh ccrafting digitall materials an nd technologiees. We do th his thhrough an anaalysis based on n Sennett and d focused on th he eemerged key concepts c of cra aft engagemen nt, craftsmansh hip rrhythm and craftsmanship c expressivity, that configurres ccoding as craftiing. T The crafting off a demo

T The paper in haand draws on a case study, conducted c befo ore a major conven ntion (900 peo ople) in Germaany in the Eastter oof 2013, called d “Revision”. We followed a coder from th he ggroup “Focus Design” D work on the demo “Fracture” (Fiig. 11) [4]. We stud died the coder shape s a demon nstration on a 202 yyear old comp puter, Commo odore AMIGA A. The AMIG GA pplaces constraints on the cod der’s crafting practice p – it has h oonly 66 MHz of processing power and 64 6 megabytes of R RAM. Most off the code don ne on it consissts of a blend of aassembler lang guage and C. But for parrticipants in th he ddemoscene, thiis is part of the t charm and d challenge. By B taaming the plaatform, they display d skill an nd dedication to thheir specific crraft.

Fiigure 2 - Editorr for the Open S Source Rocket llibrary

This aallows the codeer to manipulaate different vvariables in the coode material inn real time thhrough placingg different “hookss” in the code oof the demo, w which communnicates with Rockett over a networrk connection. This enables a faster and more rrhythmical tryying-out of diffferent ideas, essentially movingg focus from ffiddling with ccode, changingg variables, compilling and re-coompiling, to tw weaking and expressing animattions that twistts and turns tim med to the musiic.

T This requires prolonged p engaaged work witth coding on th he pplatform wheree constraints off platform and materials slow wly m molds individu uals into craftsm men as they, th hrough repetitiv ve w work, becomess proficient ‘mo olders’ themseelves by moldin ng ccode into aestthetic expressions. In this way, repetitiv ve ccoding forms the foundatio on of coding g craftsmanshiip. S Subsequently, craft repetittion slowly turns into th he aappreciative rh hythmic undersstanding of a certain craft. In oorder to develo op something expressive and impressive on o ssuch an old platform, thee coder we followed used

Craftin ng demos

The aability to tw weak and tim me effects through the manipuulation of variiables is vital ffor the coder’ss sensitized ability as a craftsmaan. Using a setup of Amiga,, Mac, and Rockett, the coder haas at hand a sset of tools thaat provides access to mold and pplay with his cchosen materiaal; the code which will ultimatelyy run on an oldd hardware plaatform with gratifyying visual efffects using thhe 3d-objects and music provid ed by other meembers of the ccollaboration.

36

Craft

DIS 2014, June 21–25, 2014, Vancouver, BC, Canada

With such hardware and software tools in hand, the coder engages expressively in the process crafting a demo by changing parameters in Rocket, letting for instance the camera jump up and down in sync with the drum of the music. As the sound of a drum is heard on the techno-track used for the demo, the coder uses Rocket to let the camera jerk as each beat is heard. Since the beat is constantly changing this craft-decision creates a more dynamic and coherent experience for the viewer than if the camera were to move randomly around.

through prolonged rhythmic engagement with craft materials, and, on the other hand, come about through the molding of and getting molded by the features of craft materials and crafting interactions. Craft engagement arises when coding becomes a rhythmic material engagement with code, graphics and music. In order for the coder to craft a masterful demo there is a need to become absorbed in the material of code as the constituent parts of a demo are crafted into a rhythmic whole, with each part working in unison to create a coherent aesthetic expression. In this way, the coder can be seen as an aesthetic craftsman that engages with craft materials through form-giving activity. Through prolonged engagement with craft materials the coder attains intimate knowledge of the potentials, abilities and limitations of the digital materials and technologies. The limitations also become a source of engagement as he/she molds code into what could be labeled aesthetic expressions of technique.

In another example the coder would rhythmically time the movements and rotations of a three-dimensional object to the beat of the music playing in the background. After a bit of experimentation, the coder decides that, when there is a “break” in the music playing, the code should play the scene backwards, creating a form of reversed instant replay. In another example, the coder would experiment with the strength, duration and timing of a “blink” effect, setting the screen to all-white for a few milliseconds, creating a stroboscopic effect timed to the music.

Craftsmanship rhythm slowly emerges through the coder’s prolonged engagement with craft materials. Crafting code is a two-way relation between code material and coder. It is a rhythmic relation developed through the coder’s prolonged repetitive work with code material. Within this coder-code relation a rhythmic comprehension of coding a demo emerges in the coding craftsman through a reciprocal relationship where the coder attains the skill of molding code into aesthetic demos through letting the code materials mold him into a coder of aesthetic demos. Consequently, the coder’s comprehension of craft is altered as the coder becomes a craftsman with a body anchored in a certain rhythmic relationship with digital materials and technologies that require dynamic conversational skills, tacit incorporated knowledge and material consciousness in order for the coding craft to become coherent, masterful and expressive.

These examples of experimenting with the possibilities of code are the hallmarks of the demoscene participant that has become at home within the rhythm of a particular craft. And the coder’s engagement with this particular setup makes for a more fluid process, that invites the coder into a continuous and rhythmic stepping back and forth between the different ways craft can be expressed. Thus, the coder is not focused on lines of code, but rather directed at the results of code while engaged in trying to achieve the aesthetic expression desired. In our example, the coder has become a coder coding code through rhythmic manipulation of digital materials. This means that the coder has for himself, through this setup, created a situation where the artistic expression comes to the fore, rather than logical and instrumental thinking and tinkering. All things considered, the way the crafting coder works can be seen as a form of craftsmanship. In line with our above discussion of materials in design, we see software as a material. Our descriptions of the coder’s work are akin to descriptions that Sennett gives of craftsmen, and the strive for quality reminiscent of Sennett’s discussion of Linux Programmers as craftsmen desiring quality in their work.

Craftsman expressivity comes when the craftsman has incorporated the craft material and made himself familiar with the rhythm of this particular craftsmanship practice. In order to attain craftsman expressivity, the coder must then give in to the craft material and surrender his or her identity to the craft. In effect the individual must in the situation become a coder coding code. In other words, the coder must become a crafting body in and of practice that has become thoroughly sensitized to the language of code, its potentials, abilities and limitations, through upholding a prolonged dwelling in the repetitive flow of crafting code at the demoscene. Slowly, through dwelling in repetition, a rhythmic comprehension of coding is formed, a comprehension that sediments as the coder incorporates coding patterns and rhythms he has gained by concentrated conversations with craft materials. Accordingly, being a proficient and expressive coder at the demo-scene is not an easy feat, but something that requires obedience to crafting and craft materials as well as endurance of repetition, frustration and even, occasionally, boredom. It is only through such

THE CODER AS CRAFTSMAN

Developing an understanding and appreciation of coders, their coding activities and products through the lens of Sennett’s notion of craftsmanship [13], we point to three central emerging conceptual categories. Firstly, craft engagement, that is, how materials such as bricks or code engage the craftsman through interaction. Secondly, craftsmanship rhythm, that is, how the repetitiveness of bricklaying or coding contribute to the enjoyment of the activity as well as form the foundation of craftsmanship skill. And, thirdly, craftsman expressivity, that is, how the bricklayer or coder, become aesthetically expressive through technique that, on the one hand, comes about

37

Craft

DIS 2014, June 21–25, 2014, Vancouver, BC, Canada

processes of repetitive coding and prolonged explorations of the code material that the coder achieves the tempered talent, rhythmic skill and incorporated knowledge necessary to compose and code an aesthetic and expressive demo. In Sennett’s view, the distinction between art and craft is exemplified here, in that art is an extension of craftsmanship into the realms of inventiveness and originality. It is exactly the craft skill and craft tools of the coder that allows him to begin to shape art from the material of Amiga code.

computer science education. Proceedings of the twentysixth annual SIGCHI conference on Human factors in computing systems. ACM (2008), 423-432. [2] Carlsson, A. The Forgotten Pioneers of Creative Hacking and Social Networking--Introducing the Demoscene. Re: live. (2009), 16. [3] Fernaeus, Y. and Sundström, P. The material move: how materials matter in interaction design research. Proceedings of the Designing Interactive Systems Conference. ACM (2012), 486-495.

CONCLUSION

[4] Pouet.net. 2013. "fracture by Focus Design & In-Sect & Danish Underpants Brigade." (Retrieved January 16, 2014, from: www.pouet.net/prod.php?which=61207)

In this paper we have considered coding as crafting. Adopting such a perspective might contribute to the current discourse within HCI on design as a material practice by letting theory serve as generative [12]; by using theory such as [13] to help us see the practice of coding anew. This is important as different fields, such as art, craft, or engineering, carry with them their own specific concepts, approaches, mindsets and discourses. Consequently, looking at coding through the lens of craftsmanship enables us to comprehend, conceptualize and expound on coding in ways that the lens of art or engineering are unable to do on their own. It also might move us forward towards understanding design as a practice that combines insights from arts, crafts and engineering approaches.

[5] Github. 2013. "GNU Rocket Git Mirror." (Retrieved January 10, 2014, from: https://github.com/kusma/rocket [6] Hastik, C. and Steinmetz, A. Demoscene Computer Artists and Community. CERC (2012). 43. [7] Jung, H. and Stolterman, E. Form and materiality in interaction design: a new approach to HCI. CHI '11 Extended Abstracts on Human Factors in Computing Systems. ACM (2011). 399-408. [8] Kamila, S. Introduction, Classification and Applications of Smart Materials: An overview. American Journal of Applied Sciences. 10, 8 (Jul. 2013), 876-880.

The material turn [11] is driven in part by the combination and development of new materials, and to answer the challenges this poses to design, we suggest looking to craftsmanship theory. Building vocabularies for coding as craft, art and engineering are important and beneficial, also in a more practical sense, as specific approaches, such as craft, will illuminate different aspects, concepts, viewpoints and framings. These will, on their side, illuminate coder, coding and code material in profoundly different ways, leading to different ways of articulating, approaching and acknowledging coder, coding and code material. Thus, in order to get a more holistic, multifaceted and vibrant perspective on working with code as a material we (also) need to approach it as an arena for craftsmanship practices.

[9] Zine. 2008. "The Making of Candystall - Or how to win Assembly using a bucketload of cubes." (retrieved January 16, 2014, from: http://zine.bitfellas.org/article.php?zine=13&id=9) [10] Reunanen, M. and Silvast, A. Demoscene Platforms: A Case Study on the Adoption of Home Computers. History of Nordic Computing 2. (2009), 289-301. [11] Robles, E. and Wiberg, M. Texturing the "material turn" in interaction design. Proceedings of the fourth international conference on Tangible, embedded, and embodied interaction. ACM (2010). 137-144.

Our three key concepts of craft(smanship) engagement, rhythm and expressivity all point at issues that need better understanding through empirical investigations of this and similar domains. In that way, our study is limited, both by the space offered in a short paper and by our studies so far. We want to develop our initial foundation here into a more full-bodied framework for understanding designing with digital materials and physical materials as crafting.

[12] Rogers, Y. 2012. HCI theory: classical, modern, and contemporary. Synthesis Lectures on Human-Centered Informatics. 5, 2 (2012), 1-129.

REFERENCES

[15] Wiberg, M. Methodology for materiality: interaction design research through a material lens. Personal and Ubiquitous Computing. (May 2013), 1-12.

[13] Sennett, R. The Craftsman. Yale University Press, 2008. [14] Vallgårda, A. Giving form to computational things: developing a practice of interaction design. Personal and Ubiquitous Computing. (Jun. 2013), 1-16.

[1] Buechley, L., Eisenberg, M., Catchen, J. and Crockett, A. The LilyPad Arduino: using computational textiles to investigate engagement, aesthetics, and diversity in

38