understanding the needs of creative coders: towards a creativity support tool in processing –...

35
Understanding the Needs of Creative Coders Towards a Creativity Support Tool in Processing Mark C Mitchell: [email protected] Oliver Bown: [email protected]

Upload: mark-c-mitchell

Post on 08-Jul-2015

71 views

Category:

Technology


1 download

DESCRIPTION

Creative coding as a paradigm has reached increased traction in the last 10 years. However, details looking into the workings, processes and needs of these creative coders is currently lacking in design and creativity literature. This paper reports on the preliminary findings of the needs of creative coders by analysing their process completing a design task in an experimental, qualitative study. The paper concludes with implications for a creativity support tool that could help address these needs in the Processing language and environment, a popular choice for creative coders.

TRANSCRIPT

Page 1: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Understanding the Needs of Creative Coders

Towards a Creativity Support Tool in Processing

Mark C Mitchell: [email protected] !

Oliver Bown: [email protected]

Page 2: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Understanding the Needs of Creative Coders

A formative study in a line of studies whereby we hope to gain a more detailed understanding of how creative coders interact with their code.

Page 3: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

What is Creative Coding?Philosophy of open code-sharing.

A highly interconnected, “new kind of creativity”.

A discovery-based process using code as primary medium.

Understanding gained through a context of experience.

A developer with loads of ideas on how to make unconventional combinations of technology work together.

One who is in the process of making a specific type of audio/visual artefact.

“If you are familiar with the open source language Processing then you'll have a good feel for what creative coding is about.”

— David Bolton,http://cplus.about.com/b/2010/12/09/what-is-creative-coding.htm

Page 4: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Creative Coding

Creative coding is a process of exploration, incremental building and reflection.

Bricolage Programming

Reflection- in-action

The Creative Coder

Page 5: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Bricolage Programming“Bricolage programmers construct theories by arranging and rearranging; by negotiating and renegotiating with code” (Turkle & Papert, 1990).

“Bricolage programming is particularly applicable to our theme of the artist-programmer.”(McLean, 2011).

Turkle, S., & Papert, S. (1990). Epistemological Pluralism: Styles and Voices within the Computer Culture. Signs, 16(1), 128-157

McLean, A. (2011). Artist-Programmers and Programming Languages for the Arts (Doctoral dissertation).

Page 6: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Bricolage ProgrammingBricolage programming is particularly applicable to our theme of the artist-programmer (McLean, 2011).

Page 7: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

The bug I encountered was so bizarre, I decided to do a render.The behaviour is totally a surprise to me. All I was hoping for was simple GPU based sphere-sphere collision as the result of gravitational attraction.

— Robert Hodgin, Repulsion (Eyeo 2012)

Page 8: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

What is Creative Coding?

We define creative coding as a discovery-based process consisting of exploration, iteration, and reflection, using code as a primary medium, towards a media artefact designed for an artistic context.

Page 9: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Jonathan McCabe

Frederik Vanhoutte

Jason Rampe

Kyle McDonald

Felix Woitzel

esimov (as3)

Jason Rampe

Page 10: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Aims

To understand and explore how the engagement between creative coder and coding environment can be bolstered.

Now that we have defined creative coding, we can ask:

Is the process of a creative coder being adequately supported by current coding environments?

Page 11: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Environments for Creative Coding

Processing

OpenFrameworks

Cinder

NodeBox (soon: MAAK…)

Field

LightTable

C4

more!

Page 12: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

An observational study

Analyse the practice of creative coders and better understand their needs, which can inform the requirements of a creativity support tool.

A qualitative study was conducted with self-described creative coders, using the Processing environment.

Page 13: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Methodology

The study was conducted using direct observation and semi-structured interviews.

Nine participants were recruited.

A post-task interview was employed instead of using the think-aloud method, so the flow of the participant was not interrupted.

Page 14: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

The TaskThe participants were encouraged to utilise any resources for the task they wished, including code libraries, code from the Internet, the example creatures shown at the beginning of the task, or previous work.

Observations and interview questions were tailored to extract the why of the practice, rather than the what.

Page 15: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsBuild code on a modular foundation

Initiate the creative feedback loop quickly

Make the program state visible

Minimise the creative feedback gap

Assistance in exploring the space of possible designs

Maintain a robust mental representation of the software

Page 16: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsBuild code on a modular foundation

Starting-methodology: 1st stage: “scaffolding”

“The scaffolding conducted by 8 of the 9 participants facilitated a modular approach to design.

“If didn’t scaffold and wanted to implement even more things, it would be even harder. So I decided to make it modular.” — Participant 2

