explorations in creative coding
TRANSCRIPT
Explorations in Creative Coding
Semantic Web OutingVU University, Egmond aan Zee
5 April 2016
Eelco den Heijer
•What is Creativity?
•Man-Machine Creativity
•Creative Coding
•Examples; EvoArt, Arfunkel, Dichtfabriek
•Live Coding
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)
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’
Combinational Creativity
Exploratory Creativity
Transformational Creativity
Man-Machine
Generative Art
Man Made Art
Digital Designer
Computer Assisted Design
Evolu- tionary
Art
machineman
Parametric Design
Creative Coding
Maker Culture
Example 1: EvoArt
• Autonomous Evolutionary Art
• PhD research, 2009-2013
• Genetic Programming engine
• Multiple Genotypes
EvoArt
• Computational Aesthetics
• Several functions to assess various ‘aspects of beauty’
• Multiple Genotypes; expression, SVG, Glitch
• Autonomous EvoArt system (vs. Interactive Evo Art)
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
Functions on Images
create
filter
blend
split
terminate
Functions• Various blend functions
• Various colour space functions
• All functions act on images or on image functions
• All functions act as Lego blocks
RGB
HSV
CIELAB
Mirroring • Simple horizontal, vertical mirror
• Sort of Kaleidoscope effect
Workflow ex. 1
Get Image
Get Image
Blend Recolour Solarize
Workflow ex. 2
Get Image
Get Image
Blend
Recolour
MirrorLeft/Right
Recolour
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
Example 3: Dichtfabriek
• Dichtfabriek: Poetry Factory
• Proof of Concept
• Collaboration between me and Wouter van der Land
• Built in Python
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
at Art prat Praet patser Stapert raptekst startplek kerstplaat slaaptekort
As ras Rosa Laros Oerals Oeraals Boelaars Bostelaar Stobbelaar borstelbaan
WA anw Ewan nawee Waelen Salween leswagen wagenspel speelwagen wespenangel
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
'bout 'bout it bout it is een sappieben dan hij komt vjezze oeh Jappieboy vaderlay lowsappie opgeluchtplat 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 van Tegenwoordig
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
is de club huilenlucht kwam ineens changde z'nholler at ya boy
aan de stervling steeds aan den gloed en zinneloos de schuld en voorproeft
Source: William Shakespeare (Sonnetten)
Source: Jeugd van Tegenwoordig
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
Live Coding• Producing and Performing at the same time
• Similar to jazz improvisation
• Incremental changes
• REPL:
• Read, Evaluate, Print Loop
• LISP, Chuck, Impromptu
• Algorave
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?