It would work out what things can be designed, then define the rules to design them.
Exploring a meta-rule space and finding rule sets that create results that humans find interesting is much harder.
If you skip that you tend to create systems that seem too random, or too repetitive and obvious.
This is why most algorithmic art is so uninteresting. It falls on one side or the other of the randomness/repetition valley, without hitting that sweet spot that the best human creativity finds.
That's not even thinking about emotional associations, intellectual abstractions, social awareness, and models-of-mind. You might need all of them to make a genius-level creative AI, but I'd guess that the more you have, the more likely you are to get something worth keeping.
Truly autonomous behavior is out of reach of our reasoning systems, using most known approaches to AI. But if you put a human in charge of the creative part, and complement it with the automation capabilities that simplify the repetitive parts, the result is a win-win match combining the strengths of both.
> That's not even thinking about emotional associations, intellectual abstractions, social awareness, and models-of-mind. You might need all of them to make a genius-level creative AI, but I'd guess that the more you have, the more likely you are to get something worth keeping.
I don't agree. I find all of those things boring in art. Mathematics and computer science are much more interesting when you think about how it relates to the mind, and why people may choose to create abstract art instead of metaphorically painting themselves naked.
GeoPattern http://btmills.github.io/geopattern/geopattern.html
I'd love to hear about more. Does anyone know of a list of these tools? I'd be happy to compile a list if people provide suggestions.
I've thought about using a pattern generator to set the background image of my IDE/editor based on the current file name. It'd be fun to see if any side benefits come up, such as:
* Knowing immediately/intuitively if you've switched to the wrong file.
* Triggering the context/ideas you had when you last opened that particular file.
1. Design systems may be "algorithmic," but they're primarily mathematical, and equations remain stubbornly hard to use. Metafont failed to attract designers because no one wanted to cook up high-order polynomials to express their visual ideas. (In contrast, Adobe came up with a good-enough interface for Bezier curves, and now the world uses non-algorithmic fonts.) The new class of designers will need solid grounding in at least high school algebra to get their curves and easing functions right.
2. Any argument about "XXX should learn to code", where XXX is anything other than "aspiring professional software developers," means that there is a significant market opportunity for creating usable software that does not require coding. If people are willing to spend thousands of dollars on bootcamps to learn to code -- when they'd really rather be focusing on their domain problem -- then they're theoretically willing to pay thousands of dollars to not have to learn how to code.
I don't know the state of design software, but if it's anything like other professional desktop tools, it's horrible, creaky software stuck in the early 1990s with very little competition in sight. When I read this essay I can't help but think there's an opening for usable algorithmic design software -- whatever that may look like.
Expressing a design as a mathematical expression that generates new representations that follow some guidelines means the designer needs to rigorously understand the very essence of what it is he's trying to do. And then he still needs to know the maths to actually formulate it. This is a tough problem if you start from scratch and I doubt that many designers are really capable of pulling it off.
AFAIK creating those layouts for iOS apps has mathematical reasoning. If you design your app, you basically specify rules to anchor each object on the screen. When the app tries to draw its interface, a linear system of equations gets solved and the solution is the best way to put all the objects on the screen, given the rules that were defined. This gives you an extremely powerful design tool to specify your layout for arbitrary screen sizes.
I would very much hope that they do the same for CSS any time soon.
I am surprised by how often I hear this example. Not because people can't define the graph of a function, but because in usual set theoretic terms[1] a function and its graph are the same thing. They are both the set of points (x, f(x)) where x ranges over the domain of f. This is an equivalence that isn't even made by most mathematicians, as they usually denote the graph a function as Γ(f), implying it is different from f itself as a function. Of course they know the equivalence, but prefer to separate the objects notationally for clarity's sake.
[1]: I'm ignoring the notion of a function in category theory, since CS students who are taught math are primarily taught naive set theory, not category theory. Of course, when you aren't working in a category of sets then the graph of a function doesn't make sense, I think.
(disclaimer: I work on the latter)
(Theoretically) If I would report a bug against your product, complaining that your layout breaks when I force font sizes in my browser, would you try to fix it or tell me that 99.9% of all users don't set font sizes and I shouldn't too?
Years later;once I picked up heavier languages, from a designers point of view, programming is broken. Point and click is not ideal but slugging through pages of non-human language is worse. Faster at times... but not a solution. Flame away, that's just my opinion from an outsiders point of view.
Another example of a parametric meta-logo is the one Wolfram created for the National Museum of Mathematics (MOMATH), see http://blog.wolfram.com/2013/02/28/behind-the-scenes-at-the-...