BIMCraft
MIT OR Apache-2.0The building model's engine: walls, doors, floors, roofs, rooms, plans, sections and 3D, in the editor and on the server. Copyright (c) 2026 IPedrax and the BIMCraft contributors.
BIMCraft's Revit file reader (bimcraft-rvt)
Copyright (c) 2026 IPedrax and the BIMCraft contributors
Licensed under the Apache License, Version 2.0 (see LICENSE).
==============================================================================
Code ported from rvt-rs
==============================================================================
Parts of this crate are ported from rvt-rs, an open reader for Autodesk Revit
files, https://github.com/DrunkOnJava/rvt-rs, which carries this notice:
rvt-rs: open reader for Autodesk Revit files
Copyright 2026 Griffin Long
Licensed under the Apache License, Version 2.0 (see LICENSE).
The version ported from is commit b6086d41b9758fd9b92f42f0a47b8345b9c58056
(after the v0.6.1 tag). What was taken, and from which file, is listed module by
module in docs/rvt-provenance.md. Every source file that holds ported code names
its rvt-rs source file and that commit in a header, and states that it was
changed: the code was rewritten for BIMCraft (no panics, explicit size limits,
no dependencies beyond cfb, flate2 and memchr, a different structure), and the
format findings it applies were checked again on sample files.
This notice carries only what Apache License 2.0 section 4(d) asks of a
derivative work: rvt-rs's attribution notices. Its statements about the legal
basis of reverse engineering are its own and are not repeated here; see
docs/rvt-provenance.md for how this project states the risk.
==============================================================================
Trademarks
==============================================================================
"Autodesk" and "Revit" are registered trademarks of Autodesk, Inc. This project
is not affiliated with, endorsed by, or sponsored by Autodesk. The names appear
only to identify the file format this reader parses.
This crate contains no Autodesk source code, object code, SDK components or
header files, and no content taken from inside an Autodesk file (families,
templates, icons, help text). It reads a file the user gives it and never
bundles or extracts assets for the project.
==============================================================================
Third-party dependencies
==============================================================================
cfb MIT reads the Compound File (OLE) container
flate2 MIT OR Apache-2.0 inflates Revit's gzip streams
memchr Unlicense OR MIT byte search
See each dependency's own licence for its terms.
Plugins run in wasmi, a WebAssembly interpreter in Rust (MIT OR Apache-2.0);
its own dependencies are wasmi_core, wasmi_ir and wasmi_collections (MIT OR
Apache-2.0), wasmparser (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT),
hashbrown (MIT OR Apache-2.0), foldhash (Zlib), spin (MIT), string-interner
(MIT OR Apache-2.0), leb128fmt (MIT OR Apache-2.0), bumpalo (MIT OR Apache-2.0)
and libm (MIT). The guest SDK (crates/plugin-sdk) has no runtime of its own.
==============================================================================
DWG drawings: acadrust and ACadSharp
==============================================================================
The desktop app and the command line, built with their default `dwg` feature,
read DWG drawings through BIMCraft's bridge (crates/dwg, MIT OR Apache-2.0),
which uses the acadrust crate, version 0.6.6, unmodified, as a separate
library:
acadrust MPL-2.0 reads DWG files
by Hakan AK (its authors, as its manifest names them)
https://github.com/hakanaktt/acadrust
https://crates.io/crates/acadrust/0.6.6
The Mozilla Public License 2.0 applies to acadrust's own files only. Their
source, unchanged, is at the addresses above; the licence's text is at
https://mozilla.org/MPL/2.0/. A build without the `dwg` feature
(`--no-default-features`) holds none of it.
acadrust's DWG reader holds code ported from ACadSharp, which carries this
notice:
Copyright (c) 2021 Albert Domenech
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
acadrust reads its text encodings through the encoding_rs crate ((Apache-2.0 OR MIT) AND BSD-3-Clause, by Henri Sivonen), whose
data tables from the WHATWG Encoding Standard carry the BSD 3-Clause licence:
Copyright © WHATWG (Apple, Google, Mozilla, Microsoft).
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"AutoCAD" and "DWG" are trademarks of Autodesk, Inc. BIMCraft is not
affiliated with, endorsed by, or sponsored by Autodesk; the names identify the
file format read. No Autodesk code or content is used.
==============================================================================
IBM Plex, the desktop app's lettering
==============================================================================
The desktop app (bimcraft) letters its windows in two fonts that are built into its executable (crates/ui-egui/src/style.rs
includes them when it is compiled). They are kept in assets/fonts of the source:
IBM Plex Sans, the variable font, Version 3.201
assets/fonts/ibm-plex-sans/IBMPlexSans-Variable.ttf, 537244 bytes
sha256 3b031aa4216174205bd8471f88a49b91f093169e9e87bd5262242bc5967fe2e3
its name table says: Copyright 2019 IBM Corp. All rights reserved.
IBM Plex Mono Regular, Version 2.3
assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.ttf, 135580 bytes
sha256 6a3412f058c7d8dfd9170c41e85ade48e5156ecb89356110ca57a0a27734af46
its name table says: Copyright 2017 IBM Corp. All rights reserved.
The notice that heads the licence file beside each of them reads:
Copyright (c) 2017 IBM Corp. with Reserved Font Name "Plex"
These Font Software files are licensed under the SIL Open Font License, Version 1.1. Its text is in
assets/fonts/ibm-plex-sans/OFL.txt and assets/fonts/ibm-plex-mono/OFL.txt (the same text, one beside each font), and every
copy of BIMCraft carries it: in a package the two files are fonts/ibm-plex-sans/OFL.txt and fonts/ibm-plex-mono/OFL.txt
beside this file (in the Linux packages under /usr/share/doc/bimcraft, in the macOS app in Contents/Resources).
BIMCraft does not change the fonts: it picks a weight of the variable font when it draws, and that is all. "Plex" is a
Reserved Font Name, so the fonts keep it. "IBM Plex" is a trademark of IBM Corp, registered in many jurisdictions worldwide.
The place the two files were obtained from was not recorded when they were added.