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 6:40 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.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.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.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.1193 Link to SU.1193Comment on SU.1193 DetailCraft: all shop drawings at once, one sheet per part mark, one PDF

Asked (#1193, Nov 3): GA drawings are made automatically; do the same for shop drawings, selecting one by one is slow. Built in /lab: Shop drawing needs no selection, its window lists every part mark, downloads one sheet or all in one PDF, numbered Sheet n of N. Channels, angles and hollow sections now get sheets too, so nothing drops out of the set. PDF only (the Drawings window also has DWG and DXF). Not checked yet by the person who asked.

DetailCraft Built · Live 2 – From: site suggestion (Suggestion) docs/0.9-sessions/uk-sections-shop-set-09.md, from /admin/suggestions 2026-11-04
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
Fixes 104
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.61 Link to FX.61Comment on FX.61 Apps that read or draw walls (DetailCraft, TakeoffCraft, CivilCraft hardscape): check what stored joins change

Wall tool spec (Duncan, 2026-11-05), tracked at /roadmap-internal 'BimCraft wall tool specification'. Assessed 2026-11-05, no change yet. DetailCraft: wallPanel frames one wall at a time (lib: framing.js); corner and T framing (extra studs, backers) would follow a join record once it exists. TakeoffCraft: scene3d wall strips and wallOutline use mitred joints for takeoff; counts should not change, but check them against BimCraft's net-of-joins quantities after FX.57. CivilCraft landscape: hardscape walls (retaining / freestanding polylines) have no join model; two garden walls meeting at a T are drawn as separate runs. Wanted: after FX.57 lands, re-run each app's wall quantities and drawings on a joined-wall file and file a row for each real difference; do not add join code to these apps by hand. ModelCraft (print-walls is wall thickness for printing), MarkupCraft and PartCraft have no joined walls. walls-plan-09 2026-11-06: Checked 2026-11-06 (read the code and measured): DetailCraft, TakeoffCraft and CivilCraft hardscape read neither the join record, nor a wall's thickness, nor CADCRAFT_WALL. DetailCraft wallPanel takes a spec (length, height, openings, stud sizes); TakeoffCraft's wallOutline is its own mitred run with a thickness it is given; CivilCraft hardscape walls are open polylines with their own thickness. Measured: a CadCraft DXF of a four-wall room opened with TakeoffCraft's and CivilCraft's readers gives 4 INSERTs and 8 LINEs in 4 anonymous blocks, extended data kept, nothing else read; so a stored join changes none of their quantities. What would change: nothing breaks. Corner and T framing in DetailCraft and joined hardscape runs in CivilCraft would be NEW features that could read the record (no row made: nothing differs today). Not run on a BimCraft IFC with join records through DetailCraft's IFC export (that it keeps the unknown relationship lines is untested).

TakeoffCraftCivilCraftDetailCraft Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 2)
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.146 Link to FX.146Comment on FX.146 DetailCraft: My profiles, custom profiles kept for every new model

A custom profile lived only in the model file, so a new model started without it. Now the Custom profile form has Keep in My profiles (ticked), and a My profiles list under it, kept in this browser (localStorage detailcraft.myprofiles, at most 200, cleaned on read by profiles.js cleanLibrary). Every new model (start-up and New) begins with them in model.state.profiles, so they save with the file. Keep button on a model's own profiles, Use here for a model that lacks one, Remove (models keep their copy), a taken name with other dimensions is refused. Per browser, not per account. Help: plates-and-profiles.md. Test tools/detailcraft-test/browser-myprofiles.mjs (15 checks). The same report also met 'only I-shape': shear tabs already take a channel BEAM but need an I-shape COLUMN, end plates need an I-shape beam; which one the person hit is unknown, no change made.

DetailCraft Built · Live – Owner to clear in 0.9, then reply to a Discord member. Account sync and channel columns / end plates are not built. From: Discord community (Discord) Discord 2026-11-09
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
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
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
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
Owner-reported, 2026-11-09 10
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
Layouts 1
FeatureRH.1 Link to RH.1Comment on RH.1 Rhino layout, Rhino keys and four views (Top, Perspective, Front, Right)

A built-in layout called Rhino (Settings › Global › Layout) and, as a separate setting, a Rhino key set (Settings › <App> › Menus, keys and mouse), for people who model with curves, surfaces and solids from a command line. Asked on Discord by a first-time visitor: the top, right, front and perspective views as an option, plus Rhino shortcuts. Layout (all eight apps): menus File Edit View Curve Surface Solid Mesh Dimension Transform Tools Analyze Render Panels Help (menubar set=rhino, each command under one menu; the verb decides for mixed groups), tool rows, two columns of tools left, panel right, command line in the status strip. New block `viewports` (layout four), filled only by apps that offer it: ModelCraft shows Top, Perspective, Front and Right at once (viewports-mc.js). One view is active and is the real view (picking, tools, keys unchanged); a click activates another; Zoom extents refits all; Ctrl+M maximizes and restores; leaving the layout gives the single view back. Keys (ModelCraft style `rhino`): typed Rhino command names (Line, Box, Extrude, Move, BooleanUnion, Top, Undo, 4View…) run the closest ModelCraft command; Ctrl+G, Ctrl+Shift+G, Ctrl+H, Ctrl+Alt+H, F9, Ctrl+Shift+E, Ctrl+M; right button turns the view, Shift+right pans. The layout's command line tries these words first (ccInput.typed). Not built: Rhino keys and four views in the other seven apps; Enter to repeat; osnap bar; per-view cameras are not saved in the file; other views draw no axes, guides or selection. Ctrl+H, Ctrl+Alt+H and F9 are from memory of Rhino's defaults: a daily user should check. Test: node bin/test-rhino-layout.mjs.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Partly built 1 owner look in /lab; a daily Rhino user to check the keys; the other seven apps' keys and views Discord request, 2026-11-09 (the owner answers the requester directly; no lab pass)
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.