What is 3dom ?
3dom (3D Object Modeler) is a modeler distributed under the GPL.
3dom was designed to be renderer independant (ie you should be able to model scenes for POV-Ray, Renderman, VRML, MGF, <<insert your favorite renderer here>>).
3dom is a solid modeler. It can compute the intersection, the union and the difference of two objects. However, it can't model 2d primitives (triangles, planes) : the object has to occupy some volume.
The 3dom project was initiated by the computer graphics research group of the KULeuven. 3dom can use the RenderPark program to launch Global Illumination calculations (physically based rendering). Since the project is GPL, everybody can contibute to the development of 3dom.
There is also a detailed list of features.
- A Solid only modeler. Life is filled with solids.
- An abstracted Color and Chromaticy idea that uses different
models (RGB, CIE, you-name-it) concurrently to represent the
same color and allow for perfect adaption to any Global
Illumination format out there.
- An abstracted Material definition idea, that seperates
material properties in :
- surface properties, which can be modelled with different
models concurrently (MGF Surface model, RGB, OpenGL, ...)
- body properties (not yet well developed)
- Primitives: box, cone, cylinder, etc...
- Grouping objects in a hierarchy of aggregates using one of
- a Compound that is merely a combination of multiple non
- a CSG object that is either the union, intersection or
difference of various overlapping (or non-overlapping)
objects. CSG's are visualised through an accurately
tessalated Boundary Representation of the object, using
fast CSG calculations. These are also used to export to
BREP based output formats (MGF notably).
- Basic objects can be put in a collection and instanced
multiple times (by pointer) in other Basics or in the world
- Libraries providing all these things (objects, colors, etc...)
- A very swift GUI (using Qt library) that allows
accurate manipulation of objects using snap-points and
grids. Translating, rotating and scaling can be done accurately
and in a very intuitive way.
- A plugin interface to user-loadable code using shared
libraries. The user-loadable is native C++ source code. Later
on a plugin interface to interpreted languages can also be
provided (as C++ plugin).
- Saving and reading in a native file format
- Exporting to MGF, POV (experimental), RIB (experimental).
- An infinite undo/redo and repeat stack to encourage
- A 2D editor to create surfaces of revolution
- RenderPark integration: a Renderpark window embedded and
operated as a regular 3dom (OpenGL) canvas.
- Free Software, GPL'ed