[GEMS logo]

This page is also available in French.

This is a web page about GEMS, which is a 3D Modeling System for mechanical purposes, such as structures analysis and product design. GEMS can also be used as a common 3D modeler.

With its extensible architecture, the application domain should not be limited only to mechanical purposes, and we hope to provide with time a full featured engineering analysis framework.

Table of contents

Introduction to GEMS

What does GEMS stands for?
GEMS means GNU Extensible Modeling System. This both an acronym and a word which we hope that represents, a stone as a core material, but also a material that has been crafted with care.

GEMS is nowadays in its early stage of design and two core components are being written. Right now, foundations have been build and it is possible to compute simple operations with Haplo or to display 3D objects with CoreGeometry. The link between those two components will be made as soon as the API's design is completely done.

Why another modeler?
Actually GEMS is not a modeler, it is a modeling and analysis system. The main difference is that not only you modelize 3D models, but you also study its behavior towards mechanicals forces. The 3D model needs to be represented with geometrical parameters (distance, parallelism, orthogonality). This is why we would like to emphasize the need of a different approach of the user interface.

Programs like Moonlight Creator or Minds Eyes are destined to graphical applications whereas GEMS is destined to engineering applications. Thus we do not build "yet-another-modeler" and hopefully do not pretend to compete with them.

Please, don't be afraid! This does not mean that we do not love nifty 3D graphics and nice user interfaces. We effectively realize that most of engineering applications do not provide a functional and nice user interface (however there are exceptions).

Framework components

GEMS is composed of two major components:

Haplo is basically a parser/interpreter with object oriented approach. This main component makes the interface between the user and the GEMS framework and provides calculus features needed for the analysis part of GEMS.

Haplo is a text driven program but has also a graphical equivalent, named xhaplo which uses the CoreGeometry and the GTK+ toolkit.

Haplo is maintained by Nicolas Laurent <>.

You can find more informations about Haplo at this page.

CoreGeometry library

This library implements a 3D display system based on MesaGL (a free implementation of SGI's OpenGL). This 3D system is not like others because it specifically deals with geometrical operations like extrusion, revolution, free path convolution and boolean operations between primitive objects.

The goal of CoreGeometry is to give the user an easy way to build elaborated 3D objects.

You can find more informations about CoreGeometry at this page.

Downloading GEMS

You can download a early version of CoreGeometry and Haplo. A distribution of GEMS (the combination of the two) will be provided soon.

Please realize that this work is at its beginning, so don't blame us too much :-) However, you are welcome to send us comments so we can improve GEMS.

GEMS can be found on or one of the mirrors.

Feel free to contact us:

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to There are also other ways to contact the FSF.

Please send comments on these web pages to, send other questions to

Copyright (C) 1999 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.

Updated: 26 Jul 2000 tower