“If I had more time, I would have separated the creature behaviours into modules” — Participant 3

Page 17: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsInitiate the creative feedback loop quickly

Starting methodology: 2nd-stage

Achieving a minimal representation of the creative goal to the screen: in the case of this task, it was, in almost all cases, an ellipse drawn to the screen which acted as a placeholder for the creature. This initial visual artefact acts as a springboard for ideations, initiating the creative feedback loop.

Page 18: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013
Page 19: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013
Page 20: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013
Page 21: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsMake the program state visible

Opaqueness of the system forced participants to make assumptions about the cause of unintended behaviour, selecting variables to print to console without any support from the IDE.

Making the program state visible in a contextually appropriate way could alleviate these cumbersome debugging events

Page 22: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

NodeBox 3

Page 23: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsMinimise the creative feedback gap

The gap that exists between tweaking and observing creates a temporal delay that slows the creative process (McLean and Wiggins, 2011). Beyond slowing the process, the gap can also cripple it.

The act of perception is integral to the creative process, and a lag between modification and the perception, judgment and analysis of the outputted result can stifle the creative feedback loop as causal mappings between modification and result are disrupted.

Minimising the gap in this creative feedback loop will alleviate these problems, as well as improve flow.

McLean, A. and G. Wiggins, Bricolage programming in the creative arts. http://yaxu.org/writing/ppig.pdf

Page 24: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsMinimise the creative feedback gap

"creators need an immediate connection with what they're creating … when you're making something, when you make a change, or a decision, you need to see the effect of that immediately. There can't be a delay; there can't be anything hidden”

Victor, B. Inventing on principle. in Invited Talk at Canadian University Software Engineering Conference (CUSEC). 2012

Page 25: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsMinimise the creative feedback gap

Page 26: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of Needs

Allowing the feedback loop to begin uninterrupted at the beginning of a creative task and optimising the tweak/run/observe cycle would increase the role of creative ideation and flow.

Page 27: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsAssistance in exploring the space of possible designs

All participants engaged in rounds of parametric design tweaking — modifying a parameter of interest, then compiling and running the program to visually interpret the results.

Tweaking of parameters can be considered an exploratory type of creativity, which involves exploring, navigating and testing the potential and boundaries of a conceptual space.

Page 28: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsAssistance in exploring the space of possible designs

Boden defines three types of creativity:

Combinatorial creativity

Exploratory creativity

Transformational creativityExploratory creativity can offer surprises comparable to the surprises provided by transformational creativity (Boden, 1995)

Creativity is a matter of mapping and exploring structured conceptual spaces (Boden, 1994). !A map is used to search the space (exploration).

M. A. Boden. The Creative Mind: Myths and Mechanisms. Weidenfield and Nicholson, London, 1990.

M. A. Boden. Modelling creativity: Reply to reviewers. Artificial Intelligence Journal, 79:161–182, 1995.

Page 29: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A visual representation of search in a conceptual space (Veale, 2012)

Veale, T. (2012). Exploding the Creativity Myth: The computational foundations of linguistic creativity. A&C Black.

Page 30: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

courtesy of Adam Younis (Design Lab)

A grid of possible design avenues to select from, evolving the parameters to an optimum state.

Page 31: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

NodeBox 3

Page 32: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

A Taxonomy of NeedsContrary to our expectations, ready-made code was utilised by only one participant. This is an unexpected finding, as we hypothesised that ready-made code would be a common starting point for the task across all participants, regardless of expertise level.

Perhaps even more surprising was the lack of any third-party library use by any of the participants.

8 out of 9 participants expressed hesitation with utilising third-party libraries.

The time it takes to learn an external library for use in a project requires not only an understanding of the system the library represents, but also the coding style of the library author.

Allowing a creative coder to keep a robust, mental representation of their software at all times affords the integration of external code that lends extensibility to their program, removes the lack of expertise barrier for specialised domains, and affords creative coders to more easily implement their creative ideas.

Maintain a robust mental representation of the software

Page 33: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Future WorkTurning these needs into requirements, a prototype of a creativity support tool can then be evaluated.

Page 35: Understanding the Needs of Creative Coders: Towards a Creativity Support Tool in Processing – OzCHI 2013

Creativity is often seen as some combination of quality and novelty/innovation.

• Open Questions • What questions should the judges be asked?

• Are we interested in a holistic judgement of “creative”?

• Is there a risk of the word “creative” having different meanings for judges?

• Do we have to be more careful about who the judges are?

• Summary: • There are still open questions about measurement of “novelty” or “creativity”.

— Graeme Richie, Evaluating Quality in Creative Systems