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
Entwine Entwine is a data organization library for massive point clouds, designed to conquer datasets of trillions of points as well as desktop-scale point clouds. Entwine can index anything that is PDAL-readable, and can read/write to a variety of sources like S3 or Dropbox. Builds are completely lossless, so no points, metadata, or precision will be discarded even for terabyte-scale datasets. LGPL-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 logo.png 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
libdxfrw ""libdxfrw is a free C++ library to read and write Drawing Exchange Format (DXF) files in both formats, ascii and binary form. Also can read Drawing_(DWG) files from R14 to the last V2015." It is the default DXF/DWG library for LibreCAD GPL-3.0
LibreDWG.png 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
Nucleus ".NET Unifying Class Library for Engineering Utility Software. .Nucleus is an open-source .NET library intended as a generalisable base framework for the development of custom BIM and structural engineering workflow tools. It forms the core underlying class system of Salamander 3 and several internal Ramboll software projects." 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
PDAL PDAL PDAL (Point Data Abstraction Library) is a C++ BSD library for translating and manipulating point cloud data. In addition to the library code, PDAL provides a suite of command-line applications that users can conveniently use to process, filter, translate, and query point cloud data. BSD
pythonocc-core Pythonocc provides 3D modeling and data exchange features. It is intended to CAD/PDM/PLM and BIM related development. 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
K3D-Jupyter K3D lets you create 3D plots backed by WebGL with high-level API (surfaces, isosurfaces, voxels, mesh, cloud points, vtk objects, volume renderer, colormaps, etc). The primary aim of K3D-jupyter is to be easy for use as stand alone package like matplotlib, but also to allow interoperation with existing libraries as VTK. MIT License
LidarView LidarView performs real-time visualization and easy processing of live captured 3D LiDAR data from Lidar sensors. Runs on Windows, Linux and MacOS. Contrasting to VeloView (that Kitware develops with Velodyne), it provides experimental algorithms and features, but you may expect LidarView to crash in some situations. Apache-2.0 License