Skip to content

Instantly share code, notes, and snippets.

@xandkar
Last active August 29, 2015 14:04
Show Gist options
  • Select an option

  • Save xandkar/617694e05e893083ec88 to your computer and use it in GitHub Desktop.

Select an option

Save xandkar/617694e05e893083ec88 to your computer and use it in GitHub Desktop.
What does "creativity" mean? Can we automate (at least a part of) the process?

Automating Creativity

What is creativity? One way to put it is: usage of some object in an unexpected way. As is sometimes said "He used X in a creative way."

All objects are understood by their properties and interfaces. Say for instance a pencil can be thought of having these:

Pencil:
    Properties:
        yellow
        2 inches long
        1 end that is sharp
        1 end that is made of graphite
        1 end that is dull
        1 end that is made of rubber

    Interface:
        write : Pencil -> Paper -> Words

Interface is just something people infer from properties (or facts about an object), so people generally expect to Pencil.write, but then some creative soul can look at these properties and say:

Hey, if I ignore that the sharp end is made of graphite and only care about the fact that it is sharp - I can also: Pencil.stab : Pencil -> Surface -> PastaStrainer except that I do need to make sure that hardness property of Surface is lower than that of Graphite.

Then people would say: "Wow! He is so creative! We never thought to use a pencil this way!"

So, what is creativity other than enumerating the properties of objects at hand and then matching them to fit an interface you care about? What if you enumerate all interfaces possible?

I'd love to experiment with something like: create an online, global database of objects and offer searches constrained by properties and interfaces.

I'm thinking of something like a hybrid of Prolog and Hoogle, but for abstract definitions of any (physical of thought) objects.

Is it awesome or "Simpsons did it"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment