Step 1: Code, Step 2: Things!

```/* This creates a twisted extrusion of 5 unioned circles
* with gratuitous amounts of rounding. Try it out! */

linear_extrude (height = 40, twist(h) = 35*cos(h*2*pi/60))
union ( r = 8) {
circle (10);
translate ([22,0]) circle (10);
translate ([0,22]) circle (10);
translate ([-22,0]) circle (10);
translate ([0,-22]) circle (10);
}```

Why? Because These Are Problems Programmers Have Already Solved.

With the explosion of 3D printing, designing 3D objects has become an even more important problem. And it's a complicated one. We need to design complicated objects that precisely interface with each other. And often we don't want to just design a single object, but classes of objects, parameterized by variables. And we need to do this in collaboration.

There are trivial cases, like a screw driver of varying length or the width of a table. Traditional geometric constraints can suffice here. But what if we want a key based of a list of numbers describing the heights of a lock's pins? Now we need programming.

But that's only the beginning. We can abstract away the stupid work humans do in designing objects. We can build DSLs. We can unit test objects and put them on github.

ImplicitCAD is a project dedicated to using the power of math and computer science to get stupid design problems out of the way of the 3D printing revolution.

Want to give it a try?

Now after all that talk wouldn't it be nice to go and give ImplicitCAD a test run? Bet your expecting some big long installation instructions now?

Well not today! Today we're making this easy!