v0.2.0
v0.2.0
Second published release, five months of work: a local indexed store, a web
GUI (material picker + construction maker), and a full Bonsai (Blender)
integration — installable as a Blender extension repository.
Highlights
- materialsdb-gui: a stdlib-only local web application to browse, filter
and sort all cached materials, inspect them, and export a standalone
.ifcor append into an already-open session. Start it with
materialsdb-gui(orpython -m materialsdb.gui). - Construction maker: compose thermal constructions from materialsdb
materials with live U-value computation (ISO 6946 / SIA 180 surface
resistances), save them as JSON, and export them asIfcMaterialLayerSet. - Bonsai integration (Blender extension,
materialsdb_listener):- extension repository at
https://cyrilwaechter.github.io/python-materialsdb/ — install and
update from Preferences ▸ Get Extensions - start the GUI server from the panel (interpreter configurable in
preferences) - push picked materials straight into the open model (identity + per-layer
property sets, surfaces styles), undoable via Ctrl+Z - push constructions as
IfcWallType/IfcSlabType/IfcRoofTypewith
theirIfcMaterialLayerSet - round-trip: push an existing type's layer set back into the composer,
edit it (even layers whose material is not a materialsdb one — kept as
"model material" placeholders) and push it back into the same set
- extension repository at
- Query store (schema v3): SQLite index of cached materials with
type-aware summaries, fast parsing (3.9-4.7x), cross-producer duplicate
reporting, per-producerver/crdfreshness. - Single-material IFC builder: append one or more materialsdb materials
(or selected layer thicknesses) into an existing ifcopenshell file,
idempotent, or build standalone files.
Fixes & internals
- ruff + ty toolchain, CI (lint/format/type/tests) on push
- store refresh survives corrupt producers; geometry/thermal data resolved
per configured country everywhere - client-disconnect-safe HTTP server; Blender extension zippable with
version injection for releases
Full changelog: v0.1.0...v0.2.0