Release planning

CadCraft 0.9 impact map

Every fix and feature lined up for 0.9, and what each one touches: which apps, and which layers of the stack.

ProjectCadCraft
Sheet0.9 impact
Items273
Date2026-11-09
115Fix
147Feature
4Spike
0Platform
0Site ops
0Sanity check
7Decision
≈ 0days in the written 0.9 plans
  • Planned 0 on the plan for the release it is filed under
  • Built 271 built and working in /lab (the dev builds). Whether the public has it is its reach: "in the lab", "Live" (the last gate) or "switched off"; see docs/REACH-LIVE.md
  • Partly built 1 part of it is built in /lab; the rest waits (see "Waits on")
  • Promised 0 the live site already says it is coming
  • Moved 0 moved here from an earlier release or wishlist
  • Found 0 bug found after a release shipped; fixed in a point release or the next one
  • Candidate 0 recommended in a spike or session log; owner to choose
  • Community please test 0 built and in /use; a Discord post gives the steps and the expected result and asks people to try it on their own devices, files or know-how
  • Decision Time 0 a decision, check, file, key, flag or go only you can give; folds into the list once answered

Built means built and working in the lab. Live means the public can use it, and is the last gate: 270 Built · Live, 1 Built · in the lab.

Sheet 1 · impact areas

Where 0.9 lands

How many items touch each app and each layer, by kind. One item can touch several areas, so the rows add up to more than the item count. Pick a row to filter the schedule below.

Impact areaFixFeatureSpikePlatformSite opsSanity checkDecisionAll
Apps
CadCraft 38 36 – – – – 2 76
BimCraft 27 53 2 – – – – 82
ModelCraft 19 45 2 – – – 2 68
MarkupCraft 16 11 – – – – – 27
TakeoffCraft 18 7 – – – – – 25
CivilCraft 14 32 – – – – – 46
DetailCraft 13 13 – – – – – 26
PartCraft 18 27 1 – – – – 46
Studio 2 5 1 – – – – 8
SuperCad Studio 22 17 – – – – – 39
Layers
Site and services 7 11 – – – – 5 23
Desktop host 1 1 1 – – – – 3
App shell 2 1 – – – – – 3
App code 10 28 3 – – – 3 44
Our engines – 12 1 – – – 1 14
Vendor engines – – – – – – – 0
Drawing surface – – – – – – – 0
Help and words 1 2 – – – – 1 4
Tests and tooling – – – – – – – 0

Sheet 2 · schedule

Every fix and feature

Grouped by track. App chips carry each app’s layer colour; Studio is in ink. "Waits on" names what has to happen first; the small lines under it say who asked and where the item is written up.

Add an item Fork map (Rust and C++ forks) The roadmap

Issues sync every 10 minutes; last sync Nov 9, 2026 7:00 pm.

ItemWhatAppsLayersStatusDaysWaits onIssues
Regional standards 1
FeatureZA.1 Link to ZA.1Comment on ZA.1 South African market: SANS 10143 drawing practice + SANS 10400 building regulations

Sell into South Africa: local practice draws to SANS 10143 (building drawing practice) and builds to SANS 10400 (National Building Regulations). Full note for the 2026-10-26 meeting: docs/0.8-ZA-STANDARDS.md. Today: no SA support. BimCraft residential is hard-coded to US codes (res-stair.js IRC stair limits, res-framing.js 2x lumber + US header table, US egress window, US electrical symbols). Suggested order: 1. Built on REG.1: regulations by jurisdiction as library packs; ZA.1 delivers the South African country packs. 2. SANS 10143 drawing pack: metric mm dims, levels in m, A-series sheets, SA title block (erf, SACAP reg. no.), hatches, symbols, D1/W1 marks. 3. SA residential defaults: 230/280 cavity masonry, SA brick and block, 38x114/38x152 timber, trusses, IBR/tile roofs; Part M stair and Part O window-area checks. 4. Part XA energy check (climate zones 1-6, fenestration, R-values) and an SA municipal submission set export. The differentiator. 5. CivilCraft: Hartebeesthoek94 Lo zones with the Y-westing / X-southing axis flip; SANS 10142 electrical symbols. Business: SANS texts are copyrighted (buy, encode, cite clauses, edition dates); POPIA; ZAR + 15% VAT, regional pricing?; offline/load-shedding is a selling point. Meeting questions: 0.8 market or later? Buy the SANS set? An SA reviewer? Regional pricing? Drawing pack or XA first? Afrikaans? All SANS figures are from memory; check against purchased copies before shipping. LAB SAMPLE (2026-10-25): a small South African pack (stairs, room height, window and openable area) can be seen in /lab/bimcraft under Settings > Building regulations. Its numbers are unchecked.

CadCraftBimCraftCivilCraftDetailCraft App codeSite and servicesHelp and words Built · Live – – From: Owner docs/0.8-ZA-STANDARDS.md Read the doc
Suggestions (Track SX) 25
FeatureSU.1058 Link to SU.1058Comment on SU.1058 Project document manager: check-out, revisions, release states

