EndlessForms: 3D printed evolution in action


“From so simple a beginning endless forms most beautiful and most wonderful have been, and are being evolved.” — Charles Darwin


Kristen passed this web-based modeling tool to me last week. It’s a WebGL application called EndlessForms that enables users to evolve 3D forms. Users select “parent” forms whose traits will then influence the resulting “child”. The method of doing so is very interesting, taking cues from biological reproduction:

For each voxel (a small cube) in the allowable area, information about its geometric coordinates (e.g. its X, Y, and Z coordinates) are input into an evolved genome. The genes in the genome turn on and off in response to that information, creating new geometric patterns that affect other genes, etc. Eventually the output of the network is a single value, which specifies whether material should fill a voxel or not. The genome thus specifies where material exists based on geometric information, just as in natural organisms.

To try it out, I took an existing “wine bottle” model from the gallery and evolved it into (what I think) is a trophy shape. Here’s the original:

Original "wine bottle" model

And here are the evolutionary steps that I performed on it:

Evolution 1

Evolution 2

Of course, once I chose the final model I had to 3D print it. The STL file exported from the website came out very small, so I scaled it up a bit and printed this on my MakerBot:

A trophy. Maybe.

I really like the imperfect, squishy sort of shapes that EndlessForms can generate – they’re sort of like a species of clay animals. If you’d like to try it for yourself, the web app is here: http://endlessforms.com/

One word of caution: WebGL is a developing technology, so it has the potential to freeze your web browser. Generally harmless, but annoying. Firefox threw up all sorts of errors and crashed on me, but Google Chrome worked very well for this test.

Derek Quenneville is a 3D printing evangelist who posts weekly on the Ponoko blog. Follow him on Twitter @techknight.

< Previous Post
Next Post >