Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Operationalizing Creative Theories

Chris
January 24, 2016

Operationalizing Creative Theories

Hypothetical reasoning is one of the best interdisciplinary tools we have for growing human knowledge, as it exercises imagination and empathy while yielding powerful abstractions. Operationalizing hypothetical reasoning (via programming languages) can therefore be used fruitfully in creative, imaginative activities. Conversely, pre-digital techniques for adding spontaneity and serendipity into creative work, based on collaborative play, have inspired digital interfaces and might be fruitfully extended to programming languages. I will illustrate how hypothetical reasoning and collaborative play pair well together as guiding principles, and using them, I will describe a unified design space of computational artifacts for programming, proving, storytelling, playing, and generating computational artifacts.

Chris

January 24, 2016
Tweet

More Decks by Chris

Other Decks in Research

Transcript

  1. 2

  2. 3

  3. 4

  4. “Imaginative play: [children] must practice pretending to be someone else,

    in another place. Making up character, plot, and dialogue, for the stories they invent. They are, in truth, inventing abstract thinking.” Vivian Gussin Paley, early education researcher: 9
  5. 10

  6. emergent behavior and surprise ! a response for every conjuring

    of the imagination ! game worlds in conversation with their players 18
  7. 19

  8. 21 Simulationist Worlds e.g.: glass can break into shards rope

    is cuttable shards are sharp => glass can be broken to cut the rope
  9. Chooser: decide among available rules Interpreter: what does the output

    mean? Interpreter: what do the rules mean? Co-creator: contribute rules 28 The Role of the Human
  10. Spatial level structure Character attributes NPC Dialogue Items Aesthetic components

    (visuals, music) Narrative* Game Rules* 33 What kinds of things can we generate?
  11. 39

  12. 40

  13. 49 - Given a combined thing, its meaning can be

    determined by its parts ! - Given an atomic thing, its meaning can be understood independently of what it can be combined with Two Views of Compositionality
  14. for any new domain we want to generate, the question

    becomes: ! what are the Lego pieces? how do they compose? 50
  15. 54

  16. 56 A refinement of compositionality If A’s interface I(A) matches

    I(B), then I(A * B) is defined. e.g.: function composition
  17. 57 E.g. A hates B A has weapon A murders

    B B dead B hates A A insults B B hates A A hates B
  18. 58 E.g. A hates B A has weapon A murders

    B B dead B hates A A insults B B hates A A hates B
  19. B hates A 59 A hates B A has weapon

    B dead B hates A A hates B A murders B A insults B
  20. 61

  21. 63 Can an automated system come up with coherent recipes?

    Or coherent programs in a given PL? (program synthesis)
  22. 70 6 6¶ 6R6¶  U6R6¶    Q

     /RJLF3URJUDP LQLWLDOVWDWH Ceptre
  23. compiler 73 structure Foo = struct ! fun fact 0

    = 1 | fact n = n * fact (n-1) ! end REPL
  24. compiler 74 REPL fun fact 0 = 1 | fact

    n = n * fact (n-1) fact : nat -> nat fun mapfact l = map fact l
  25. Simulationist story generation: 88 Describe what characters are in the

    world & their relationships to one another ! Describe what story events can do to change those relationships ! Describe a termination condition ! Press play
  26. vi hart on structure: ! "we understand the world and

    each other through the patterns we know, but it's also important to realize the structure is there, realize how invented it all is. ! “that frees you to build new, more beautiful structures that communicate things there were no words for before, even if that new word might not be understood." 90