Processing IDE: Nautilus Forms
Using Processing, you can use iterative mathematics to generate all sorts of forms for 3d printing. This is a work in progress, that only generates 2d templates - which you can import into a CAD program for thickening and then 3d printing.