Friday, January 11, 2008


Constructive solid geometry (CSG) is a technique used in solid modeling. CSG is often, but not always, a procedural modeling technique used in 3D computer graphics and CAD. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects. Often CSG presents a model or surface that appears visually complex, but is actually little more than cleverly combined or decombined objects. (In some cases, constructive solid geometry is performed on polygonal meshes, and may or may not be procedural and/or parametric.)

The simplest solid objects used for the representation are called primitives. Typically they are the objects of simple shape: cuboids, cylinders, prisms, pyramids, spheres, cones. The set of allowable primitives is limited by each software package. Some software packages allow CSG on curved objects while other packages do not.

It is said that an object is constructed from primitives by means of allowable operations, which are typically Boolean operations on sets: union, intersection and difference.

A primitive can typically be described by a procedure which accepts some number of parameters; for example, a sphere may be described by the coordinates of its center point, along with a radius value. These primitives can be combined into compound objects using operations like these:
- boolean union: the merger of two objects into one.
- boolean difference: the subtraction of one object from another.
- boolean intersection: the portion common to both objects

Combining these elementary operations it is possible to build up objects with high complexity starting from simple ones.

in the case of spheres as primitives - if all have the same exact radius, the complex composite object -resultant from a set of boolean operations- can be describe out of one spherical mould from which all the different parts are trimmed: the challenge here will be to describe and catalogue all the parts not as geometry but rather as 3d trim paths for robotic arm...

Labels: , , ,