Explorations in
Creative Coding
Semantic Web Outing
VU 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
Mirror
Left/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 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
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 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
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?
Questions?
@eelcodenheijer
Tumblr: eelcodenheijer
eelcodenheijer@gmail.com

Explorations in Creative Coding