Extensions
COMPAS provides many extensions that supplement the functionality of the core library, and provide access to state-of-the-art research in the fields of geometry processing, form finding, digital fabrication, discrete element modelling, finite element analysis, and many more. Here, the extensions are listed that are managed by the core development team. Extensions contributed by the community can be found at …

Core Extensions
The core extension packages are COMPAS-friendly Python wrappers for libraries written in other languages, or for their Python bindings.
In many cases, the functionality of the extensions is implemented as plugins for the pluggable functions of COMPAS core.
It can be therefore be used from compas
using the pluggables, or, of course, directly from the extension packages themselves.
A list of pluggables in COMPAS core is available here: Pluggables.

compas_cgal is a Python binding (generated with PyBind11) for a selection of algorithms of CGAL, The Computational Geometry Algorithms Library. Among other things, the package provides implementations for the pluggables for boolean operations, triangulation, remeshing, and mesh slicing.

compas_gmsh is a wrapper for the Python binding of Gmsh, A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities, and provides high quality 3D meshing functionality for Finite Element Analysis applications.

compas_libigl is a Python binding (generated with PyBind11) for a selection of algorithms of Libigl, the geometry processing library of the Interactive Geometry Lab. The package supplements the official Python binding of Libigl, and provides functionality that is easier to use in combination with COMPAS.

compas_occ is a wrapper for the Python binding of OpenCascade and provides support for NURBS geometry and Boundary Representations (BREPs), independently of Rhino.

compas_triangle is a wrapper for the Cython implementation of Jonathan Shewchuck’s Triangle library, a Two-Dimensional Quality Mesh Generator and Delaunay Triangulator.
CAD Interfaces
COMPAS can be used in any environment that supports Python. This means that it can be used in many CAD applications in combination with the CAD-specific Python scripting API, if available. For some CAD applications, the core development team provides a dedicated extension package that provides a more specific bridge between COMPAS and the CAD application.
compas_blender is a bridge between COMPAS and Blender. It provides functionality to convert between data structures in COMPAS and Blender, and to load and save geometry from and to files in the Blender format.
compas_ghpython is a bridge between COMPAS and Blender. It provides functionality to convert between data structures in COMPAS and Blender, and to load and save geometry from and to files in the Blender format.
compas_rhino is a bridge between COMPAS and Blender. It provides functionality to convert between data structures in COMPAS and Blender, and to load and save geometry from and to files in the Blender format.
AEC Tools

Robotic fabrication package facilitating the planning and execution of robotic fabrication processes. It provides interfaces to existing software libraries and tools available in the field of robotics (e.g. OMPL, ROS) and makes them accessible from within the parametric design environment.

Finite Element Analysis package providing an easy-to-use modelling language for FEA problems, and the possibility to use different backend solvers from a single problem description.


