Compared to the generation of two-dimensional geometries the generation of three-dimensional ones is a much more complex task. In two dimensions geometries can be drawn easily with two-dimensional tools. To draw a three-dimensional outline requires a much more powerful tool with sophisticated user interface. Mouse and keyboard are no longer sufficient. CAD tools like CATIA  provide additional input devices like wheels to move and zoom through the three-dimensional space. Simple three-dimensional modelers lack these input devices and the user is restricted to define three-dimensional geometries out of two-dimensional cuts or to define geometries by inserting points or by combining three-dimensional primitives.
Solid modelers using Constructed Solid Geometry (CSG) describe solids as combinations of three-dimensional primitives. Boolean operations are used to combine the primitives to form more complex solids. The advantages of CSG are the simplicity and the fast transformations which allow to add and subtract primitives and enables undo operations. Moreover, CSG models can be converted to any other representation. The disadvantage of CSG is, that it is not suitable to define arbitrary formed surfaces and is, therefore, not the modeling technique of choice.
Boundary Representation (B-Rep) models describe solids indirectly by their surfaces. The solid is then represented as the volume inside the surfaces. Normally, a face is a planar region such as a square, a triangle, or a polygon. The face consists of edges and the edges are defined by two points. Therefore, B-Rep models store a set of surfaces together with the topological information which defines the elements and the linkage of the faces. The advantage of B-rep models is that solids of arbitrary shape can be defined. The disadvantages are, that variants cannot be defined, the construction of solids is complicated, the data structures are complex, and the memory consumption is high.
Another disadvantage of most existing solid modelers is that they do not offer a possibility to identify two co-planar surfaces which coincide. Most tools such as Geant  or GTS  are not able to detect them due to numerical problems and do not allow to mark them as identical surfaces by the user.
A promising approach to generate arbitrary devices is used in the tool PROST2D  for the two-dimensional case. PROST2D enables in an easy way to describe a device by quasi-process steps like deposition, etching and ion implantation. Using this tool more realistic geometries can be described including birds beaks and ramped surfaces. Since the resulting geometries are defined by layers, the problem on how to detect surfaces which coincide does not arise. Unfortunately, this tool does not exist for three dimensions.
Robert Klima 2003-02-06