Asked: a document manager like a paid PDM, without that price (#1058; again #1129: "shouldn't have to pay to manage my own files"). Built (vault-09 2026-11-06, in /lab; docs/0.9-sessions/vault-09.md): the Documents panel over a project folder in CadCraft (View > More > Documents..., or DOCUMENTS), PartCraft and BimCraft (File > Documents...), and so in SuperCad Studio, which hosts them. Check out and in with a lock file two people respect, revision letters (A.1, A.2, A, B.1; ASME skip), states (work in progress, for review, released, obsolete) with the revision table and a revision block on the sheet, history of who did what, where-used and BOM (PartCraft assemblies, xrefs, IFC links), approver list and four eyes (LC.8 merged), title-block fields VAULT.REV/STATE/DATE/APPROVER, read-only guard on Save, cloud folders in Studio (server built). Walkthrough: help topic "Documents and revisions (the vault)" in the three apps. Tested: lib/vault 141, UI 68, bridge 15, cloud 22, TWO REAL PROCESSES on one folder and on a cloud folder 86 (24 of 24 simultaneous check-outs, one winner each), walkthrough buttons 82; real pages 26+26+45 and Super 15; lock_ops.rs 4 under rustc. Found and fixed: BimCraft did not mount in Super. Not built: the sheet set's index does not show each sheet's revision; Open copy and Compare only in CadCraft; the approver is a typed name; no cloud folder in a web tab (Studio first); the commands in desktop-shell are not cargo-compiled (Windows Studio 0.9 build). Real shared-folder check with two people: SU.1058-HAND.

CadCraftBimCraftPartCraftStudio Built · Live 12 – From: site suggestion (Suggestion) docs/0.8-PART2.md (Track SX), from /admin/suggestions 2026-10-27
FeatureSU.1056 Link to SU.1056Comment on SU.1056 Structural follow-up: concrete design, slabs and shear walls, wind and seismic loads

Asked: ETABS as the main program, so a Linux user can switch (#1056, Oct 25). Same family as SU.878 (#878, #754, #859), #908 and #890. Built and reachable in the Analysis panel of BimCraft and DetailCraft: model (members, end releases, slabs, walls, rigid floors, supports), load cases and your own loads (node, member, area pressures), combinations typed by hand or made from ASCE 7 and EN 1990, first-order and P-Delta results (forces, reactions, deflections, plate moments), natural frequencies by finite elements (modal masses, mode shapes), concrete member and slab checks (0.8), seismic equivalent lateral force with drift check (0.8), reports (PDF, CSV). Wind can be entered as your own pressures in a Wind case; every panel says 'not a code check; your engineer reviews the results'. Not built (split to SU.1056b): wind loads made from ASCE 7-22 chapters 26-27 and the code's seismic hazard data. Response spectrum, time history and nonlinear analysis: built (see the last line). Not there: design checks beyond those listed. This is a frame and shell analysis program for the stated ask; it is not ETABS and makes no claim to equal it. mounts-09 2026-11-06: P-Delta help in BimCraft. fem-complete 2026-11-06: modal block wired in both apps, help, tests (docs/0.9-sessions/fem-09.md). dynamics 2026-11-06: response spectrum (CQC, SRSS, ten percent, 100/30 or SRSS directions, table or ASCE 7 shape, optional scale to a typed base shear), time history (modal and Newmark, Rayleigh and modal damping, record file, paste or synthetic), pushover and nonlinear time history by plastic hinges with P-delta. Blocks under Finite elements in BimCraft and DetailCraft; real-building check = SU.1056-HAND. Not built: brace yielding and buckling, hinges inside a span, code checks.

BimCraftDetailCraft Built · Live 18 Wind and seismic hazard by code is SU.1056b; hand check is community test SU.908-HAND (not blocking) From: site suggestion (Suggestion) docs/0.8-PART2.md (Track SX), from /admin/suggestions 2026-10-27
FeatureSU.1123 Link to SU.1123Comment on SU.1123 BimCraft: edit directly in elevation and section views; custom sheet sizes and title blocks; rename families and types

Asked (#1123, Oct 29, a Revit user): edit the project inside elevation and section views (avoids extra sheets), customise sheet formats, rename families and other elements. Do: draw and move walls, openings, levels and annotations in elevation and section views (the plan edit tools run in the view's plane); sheet sizes and title-block templates as library data (name, size, border, fields); rename family, type and element from the browser. Relates to D8.12 (BimCraft working style), DC.117 (views), DC.114 (families on IFC types). **Implementation started 2026-11-02** (0.9 top-5 pick #3, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft Built · Live 12 – From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1125 Link to SU.1125Comment on SU.1125 BimCraft: export the model as Collada (.dae) for Blender and Google Earth

Asked (#1125, Oct 29): export a BIM model to Collada (.dae) for rendering in Blender and viewing in Google Earth. ModelCraft already writes and reads Collada 1.4.1 (io.js exportDAE / importDAE). Do: reuse that writer from BimCraft (elements as nodes with materials, metres, Z up), optional geolocation block for Google Earth, and a test that Blender reads it. **Implementation started 2026-11-02** (0.9 pick #9, second five, hardest first; session `bim-dae-09`, log docs/0.9-sessions/bim-dae-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft Built · Live 3 Owner: open a .kmz in Google Earth Pro and the .dae in Blender 4.x (neither installed here) From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1112 Link to SU.1112Comment on SU.1112 Live in every app: see each other's cursors and names while co-editing

Asked (#1112, Oct 28): collaboration where people see each other's cursors, so working in teams is easier. CadCraft's Live already shows other people's cursors and selections (live.js presence). Do: the same presence layer in the other apps' Live sessions (cursor, name colour, selection), reusing the CadCraft code through the shared Live library. Relates to DC.27 and EG.41. **Implementation started 2026-11-02** (0.9 pick #7, second five, hardest first; session `live-cursors-09`, log docs/0.9-sessions/live-cursors-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49). **Built 2026-11-02** (session `live-cursors-09`, log docs/0.9-sessions/live-cursors-09.md): one shared presence layer (assets/js/live-presence.js, synced by tools/shell/sync.mjs) with a thin adapter in each app's live.js; BimCraft, ModelCraft, TakeoffCraft, CivilCraft, DetailCraft and PartCraft now show cursors, names in the person's color and selections; CadCraft and MarkupCraft keep their own views on the same palette. Tested with two real pages per app (tools/live-apps-test/browser-apps.mjs) and test-presence.mjs.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 6 – From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1119 Link to SU.1119Comment on SU.1119 Environmental analysis: shade studies, daylight, PV yield, wind and outdoor comfort on the site and the building

Asked (#1119, Oct 29): what Autodesk Forma and ClimateStudio give: solar angles, shade studies, interior daylight, PV analysis, wind studies, thermal comfort, auto-generated site information. Already built: sun hours and massing (LC.1), daylight, sun and grid (LC.20), EnergyPlus wasm (0.8). Missing: shade-study images and animations on the site, PV yield on roofs and facades, outdoor comfort (UTCI) from weather files, and wind (the hard one: needs a validated solver, never invented). Candidate: owner chooses. **Implementation started 2026-11-02** (0.9 pick #14, third five, hardest first; session `env-analysis-09`, log docs/0.9-sessions/env-analysis-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49). **2026-11-02 (env-analysis-09):** built in the shared library lib/envir (solar position tested against NREL SPA and Meeus, shade study with sun/shade-hours maps, shaded-area series and an animation, PV yield on roofs and walls from an EPW file with the model written out, UTCI from the published polynomial, 78 + 17 tests). Wind is not built: it needs a validated solver, and the validation list is in the log. Reachable once the one mount line lands in CivilCraft's massing-ui.js.

BimCraftCivilCraft Built · in the lab 12 Built in 0.9; wind is Experimental, not validated vs wind-tunnel data (only Cp converges). Owner: check .epw vs PVWatts, UTCI; AIJ/CEDVAL data. From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1192 Link to SU.1192Comment on SU.1192 DetailCraft: UK steel sizes (UB, UC, PFC, EA, UEA, CHS, SHS, RHS) and unequal angles

Asked (#1192, Nov 3): add UK steel member sizes for UB, UC, PFC, EA, UEA, CHS, SHS, RHS. Built in /lab: 976 sizes from the Steel for Life Blue Book (hot finished and cold formed hollow sections apart) in the shared section table, in DetailCraft's profile lists, CadCraft's Standard panel, PartCraft weldments and BimCraft's rolled-shape check. Sizes typed as on drawings work (305x165x40 UB, L100x100x10). DetailCraft now handles unequal angles: both legs in IFC in and out and NC files, a mirror turns the piece end for end. Not checked yet by a UK fabricator; NC files for UEA not run on a machine.

CadCraftBimCraftDetailCraftPartCraft Built · Live 2 – From: site suggestion (Suggestion) docs/0.9-sessions/uk-sections-shop-set-09.md, from /admin/suggestions 2026-11-04
FeatureSU.1132 Link to SU.1132Comment on SU.1132 BimCraft: scan to BIM, walls, floors and openings proposed from a point cloud

Asked (#1132, Oct 31): scan to BIM, naming the commercial scan-to-BIM programs and plug-ins. Checked 2026-11-05: BimCraft reads point clouds (PLY, PCD, PTX, LAS; E57 in part) as a reference, and the Point clouds add-on (PC rows, CivilCraft, /lab) views, slices and measures large clouds. EG.37 (0.8) was a spike only: a phone scan's slice traced into walls and rooms, not in BimCraft's menus. Not built: the point clouds add-on in BimCraft (PC.11, planned) and automatic extraction of walls, floors, columns, doors and windows. Do, after PC.11: slice by level, fit wall lines to the slice (the 0.7 plan trace), propose walls with thickness and height for the person to accept, and report how far each wall is from the points. Nothing was built for this card on 2026-11-05. scan-bim-09 2026-11-06 (partial): see docs/0.9-sessions/scan-bim-09.md.

BimCraft Built · Live 6 Hand check is community test SU.1132-HAND (not blocking) From: site suggestion (Suggestion) docs/0.9-sessions/suggestions-sweep-09.md, from /suggest
FeatureBot obtainedSU.1056b Link to SU.1056bComment on SU.1056b Wind loads by ASCE 7 and the code seismic hazard data and spectrum

Split from SU.1056 (ETABS ask #1056): wind by code, the code's seismic hazard data and the spectrum. Built, owner 2026-11-06 (do not wait for bought pages). Reachable in the Analysis panel of BimCraft and DetailCraft: Wind loads (ASCE 7-10 / 7-16 directional procedure, rigid enclosed building: V, exposure B/C/D, Kzt, Kd, Ke, G, enclosure, qz at every floor, wall pressures, a force on every floor as load cases +-X/+-Y), Seismic site and system (Ss, S1, site class A-D to Fa, Fv, SDS, SD1 for 7-16; SMS/SM1 for 7-22; R, Cd, Omega0 of seven systems; design spectrum; optional USGS lookup only when you press the button; fills the Seismic block), ASCE 7 combinations (LRFD and ASD, vertical seismic effect, overstrength) feeding the combination machinery. Saved with the model, in the PDF/CSV report, with a Sources list and a left-out list in the panel. Spectrum module lib/frame/spectrum-asce7.js designSpectrum({SDS, SD1, TL}) for the response-spectrum analysis. Method: every value kept only if two independent public pages print it (URLs and date read in lib/frame/loads-sources.js). Left out and listed: ASCE 7-22 wind, V by risk category, Kz table beyond the formula, leeward Cp for L/B above 1 (-0.5 used and flagged), roof pressures, site class E/F, Ie for risk I/III, most of Table 12.2-1, 7-22 combinations, Eurocode wind. The 0.8 constants were checked: Ct SI values were on no page (now converted from the US values), Table 12.12-1 drift ratios are unconfirmed (flagged). Known-answer tests from published examples (STAAD, SkyCiv, SEAOC, FEMA P-2192). Not a code check; no claim of equality with any program. Hand check: SU.1056b-HAND. wind-seismic 2026-11-06: docs/0.9-sessions/fem-09.md

BimCraftDetailCraft Built · Live 12 Hand check is community test SU.1056b-HAND (not blocking); response spectrum analysis itself is built by the dynamics session docs/0.9-sessions/fem-09.md, split from SU.1056
Engineering gaps (Track EG) 2
SpikeEG.21 Link to EG.21Comment on EG.21 Spike: AR on site — the model at full size through a phone

Place a BimCraft or ModelCraft model at full size on site through a phone camera (WebXR immersive-ar; Safari on iPhone has none, so the spike says what iPhone users get). Owner's review list 2026-10-27 (duplicates removed). Plan docs/0.8-PART5.md. Widened 2026-10-27 (second list): also show what is hidden in a wall or slab — pipes, conduit, rebar — aligned to the model on a tablet.

BimCraftModelCraftStudio App codeDesktop host Built · Live 3 You: an Android phone with ARCore and a tape measure. Session: AR session, align dialog, x-ray lens (about 5 days). Spike: docs/spikes/EG.21_PART_4.md From: owner (Owner) Owner, 2026-10-27 (engineering gaps list, add to 0.8)
SpikeEG.37 Link to EG.37Comment on EG.37 Spike: phone scan of a building into BimCraft walls and rooms

Read a phone LiDAR scan (PLY, OBJ or E57 from a scanning app; the readers exist) and build walls, floors and rooms from a slice with the 0.7 plan trace. MEP is not part of this. Owner's second list 2026-10-27 (duplicates removed). Plan docs/0.8-PART5.md § Second list.

BimCraft App code Built · Live 4 You: send 2-3 real phone scans with a tape-measured wall. Session: BimCraft menu and panel mount (closing_PART_4 inbox). Log: spikes_PART_4.md From: owner (Owner) Owner, 2026-10-27 (engineering ideas list, add to 0.8)
From GitHub (to review) 2
FeatureBot obtainedGH.10 Link to GH.10Comment on GH.10 Assistant/MCP: tools to place electrical devices (sockets, switches, lights, …)

### What do you need to do Let an AI assistant place electrical devices (sockets, switches, luminaires, detectors, boards, …) through the MCP / assistant interface, the same way it can already draw walls, openings, floors and cable carriers. Today the assistant tool set has no way to create a device: - `carrier_add` draws cable trays and conduits, and `carriers_check` / `lighting_check` / `loads_set` / `photometry_set` work on what is there, - but none of the ~80 tools (`agents.js`, `mep-agents.js`, `bim-agent.js`, …) places a device. `furniture_add` only furnishes rooms by rule. So an assistant can route conduits to an outlet it cannot create, and an electrical plan still has to be clicked in by hand. The building blocks already exist in `app/res-elec.js` (`placeDevice`, `changeDevice`, `linkLight`, `removeDevices`, `DEVICES` with 33 kinds). Exposing them as tools would cover it, for example: | Tool | Does | Arguments (sketch) | |---|---|---| | `devices_add` | Place one or more devices | `level`, `kind` (a key of `DEVICES`), `at` [x, y] mm, optional `wall` (snap to the nearest wall face like the UI does), `height`, `angle`, `circuit`, `load_w`, `tag` | | `device_change` | Change tag, circuit, load, height, position | `guid` + fields | | `lights_link` | Link a switch / sensor to the lights it controls | `switch`, `lights[]` | | `devices_delete` | Remove devices (and unlink lights) | `guids[]` | | `devices_list` | Devices of a level with kind, tag, circuit, load, height, host wall, linked lights | `level` | Typical requests this would enable: - "Put a double socket every 2 m along the walls of the living room on level 1, 300 mm high, circuit 3." - "Add a ceiling li… Opened on GitHub by a Discord member: https://github.com/getcadcraft/bimcraft/issues/16 Sweep 2026-11-05: accepted into 0.9. Assistants/MCP tools to place electrical devices; belongs with the add-on's device kinds (ELEC-BUILDING). bim-hosts-09 2026-11-06 (done): see docs/0.9-sessions/bim-hosts-09.md.

BimCraft Built · Live – Hand check is community test GH.10-HAND (not blocking) From: a Discord member (GitHub) GitHub getcadcraft/bimcraft#16, Nov 3, 2026 bimcraft#16 open
BIM interop 1
FeatureGH.3-A Link to GH.3-AComment on GH.3-A One display unit everywhere

Audit and fix the display-unit pick so coordinates, measurements, sections and sheet scale families all follow it (feet-inches, decimal feet, inches, millimetres, centimetres, metres). Imported DWG coordinates keep their native units where their meaning must stay. Part of GH.3 (GitHub getcadcraft/bimcraft#3). Owner approved 2026-10-29; scheduled for 0.9.

BimCraft Built · Live 2 Requester asked to test 2026-11-03 (bimcraft#3); lab pass once he sends his account email From: yisraelk (GitHub) GitHub getcadcraft/bimcraft#3, Oct 22, 2026
Requests for 0.8 5
FeatureD8.12 Link to D8.12Comment on D8.12 BimCraft: a working style in Settings — how duplicated views, printing and element classes behave

Discord (a Discord member, Oct 28; owner 2026-10-30: "feels like a LAYOUT in settings"): people coming from the two big BIM programs expect different behaviour, and neither is wrong. Settings › BimCraft › Working style picks a preset that sets the defaults of D8.12-A…D, each still changeable on its own, like the workspace layouts (Track WS): - Each view its own (default): a duplicated view copies its annotations and they stay that view's; sheets print as the screen shows. - Shared annotations and pen tables: duplicates share annotations; printing goes through a pen table. Names describe the way of working, never a product (trademark rule). Checked in /lab 2026-10-30 — already there: families and the family editor (BIM-FAM-MORE, partly built), docked ribbon and toolbox + info box layouts (Track WS), drafting shown only in its own view (DC.117 d), view templates (DF.19), per-view pen overrides (SU.1055, partly). Missing: D8.12-A duplicate a view, D8.12-B print as shown, D8.12-C use an element as another class, D8.12-D project templates. Also from the thread: a Discord member pointed at the vendor's public ideas forum (most-voted) as a list of what users miss; a Discord member offered to work through our project files as an experienced user — the owner/a Discord member to send files. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-A Link to D8.12-AComment on D8.12-A BimCraft: duplicate a view, as its own copy or linked

Today a plan is one view per level plus callouts; there is no Duplicate. Add Duplicate on plans, ceiling plans, sections, elevations and callouts with a choice: Own copy (drafting, dimensions, crop, hidden elements and pen overrides copied; editing or deleting them changes only that view — the default) or Linked (one set shared by both views). The working style (D8.12) sets which one is offered first. Older views on issued sheets must never change because a later copy was edited (the requester's point: revisions are not a straight line). Stored in the IFC as now (CadCraft_PlanView / CadCraft_Drafting View key). Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-B Link to D8.12-BComment on D8.12-B BimCraft: print as shown — pen overrides saved in the file and on sheets and PDF

Pen overrides (SU.1055, pens.js) live in the browser only (localStorage bimcraft.pens), cover walls, doors and windows, and are not on the printed plan yet. Do: keep them in the IFC with the view, cover every category (and drafting), and draw sheets and the PDF exactly as the screen shows (default). The other working style prints through a pen table (colour → weight and ink), reusing CadCraft's plot-style work (DC.14) rather than a second format. Closes SU.1055's pen-override rest. Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-C Link to D8.12-CComment on D8.12-C BimCraft: use an element as something else — a wall as a panel, a slab as a road or shelf, a roof as a ramp

Keep the drawing tool's geometry and editing but report the element as another IFC class (and predefined type), so schedules, takeoff, Problems and the IFC export count a slab drawn as a road as a road, not a floor. A "Report as" field in Properties (search of IFC classes that fit the shape), one undo step, round-trips through IFC2X3 and IFC4; schedules group by the reported class. The requester's point: the other program files these as generic models and its schedules stay wrong. Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
Fixes 104
FixFX.49 Link to FX.49Comment on FX.49 BimCraft: Add levels takes heights below the lowest level

Asked on Discord by a Discord member: is there a way to create a level below the lowest level made so far? The Levels panel already had Add a level below (DC.119). The Add levels dialog (At these heights) still refused anything under 0; it now takes negative heights (for example -10'-0", -20'-0"): the new level reaches up to the next level above it and is named Level -1 (nearest the ground), Level -2, and so on. One undo step. Test: draw06 'Add levels at -6000 and -3000' (225/0). Not tested: a real project with walls or a slab at the lowest level (the levels are added, nothing else moves), a desktop build.

BimCraft Built · Live 1 – From: Discord community (Discord) Discord, a Discord member, 2026-11-04
FixFX.1 Link to FX.1Comment on FX.1 BimCraft: Move works on stairs (and ramps, railings, roof planes, free-standing devices, pictures, paths)

Reported from the browser edition of BimCraft 0.8.1: with an L-shaped stair with winders selected, Build > Move did nothing and a drag panned the plan. Move, Align and Distribute only knew walls, floors, columns and placed library items. Now a stair moves by a vector (its steps, rails and stairwell are made again; one undo step; selecting any of its parts counts as the stair). The same fix covers ramps, railings, roof planes, free-standing electrical devices, pictures and paths / driveways / patios. Devices on a wall, foundations, floors, ceilings, rooms, countertops, framing, dormers and doors / windows follow their parent and are not moved on their own. Copy is refused for these (as for placed items). No grips on a selected stair: Move is the way. Tests: bin/test-bimcraft.mjs --modify (stair, ramp, railing, roof plane, device); pictures and paths wired but not yet exercised by a test. Site masses and terrain are not movable.

BimCraft Built · Live – – From: site feedback (Site) feedback email 2026-11-03, BimCraft 0.8.1 browser
FixFX.2 Link to FX.2Comment on FX.2 Render falls back to WebGL when the GPU cannot start (Windows dxcompiler.dll error 87)

Reported by email: 'Failed to execute requestDevice on GPUAdapter: DynamicLib.Open: dxcompiler.dll Windows Error: 87' and the render stopped. The WebGPU path tracer already fell back to WebGL when GPU setup failed, but a requestDevice rejection carried no code, so the fallback never ran. pt-gpu.js and pt-denoise-gpu.js (BimCraft and ModelCraft) now tag that failure gpu_setup, so the still render drops to the WebGL engine instead of failing. The live view (ipr.js) calls the tracer without that fallback and may still show the error; not checked. Not tried on a Windows machine with the broken driver. Advice to the reporter: update the graphics driver and the browser, send chrome://gpu.

BimCraftModelCraft Built · Live – – From: site feedback (Site) feedback email 2026-11-03, Windows WebGPU
FixFX.9 Link to FX.9Comment on FX.9 EnergyPlus check and address lookup add-ons could not be switched on

The add-on loader refuses a description over 400 characters. BimCraft's EnergyPlus add-on (451) and CivilCraft's site-geocode-osm add-on (488) were over it, so neither could be switched on. Both descriptions shortened (388 and 369), same facts. test-addons-apps 112/0. Untested: switching each one on by hand in /lab.

BimCraftCivilCraft Built · Live – – Found by session climate-futures-09, 2026-11-03
FixFX.22 Link to FX.22Comment on FX.22 BimCraft: dragging a wall no longer skews the room, and Square up brings 90 degrees back

Discord report with screenshots: dragging a wall's centre grip slightly off square tilted both joined walls, and nothing brought the room back to 90 degrees. The grip moved the wall by the whole drag and carried the joined corners with it; Length did the same. Changed in the lab build. The centre grip moves the wall square to itself; its corners slide along the joined walls, so they keep their angle at any angle, and partitions butting into it come along. Ctrl (Cmd) gives the old free move. An end grip catches square to the wall joined at its other end within 3 degrees (Shift stays on the plan's axes, as before). Properties for a straight wall adds: Measure from (centre line, inside face, outside face), which Length and the new Room size read and set from; Move square (typed, + out, - in); Angle to joined wall (or Direction for a wall on its own); and Square up, which turns the connected walls within 10 degrees of a right angle to their main direction. A distance can be typed while a grip is held (Enter or letting go uses it, Esc drops the move). Each change is one undo step. Geometry in wall-square.js. Tested: tools/bimcraft-test/wall-square-test.mjs 56, browser-wallsquare.mjs 28 (the report's steps), browser-model, browser-comforts and --model pass. Not tested: a real project with many walls, doors in a wall whose corners slide at a non-right angle, or a desktop build.

BimCraft Built · Live – –
FixFX.55 Link to FX.55Comment on FX.55 BimCraft: typing LEVEL does nothing and the ribbon has no Levels button; optional side-panel accordion with a lock (setting, default off)

a Discord member, 2026-11-05 (working in /lab with the drafting ribbon): the help describes the Levels panel, but typing LEVEL on the command line said Unknown command and no ribbon button led to it. Built (/lab, a Discord member): the command line takes LEVEL, LEVELS, STOREY, STOREYS (opens Add levels…); a Levels button sits in the Home > Levels group (Drafting ribbon), the Architecture > Model group (Ribbon) and the Home menu (model.levels in input-bimcraft.js). The left/right panel's collapsible sections (Find, Quantity totals, Checks, Clash …) close each other so the one you opened has the focus when Settings > BimCraft > Side panels is on (default OFF, owner's call 2026-11-05); a lock beside each caret keeps one open, remembered on this device (panel-focus.js). Test: tools/bimcraft-test/browser-levels09.mjs, 15/0. Not in the Docked/Duncan layouts' own tool sets (the docked ribbon already had Level). New strings are English only until the next language sync.

BimCraft App code Built · Live 1 – From: Discord community (Discord) Discord, a Discord member, 2026-11-05
FeatureFX.56 Link to FX.56Comment on FX.56 Auto-focus panel (Settings › Global) and split tool tiles

Owner 2026-11-05. (1) Auto-focus panel: one engine in the shell (window.ccAutoFocus in assets/js/app-settings.js, CSS in app-shell.css, strings in lang/shell): a panel with several sections opens one and closes the others, a lock beside the caret keeps a section open, remembered per panel; a menu command opens the section it works with; a Settings switch (cc-autofocus, default on) lets people choose how the apps work best. CivilCraft: the left panel (Landscape on) and the Properties panel (groups by heading). The other seven apps adopt it by registering their panels. (2) CivilCraft Landscape ribbon tiles that hold several tools (Grade, Hardscape, Areas, Levels, Irrigation) are split buttons: the icon runs the tool used last, the edge with the arrow opens the menu (civilcraft/a Discord member/split-menu.js); the same pattern is wanted in the other apps. Tested headless: panels, setting on/off, split clicks; Landscape 533/0. Added 2026-11-05: Hardscape, Areas and Levels have their own sections in the Landscape panel (tools + what is drawn); the toolbox (layouts with a tool list) joins the auto-focus panel: its groups close each other, and the toolbox group and the panel section follow each other (shell: ccAutoFocus mode details, app-workspace.js tbxAf; civil link in landscape-ui.js). 2026-11-05 all eight apps: window.ccAutoFocus.auto() folds every app side panel with two or more sections (a section heading or its *-sec-head bar; MarkupCraft details sections; toolbox groups in the toolbox layouts), no per-app code; Settings › Global › Auto-focus panels switches it off. Split tool tiles stay CivilCraft-only until the other apps ask. Command links 2026-11-05: a tool that works with a panel section opens it (app-settings.js LINKS table, one line per rule): CadCraft constraint and parameter commands to Parameters; TakeoffCraft measuring tools to Items and note/cloud/highlight to Markups; ModelCraft Paint to Colors. The other apps have no tool with a section of its own yet; add a rule when one does. Command links 2026-11-05: a tool that works with a panel section opens it (app-settings.js LINKS table, one line per rule): CadCraft constraint and parameter commands to Parameters; TakeoffCraft measuring tools to Items and note/cloud/highlight to Markups; ModelCraft Paint to Colors. The other apps have no tool with a section of its own yet; add a rule when one does.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – in /lab; owner to try From: owner (Owner) owner request 2026-11-05
FixFX.58 Link to FX.58Comment on FX.58 BimCraft wall Length in Properties (5000) differs from the plan dimension (5092) with no stated reference

Reported 2026-11-05 in Duncan's wall tool specification (page 1). In the Room 1 test the Properties panel showed Length 5000 while the plan dimension on the same wall read 5092; nothing says which reference each figure uses (location line, finish face, core, centreline, or end-to-end after joins). Wanted: both figures name their reference, and they agree or the difference is explained. Cause not investigated yet. Status: not started. Tracked as a document with status notes: /roadmap-internal, 'BimCraft wall tool specification' (docs/team-roadmap/bimcraft-wall-tool-specification.md). Source PDF: dropai.zone/d/vRSxnoBw. wall-fix 2026-11-05: CORRECTION: FX.22 already added Measure from (centre | inside | outside) to the Length field (wall-square.js lengthFrom) so 5000 vs 5092 can be explained; whether the plan dimension and the Properties field now agree by default, and name their reference, is not checked (spec test 9, decision D3). walls-09 2026-11-06: Length and the plan's wall dimension now read the same reference, named on the model bar (Measure from: centre line by default, decision D3; inside or outside face) and in Properties; spec test 9 Pass (node: both 5000 on centre line, both 5114.3 on the outside face). Cause of Room 1's 5000 vs 5092, from reading: Length read the centre line while the plan dimension read the outside face; NOT reproduced on Duncan's own file (we do not have it). The hand check is part of WT.3-HAND.

BimCraft Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05
FixFX.65 Link to FX.65Comment on FX.65 BimCraft thickness / type change: the corner follows only when exactly one straight wall meets the end

Wall tool spec page 3 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Code checked in the a Discord member source 2026-11-05 (the spec read commit a538e43). Found while checking the 'Already right, keep it' list on page 3: updateWall, the location-line shift (changes.justification not centre): neighbours are looked up and then skipped unless nbs.length === 1 and the neighbour is not curved. So a thicker wall at a three-wall node, at a T, or next to a curved wall keeps its old corner and the junction is left open or overlapped, while the two-wall straight corner case Duncan tested works. Wanted: spec test 5 (set the location line to the exterior face, thicken the wall: exterior face does not move, wall grows inward, joins clean up) at L, T, X and curved neighbours. Not reproduced yet; nothing fixed. Other apps: the same question applies to CadCraft's plan walls (thickness change) and goes into FX.59's test run. walls-09 2026-11-06: Fixed in /lab: a location line that holds now moves the centre line square with the join solver (squareMove), so the corner follows at an L, at a node of three walls, at a T (the partition comes with it) and next to a curved wall. Spec test 5 Pass: node (--walltools) and the real page (outside face held at -92.1 with 300 thickness, both corners follow).

CadCraftBimCraft Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 3)
FixFX.66 Link to FX.66Comment on FX.66 Wall + Move / Copy: a moved or copied group of rooms does not stretch the joined walls outside the group

Wall tool spec page 9, 'How other tools combine with the wall' (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Code checked in the a Discord member source 2026-11-05. Spec: move or copy a group of rooms and every joined wall outside the group stretches to stay joined (Place in space -> Join solver -> Follow; today Partly). Cause, from reading: Move is carryJoined: false (FX.62), and a copy goes through addWall (model-modify.js), so the copied walls are new walls that are not joined to anything outside the group, and nothing stretches. Wanted: Move stretches the outside neighbours (their ends slide along their own line, FX.63 / FX.60); Copy leaves the originals alone and makes the copies joined among themselves. Acceptance: spec test 1 style on a two-room plan, one undo step. OTHER APPS: CadCraft plan walls Move already follows joins (FX.59 notes the turning problem); Copy there is not checked. Not started. walls-09 2026-11-06: Checked, no code change needed after FX.62: a Move of a group of walls (one room of two) keeps the group's corners and the walls outside stay joined; Copy leaves the originals and the copies are joined among themselves (two corners). One undo step. Test: node bin/test-bimcraft.mjs --walltools (FX.66 block). Real page: the Move tool's group move was not driven in a browser by this session.

CadCraftBimCraft Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 9)
FixFX.67 Link to FX.67Comment on FX.67 Wall Length and typed dimension: no choice of fixed end, no marker for the fixed side, no modifier-key drag to break a join

Wall tool spec pages 11-12 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Checked in the a Discord member source 2026-11-05. Page 11 'BimCraft must' column, three things the code does not do: (1) Changing length: 'start end fixed by default; toggle to grow from the other end or the centre'. setLength (wall-square.js) always keeps the start end and moves the end; there is no toggle. (2) Typing a dimension value: 'a marker shows the fixed side before Enter'. No marker exists; the fixed side is not shown. (3) Breaking a join: 'only by Split, Disallow join, delete, or a modifier-key drag'. No modifier-key drag breaks a join (Split and Disallow join are WT.4 and WT.5). Wanted: a Grow from control on the Length field (start | end | centre) with the fixed side drawn on the plan while the field is focused, and a modifier-key drag (Revit's Move with Disjoin) that moves a wall without carrying its joins and keeps the wall's id. Spec tests 3 and 9. OTHER APPS: CadCraft plan walls have no Length field or toggle either (FX.59). Not started. walls-09 2026-11-06: Built in /lab: Properties › Grow from (Start holds | End holds | Centre holds) next to Length; the side that holds is marked on the plan while the Length field is in use; Alt + drag of the middle grip moves the wall free of its joins (they break, the id stays). Tests: --walltools (grow from end and centre, marker point), browser-walltools (grow from end, marker, Alt-drag).

CadCraftBimCraftSuperCad Studio Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 11)
FixFX.68 Link to FX.68Comment on FX.68 BimCraft lab: picking a wall with Draw off threw in the Properties panel (FX.22 read the drawing data that only exists while Draw is on)

Found 2026-11-05 by suggestions-followup-09 while fixing tools/ids/browser-bimcraft.mjs: with an IFC open and Draw off, picking a wall (for example from Problems) logged "TypeError: Cannot read properties of null (reading 'walls') at propsBlock" (model-ui.js). Cause: FX.22 (wall grips, Measure from) read S.data.walls, which is null unless Draw is on; propsBlock's own data (S.data when drawing, else a snapshot of the model) is the right source. The error was caught, so the panel just lacked the wall's Measure from and Length fields. Fix: one word in model-ui.js (all = data.walls). Lab only (FX.22 is 0.9 /lab); released 0.8.1 does not have the code. Checked 2026-11-05: in the real page (lab BimCraft, house fixture, Draw off) a picked wall shows Measure from + Length and no console error; tools/ids/browser-bimcraft.mjs 30/0 (its 'no page errors' check), tools/bimcraft-test/wall-square-test.mjs 67/0, browser-wallsquare.mjs 28/0.

BimCraft Built · Live 0.1 – From: session (Session) docs/0.9-sessions/suggestions-sweep-09.md § Follow-up
FixFX.69 Link to FX.69Comment on FX.69 Two stale tests: TakeoffCraft learn.mjs expected the released build to ignore learn data; the BimCraft IDS browser test clicked a folded Undo

Found by suggestions-sweep-09 (2026-11-05), fixed by suggestions-followup-09 the same day; tests only, no app change (the app fix found on the way is the row above). (1) tools/takeoffcraft-test/learn.mjs loaded `current` as "the frozen release before learn"; current is 0.8.1 since 2026-11-02 and ships learn.js (identical to 0.8 and a Discord member). Now: the newest frozen folder WITHOUT learn.js (0.7) must ignore the section, and current (0.8.1) must read it back identical. Before 104/1, after 107/0. (2) tools/ids/browser-bimcraft.mjs clicked [data-undo] / [data-save] in the left panel's Changes section, which the shell's Auto-focus panel (app-settings.js, on by default) folds while the IDS section is open: by design, not a regression. It now asserts that fold, undoes with the toolbar Undo and with Ctrl+Z (both proven to remove the IDS reference and its 13 problems; Ctrl+Y brings them back), saves with Ctrl+S, and waits for 'Saved' before reopening (sooner is refused with 'Still working on the last one…', correct). Before 13/1 (the run stopped at undo), after 30/0.

BimCraftTakeoffCraft Built · Live 0.1 – From: session (Session) docs/0.9-sessions/suggestions-sweep-09.md § Follow-up
FixFX.71 Link to FX.71Comment on FX.71 BimCraft test "dimensions retain IDs across redo, type swaps, flips, curves and rebinds" fails (tools/bimcraft-test/wall-precision.test.mjs)

Found 2026-11-05 while running the BimCraft suites for the join record (FX.60). node bin/test-bimcraft.mjs --walls: 6 of 7 pass; this one fails at wall-precision.test.mjs:65, after Undo then Redo of a saved wall dimension its GlobalId is a different one (readWallDimensions(...)[0].guid !== d.guid). It fails the same with the join sync switched off, so it is not from the join work; cause not looked into (a redo that runs the op again and makes a new GlobalId for the dimension is the likely shape). Wanted: Redo of a dimension keeps its id, like Redo of a wall type does (the test's first redo passes). Not started. walls-09 2026-11-06: Cause found: the CODE was wrong, not the test. saveWallDimension's op (wall-dimensions.js operation) drew a fresh GlobalId each time it ran, so Redo made the dimension again under a new id. It now hands out the same GlobalIds again on Redo, as model-ops.js op() does. node bin/test-bimcraft.mjs --walls: 15/0 (was 14/1).

BimCraft Built · Live 1 – test run 2026-11-05
FixFX.76 Link to FX.76Comment on FX.76 Documents opens as a centered dialog, not a box in the corner

Owner 2026-11-06: Documents seemed to do nothing, and on large screens the placement was wrong. It opened as a small box pinned to the top right of the drawing area, far from the button. It is now a modal dialog centered on the window with the page dimmed, in BimCraft, PartCraft and CadCraft through lib/vault. Esc, the X or a press on the dimmed page closes it. Opening a file or a copy closes it so the file can be seen. Tested at 1280 to 3840 wide in the standard, Vector and Duncan layouts on SwiftShader; not on a real large monitor or in a Studio build.

CadCraftBimCraftPartCraft Built · Live – –
FixFX.77 Link to FX.77Comment on FX.77 Studio and browser-edition packers: stale file lists (suite stubs, hub files, docinfo and About modules)

Found by mounts-09 2026-11-06 while building the Studio suite for the undo test. (1) studio/pack/suite-stubs.php WORKSPACE_MODULES lacked app-workspace-icons.js and app-workspace-vector.js, so node pack/suite.mjs stopped with "a plain re-render differs from the edition's index.html" for every app: a Studio rebuild could not have been made. (2) pack/suite.mjs HUB_FILES did not copy the new hub/undo-journal.js. (3) tools/shell-test/test-packed-imports.mjs failed 6 checks: devshell/edition.php and devshell/pack.php lacked docinfo.js, app-docinfo.js and app-about.js (DI.1, ABT.1), so packaged editions would have asked for files that are not there. All three lists fixed; the suite packs for cadcraft, detailcraft and takeoffcraft and the test reports "all packers list every imported shell file". The full eight-app suite was not rebuilt here.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 0.5 – docs/0.9-sessions/mounts-09.md
FixFX.78 Link to FX.78Comment on FX.78 Tests: the team button sits in a folded panel section; add-on buttons are not registry commands

mounts-09 2026-11-06: tools/bimcraft-test/browser-r5.mjs clicked [data-model-team] while the shell's panel accordion had its section folded (a person opens the section first; the test now does too). tools/shell-test/browser-input-apps.mjs's "every toolbar button is a registry command" no longer lists add-on buttons (data-addon-tool), as print-09 asked; ModelCraft's 3D Print button passes. Still failing there, not from this session: "Move the Tools toolbar" (the toolbar tear grip) and the Settings style-card radio that is not visible; and tools/civil-mount-test/browser.mjs la4 clicks the first of two "Ground modifiers" menu items, which is hidden.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 0.5 – docs/0.9-sessions/mounts-09.md
FixFX.83 Link to FX.83Comment on FX.83 Settings > Layout: the layouts are a drop-down of two-line choices, not a long radio list

The layout list (built-ins plus add-on and imported layouts) grew into a long radio column. Now a button shows the chosen layout (icon, name, hint) and opens a pop-up list of two-line choices, scrolling past 24rem. The radios stay inside the pop-up, so picking, the extras list, Remove and the keyboard (arrows between layouts) work as before; Esc, a pick or a click elsewhere closes it; without JS the list just shows. Files: app-settings.inc, app-settings.js (wsCur, wsOpen), app-shell.css. Checked: syntax and php -l; not yet tried in a browser. Owner tried it in /lab 2026-11-06: works.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Built · Live – – From: owner (Owner) owner request 2026-11-06
FixFX.140 Link to FX.140Comment on FX.140 Resin slicing: faster on big screens and dense miniature meshes, and less memory

A tester reported the resin slicer crashed while slicing; they later said the model was a dense mesh from a miniatures set, a few MB, not regular geometry. The cause is not confirmed and no crash was reproduced, but tests found three real problems. (1) Drawing: the page spent most of its time turning each layer into a 12K picture (59 million pixels a layer); a 100 mm part at 0.05 mm took over 280 s. Now only the rows a layer lights are touched, one buffer is reused, and dark rows are written as single runs: a 60 mm part 151 s to 27 s, the 100 mm one over 280 s to 100 s. (2) Dense meshes: the island check ran an exact overlap test for every small piece of every layer (40 of 52 s on a 40,000-triangle noisy ball with supports); the overlap of the whole layers is now found once and cut into pieces, same island counts as before (251 = 251 on a test mesh), 52 s to 22 s. The cavity of a hollow part is worked out on an outline simplified by half a pixel (about 25 percent faster, wall within half a pixel). (3) Memory: a 40-piece, 139,000-triangle mesh at 0.03 mm, hollow with supports, peaked at 1.98 GB (enough to kill a browser tab), because every layer's pieces were kept to the end; temporary shapes are now given back at once: 1.20 GB, and it finishes in about 4.5 minutes where it ran past 7. Layers are identical to before the change except the half-pixel cavity. With RSN.8 the slicing also runs on a worker thread, so the page cannot freeze. Not tried on a real printer or on the tester's own file.

BimCraftModelCraftPartCraft App code Built · Live – The tester to try again in /lab and say what happens (printer, layer height, hollow/supports, model size). From: Discord community (Discord) Discord 2026-11-08: "it crashed while slicing"
FixFX.156 Link to FX.156Comment on FX.156 Tooltips: one Bootstrap engine everywhere; the other tooltip methods are gone

Tips were drawn five ways: app-tooltips.js (Bootstrap, from title), a hand-made .ws-tooltip div in the workspace, a second Bootstrap instance for cut-off text in Settings, one each for the area badge, the download copy button and CivilCraft's narrow number boxes, and a CSS ::after bubble on the status bars. Now app-tooltips.js is the only one: it reads data-ws-reason, title or an old data-bs-title, and offers ccTooltips.showText(el, text) for text a page computes (cut-off text, Copied, a clipped number). The site footer and admin footer load it too, so public pages match the apps. Popped-out ribbon, panel and dialog windows get Bootstrap and the engine through ccTooltips.attach(win), so they show the same tips. Same look everywhere (.tooltip.cc-tip).

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – The 0.9.1 build (desktop installers carry the shared files from their pack date). From: the owner (Staff) owner 2026-11-09
Requests for 0.9 8
FeatureD9.1 Link to D9.1Comment on D9.1 BimCraft: change several columns at once (height, top, size)

Ask: "select multiple columns and edit their height in one go; the height options only show when one column is selected." Several columns picked together already shared Shape, Size, Top and Height, but a pick that also caught a wall or another element (columns stand in walls on grid lines; a box catches both) showed only "N elements picked" with no fields. Built: a pick of several kinds lists each kind with "Keep only these", one click keeps the columns and their shared fields show. Fields where the columns differ are empty ("Mixed"), never the first column's value; Height typed once makes every picked column that tall (a column following the level above gets the offset that makes it so); Top keeps each column's own level above. Files: bimcraft.js showMany, model-grids-ui.js props. Tests: browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
FeatureD9.2 Link to D9.2Comment on D9.2 BimCraft: grid dimensions on the plan

Ask: "a way to show the grid dimensions". Built: Build › Grid has a Dimensions box: the spacing between neighbouring grid lines and the overall size, for the numbered and the lettered lines, drawn past the bubbles on every level's plan and the sheets made from it. Saved in the IFC (CadCraft_Grid Dims), one undo step, follows the grid when lines move, are renamed or added; a turned grid measures across its lines. Files: model-grids.js gridDims, model-grids-ui.js. Tests: test-bimcraft --draw06 (D9.2), browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
FeatureD9.3 Link to D9.3Comment on D9.3 BimCraft: Measure on the plan (temporary dimensions)

Ask: "a measure tool to add temporary dimensions in the Plan view / 3D view". The 3D view already had Measure (M: distance, faces, areas). Built: Draw › Measure on the plan: click two points for a dimension with the distance and ΔX / ΔY; points snap to wall ends, grid lines and crossings, columns; Shift keeps a leg straight; more clicks chain on with a running total; Esc clears it. Nothing is written to the model. With only the plan shown, M opens it (with the 3D view on screen M stays the 3D Measure). Files: model-measure-ui.js (new), model-ui.js planOnly/useTool, bimcraft.js key M, ui.inc. Tests: browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
FeatureD8.14 Link to D8.14Comment on D8.14 BimCraft: sheet sizes A4 to A0, custom sizes, landscape or portrait

Asked (pasted 2026-11-06). The sizes A4, A3, A2, A1, A0 (and Letter to Arch E) and a custom size (Formats… > New sheet size) were already built under SU.1123 on 2026-11-04; this row added the missing part: a Landscape / Portrait switch on every sheet, for the standard sizes and for the model's own. A sheet keeps its orientation, a turned sheet keeps each view at the same relative place, print and PDF use it. Test: node bin/test-bimcraft.mjs --views09 --only t; browser-views09.mjs --only t. In /lab, not released.

BimCraft Built · Live – – From: BimCraft user (pasted) (Owner) Pasted by the owner
FeatureD8.15 Link to D8.15Comment on D8.15 BimCraft: type the drawing scale on a sheet (1:64, 1:256, any ratio)

Asked (pasted 2026-11-06). Built: a "Type a scale" box next to the scale list on every placed view (plans, ceiling plans, callouts, elevations, sections, interior elevations). Accepts 1:64, 1:256, 1:2.5, 2:1, a bare 64, and architectural 1/4" = 1', 3/16 in = 1 ft; Fit stays as the list's first choice; a word that is not a scale says so and changes nothing. A typed ratio is kept to 3 decimals in the file and is the label under the view. 12 typed forms + refusals tested; a view at 1:256 measures a quarter of its 1:64 size.

BimCraft Built · Live – – From: BimCraft user (pasted) (Owner) Pasted by the owner
FeatureD8.16 Link to D8.16Comment on D8.16 BimCraft: move a placed drawing around inside the sheet

Asked (pasted 2026-11-06). Dragging a view in the sheet editor was already built (EG.56); added now: arrow keys move the picked view 1 mm (Shift 10 mm, Alt 0.1 mm), an exact place can be typed (Across / Up from the lower left corner, in the display unit), and a dragged view snaps to the border and to the edges and middles of the other views within 2.5 mm (Alt while dragging = free). Saved with the sheet. Checked in the browser.

BimCraft Built · Live – – From: BimCraft user (pasted) (Owner) Pasted by the owner
FeatureD8.17 Link to D8.17Comment on D8.17 BimCraft: use your own sheet design with writeable fields (draw it, or import an SVG)

Asked (pasted 2026-11-06). Built: Formats… > Import SVG… reads a drawing from any program (rect, line, polyline, polygon, circle, ellipse, path with curves and arcs, text, groups, transforms) into lines and words; a word written {{company}}, {{drawing-name}}, {{number}}, {{project}}, {{date}} or any word of your own becomes a field typed per sheet ({{drawing-name}} / {{number}} are the sheet's own); a rectangle with id="drawing-area" says where the views go (Arrange for me uses it). Formats… > Draw one… is a small editor (rectangle, line, words / fields, drawing area, border, undo) that makes the same kind of SVG. The design is fitted to the sheet (never stretched), kept in the model as a title block, carried by the library file, and printed to PDF. Scripts and images in an SVG are ignored (read as shapes, never put on the page). Limits: a design drawn here is not re-opened for editing (delete and draw again, or edit the exported SVG); fills are grey, colours are not kept; fonts are the sheet's own. Not yet shared with the other apps' sheets (the parser is a DOM-free file, ready to sync). Tests in views09 --only t (30) and browser-views09 --only t (13).

BimCraft Built · Live – – From: BimCraft user (pasted) (Owner) Pasted by the owner
FeatureD9.9 Link to D9.9Comment on D9.9 Zoom in and out of the drawing to see details (request in German)

Asked on /suggest (#1236, Nov 6 2026, in German, “Zeichnung vergrößern, verkleinern”): “Details should be zoomable; often the drawing in the edit window is too small and it is hard to see details.” The submitter did not say which app. Checked 2026-11-07: CadCraft has a ZOOM command and view zoom already; the report reads as someone not finding it, or a drawing that opens small (page or sheet view, a small window, a large paper size), or a touch screen where pinch/scroll do not work. Do: find which app and device (reply in German if there is an email), then check: zoom buttons visible on the canvas for mouse-less use, zoom to a window, zoom to the drawing on open, and the German labels (Vergrößern, Verkleinern, Alles zoomen). Not built yet. Built 2026-11-07 (lab, CadCraft): toolbar View group has Zoom in (2×) and Zoom out (½) beside Extents, Window and Previous, centred on the view (ZOOM 2x / ZOOM 0.5x, which already worked typed); tooltips say the wheel zooms at the pointer. bin/test-cadcraft.mjs 2815/0. Untested: German labels are a draft (en, es-MX, id only), the touch pinch, and on which app the requester looked (CadCraft done; BimCraft not changed).

CadCraftBimCraft Built · Live – – From: site suggestion (Site) Suggestion #1236, Nov 6 2026
Education (Track ED) 2
FeatureED.1 Link to ED.1Comment on ED.1 Live TeamWork: follow the teacher (follow the presenter)

Owner 2026-11-03 (educator kit): "allow students to follow the teacher". Built in a Live TeamWork session (assets/js/live-follow.js, shared by every app that uses the live presence layer; CadCraft and MarkupCraft mount it from their own live UI). A person can choose Follow on another person's name and their view moves with the presenter's: 2D camera centre and zoom (a smaller window zooms out to show all of the leader's view), 3D eye, target, field of view and parallel height, and the sheet, storey or space when the app can open it. The host can press "Ask everyone to follow me"; each joiner can still step away. Following stops by itself when the follower pans, zooms or orbits on their own, and a chip names who they were following and offers to rejoin. The view travels in the existing presence message, newest only, and nothing about it is saved in the file. Not tried in a live session with real students; the educator kit copy can now mention it.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftStudio Built · Live – – From: Owner (Owner)
FeatureED.2 Link to ED.2Comment on ED.2 Live TeamWork: class view, the teacher looks in on each student's work

Owner 2026-11-03 (educator kit): "allow instructor to look at student progress". Built as the people list in Live TeamWork (same module, assets/js/live-follow.js): everyone in the session with their colour and name, the tool they are running, the sheet they are on, how many edits this window saw from them and when the last one was, and a Follow button on each, so the teacher can go to a student's view. Names from other people reach the page as text only. NOT built from the first plan: students each working in their own drawing inside a class room, a live thumbnail of each student's work, and "Look in" read-only or "Help" with a separate viewer role. Today the class works in one shared drawing and the teacher sees the class at a glance in the list. Not tried in a live session with real students.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftStudio Built · Live – – From: Owner (Owner)
Library 8
FeatureATTR.6 Link to ATTR.6Comment on ATTR.6 One shared PDF text kit: BimCraft and CadCraft use lib/report

Owner 2026-11-03. lib/report is now the only copy: BimCraft's a Discord member-pdf.js and Markdown parser and CadCraft's pdf-font.js are thin wrappers over synced a Discord member/report copies (tools/report/sync.mjs; tools/engineer/sync.mjs for PartCraft and SuperCad Studio). BimCraft's PDFs still print with the built-in fonts only; passing fonts would give it Unicode too, not done. Tests pass: bin/test-bimcraft.mjs --sx-tags --only docs (48), --regs (151), bin/test-cadcraft.mjs (2773), bin/test-markupcraft.mjs (564). In /lab, not released.

CadCraftBimCraftMarkupCraftSuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.7 Link to ATTR.7Comment on ATTR.7 Library credits table on a sheet in CadCraft and BimCraft

Owner 2026-11-03. BimCraft: every drawing set with Library items gets a Library credits schedule, including doors and windows, made again from the model each time and placeable on any sheet. CadCraft: the CREDITS command (ribbon, and a button in the Library credits view) draws the credits as one block of lines and text, at a point and text height you choose; it saves to DXF; running it again updates the table in place and adds no second copy. Both use lib/report/credits.js, required credits first, CC0 after. Limits: CadCraft's table updates only when CREDITS is run; BimCraft sheets print with Helvetica, so non-Latin credits show as ?. Tests: bin/test-cadcraft.mjs, bin/test-bimcraft.mjs --lib-openings and --res, tools/super-test/binder.mjs (real CadCraft panel). The BimCraft schedule was not clicked through in the app's Sheets dialog. In /lab, not released.

CadCraftBimCraft Built · Live – – From: owner (Site) owner 2026-11-03
FeatureLIB.C1 Link to LIB.C1Comment on LIB.C1 Library collections: the Library is the one home of every object; each app starts from a default collection

Owner 2026-11-05: library as the primary source of all object information; CivilCraft gets a default collection from the Library (its plants and items), usable in every app. Spec docs/0.9-LIBRARY-COLLECTIONS.md. Built: collections tables (migration 124), LibraryCollections, GET /api/v1/library/collections[/<slug>|/app/<app>], bin/library-collection-make.php, test bin/test-library-collections.php (17/0). Next: publish the 421 seed plants (bin/library-import-plants.php, dry run clean), make civilcraft-landscape the CivilCraft default, then CivilCraft Landscape loads it (C.3), places any Library item (C.4), other apps add it (C.5). Parametric Library objects (params + generator) are a separate track. C.2 done 2026-11-05: 421 seed plants published as Library plant items (system author), collection civilcraft-landscape published and set as CivilCraft default; served at /api/v1/library/collections/app/civilcraft. C.3 started 2026-11-05 (in /lab): the Plants section says where its list came from (the civilcraft-landscape collection, count, revision, or the built-in list when the Library is unreachable); Landscape panel sections fold shut and a menu command opens the one it works with (landscape/fold.js). The app still reads plants.csv for the data; reading the collection manifest itself comes next. C.3 done 2026-11-05 (in /lab): CivilCraft Landscape now reads its plants from its default collection (GET /api/v1/library/collections/app/civilcraft/plants.csv; every published plant when no collection is set; the built-in list when the Library cannot be reached). Panel sections: opening one shuts the others unless locked (lock icon by the caret). Landscape tests 533/0, collections 17/0. C.4 (place any Library item) and C.5 (other apps) still planned.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – – From: owner (Owner) owner direction 2026-11-05
Interior lighting design add-on (IL) 5
FeatureIL.4 Link to IL.4Comment on IL.4 Lighting design glare (UGR) estimate

CIE 117 formula with Einhorn position index, four observers at 1.2 m, initial flux. An estimate from the file, not the maker table. Not checked against a published UGR table yet.

CadCraftBimCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.6 Link to IL.6Comment on IL.6 Lighting design report: printable page with map, results, checks

HTML page (print to PDF), SVG illuminance map with scale, summary, checks, the notes on what the numbers are. Not in the Studio report binder yet.

CadCraftBimCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.9 Link to IL.9Comment on IL.9 Lighting design in BimCraft: IfcLightFixture placement and lux on the model

Place real IFC light fixtures, schedule them, and show the calculated lux on the model rooms. adapters-09 2026-11-06: In BimCraft the add-on reads the model's rooms with their windows and the walls' height, places the luminaires as IfcLightFixture (BimCraft's own ceiling luminaire with plan symbol, tag and watts as Load, plus CadCraft_LightDesign with lumens, watts and the room's mean lux) in the room's level, and writes the lux as numbers into that level's plan view; drawing again replaces, Erase removes, undo restores. Tested on the showcase house in the real page (tools/bimcraft-test/browser-lightdesign-bim.mjs 22/0). Window height is assumed 1.2 m; the plan view was checked through the model data, not by eye in Studio.

BimCraft Built · Live 4 – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.1 Link to IL.1Comment on IL.1 Lighting design engine: room, photometry, inter-reflection (radiosity)

Built in the lab: lib/lightdesign. Direct light from .ies/.ldt plus the light bounced off floor, walls and ceiling as diffuse patches. Checks: energy conserved to 1.8 %, and a Monte Carlo photon trace of a 6 x 4 m office agrees to 1.4 %. No furniture, columns, windows or daylight.

CadCraftBimCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
Discord, last sweep before 0.9 (2026-11-05) 5
FeatureDC.119 Link to DC.119Comment on DC.119 BimCraft: add a level below the lowest level

Asked 2026-11-04: is there a way to create a level below the lowest one made so far. Not checked in the code. Do: check whether a negative-elevation level can be added (basement, footings); if not, add Level below to the level controls with undo. bim-fix-09 2026-11-05: Checked first: no way existed (Add a level on top only; Add levels... takes heights from 0 up; typing a negative elevation moves every level above with it). Built: Levels panel > Add a level below (model-ops newLevelBelow): a level under the lowest, as tall as it, at a negative elevation, named Level -1, Level -2; nothing else moves; one Undo step; redo keeps the same GlobalId; walls can be drawn on it. Tests: node bin/test-bimcraft.mjs --levelbelow, tools/bimcraft-test/browser-model.mjs --only bm2. Help: draw-walls, site-building-and-levels.

BimCraft Built · Live 1 – docs/0.9-sessions/final-sweep-2026-11-05.md
Wall tool 4
FeatureWT.2 Link to WT.2Comment on WT.2 Wall tool, Draw: rectangle, rotated rectangle, polygon, arc by centre, tangent arc, pick one line, trace outline

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Not built (page 5): Rectangle (four walls, four corner joins, one action), Rotated rectangle, Polygon (inscribed / circumscribed), Arc by centre (centre, radius, sweep), Tangent arc (continues from the last segment), Pick lines (one line or edge at a time; Tab picks the chain; today only a whole DWG / DXF / PDF scan), Trace outline (click inside a closed area; today only 'Develop this mass'). Each is a recipe on the Place block (addWall, Wall tool, model-trace.js) ending in the join solver (FX.60); the Shape list on the Wall button holds the shapes. Icons: wallrect, wallrectrot, wallpoly, wallarcc, walltan, wallpick, walltrace. OTHER APPS: CadCraft already has rectangle and polygon as drawing tools but not as walls with joined corners: its plan walls (FX.59) should get the same recipes from one shared place. Not started. walls-09 2026-11-06 (done): Built in /lab: Wall › Shape list and the new Shapes menu (DU.1 icons wallrect, wallrectrot, wallpoly, wallarcc, walltan, wallpick, walltrace; commands wall.rect ... wall.trace): rectangle (four walls, four L joins, one undo step), rotated rectangle, polygon inscribed / circumscribed (3-64 sides), ar... see docs/0.9-sessions/walls-09.md. walls-plan-09 2026-11-06 (done): CadCraft plan walls: rectangle, rotated rectangle, polygon, arc (as 15 degree chords: plan walls are straight), tangent arc, pick lines, trace outline as WALLRECT, WALLROT, WALLPOLY, WALLARC, WALLTAN, WALLPICK, WALLTRACE, same gestures as RECTANG and POLYGON, one undo step each, corners joined. One ... see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.2-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.3 Link to WT.3Comment on WT.3 Wall tool, Set and Modify: placement offset, join on/off, edit by dimension, offset wall, box stretch, align and lock, lock dimension

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Pages 5-6. Partly or not built: Placement offset (a free distance off the picked line; today half a thickness), Join on / off (free-standing wall; today joins are always automatic), Edit by dimension (type a value: the selected wall moves, the reference holds; today typing does not move a wall: FX.58 / spec test 4), Offset wall (neighbours stretch), Box stretch (ends inside a marquee move, walls crossing it stretch), Align and lock (padlock holds the alignment), Lock dimension (a locked dimension holds through later edits). The last two are the new Hold block (wall-dimensions.js is the base: dimensions already know which face they measure). Icons: wallplace, walljoinsw, walleditdim, walloffset, wallbox, wallalignlock, walllockdim. OTHER APPS: CadCraft plan walls and dimensions want Hold too (it is the Revit padlock); build it once for both. Not started. walls-09 2026-11-06 (done): Built in /lab: placement offset and Join on/off in the Wall row (Wall tool and shapes); edit by dimension (type the value in a reference dimension's Properties: the second reference's wall moves square, the first holds; spec test 4 Pass); Offset (move or Copy); Box stretch; the Hold block (lib/walls... see docs/0.9-sessions/walls-09.md. walls-plan-09 2026-11-06 (done): CadCraft plan walls: placement offset and Join off in WALL (O, D), edit by dimension (WALLDIM), Offset (WALLOFFSET, Copy), box stretch (WALLSTRETCH), and the Hold block (WALLHOLD align and lock, WALLHOLDDIM, WALLUNHOLD, WALLHOLDS): stored on the wall, kept by moving the other side, refused with the ... see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.3-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.4 Link to WT.4Comment on WT.4 Wall tool, Cut: split, split with gap, delete segment

Wall tool spec pages 4-8 (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Icons: the DU.1 family (assets/js/app-workspace-icons.js: 32 grid, 1.5 round stroke, two-tone fills, Full Color or Outline). Page 6-7. Not built (BimCraft's own help lists Split as not built): Split at a point or crossing wall (the two parts stay joined end to end, same type; decision D2 is whether they stay joined in line or become free ends), Split with gap (a set gap; rejoin restores one wall), Delete segment (remove the piece between two clicks). Spec test 6. Cut block today is model-trim.js (trim, extend, corner: Built). Icons: wallsplit, wallsplitgap, walldelseg. OTHER APPS: CadCraft plan walls have no Split either (FX.59 assessment); shared recipe. Not started. walls-09 2026-11-06: Built in /lab: Edit › Walls › Split (at the click or a crossing wall; Gap; Free ends), Delete segment, Rejoin (one wall again, the first keeps its id). Doors and windows go with their part, a cut through one is refused, reference dimensions follow their point. D2 default: the parts stay joined in line (Settings › BimCraft › Walls › When a wall is split: joined | free ends). Spec test 6 Pass (node and real page). Recipes in lib/walls (host-free; copied to bimcraft/a Discord member/walls by tools/walls/sync.mjs), BimCraft adapter wall-tools.js + wall-tools-ui.js. Tests: node lib/walls/test/test.mjs (59/0, known answers worked out in the file), node bin/test-bimcraft.mjs --walltools (all ok, incl. the spec's nine tests: all Pass), real page tools/bimcraft-test/browser-walltools.mjs 33/0. Help: wall-tools (en). NOT done: CadCraft, SuperCad adapter, hand check (WT.4-HAND). walls-plan-09 2026-11-06 (done): see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.4-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (pages 4-8)
FeatureWT.7 Link to WT.7Comment on WT.7 Wall + Grid: lock walls to grid lines so they move with the grid

Wall tool spec page 9, 'How other tools combine with the wall' (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Code checked in the a Discord member source 2026-11-05. Spec: snap walls to grid lines and lock them; move a grid line and its walls move with it (Hold -> Place in space -> Join solver; today Partly). Today (model-grids.js): grids are drawn, IfcGrid lines from other programs are read for display and snapping only; walls snap to them while drawing but nothing remembers the link, so moving a grid line moves no wall. Wanted: a wall end or location line can be locked to a grid line (the Hold block, with WT.3 Lock), moving the grid runs the join solver. OTHER APPS: CadCraft has grids too; build the lock once. Not started. walls-09 2026-11-06: Built in /lab: Properties › Lock to grid (a wall along a grid line, or an end on one), stored with the Hold block; Grid tool › pick a line › Move by (new: the UI could not move a grid line before) moves the line and the locked walls follow with their joined walls, one undo step; renaming keeps the lock, deleting the line drops it; moving a locked wall off its line is refused; a turned line that cannot keep the lock is refused. Recipes in lib/walls (host-free; copied to bimcraft/a Discord member/walls by tools/walls/sync.mjs), BimCraft adapter wall-tools.js + wall-tools-ui.js. Tests: node lib/walls/test/test.mjs (59/0, known answers worked out in the file), node bin/test-bimcraft.mjs --walltools (all ok, incl. the spec's nine tests: all Pass), real page tools/bimcraft-test/browser-walltools.mjs 33/0. Help: wall-tools (en). NOT done: CadCraft grids, SuperCad adapter, hand check (WT.7-HAND). walls-plan-09 2026-11-06 (done): see docs/0.9-sessions/walls-plan-09.md.

CadCraftBimCraftSuperCad Studio Built · Live 1 Hand check is community test WT.7-HAND (not blocking) From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 9)
Planned suggestions, built in 0.9 (2026-11-06) 4
FeatureSU.908 Link to SU.908Comment on SU.908 Finite elements for plates, shells and solids (linear static and modal), the engine behind slabs, shear walls and a solid stress check

Asked (#908: Abaqus, Ansys, SAP2000, STAAD.Pro, ETABS and others; #890 RFEM; #1057 SPACE GASS; #1141 SAP2000): finite elements beyond beams. Built (lib/fem, own code, Apache-2.0): four-node shell (MITC4 or DKQ), ten-node tetrahedron, modal analysis, sparse IC(0)-PCG solver, slabs and shear walls through the frame mesher; known-answer tests with cited derivations (Navier, Lame, Timoshenko, Leissa, Blevins; 60 + 10 + 15 checks). Reachable: the Analysis panel of BimCraft and DetailCraft, block 'Finite elements: natural frequencies': modes, period, effective modal mass, mode drawn on the model, member end releases and rigid floors carried, settings saved with the model, the report carries the table, help written. Deflections, reactions and plate moments of slabs and walls are shown by the frame solver in the same panel (lib/frame plates; lib/fem agrees with it to 1 % in tests). Solid FEM: lib/fem's tet10 solid is the PartCraft add-on 'Solid FEM' with its own panel (SU.908c); PartCraft keeps its own solver (owner 2026-11-06). DKQ is a panel choice; the static solve in the panel stays lib/frame's (one engine, no second copy). Not built: nonlinear, contact, damping, response spectrum, soil models. No claim of equality with any other program. Hand check: SU.908-HAND (big meshes and a real building on a workstation or by the community; not a blocker). fem-complete 2026-11-06: docs/0.9-sessions/fem-09.md

BimCraftModelCraftDetailCraftPartCraft Built · Live 12 Hand check is community test SU.908-HAND (not blocking) docs/0.9-sessions/planned-suggestions-09.md
Units 1
FeatureTKW.1 Link to TKW.1Comment on TKW.1 Weight and temperature units (kg, lb, t, ton; °C, °F, K, °R)

Asked in support message #1329 (metric in the quick properties, kilograms, Celsius). Owner 2026-11-08: build weight and temperatures, both F and C, into 0.9. Shared table lib/units gets two kinds: mass (mg, g, kg, tonne, oz, lb, ton, long ton; exact factors from the 1959 pound) and temperature (K, °C, °F, °R; offset scales, converted without a detour through kelvin for C and F, negative values read correctly); Settings › Global › Units lists them (en, es-MX, id words). TakeoffCraft: lb, ton, kg and t as typed-quantity units (priced like CY), an optional Temperature on every item typed and shown in °C or °F (Settings › TakeoffCraft: Follow Global / °C / °F), kept in kelvin. bin/test-units.mjs 261/0, bin/test-takeoffcraft.mjs 1210/0. Seen in the real /lab page: browser-weights-temps.mjs 12/12 (unit lists, temperature typed in C and F, display setting, undo). Temperatures are absolute (a difference is not converted). Reports/exports do not carry the item temperature yet. Reply sent 2026-11-08 (support #1329, answered). No account for abdulrahman.mahmoud@almada-eg.com yet: the reply invites him to sign up; grant the lab pass (TakeoffCraft, a Discord member) when the account appears.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live – requester account for the lab pass From: Abdulrahman Mahmoud (Site) support message #1329 2026-11-08
Resin printing add-ons (RSN) 9
FeatureRSN.1 Link to RSN.1Comment on RSN.1 Resin slicer core: layers at the printer screen, hollowing, island check, layer preview (add-on slicer-resin)

Built in the lab: add-on slicer-resin over lib/printresin, in the 3D Print card under "Printing with: Resin". Layer pictures at the printer's screen resolution with smooth edges, hollowing with vent holes, floating pieces ringed on the layer preview, time, resin and cost. Free, nothing locked. Printer sizes are the makers' published numbers and the exposure numbers are starting points. Tests: slice 35/0, browser 24/0. Never run on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.2 Link to RSN.2Comment on RSN.2 Resin file: Elegoo GOO (add-on printer-resin-goo)

Built in the lab, from Elegoo's published Goo Format Spec V1.2 with no third-party source read. What the spec leaves open is now switchable on the card: byte order (big or little endian; big by default from an unverified secondary report) and checksum (negated sum or plain sum). The spec's own example offset cannot be reached by its field table (the table gives 195,477 bytes, the example 195,255), so the example is read as illustrative. Other gaps are marked SPEC-GAP in rs-goo.js. Read back by our own reader only (86/0). A real Elegoo printer is the check.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.3 Link to RSN.3Comment on RSN.3 Resin file: SL1 layered-image archive (add-on printer-resin-sl1)

Built in the lab, from public descriptions (Prusa publishes no specification): config.ini and numbered 8-bit PNG layers in a zip. Several keys are marked UNVERIFIED in rs-sl1.js. Read back by our own reader only (38/0). NanoDLP's different layout is not built.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.4 Link to RSN.4Comment on RSN.4 Resin exposure test: test part and a ladder of exposures (add-on resin-calibration)

Built in the lab: a 46 x 30 mm test part (square pillars 0.3 to 1.5 mm, round holes 0.4 to 1.5 mm, two bridges) and the same print at five exposures from 70 to 130 percent, one file each, in a zip. Test 10/0 and in the browser test.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.5 Link to RSN.5Comment on RSN.5 Resin supports and raft: pillars from islands, overhangs and the first layer

Built in the lab inside slicer-resin: the part is lifted on a raft; unsupported areas are sampled on a grid and each gets a pillar to the raft or the part below, fine tip and wider shaft; density light, medium, heavy. New and unproven: pillars do not brace each other, no suction-cup detection. Tests in test-slice.mjs.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.6 Link to RSN.6Comment on RSN.6 Resin files from Chitubox: CBDDLP and CTB (add-on printer-resin-chitu)

Built in the lab (owner 2026-11-08), clean room: both written from ONE prose document (cbiffle/catibo a Discord member/cbddlp-ctb.adoc, BSD-2-Clause repository; whether that file carries its own licence is for legal to confirm), no GPL code read. CBDDLP in full; CTB for the layout that document describes (version 2, 7-bit pixels), with the document's cipher as an option. Options on the card: edge smoothing levels, projection flag, resolution field type, encryption. The document says it was tested on the Creality LD-002R and files for the older Elegoo Mars; no other printer is named. Later CTB versions are NOT written (see RSN.10). Tests cbddlp 28/0, ctb 25/0, browser 31/0. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.8 Link to RSN.8Comment on RSN.8 Resin slicing on a worker thread

Built in the lab (2026-11-08). The resin slicer runs on a module worker (lib/printresin/rs-worker.js, started by rs-run.js) so the page stays alive while a big plate is sliced; the worker borrows the print stage's manifold file and ps-slice.js through the URLs the host already gives the filament slicer. The layers come back as run-length data, moved not copied. Cancel ends the worker. A page that cannot start a worker slices on the page as before. Same layers byte for byte as slicing directly (test-worker 14/0; the real-browser run confirms rs-worker.js starts). With FX.140 the drawing is also about 6 times faster. Not tried on a real printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.10 Link to RSN.10Comment on RSN.10 Resin files: Chitubox CTB versions 3, 4 and 5 (in add-on printer-resin-chitu)

Built in the lab (owner 2026-11-08: "build to version 3+"), our own Apache-2.0 code from a written specification (docs/resin-formats/ctb-v3-v5-SPEC.md), by a builder who saw nothing else. Two layouts under one name: plain tables (version 3, 4, 5) and encrypted settings (version 4, 5; AES and SHA-256 through the platform's WebCrypto). Options on the card: layout, version, edge smoothing, projection, layer scrambling. The vendor's disclaimer text is not reproduced (our own 320 bytes: a printer might check it). Which printer needs which layout is not established. The v2 writer's cipher constant is now an option too. Tests ctb3 170/0, incl. the spec's test vectors. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.11 Link to RSN.11Comment on RSN.11 Resin files: Anycubic Photon Workshop PWMX and PWS (add-on printer-resin-anycubic)

Built in the lab (owner 2026-11-08), our own Apache-2.0 code from a written specification (docs/resin-formats/anycubic-pwmx-SPEC.md), by a builder who saw nothing else. .pwmx (file version 1, optionally 516) and .pws. Options: mirror the picture, file version, edge smoothing, per-layer flag. Not written: versions 517 and 518 (the newer M5 and M7 families). The spec writer measured two public sample files (a .pws and a .pwmx) and found the real files differ from the reference code in three places; the spec records them. Tests pwmx 91/0, browser 38/0. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
Owner-reported, 2026-11-09 10
FeatureDC.120 Link to DC.120Comment on DC.120 BimCraft: Library "Place in plan | Place in model" split button; the default follows the current view

Owner, 2026-11-09, from a Split-view screenshot: the Library detail shows one 'Place in the model' button. Corrected twice the same day. Final rule: Plan view shows a plain 'Place in plan' button; Model (3D) view shows a plain 'Place in model' button; ONLY Split view shows the split button [Place in plan | Place in model] with Place in plan as the default; it switches as the view changes. Critical: both ways follow the existing Library place-object process (storey, ghost, R, wall snap, mount, item number question, one IFC result). The label is never clipped. Built in apps/bimcraft/a Discord member (library-view.js); the 0.9 folder gets it by a patch.

BimCraft Built · Live 2 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FeatureDC.121 Link to DC.121Comment on DC.121 BimCraft: drag a Library item onto the plan to place it

Owner, 2026-11-09: 'the drag and drop onto plan feature request STILL isn't implemented - this needs to be in 0.9'. The original request was not found in the roadmap, suggestions, docs or memory, so it is built as the owner described it: a Library card dragged onto the plan (Plan view, or the plan half of Split) places the item there through the same place-object process, the drop point being the start position. Dropped files still open as files. Keyboard route: the split Place button.

BimCraft Built · Live 2 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.147 Link to FX.147Comment on FX.147 All apps: a panel tab strip that does not fit scrolls (visible chevrons) instead of cutting tabs off

Owner, 2026-11-09 (MarkupCraft right panel): the tab row (Properties, Markups, Punch list, Tasks, Notes, Field, Tool chest) was cut off with no way to scroll; only widening the panel reached the last tab. Tab labels never wrap.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.148 Link to FX.148Comment on FX.148 All apps: every panel and sub-section header is title, lock, caret at the far right (open down, closed up); lock at 50% opacity

Owner, 2026-11-09 (MarkupCraft, DetailCraft, CivilCraft, CadCraft panels): carets were on the left, lock icons hung off the title, CivilCraft's sections had neither, carets did not line up. One shared header; the direction is one CSS variable (--af-caret-open / --af-caret-closed); --cc-lock-opacity .5. A lint reads the DOM of every app. Sections that were open stay open by default.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 2 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.149 Link to FX.149Comment on FX.149 All apps: every tooltip is a Bootstrap tooltip

Owner, 2026-11-09: the top-bar icon buttons showed the browser's native title tooltip. Rule: all tooltips are Bootstrap (local 5.3). One delegated initialiser upgrades every title in the shell; no double tooltip; keyboard focus shows it.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.150 Link to FX.150Comment on FX.150 All apps: the row-remove x is small and shared; the start/help card has a close x

Owner, 2026-11-09 (DetailCraft Levels rows; the 'Start a model' card): the x buttons were too large, and the start card could not be dismissed. One compact .shell-x style; the start card closes, is remembered per app, and comes back from the palette.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.151 Link to FX.151Comment on FX.151 All apps: add-on toolbar buttons look and behave like core ribbon buttons (PartCraft Print stage)

Owner, 2026-11-09: the Print stage button had no gap between icon and label and a non-standard grey fill and white border. The add-on loader mistook the right panel's pin tab for the toolbar; the button now carries the core tool class (same computed style at rest in PartCraft, BimCraft, ModelCraft).

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.152 Link to FX.152Comment on FX.152 DetailCraft and the other apps: the mass readout ("0 kg") belongs in a panel section, not a fixed corner pill

Owner, 2026-11-09: the '0 kg' pill sat in a fixed corner and could not move; it should really be in a panel. Moves into a section of the panel (title, lock, caret) so it docks, folds and floats with the panel system; the fixed-corner widgets of the other apps are audited.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.153 Link to FX.153Comment on FX.153 All apps: browser tab titles and favicons follow one pattern

Owner, 2026-11-09 (tab strip screenshot): DetailCraft read 'Untitled — DetailCraft' while the others read '<App> — Lab | CadCraft'; favicons missing or inconsistent. Pattern: '<App> | CadCraft' on /use, '<App> — Lab | CadCraft' on /lab, '<document> — <App> | CadCraft' with a document, '| CadCraft' always last; each app has its own icon (SVG plus raster fallbacks).

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
FixFX.154 Link to FX.154Comment on FX.154 BimCraft: the placing bar uses one compact control size and one button system; the X,Y placeholder is lighter

Owner, 2026-11-09 (the bar shown while placing a Library item): dropdowns, the X,Y field and buttons were different heights and weights, three different button styles (Place here, Wall snap, Turn 90, Stop placing), the readout ran under the view toggles, and the example placeholder was too dark. One compact size, one primary (Place here), Wall snap as a toggle, the readout wraps, the placeholder at about 50% of the text colour.

BimCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
Suggest an item

Anyone can send one; no account and no name needed. The team reads each idea, and the ones we take on appear on this page. Please leave out web addresses.