1. A computer-aided design apparatus for the design of three-dimensional objects to be fabricated, the apparatus comprising: at least one processor and a non-transitory computer useable medium having computer readable program instructions embodied therein, the computer readable program instructions executable by the processor so as to provide: a base generator operable to generate a topology for a design of a three-dimensional object by generating a plurality of different generations of bases, wherein each generation of bases comprises a plurality of bases, each base comprising a local coordinate system, wherein the bases in the second and any subsequent generation are located in the local coordinate system of a base in a preceding generation, and wherein the base generator is operable during base generation to determine automatically a position and/or orientation of each base in a generation of bases relative to a base in the preceding generation in which it is located; a content generator operable to generate content objects in the bases; a graph manager operable to create a graph, insert vertices into the graph representing each base and each content object, assign values for different attributes of the vertices, and add connections between the vertices; and a feature identifier operable to automatically identify from the graph features comprising content objects having a defined relationship to each other and/or features comprising at least one base and at least one content object having a defined relationship to each other; and wherein the content generator is operable to generate further content objects for the identified features.