COMPAS

An open source Python-based framework for computational research in Architecture, Engineering and Digital Fabrication.

The fundamental principle behind COMPAS is to provide to the research community a computational core that is independent of a specific CAD ecosystem and can be used in various environments across platforms.

Research and development based on COMPAS can therefore take better advantage of the available state of the art libraries for, for example geometry processing or robotic control, while maintaining compatibility with various software tools of the AEC industry. As a result, researchers can develop their work more freely and interact more easily with researchers from other fields, and with partners from industry.

The goal is to facilitate collaboration across disciplines and break the endless cycle of reinvention of methods and algorithms due to the lack of transparency and reproducibility of research in our field.

Core

The main library of COMPAS provides flexible data structures, a geometry processing library, robot fundamentals, numerical solvers, and various other components as a base framework for computational research.

CAD Integration

CAD tools are everywhere in Architecture, Engineering, Fabrication, and Construction (AEFC), both in research and in practice. COMPAS provides a consistent interface for visualising and interacting with data structures, and for working with geometry, in Blender, Rhino, RhinoMac, and Grasshopper.

Geometry Formats

To simplify the exchange between CAD systems, COMPAS supports several 3D geometry file formats for loading and saving 3D geometry. Currently, the following formats are supported: OBJ, OFF, PLY, STL, GLTF, URDF.

Data IO

Using flexible data management with Python dictionaries and json serialisation, instances of COMPAS data structures and geometry objects can be saved to disk, sent over a network or to a subprocess, and reloaded witout loss of information.

Plugins, Extensions, Tools

In addition to the core library, COMPAS provides an ever-growing collection of plugins, extensions, and tools.

Plugins are packages developed and maintained by the core development team (compas-dev) that provide missing functionality or faster alternatives to (pure Python) COMPAS core algorithms, often by wrapping state of the art, external libraries. Examples of plugins are compas_triangle, compas_libigl, and compas_cgal.

Extensions are packages built on top of the core library, and potentially some of its plugins, to provide entirely new functionality to the framework related to specific fields in the AEFC industry. Examples are COMPAS FAB and COMPAS FEA.

Tools focus on providing user interfaces for all of the above. RhinoVAULT 2 is the first example of a UI-based tool built entirely with packages and functionality from the COMPAS ecosystem.

Last updated