Some pics of our printer-computer communication. Ordinarily, the printer is controlled by a Xylotex Four-axis linear stepper controller board. The board then uses a LPC-2000 micro controller to talk to the computer. In this case, we forewent the Micro controller and have a direct connection to the Xylotex board via Parallel Port. This way, we can give the printer specific directions. Soon, we will have an arduino board give serial inputs to the computer, to tell it when certain limit switches are reached (the only reason we are using the arduino board and not the LPC board is because I’ve had previous experience with the arduino board, and they’re notoriously easy to use :) ).
The second photo is of a full syringe, ready to print (guess what material its full of).
So what is an evolutionary algorithm (EA) anyway? An EA is a branch of natural computation that takes ideas already present in nature and adapts them for digital use. In this case, darwinian evolution is the natural paradigm. Survival of the fittest ensures that only the most desired/useful traits will be passed on to the next generation, VIA Natural selection (to put it bluntly, creatures with useful traits will continue to live, and creatures with non-useful traits will be killed).
Similarly in an EA, each solution (creature’s digital counterpart) has its fitness gauged to see the usefulness of their traits. Each EA is complete with a fitness function; this evaluates how good the solution’s traits are, and ranks them with a numerical value. Solutions with higher rankings have greater chances to pass their traits on to the next generation (Generations are usually composed of many solutions, guaranteeing a diverse sample size). This cycle continues until a certain fitness is met, or a certain number of generations has passed.
EAs are used in used in Computer Science to solve generally difficult problems that humans have a difficult time with. EAs are notorious for using novel methods to get the highest fitness, often times creating solutions that a human could never think of. We chose an EA to help generate new printing methodology due to the relatively complex nature of the current printing paradigm. Asking a human to print their own model would be a nigh impossible task for a human, but for a computer its (obviously, since they do it already) easy!
More on how to make fitness functions and “genotypes” and “phenotypes” later.