AI-Coder: High Level Design
As an artist, I’ve often started a new drawing or painting right in the medium, dipping a paintbrush into my palette and splashing something preliminary onto the canvas. Some of my favorite drawings have started with pen on paper, having no idea what the hell I was working toward, but just enjoying the process.
In many cases, those first few haphazard strokes set a tone and texture that guides the rest of the creative process.
While the paint is still wet, and the figure is still mostly unformed, I’ll step back from the canvas and look at what I’ve done so far, asking myself “What is this? I like what I’ve got so far, but how can I turn it into something worthwhile?”
The decisions made during that post-improvisational stage often determine whether the painting gets hung on my wall or tossed into the dumpster.
I feel the same way right now, at the beginning of the AI-Coder project.
Although I’ve spent the last year or so experimenting with AI techniques and building my own game-playing software, those tasks really just give me a preliminary sketch for the overall design of the AI-Coder platform. Since I’m developing this software for widespread consumption, the design constraints and priorities are entirely different than if I was building something just for myself. And of course, as is always the case, some of the design criteria conflict with one another.
At this point, I’ve identified four overarching principles that should guide the whole development process. In no particular order, it’s essential that the software is:
- Fun
- Secure
- Fast
- Legal
All four of those constraints will make a big difference on the software design, and all four of them are critical to the monetary success of the project. If I fail to meet any of those criteria, I can expect big problems.
Ahem…What?
My parents are avid readers of this blog, and when they read that I’d chosen the AI-Coder project, they were completely perplexed. Not necessarily because I had chosen this project above all the others. Rather, they were perplexed about what this project even is.
I can hardly blame them. So far, I haven’t figured out how to explain the gist of the AI-Coder project without going into a twenty minute explanation.
So before I dive into my four design criteria, I’m going to step back for a second and try to write a 30-second elevator pitch for AI-Coder:
I’m sure that the definition of the AI-Coder project will fluctuate as the software (and the business develops), but that’s the core idea. And hopefully, a description like that clearly expresses what I’m trying to accomplish without needing any further explanation.
Now that I’ve gotten the elevator pitch pretty solidified, I can focus on my four central design criteria.
Over the next week, I’ll post four follow-up articles, discussing how the elements of fun, security, speed, and legality will affect the design decisions of the AI-Coder platform.
And, by the end of that process, I hope to develop a clear concept (from both a business and a technical perspective) of how my preliminary sketches will develop into a fully-formed picture, one that I’ll be proud to put on public display.










August 23rd, 2006 at 11:19 am
I’m looking forward to your article on “speed.” Best of luck, Benji.
August 24th, 2006 at 12:26 pm
I got an email today about amazon EC2 a web service that gives you scalable processing power. That might be something to consider for you since you might need more processing power than an affordable hosting will provide.