This document summarizes Eelco den Heijer's presentation on creative coding. It discusses different forms of creativity such as combinational, exploratory, and transformational creativity. Examples of creative coding projects are presented, including EvoArt which uses genetic programming to create evolutionary art, Arfunkel which uses functional programming to manipulate images, and Dichtfabriek which generates poetry using word sequences. Live coding is also discussed as a way to produce and perform code simultaneously. The presentation concludes that creative coding comes in many forms and is an enjoyable way to be creative with technology.
3. eelco den heijer
• Developer/ Architect/ Scrum Master
• Part-time Researcher
• MSc Cognitive Artificial Intelligence
(Utrecht)
• PhD at Computational Intelligence
Group, VU, with Guszti Eiben
(2009-2013)
4.
5. What is Creativity?
• Margaret Boden - Creativity and Art: Three
Roads to Surprise
• Combinational - unusual combination of
usual ideas
• Exploration - like local search in concept
space
• Transformational - transforming a concept
in concept space, ‘changing the rules’
21. Example 1: EvoArt
• Autonomous Evolutionary Art
• PhD research, 2009-2013
• Genetic Programming engine
• Multiple Genotypes
22. EvoArt
• Computational Aesthetics
• Several functions to assess various ‘aspects of
beauty’
• Multiple Genotypes; expression, SVG, Glitch
• Autonomous EvoArt system (vs. Interactive Evo Art)
23.
24.
25.
26.
27.
28. Example 2: Arfunkel
• Art Functions
• Research project in Functional Programming in Java 8
• Collection of building blocks that act on Images
• Generators
• Filters
• Merge/Combine
31. Functions
• Various blend functions
• Various colour space functions
• All functions act on images or on image functions
• All functions act as Lego blocks
36. Workflow ex. 2
Get Image
Get Image
Blend
Recolour
Mirror
Left/Right
Recolour
37.
38.
39.
40.
41.
42.
43. Arfunkel
• Between Combinational and Exploration
Creativity
• Between Parametric Design and Generative Art
• Will not ‘break the rules’, since workflow is now
hard coded
• Next step is making the workflow dynamic
• Introduce REPL - Read Eval Print Loop
44. Example 3: Dichtfabriek
• Dichtfabriek: Poetry Factory
• Proof of Concept
• Collaboration between me and Wouter van der
Land
• Built in Python
45. Dichtfabriek
• Kind of “Poetry Remix engine”
• Indexes poetry, stores word sequences (Markov
chain)
• Produces a number of poetry forms:
• snowball (based on anagrams)
• limerick
• haikus
• ABAB
47. Word pairing
• “The quick brown fox jumps over the lazy dog”
• “The quick” + “quick brown” + “brown fox”, etc
• Create index in memory
• Create phrases starting with last word, using markov
chain index
• Create indices use different corpora ==> remixing
48. 'bout 'bout it bout it is een sappie
ben dan hij komt vjezze oeh Jappie
boy vaderlay low
sappie opgelucht
plat ja ik heb ondoeltreffender
alle schoon prijs aan t beter zangers
rijk juweel in t hare kostgangers
in liefdes almacht
herdenkt de haardracht
gegeven hun hulde aan windvangers
Source: William Shakespeare (Sonnetten)
Source: Jeugd vanTegenwoordig
49. Formats & Functions
• Different templates for poetry forms Limerick,
Haiku, SMS, Snowball, etc.
• Easily implemented in Python
• Small functions:
• Syllables (language specific)
• Groene Boekje (Dutch Word List)
• Anagram
• Rhyme
50. is de club huilen
lucht kwam ineens changde z'n
holler at ya boy
aan de stervling steeds
aan den gloed en zinneloos
de schuld en voorproeft
Source: William Shakespeare (Sonnetten)
Source: Jeugd vanTegenwoordig
51. Dichtfabriek
• Still Proof of Concept
• Real fun to do, very short development time
• Generative Art, Combinational Creativity
• Python is excellent for Creative Coding
• Currently: Dutch only, 100% form, 0% Content
• Many points of extension for future work
52. Live Coding
• Producing and Performing at the same time
• Similar to jazz improvisation
• Incremental changes
• REPL:
• Read, Evaluate, Print Loop
• LISP, Chuck, Impromptu
• Algorave
53.
54.
55. Conclusions
• Many forms of Creative Coding
• Creative Coding is totally fun
• Choice of Platform or Language is important
• How much creativity do you want to contribute?
• Or:
• How much control do you want to keep?