The Common Geometry Module, Argonne (CGMA)

The Common Geometry Module, Argonne (CGMA) is a code library which provides geometry functionality used for mesh generation and other applications. This functionality includes that commonly found in solid modeling engines, like geometry creation, query and modification; CGMA also includes capabilities not commonly found in solid modeling engines, like geometry decomposition tools and support for shared material interfaces. CGMA is built upon either ACIS or OpenCascade?(OCC) solid modeling engine, but also includes geometry capability developed beside and on top of ACIS or OCC. CGMA can be used as-is to provide geometry functionality for codes needing this capability. However, CGMA can also be extended using derived classes in C++, allowing the geometric model to serve as the basis for other applications, for example mesh generation. CGMA is supported on various computing platforms, including parallel computers.

CGMA is derived from the Common Geometry Module (CGM) developed at Sandia National Laboratories. CGMA was forked from CGM shortly after the release of CGM 10.2. Depending on whether Sandia continues to release CGM along with new releases of CUBIT, CGMA may or may not stay current with CGM. Features will be added to CGMA which likely won't make their way back into CGM, again depending on what Sandia decides to do. CGM serves as a basis for the  CUBIT code, and can be obtained in source code form  here.

CGMA should be able to read and restore geometry created in CGM and CUBIT. CGMA is maintained in a world-readable bitbucket repository If you would like to participate in the development of CGMA, contact Tim Tautges for getting write access to the CGM repository, and request an account by browsing (list Tim Tautges as the account sponsor, and request the SVN/Trac resource).


CGMA can be compiled with or without the ACIS modeling engine. In addition, the decision about whether to enable ACIS in CGMA can be made by the application at compile time, or even at run time if the appropriate share library magic happens. In its most widely used configuration, though, CGMA usually incorporates ACIS. To build CGMA, therefore, one usually needs the ACIS libraries and the CGMA code which calls ACIS.

Because of license restrictions on code calling ACIS functions, we are not allowed to release the CGMA-ACIS code under an open source license. If you would like this code, you must contact the CUBIT project at Sandia National Laboratories (cubit-dev@…) and request the code, and be prepared to prove you have an ACIS license.

Alternatively, CGMA can be linked to the ACIS libraries through the CUBIT code. To accomplish this, pass the --with-cubit= option to the CGMA configure script, pointing it to the directory containing the CUBIT bin/ and lib/ subdirectories. NOTE: OUR CURRENT TRUNK CODE IS WORKING WITH CUBIT14.0. To obtain a license for the CUBIT code, see the  CUBIT licensing web page.

Open.Cascade Port

The port to the  Open.Cascade open-source modeling engine is ready for friendly testing. See  the README file for build instructions and a list of functionality currently supported. Query and modify capabilities are available, with the latter an incomplete set but growing towards completion. Send any questions or problems to the cgma-dev email list (see below).


CGM version 12.2.0: CGM version 12.2.0 was released in March 2012; see the download link below.
CGM version 13.1.1: CGM version 13.1.1 was released in December 2013; see the download link below.


If you use CGMA, please be kind enough to send us a note about how you're using it, to cgma-dev _at_ Feel free to send any bug reports and suggested improvements there too!


See here for the release policies used for CGM.

 CGM 13.1.1
Released December, 2013. This is a compatible release to cubit13.1.
 CGM 12.2.0 (Release notes?)
Released March 23, 2012
 Version 12.2.0b1
First beta for version 12.2.0. Still ironing out some of the bugs, but we're getting close enough that this might be useful. New features include a mostly-working Open.Cascade port and compatibility with Cubit 12.2.


 cgm13.1 branch
Nightly tarball from CGM's cgm13.1 branch
 cgm12.2 branch
Nightly tarball from CGM's merge-cubit12.2 branch
Nightly tarball from CGM's trunk
 Waterfall from Buildbot
nightly builds in various configurations, on trunk, cgm13.1 or mergecubit12.2 branch


As of March 2014, repository moved to bitbucket


  • Nightly shared builds of CGM, MOAB, Lasso and PyTAPS are available for use on in /disk/itaps-buildslave/packages/.
  •  PyTAPS, a Python implementation of iGeom that can be used with CGM.

Mailing lists

There are two mailing lists for CGMA:

CGMA-announce ( subscribe |  archives)
For general announcements, e.g. releases
CGMA-dev ( subscribe |  archives)
The nitty gritty details, including svn checkin messages

To send a message, send it to CGMA-announce _at_ or CGMA-dev _at_



Building CGM
How to build CGM from scratch, with dependencies, on other platforms, etc.
Building OpenCASCADE 6.5
How to build Open.CASCADE 6.5 for use under CGM
Building OpenCASCADE 6.6.0
How to build Open.CASCADE 6.6.0 for use under CGM
Installing PyTAPS
How to install PyTAPS and configure CGM (and other libraries) for use with PyTAPS


Frequently Asked Questions about CGM
User's Guide ( pdf |  html)
User's Guide for CGM
 CGM seminar
Slides from a seminar about CGM at Sandia
 CGM paper
Taken from Engineering with Computers, 17:3 (2001)