Free software libraries for AEC software development
From Wiki.OSArch
Icons | Name | Description | License |
---|---|---|---|
Assimp Open Asset Import Library | A library to import and export various 3d-model-formats (including IFC) including scene-post-processing to generate missing render data. APIs are provided for C and C++. Includes bindings to C#, Java, Python, Delphi, D, Android and iOS. Additionally, assimp features various mesh post processing tools. | BSD | |
bcfplugin | bcfplugin is a Python library that allows reading and writing of BCF data, compliant with the BCF-XML 2.1 specification. | LGPL-2.1 | |
CesiumJS | CesiumJS is an open source JavaScript library for creating world-class 3D globes and maps with the best possible performance, precision, visual quality, and ease of use. Developers across industries, from aerospace to smart cities to drones, use CesiumJS to create interactive web apps for sharing dynamic geospatial data. | Apache-2.0 | |
CGAL | CGAL is a software project that provides easy access to efficient and reliable geometric algorithms in the form of a C++ library. CGAL is used in various areas needing geometric computation, such as geographic information systems, computer aided design, molecular biology, medical imaging, computer graphics, and robotics. | GPL-3.0 | |
COMPAS | 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 AE(F)C research. | MIT | |
dxflib | DXFlib is an open source C++ library mainly for parsing DXFTM files. | GPL-2.0 | |
ezdxf | A Python package to create and modify DXF drawings, independent from the DXF version. You can open/save every DXF file without losing any content (except comments), Unknown tags in the DXF file will be ignored but preserved for saving. With this behavior it is possible to open also DXF drawings that contains data from 3rd party applications. | MIT | |
Flexible Collision Library | FCL is a library for performing three types of proximity queries on a pair of geometric models composed of triangles: Collision detection, Distance computation, Tolerance verification, Continuous collision detection, and Contact information | BSD | |
IFC.js | Frontend parser between .ifc files and Three.js geometry. This project reads IFC files, structures their data in memory and converts them to Three.js custom geometric entities for display in any browser. | MIT | |
IFC-Commenter | A simple script for creating a commented-out hiearchy in an IFC file. | MIT | |
File::IFC Perl library | File::IFC is a simple IFC parser/generator. It also contains helper functions for generating basic building objects such as walls etc... | GPL-3.0 | |
ifc-syntax-express-parser | A NodeJS Nearley based parser for EXPRESS language files. Commonly used to define IFC data structure versions. | MIT | |
IFC2B3DM | The converter is designed to ultimately convert an IFC file to B3DM to enable object selection and BIM (Building Information Management) in Cesium. | MIT | |
IFC.JSON Viewer | This viewer is part of an open source project that works on IFC files represented in JSON syntax: IFC.JSON files. The viewer is an open-source web-based viewer, relying on Javascript. It allows loading IFC.JSON files and viewing them (3D building models and semantics). Furthermore, data can be queried and subsets can be created for information exchanges in JSON format. | MIT | |
![]() |
IfcOpenShell | IfcOpenShell is a C++ and Python open source software library that helps users and software developers to work with the IFC file format. The IFC file format can be used to describe building and construction data. The format is commonly used for Building Information Modelling. | LGPL-3.0 |
IfcQuery/IFC++ (IfcPlusPlus) | IFC++ or IfcPlusPlus is an open source C++ class model, as well as a reader and writer for IFC files in STEP format. | MIT | |
IfcSharp | The C#-Library of IfcSharp contains interfaces to the IFC model of buildingSMART. You can write IFC models by C#-code or read and write to different formats, including IfcSQL, intended to store and query models as a collection of digital twins | MIT | |
iTowns | iTowns is a Three.js-based JS/WebGL framework for 3D geospatial data visualization. iTowns is highly extensible and based on three.js and thus support all three.js features (post-processing, controls, 3D models and more). Itowns handles a variety of data types, including: 3D tiles, DEM, OGC standards (WMTS, WMS, TMS, WFS), Point Clouds, GeoJSON, Gpx, KML, 3D formats (Collada, GLTF, OBJ, ...). | CeCILL-B v1.0 / MIT | |
![]() |
LibreDWG | GNU LibreDWG is a free C library to handle DWG files. It aims to be a free replacement for the OpenDWG libraries. DWG is the native file format of AutoCAD and a number of other CAD packages. | GPL-3.0 |
MDAL | Mesh Data Abstraction Library (MDAL) is a C++ library for handling unstructured mesh data released with MIT license. It provides a single data model for multiple supported data formats. MDAL is used by QGIS for data access for mesh layers. | MIT | |
NURBS-Python (geomdl) | NURBS-Python (geomdl) is a pure Python, self-contained, object-oriented B-Spline and NURBS spline library for Python. It includes data structures and API for rational and non-rational splines as well as spline/derivative evaluation, knot insertion/removal/refinement, degree elevation/reduction, curve and surface fitting via interpolation and least squares approximation. | MIT | |
OpenCascade | OpenCascade (Community Edition) is a C++ 3D modeling library. It can be used to develop CAD/CAM softwares, for instance FreeCAD or IfcOpenShell. | LGPL-2.1 | |
osgEarth | osgEarth is a C++ geospatial SDK and terrain engine. Just create a simple XML file, point it at your map data, and go! osgEarth supports all kinds of data and comes with lots of examples to help you get up and running quickly and easily. | LGPL-3.0 | |
TerriaJS | TerriaJS is a library for building rich, web-based geospatial data explorers, used to drive National Map, AREMI and NEII Viewer. It uses Cesium and WebGL for a full 3D globe in the browser with no plugins. It gracefully falls back to 2D with Leaflet on systems that can't run Cesium. It can handle catalogs of thousands of layers, with dozens of geospatial file and web service types supported. It is almost entirely JavaScript in the browser, meaning it can even be deployed as a static website, making it simple and cheap to host. | Apache-2.0 | |
ThreeJS | The aim of the project is to create an easy to use, lightweight, 3D library with a default WebGL renderer. The library also provides Canvas 2D, SVG and CSS3D renderers in the examples. | MIT | |
xBIM | The xBIM project offers you the codebase to develop your Building Information Modelling (BIM) solution for commercial, research and open environments. | CDDL | |
xeogl | xeogl is an open source JavaScript library from xeolabs for 3D model visualization on WebGL. It gives you tools to create interactive 3D worlds in your browser. Load models from formats like glTF or OBJ, or generate them programmatically. | MIT |