A list of open source software that actually gets used in construction, building and infrastructure work — and, just as importantly, an honest note on what each one is not good for.
Most lists in this space are written by people who have never had to explain a schedule slip. This one is narrower on purpose: every project here has been checked against the GitHub API for its licence, language, last commit and archived status, so you can see at a glance whether you are looking at something maintained or something abandoned in 2019.
- Licence and activity are read from the API, not typed by hand. Both matter more than star counts. A permissive licence (MIT, Apache-2.0, BSD) lets you embed the code in something you sell; a copyleft licence (GPL, AGPL) usually does not, without obligations you should read properly. AGPL in particular catches people who only plan to offer a hosted service.
- "Last commit" is the abandonment check. Anything that has not moved in two years is either finished or forgotten, and you should find out which before you build on it.
- Stars measure attention, not fitness. A popular library with the wrong licence for your product is still the wrong library.
- The caveat column is the point. Every tool here is good at something narrower than its README suggests.
- Nothing here is a recommendation for a specific project. Validate against your own work, your own data and your own contracts.
80 projects checked against the GitHub API on 2026-09-28. Licence, language, last commit and archived status are read from the API, not typed by hand.
Model authoring, IFC parsing and model servers. The strongest open source area in construction.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| IfcOpenShell | IFC toolkit in C++ and Python, and the home of Bonsai, a Blender-based BIM authoring environment | Scripting knowledge helps a lot; the Blender interface is not a drafting package | LGPL-3.0 | C++ | 2026-09-28 |
| BIMserver | Self-hosted IFC model server with revision control and notifications | Java, heavyweight, and the operational effort is real | AGPL-3.0 | Java | 2026-03-13 |
| web-ifc | WebAssembly IFC parser for the browser: geometry and properties at full speed | Parsing only; you bring the interface and the workflows | MPL-2.0 | TypeScript | 2026-09-28 |
| Speckle | Open data platform that moves geometry and data between AEC tools | Server to run; check the licence for commercial hosting | custom | TypeScript | 2026-09-24 |
| ThatOpen Components | Web components for viewing, measuring and coordinating IFC models in a browser | The successor to IFC.js and still moving; pin your versions | MIT | TypeScript | 2026-09-25 |
| xBim Essentials | .NET toolkit for reading, writing and querying IFC | The .NET option; smaller community than IfcOpenShell | custom | C# | 2026-08-28 |
| BIMsurfer | Browser-based IFC viewer used by BIMserver | A viewer, not a coordination or clash tool | MIT | JavaScript | 2025-12-30 |
| xBim Windows UI | Windows desktop IFC viewer, validation and model tools | Desktop .NET heritage; check the release cadence before depending on it | custom | C# | 2026-08-24 |
| xBim WebUI | Web-based IFC model viewer from the xBim project | Viewer only; lighter maintenance than the desktop stack | custom | TypeScript | 2025-10-31 |
| Bldrs Share | Browser IFC review and collaboration, with links you can share | Young project; validate against your own models first | AGPL-3.0 | JavaScript | 2026-09-26 |
Drawing production, and the PDF and OCR plumbing most document workflows end up needing.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Stirling PDF | Self-hosted PDF toolbox: merge, split, stamp, OCR, redact, compress | General purpose; it knows nothing about sheets and revisions | custom | Java | 2026-09-28 |
| PaddleOCR | OCR with strong layout and table understanding | Model downloads and GPU expectations; keep documents in-house | Apache-2.0 | Python | 2026-09-16 |
| Tesseract | The OCR engine behind most document digitisation | Accuracy collapses on stamped, folded, hand-annotated drawings | Apache-2.0 | C++ | 2026-09-28 |
| pdf.js | PDF rendering in the browser; the base layer of most web drawing viewers | Rendering and forms, not measurement or markup workflows | Apache-2.0 | JavaScript | 2026-09-25 |
| FreeCAD | Parametric 3D CAD with BIM, FEM and drawing workbenches | Real learning curve; a modelling tool rather than a construction platform | LGPL-2.1 | C++ | 2026-09-28 |
| PyMuPDF | Fast PDF parsing, text extraction and manipulation in Python | AGPL for the free tier: check before embedding in a product | AGPL-3.0 | Python | 2026-09-27 |
| pdfplumber | Extracts text, tables and coordinates from PDFs | Text-based PDFs only; scanned sets need OCR first | MIT | Python | 2026-08-06 |
| LibreCAD | 2D CAD for drawing production | 2D only, and DWG support is weaker than DXF: convert first | custom | C++ | 2026-09-28 |
| Camelot (archived) | Pulls tables out of PDFs into dataframes | Merged cells and borderless tables defeat it | custom | Python | 2023-01-05 |
| QCAD | 2D CAD with a mature DXF/DWG engine | Community edition is GPL; some features are paid editions | custom | C++ | 2026-09-27 |
| ezdxf | Python library to read, write and automate DXF drawings | A library, not a CAD interface; excellent for drawing QA scripts | MIT | Python | 2026-08-26 |
Document management and archives, one step removed from proper EDMS.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Paperless-ngx | Scans, indexes and archives documents with tags and full-text search | An archive, not an EDMS: no transmittals, revisions or approval workflow | GPL-3.0 | Python | 2026-09-28 |
| BookStack | Wiki-style knowledge base for procedures and O&M documentation | Uncontrolled documentation: not a substitute for a document control system | MIT | PHP | 2026-09-28 |
| Mayan EDMS | Document management with metadata, versioning and workflow | Setup effort is high and the interface shows its age | custom | Python | 2026-05-23 |
Gantt and CPM tools, plus the optimisation libraries you build a scheduler on.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| OpenProject | Project management with Gantt charts, work packages, budgets and costs | Not a CPM engine: no float analysis or claim-grade schedule reporting | GPL-3.0 | Ruby | 2026-09-28 |
| OR-Tools | Google's optimisation toolkit, including CP-SAT for scheduling and sequencing | You supply the model; it is not a scheduling application | Apache-2.0 | C++ | 2026-09-27 |
| GanttProject | Desktop Gantt charting and critical path scheduling | Basic resource handling; not scaled to multi-job construction programmes | GPL-3.0 | Java | 2026-09-25 |
| TaskJuggler | Text-based project planning with real resource levelling | Batch and syntax-heavy; you edit a plan file rather than a chart | GPL-2.0 | Ruby | 2025-07-28 |
Forms, inspections and field records on a phone, without a commercial platform.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| ODK Collect | Android client for filling in ODK forms offline and syncing later | Android only; iOS needs a replacement in the field | custom | Kotlin | 2026-09-24 |
| ODK Central | Self-hosted server for mobile field forms, submissions and exports | Not construction-aware: you design the forms and the workflow | Apache-2.0 | JavaScript | 2026-09-23 |
| KoboToolbox | Form builder and data collection platform with a mature offline story | The hosted service is the easy path; self-hosting is real work | AGPL-3.0 | Python | 2026-09-26 |
Photogrammetry, point clouds and the libraries that process them.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Open3D | Point cloud, mesh and registration algorithms in Python and C++ | A library, not an application; you build the workflow | custom | C++ | 2026-09-16 |
| Meshroom | Photogrammetry with a node-based graphical interface | GPU hungry, and photogrammetry is not measurement-grade surveying | custom | Python | 2026-09-27 |
| COLMAP | Structure-from-motion and multi-view stereo photogrammetry | Research-grade interface; command line heavy | custom | C++ | 2026-09-27 |
| OpenDroneMap | Turns drone imagery into maps, point clouds and 3D models | Needs good overlap and ground control; outputs still need QA against survey | AGPL-3.0 | Python | 2026-09-16 |
| Potree | Web viewer for very large point clouds | Display and navigation only | custom | JavaScript | 2026-01-08 |
| CloudCompare | Inspect, compare, measure and clean point clouds and meshes | Desktop tool with no project database or audit trail | custom | C++ | 2026-09-27 |
| PDAL | Point cloud data abstraction with pipeline processing | Format and pipeline plumbing rather than end user tooling | custom | C++ | 2026-09-24 |
| laspy | Read and write LAS and LAZ point cloud files in Python | File format plumbing; pair it with something that analyses | custom | Python | 2026-05-30 |
Site mapping, terrain and coordinate reference systems.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| QGIS | Desktop GIS used for site mapping, earthwork volumetrics and utility records | Not CAD: plan production and sheet setup are limited | GPL-2.0 | C++ | 2026-09-28 |
| GDAL | The geospatial translation and processing library under almost everything else | Command line and API only; unglamorous and everywhere | custom | C++ | 2026-09-26 |
| GeoServer | Serves map layers over OGC web services to browsers and apps | Java stack with real operational overhead | custom | Java | 2026-09-25 |
| pyproj | Coordinate reference system transformations in Python | Choosing the wrong CRS is still your problem, silently | MIT | Python | 2026-09-16 |
| WhiteboxTools | Terrain, hydrology and raster analysis for earthwork and drainage | Terrain analysis focus; not a survey adjustment tool | MIT | Rust | 2026-05-26 |
Section, frame and nonlinear analysis for engineers who script.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| OpenSees | Nonlinear structural analysis, widely used in earthquake engineering | Research-grade complexity and steeper than a frame tool | custom | C++ | 2026-09-25 |
| PyNite | 3D frame finite element analysis in Python | Frame elements; it is not a design code checker | MIT | Python | 2026-09-24 |
| sectionproperties | Cross-section properties, stress and capacity calculations | Sections only, not whole-structure behaviour | MIT | Python | 2026-04-16 |
| anaStruct | 2D frame and truss analysis with plotting | Two dimensions only; teaching to practice grade | LGPL-3.0 | Python | 2026-09-25 |
| COMPAS | Computational framework for structural geometry, analysis and fabrication | Python, research-flavoured, and its own learning curve | MIT | Python | 2026-09-08 |
| OpenSeesPy | Python interface to OpenSees for scripting analyses | The packaging and docs repository for OpenSeesPy; same complexity as OpenSees | custom | C++ | 2026-08-18 |
Simulation and assessment engines: energy, daylight, CFD, LCA.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| OpenFOAM | CFD for wind, smoke, ventilation and airflow studies | Specialist tooling: meshing, not modelling, is the hard part | custom | C++ | 2026-09-25 |
| EnergyPlus | Whole-building energy simulation, the reference engine in the field | Input files are unforgiving; garbage in, garbage out at scale | custom | C++ | 2026-09-25 |
| CoolProp | Thermophysical property database for HVAC and refrigeration calculation | A library; the engineering judgement stays with you | MIT | C++ | 2026-09-28 |
| OpenStudio | SDK and tooling around EnergyPlus for modelling workflows | Version drift between SDK, GUIs and measures is a known pain | custom | C++ | 2026-09-22 |
| eemeter | Normalises meter data into energy savings figures | Aimed at utility programme evaluation rather than site work | Apache-2.0 | Python | 2026-09-09 |
| Ladybug | Climate, sun, wind and comfort analysis from weather data | Grasshopper-centric in practice | AGPL-3.0 | Python | 2026-09-22 |
| Radiance | Daylight and lighting simulation | Decades-old interface; script it or use it through Honeybee | none declared | Shell | 2026-08-20 |
| Honeybee | Daylight and energy modelling built on Radiance and EnergyPlus | Needs Grasshopper or Python skill; not a design tool by itself | GPL-3.0 | Python | 2022-12-27 |
| Brightway | Python framework for life cycle assessment (Brightway 2.5) | Version churn is real: 2.5 and 2.x are not interchangeable | BSD-3-Clause | Jupyter Notebook | 2025-11-27 |
Detection and segmentation tooling, and the datasets that come with it.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Ultralytics YOLO | Object detection and segmentation; the usual starting point for PPE and progress detection | You must train on your own site imagery; published models do not transfer for free | AGPL-3.0 | Python | 2026-09-28 |
| Segment Anything | Promptable image segmentation | Check the weights licence for commercial use before building on it | Apache-2.0 | Jupyter Notebook | 2024-09-18 |
| Detectron2 | Detection and segmentation toolkit from Meta AI | Research maintenance cadence; expect to pin versions | Apache-2.0 | Python | 2026-08-19 |
| RoadDamageDetector | Road damage image dataset and detection baselines | One country's roads: treat it as a benchmark, not a trained model for your site | MIT | Jupyter Notebook | 2025-10-23 |
General ERPs you can shape into job costing, and accounting basics.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Odoo | ERP with project, timesheet and analytic accounting | Community edition has no construction apps; licensing differs between editions | custom | Python | 2026-09-28 |
| ERPNext | Open ERP with projects, timesheets, purchasing and accounting | Not construction-native: no AIA billing, WIP schedule or retainage without customisation | GPL-3.0 | Python | 2026-09-28 |
| Dolibarr | ERP and CRM for small organisations, with invoicing and projects | Job costing is thin for construction | GPL-3.0 | PHP | 2026-09-27 |
| GnuCash | Double-entry accounting for small businesses | No job costing at construction scale; fine for a tiny outfit only | custom | C | 2026-09-27 |
| Tryton | Modular ERP with accounting, projects and timesheets | You build the construction layer yourself | none declared | Python | 2026-09-27 |
Project tracking, wikis, files and chat for the office and the site trailer.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| Plane | Issue and project tracking with cycles and modules | Generic project tooling; no construction workflow built in | AGPL-3.0 | TypeScript | 2026-09-27 |
| Outline | Team knowledge base for procedures and standards | A wiki; discipline still decides whether it stays current | custom | TypeScript | 2026-09-27 |
| Mattermost | Self-hosted team chat with file sharing and integrations | Ops burden, and the mobile app matters on site | custom | TypeScript | 2026-09-28 |
| Nextcloud | Self-hosted file sharing, document collaboration and office integration | File sharing, not document control: no transmittals or revisions | AGPL-3.0 | PHP | 2026-09-28 |
| Zulip | Threaded team chat, which suits project discussions better than channels | Operational effort to host; adoption is the real risk | Apache-2.0 | Python | 2026-09-28 |
| Vikunja | Self-hosted task and project lists | Lightweight by design; no scheduling or costing | AGPL-3.0 | Go | 2026-09-28 |
Shop automation and robot middleware, where the field robotics work starts.
| Project | What it does in a construction workflow | Caveat | Licence | Language | Last commit |
|---|---|---|---|---|---|
| OctoPrint | Web control for 3D printers | Prototyping and small-scale fabrication | AGPL-3.0 | Python | 2026-09-25 |
| ROS 2 | Robot middleware: perception, navigation and control architecture | Robotics engineering, not construction work; the field is hard | none declared | unknown | 2026-09-26 |
| Navigation2 | Navigation and path planning stack for mobile robots | Assumes a known map and an engineered environment | custom | C++ | 2026-09-22 |
| grbl | Motion control firmware for CNC machines | Firmware for hobby and small machines | custom | C | 2024-06-12 |
| LinuxCNC | Machine control for CNC fabrication equipment | Shop fabrication rather than site work | GPL-2.0 | Python | 2026-09-28 |
| Universal Gcode Sender | Sends G-code to CNC controllers | Shop tooling; not a production control system | GPL-3.0 | Java | 2026-09-28 |
Not software, but you will need them, and they belong in the same bookmarks.
| Resource | What it is | Caveat |
|---|---|---|
| openLCA | Life cycle assessment software, open source but distributed outside GitHub | Result quality depends on the database you licence, not on the software |
Worth saying plainly, because the gaps are where the commercial software earns its money:
- No construction-native ERP. General ERPs can be shaped into job costing, but AIA-style billing, retainage, WIP schedules and cost-to-complete discipline are not there out of the box.
- No credible open source quantity takeoff with pricing. You can extract quantities from a model, and there are good tools for that. Turning quantities into a priced estimate with means, methods and risk is still a commercial product or a spreadsheet.
- No claim-grade CPM. Gantt tools exist; float analysis, time impact analysis and contemporaneous delay records are not open source.
- No document control. Archives and wikis are not transmittals, revisions and approval workflows. EDMS projects get close and then are not construction-aware.
- Thin construction-specific analytics. Reality capture, GIS and ML tooling are strong; the layers that turn them into a progress measurement or a productivity read still mostly get written in-house.
That list is also a fair summary of where a small team could contribute something genuinely useful.
Before you put any of it on a live job, answer these five questions:
- Is it somebody's day job? A project with one maintainer and no employer behind it is a project you are now co-maintaining.
- What is the licence, and what does it oblige you to do? Check the licence file itself, not just the SPDX badge.
- Can you get your data out? Ask what the export looks like before you put project data in.
- What does it cost to run? A server, a database and a GPU are operational commitments, not downloads.
- Who supports it when it breaks on a Friday? If the answer is "the community", plan for the delay.
python3 scripts/refresh.py # re-verify every entry against the GitHub API and rebuild the index
python3 scripts/validate.py # check the sources file, the index and this README agreescripts/refresh.py is the only thing that writes the index block above: it queries the GitHub API for each
project and refuses to invent metadata. Entries that stop answering stay listed, visibly, under
Not verifiable right now rather than being quietly deleted. A scheduled workflow re-runs the refresh weekly.
Add a row to sources/tools.csv and run the refresh. Rules:
- The project must be verifiable — a live repository or a real project page.
- The caveat is mandatory. If you cannot say what a tool is bad at, you have not used it.
- No dead projects without an honest note, no abandonware dressed as active, no "AI-powered" entries with nothing behind them.
- Construction relevance, not general software: a task tracker qualifies only if you can point at the construction workflow it serves.
The list itself is CC BY 4.0 — use it, adapt it, credit it. The projects listed keep their own licences, which are shown per row and belong to their authors.
Open construction resources from the same team, all maintained alongside this one:
| Repository | What it is |
|---|---|
| AI in construction | A practical guide to AI in construction: what works today, what the data has to look like, the risks, and a 90-day plan. |
| Construction data migration | A guide and toolkit for moving a contractor between systems, and proving nothing was lost. |
| Construction project records | Open schemas, templates and a checker for RFIs, submittals, change events, daily reports and punch lists. |
| Construction reference data | Cost codes, units, waste factors, pay units, trade sequence, glossary and metric formulas in CSV. |
| Construction reference MCP server | An offline MCP server that gives AI assistants construction reference data and calculators. |
| Construction prompts | 28 prompts for ChatGPT, Claude and Gemini, from bid go/no-go to notice letters. |
| Construction agent skills | 28 installable agent skills for Claude Code and any agent that reads SKILL.md. |
Maintained by Constructelligence — building the AI infrastructure for construction.