1. A set of atomic three dimensional objects that can be joined together in a workspace to form one or more complex three dimensional objects, each atomic object comprising: one or more object join features parameterized to enable joining with one or more parameterized join features of another atomic object in the set of objects; and a shape that may be modified according to one or more parametrically defined constraint attributes; wherein a user may reshape and or resize one or more of the atomic three dimensional objects prior to joining the three dimensional objects together at the appropriate parameterized join features to form one or more of the complex three dimensional objects.