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
One lineup (consolidation) 2
FeatureBot obtainedDC.1 Link to DC.1Comment on DC.1 One app with plugin modes (SuperCadCraft)

User proposes collapsing eight separate apps into one app with plugin-based operating modes for BIM, 3D, CAM, GIS, and structural work instead of separate applications.

– App shell Built · Live – – From: Discord community (Discord) Discord #suggest-a-craft, Oct 11, 2026
FeatureBot obtainedDC.54 Link to DC.54Comment on DC.54 RhinoCraft or GrasshopperCraft: parametric modeling and scripting

Request to create a RhinoCraft or GrasshopperCraft product with parametric modeling and scripting capabilities like Rhino and Grasshopper.

ModelCraftPartCraft Built · Live – Hand check is community test DC.54-HAND (not blocking) From: Discord community (Discord) Discord #suggest-a-craft, Oct 14, 2026
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.858 Link to SU.858Comment on SU.858 Material-handling layout, simulation and PLC emulation (conveyors, stations, AGVs)

Asked: emulation and simulation software for material handling that costs about $40,000 a year (#858, Oct 20; 43 votes, the most-voted ask). Do (docs/0.8-PART2.md § SU.858): a ModelCraft add-on `flow`: a catalogue of conveyors, merges, diverters, stations, buffers, sources/sinks, AGVs and sensors with ports; snap a layout in 3D; a deterministic discrete-event simulation with accumulation and routing rules; playback in 3D, statistics, CSV. Later, Studio only: PLC emulation over Modbus TCP or OPC UA (owner picks the first). No physics; loads are kinematic. PLC mode (2026-11-06): the panel's PLC mode chooses Soft or Real, saved with the model. Soft runs the Digital twin's soft PLC (ST or PLCopen XML) on the layout with no hardware, in the browser or Studio, repeatable to the byte. Real talks Modbus TCP to a PLC through Studio (plc.rs client commands) with an address map editor (tag, type, table, address, scale); in a browser tab it is off with the reason. Simulation-only safety line; the PLC's address is never saved in the file. Tested: Modbus spec known answers, loopback against a JS Modbus server, the real /lab page. Needs the 0.9 Studio build (Rust core tested alone, Tauri wrappers not compiled here). Real PLC check: community row SU.858-HAND.

ModelCraft Built · Live 20 Studio 0.9 build with the plc.rs client commands; real-PLC hand check is community test SU.858-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.1110 Link to SU.1110Comment on SU.1110 CivilCraft: reusable corridor templates and several assemblies on one corridor, with left and right pavement and end conditions set apart

Asked (#1110, Oct 28): templates for roadway and site structures (curb, gutter, sidewalk, retaining walls), as OpenRoads Designer does: a template usable on any element, even applied to terrain surfaces; several templates or assemblies on one corridor; pavement and end conditions controlled left and right separately; small templates reused instead of a custom one per project. Builds on D7.35 (corridor assemblies) and WL.25 (corridor targets). Do: template library (components with offsets, slopes, materials, point codes); corridor takes a list of templates by station range; left and right pavement and end conditions (daylight to ground, wall, ditch) independent; surface templates for terrain edits (LD.3 grading). Example templates are for checking by an engineer. **Implementation started 2026-11-02** (0.9 top-5 pick #4, hardest first; session `civil-templates-09`, log docs/0.9-sessions/civil-templates-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

CivilCraft Built · Live 10 Engineer review of the 8 example templates (placeholders, marked for checking by an engineer) From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1085 Link to SU.1085Comment on SU.1085 MarkupCraft: batch links, callouts and details linked to sheets by sheet name

Asked (#1085, Oct 27): links and batch links like Bluebeam and Procore: search the sheet names and connect callouts and details to the plans. Do: read sheet numbers and names from title blocks (text layer, with a hand fix), find callout text such as 3/A-501, link each to its sheet and view in one pass, show a list of what linked and what did not, save as PDF link annotations and as MarkupCraft links. **Implementation started 2026-11-02** (0.9 pick #8, second five, hardest first; session `markup-links-09`, log docs/0.9-sessions/markup-links-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

MarkupCraft Built · Live 4 Built in /lab, tested on our own fixture set only; owner: a real multi-sheet set to check view finding. New words English-only until a translation run. From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1083 Link to SU.1083Comment on SU.1083 CadCraft: a thinner, floating command line and a smaller top area, to give the drawing more room

Asked (#1083, Oct 27, in Italian): make the command line at the bottom resizable, much thinner and floating as in AutoCAD, and shrink the top commands area, for more working space. Do: command line docks bottom or floats (drag, remembered), one-line height option with the history in a pop-up, ties into the layout-fit prompt and compact ribbon already built (WS, PANEL-COMPACT, shell.fit). **Implementation started 2026-11-02** (0.9 pick #10, second five, hardest first; session `cad-cmdline-09`, log docs/0.9-sessions/cad-cmdline-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

CadCraft Built · Live 3 – 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.1128 Link to SU.1128Comment on SU.1128 Robot cells in the flow add-on: reach, cycle time and offline robot program export

Robot cells in the Material flow add-on (ModelCraft, /lab), Robot cell panel. The person chooses (owner 2026-11-06): a robot model (generic 6-axis, SCARA, delta, Cartesian, and a 6-axis with the UR5e's published kinematics; the joint table is editable and saved with the document) and which program formats to save, several at once, remembered per document and per user: path list (CSV and JSON, always), ROS URDF, ROS joint trajectory, Universal Robots URScript (two public sources, dated in the panel's Sources list). Reach, cycle time, I/O set and wait, pick and place. Left out (a language needs two independent public sources for every statement it uses): ABB RAPID, KUKA KRL (both close), Fanuc, Yaskawa, Kawasaki, Mitsubishi, Staubli, Denso. Reasons in the panel. Vendor programs are minimal, labelled unverified and not run on a robot. Not built: collision checks against the layout, tool/frame statements, blending. Tests: docs/0.9-sessions/flow-robots-09.md. Real-controller check: SU.1128-HAND.

ModelCraft Built · Live 14 Hand check is community test SU.1128-HAND (not blocking) 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.1082 Link to SU.1082Comment on SU.1082 Reverse engineering: scan mesh to NURBS surfaces and solids (automatic surface fit)

Asked (#1082, Oct 27): Quicksurface Pro-style reverse engineering of 3D scans; too expensive for private use. mounts-09 2026-11-06 (partial): Help lines landed in ModelCraft and PartCraft nurbs-surfaces.md (rim fillets and variable fillets in what the fit finds; the "does not do" paragraph says where they are looked for); help rebuilt, 0 errors. See docs/0.9-sessions/mounts-09.md.

ModelCraftPartCraft Built · Live 15 Hand check is community test SU.1082-HAND (not blocking) From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.1080 Link to SU.1080Comment on SU.1080 CivilCraft: GIS analysis tools (buffer, overlay, spatial join, attribute tables) with shapefile and GeoPackage

Asked (#1080, Oct 26): a GIS tool; ArcGIS Pro is expensive and the requester has not learned QGIS. CivilCraft has map layers and GeoJSON/LandXML. Do (after a gap check against map layers): attribute table with filters and joins, buffer, clip, intersect and dissolve, symbology by attribute, shapefile and GeoPackage read and write. Candidate: owner decides whether CivilCraft should grow GIS or point people to QGIS. **Implementation started 2026-11-02** (0.9 pick #12, third five, hardest first; session `civil-gis-09`, log docs/0.9-sessions/civil-gis-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49). **Built in /lab 2026-11-02 (session civil-gis-09, log docs/0.9-sessions/civil-gis-09.md):** Surface > More > Analyze (or type ANALYZE): buffer, overlay (intersect, union, erase, dissolve), spatial join, select by attribute or shape, measure and statistics, each a new layer in one undo step, with help topic gis-analysis. Shapefile and GeoPackage read/write were already built. **Round 2 built in /lab 2026-11-02 (same log, Round 2):** attribute table (layer menu or Surface > More > Attribute table): sort, filter by expression or words, rows and plan features selected both ways, cell edits with undo, add/rename/remove fields, field calculator (no eval), CSV, 3,000+ features without freezing; Style by attribute (single, categorized, graduated: equal interval, quantile, natural breaks; colour-blind safe ramps, size by attribute for points, polygon tint, legend on the plan), saved in the project file. **Not built:** manual class colours, a legend in plots, adding or deleting rows, field type changes, geodesic buffers.

CivilCraft Built · Live 14 owner: hand check in /lab with a real parcels file (table, style, Analyze) 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
FeatureSU.886 Link to SU.886Comment on SU.886 Router carving add-on: V-carve, engrave and relief from a depth map to G-code, with an editable post and a program check

Asked (#886, Oct 21): an open-source, agent-friendly CAM for hobby CNC routers and laser cutter/engravers: 2D (DWG, DXF, SVG, image) and 3D (STEP, STL, depth map) in, G-code out; cutting, V-carving, engraving, tool library, nesting, simulation, editable post-processors, agents that can check the G-code. Suggested name CamCraft or CarveCraft. Answer (owner 2026-11-04): not a ninth app. Most of it already existed: PartCraft CAM (contour, pocket, adaptive, drill, chamfer, 3D finishing, material-removal simulation, editable posts, LC.15), laser cutting and engraving incl. picture engraving (SU.772), nesting (LC.17), cabinet G-code (SU.1035). The gap was V-carving, relief carving from a depth map, and a G-code check, so it is one add-on over a DOM-free engine in lib/carve (so SuperCad Studio and the other apps can host it). Built in /lab (CadCraft add-on `carving`, off until switched on in Settings > General > Add-ons): V-carve of closed outlines (medial-axis V-bit pass with the depth set by the width, every axis point moved onto the exact bisector; flat floor at a maximum depth cleared by a flat mill or the V-bit), engraving at a depth, relief from a grey picture (drop-cutter finishing with ball, flat or V cutters, layered roughing with a leave); G-code through an editable post-processor (GRBL, LinuxCNC, Mach3, Fanuc style, inches or millimetres); a checker that reads any program back (no feed, no spindle, rapid across the work, outside the table, too deep, no unit, no end); preview of the cut block; commands CARVE, CARVEDRAW, CARVEGCODE. Not built: text to outlines (CadCraft has no such command yet), picture to vector tracing, a tool library, tabs and lead-in arcs, arcs in the G-code, 4/5-axis and lathe, PartCraft / ModelCraft / SuperCad Studio hosts (the engine is shared, an adapter each), the Library listing. Hand checks on a real machine are the owner's.

CadCraft Built · Live 3 A real machine hand check (owner); hosts in PartCraft, ModelCraft and SuperCad Studio; text to outlines in CadCraft. From: site suggestion (Suggestion) docs/0.9-sessions/carve-09.md, from /admin/suggestions 2026-10-21
FeatureSU.1209 Link to SU.1209Comment on SU.1209 CadCraft: draw.io XML to 2D geometry (DIAGRAM reads <mxfile> / <mxGraphModel>, positions kept)

Asked (#1209, Nov 5): turn the draw.io XML a local model (Qwen coder) writes into 2D geometry, so PDF/SVG content a model reads can become drawing objects; feed it straight from a local LLM. Built in /lab: DIAGRAM (T2D), the diagram_from_text tool and its headless twin read draw.io XML: boxes, rounded, ellipse, rhombus, text, swimlane/container boxes (dashed, titled), connectors with waypoints, arrow ends, dashed; HTML labels to text; positions kept (12 px = the text height); draw.io's compressed save is inflated first. Local model: no new code, it already works through AC.7 (Ollama / LM Studio / llama.cpp recipes) calling diagram_from_text with format drawio; not tried with a real local runner (none installed). Untested on real draw.io files beyond the test fixtures; shapes of other kinds are drawn as boxes, images and loose-end connectors skipped and counted. Test: bin/test-cadcraft.mjs, 9 new checks.

CadCraft Built · Live 1 – From: site suggestion (Suggestion) docs/0.9-sessions/drawio-import-09.md, from /admin/suggestions 2026-11-05
FeatureSU.1084 Link to SU.1084Comment on SU.1084 Schematic capture and circuit simulation (a Multisim-style tool)

Asked (#1084, Oct 27): schematic simulation software without a subscription, easy like NI Multisim. Built 2026-11-06 (session circuit-09): the CadCraft add-on `circuit` (Circuit simulation, off by default) on lib/schematic and lib/em. A schematic editor (resistor, capacitor, inductor, DC, AC and pulse sources, current source, switch, diode, LED, NPN/PNP, N/P MOSFET, op-amp, ground), wiring with junctions, net names, a rule check through Problems (no ground, floating pins, duplicate names, two names joined, bad values, no DC path, source loops). DC operating point, transient and AC sweep, read with a meter, scope and plotter placed on nets. Save/Open, netlist export, example, help in English. Measured (public_html/assets/apps/cadcraft/a Discord member/addons/circuit/test/test.mjs, 87 passed; errors printed): divider 2e-9, RC step worst 1e-3 V on 5 V, RLC resonance curve 1e-10, rectifier peak vs an independent Shockley solve 6e-12, op-amp stage 1e-13, MOSFET 1e-11, BJT bias 2e-7, LED 1e-8. Real page in Chromium: test/browser.mjs, 30 passed (with the mount added by a route). Not claimed: equality with Multisim or any program; Multisim files and part models are not read; no real part library (values are typed, generic defaults); op-amp has no rails or bandwidth; no noise, sweeps or Monte Carlo; not tried on a phone or in Studio. Mounted 2026-11-06: "circuit" in CadCraft's a Discord member addons/index.json (off by default); browser test 30/0 with the real index. SuperCad Studio mounts CadCraft inline from its a Discord member build, so the add-on is listed there too. Not claimed: equality with Multisim.

CadCraft Built · Live 6 – From: site suggestion (Suggestion) docs/0.9-sessions/suggestions-sweep-09.md, from /suggest
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
FeatureSU.961 Link to SU.961Comment on SU.961 Sprockets for roller chain by standard (the missing third of #961)

Asked (#961, Oct 24, in Spanish): nesting of parts inside the CAD, standard profile tables as in AutoCAD Mechanical, and sprockets. Checked 2026-11-05: nesting is built and released (PartCraft's Nest flat parts, CadCraft's Nesting add-on; SU.755, NEST-CAD-PATH) and standard steel profiles are built (the shared section tables in CadCraft's Standard panel, PartCraft weldments, DetailCraft; UK sizes in /lab by SU.1192). Built 2026-11-06 (sprockets-data): sprockets are a CadCraft add-on, Roller chain sprockets (id chain, off by default, in the lab): SPROCKET draws the real tooth outline for a chain number and tooth count; CHAINS lists the table; CHAINSOURCES names the catalogues. Table lib/chain/chain-table.json: 38 chains (ANSI 25 to 240, ISO 606 A series 08A to 48A with 085, B series 04B to 48B), pitch, roller, inner width and plate height read from nine public catalogues on 2026-11-06 and kept only where two agree (tools/chain/chain-sources.mjs, build-chain-table.mjs); NOT copied from ISO 606 or ASME B29.1. Left out: ISO 04C, 06C, 36A (one catalogue only) and plate heights the catalogues dispute (null). Found by the real rows: the default tip circle let the swinging roller hit the tip edge at 25 to 28 teeth, now 0.35 p above the pitch circle. Tests: test-chain-table.mjs 3326/0 (every chain draws and seats at 9 to 80 teeth), test-chain.mjs 298/0, add-on test 14/0, browser-chain.mjs 11/0 in /lab/cadcraft, catalogue entry + listing seeded (lab). Limits: the tooth form (2 % seat clearance, 80 degree seat half angle, tip, tooth width) is our generator's, not the standard's, and no sprocket was compared with a catalogue sprocket; CadCraft only (PartCraft, ModelCraft and SuperCad Studio hosts and Library items on the owner's seed go are not done).

CadCraftPartCraft Built · Live – – From: site suggestion (Suggestion) docs/0.9-sessions/suggestions-sweep-09.md, from /suggest
FeatureSU.810b Link to SU.810bComment on SU.810b A live link from a .3dm modeller into ModelCraft and PartCraft (one way, a script on the other side)

Asked (#810, Oct 19): a live connection between Rhino models and our apps, perhaps through Grasshopper. Built 2026-11-06, in /lab (log docs/0.9-sessions/3dm-link-09.md; design docs/spikes/SU.810.md). One script, cadcraft_link.py, runs in Rhino (watches the document, pushes after a pause, only what changed) and in a Grasshopper Script component (each solve). It sends .3dm bytes to Studio on this computer; link_push and link_status replace what the link brought last time: one group in ModelCraft (its placement, tag and neighbours stay; pushes within 2 s share an undo step), one import feature in PartCraft (features rebuild; a model that does not close changes nothing and says so). Over 4 MB goes in parts. The saved file keeps the link. Library lib/3dm-link, help live-3dm-link in both apps. Tests: tools/3dm-link/test.mjs 31/0; browser.mjs 38/0 (the real script with rhino3dm's writer, through the reference server and hub relay, into real /lab pages). Never run: real Rhino and real Grasshopper (none here; a stand-in plays their document and events, member names checked against McNeel's docs), Studio's native server, files saved by Rhino itself, SuperCad Studio's mounts. Not built: changes going back the other way, a packaged plug-in.

ModelCraftPartCraft Built · Live 3.25 – From: site suggestion (Suggestion) docs/0.9-sessions/suggestions-sweep-09.md, from /suggest
FeatureSU.1087 Link to SU.1087Comment on SU.1087 ModelCraft is the SketchUp-style modeller, with CAD tools beside it in CadCraft Studio

Asked (#1087, Oct 28): SketchUp with a full CAD tool set pre-installed; the last free version (2017) is hard to find and runs badly on new machines. Covered by what is built and released (checked 2026-11-05; nothing new was built for this card): ModelCraft is our push/pull modeller in the SketchUp style, free, in the browser and in CadCraft Studio; it imports .skp files with groups, components, colours, textures, tags and soft edges (help "Bring in an SKP model"); CadCraft (2D and 3D CAD), PartCraft and the other apps are in the same CadCraft Studio. Not the same program: SketchUp extensions (Ruby plug-ins) do not run, and .skp is read, not written. Test re-run 2026-11-05: tools/skp-test/test.mjs --no-fuzz (see the log).

CadCraftModelCraft Built · Live 0 – From: site suggestion (Suggestion) docs/0.9-sessions/suggestions-sweep-09.md, from /suggest
FeatureSU.1120 Link to SU.1120Comment on SU.1120 CivilCraft covers eSurvey-style work: contours, cut and fill, cross and long sections, KML

Asked (#1120, Oct 29): eSurvey-style software for civil projects: soil cut and fill, contour maps, KML files, cross sections and longitudinal sections. Covered by CivilCraft, released (checked 2026-11-05; nothing new was built for this card): contours (help "Read contours, elevations and slopes"), cut and fill volumes ("Earthwork volumes"), cross sections with cut and fill at each station ("Sample lines and cross sections"), longitudinal profiles ("Design a vertical profile", "Plan and profile sheets"), KML and KMZ out and in (the GIS export and import topics). Not checked: eSurvey's own file formats or a side-by-side with its outputs. Tests re-run 2026-11-05: test-civilcraft-kml, -sections, -earthwork (see the log).

CivilCraft Built · Live 0 – 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
From GitHub (to review) 2
FeatureBot obtainedGH.5 Link to GH.5Comment on GH.5 DWG reader: class list fails when a class's maintenance version is 256 or more (read as BITSHORT, spec has BITLONG)

## Summary `readClassesSection` in `app/dwg/read.js` (line 229) reads each R2004+ class record's DWG version and maintenance version as BITSHORT. The Open Design Specification for .dwg files v5.4.1, chapter 10, gives both as BITLONG. The two encodings agree for values 0 to 255 and part from 256 up: BITSHORT code 00 is followed by 16 bits and BITLONG code 00 by 32, and BITSHORT code 11 means 256 where BITLONG has no code 11. So a class whose maintenance version is 256 or more shifts every later field by 16 bits, and the read stops with `Classes could not be read: bad BITLONG code 11`. ## Where we saw it Three real R2018 (AC1032) drawings from a third party (we cannot share the files). Their class records carry DWG version 33 with maintenance version 329 for MLEADERSTYLE, ACDBDETAILVIEWSTYLE and SUN. The classes before the first of those (ACDBDICTIONARYWDFLT, MATERIAL, VISUALSTYLE, SCALE, TABLESTYLE) read fine, so the read fails on the class right after MLEADERSTYLE. A fourth R2018 drawing whose classes are all below 256 reads correctly. ## Effect - `model.classes` comes back empty, with the note `Classes could not be read: bad BITLONG code 11`. - Every class-based object then reads as unknown (`CLASS_5xx` in `report.unknown`). In our files that included two IMAGE entities inside a title block definition, which dropped out of the drawing. - `writeDwg(readDwg(bytes), { version: 'AC1032' })` leaves those objects out: "Not copied (cc-dwg cannot write them in this version, or they depend on them): 3 CLASS_501, 24 CLASS_502, 17 CLASS_503, 1 CLASS_504, 1 CLASS_505, 1 CLASS_506, 1 CLASS_507, 1 CLASS_508, 2 CLASS_511, 2 CLASS_512, 1 CLASS_513, 5 CLASS_509." Model space, layer… Opened on GitHub by a Discord member: https://github.com/getcadcraft/cadcraft/issues/5 Sweep 2026-11-05: accepted into 0.9 (planned). cad-fix-09 2026-11-05 (done): see docs/0.9-sessions/cad-fix-09.md.

CadCraft Built · Live – – From: a Discord member (GitHub) GitHub getcadcraft/cadcraft#5, Oct 28, 2026 cadcraft#5 open
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
Drafting and app features 4
FeatureWB.6 Link to WB.6Comment on WB.6 CivilCraft New Feature: Corridor, Templates, Terrain Templates and a Template Creation tool

-Template Creation Tool: A Template creation tool would be nice to see. The template creation tool should be designed to allow users the freedom to create any object. Points should be controlled through parametric constraints or targeting. -Terrain Template: Other software packages use the idea of applying a template to a terrain and it is a game changer for designers. Placing a template on a terrain allows 3d volumetric components to be "draped" on a terrain. i.e., 6" of Topsoil can be placed below a terrain or 5" of pavement with 12" of Base can be place on a terrain of a parking lot. This allows designers to create a site grading design and apply material without using a corridor modeler. Ideas: The 0,0 point of the template controls the point materials are built vertically. Any component or shape is applied to the terrain from the 0,0 point. Widths and slopes don't matter for these types of templates. Terrain templates can be clipped by a 2d shape in plan view. This will allow multiple terrain templates can be used on a terrain if different materials are required. -Corridors: Multiple Corridors: Please allow for multiple corridors to be applied to an alignment. Long alignments require the design to be broken into pieces at times. Multiple Templates : Allow multiple templates to be applied at once. i.e. Template for pavement and end condition Lt & Rt. The end condition templates can be controlled separately. Creating small reusable templates. **Built:** Built in /lab 2026-11-02 as SU.1110 (civil-templates-09): the template creation tool (parametric points, targets), terrain templates draped from the 0,0 point and clipped by a parcel, pad or closed feature line, several corridors on one alignment, several templates by station, left and right end conditions. Surface › More › Corridor templates… and Terrain templates…; an alignment's Properties › Corridor.

CivilCraft Built · Live – – From: a visitor (Site)
FeatureWB.10 Link to WB.10Comment on WB.10 Civilcraft: Add basic drafting tools. Snapping on elements. Move , Copy Rotate etc....

Drawing tools needed in Civilcraft. Snaps are need when drawing parcels, alignments and pads. All menu dialogs with coordinates show should have a button to allow users to snap to a point in the drawing. Entering N,E,Z manually is very , very time consuming and not used by any major civil design programs anymore. Points and bearings should have a pick button on all menus. Tangents should have two pick button to define the bearing with two points. **Built:** Built in /lab 2026-11-06 (civil-snap-09). Snaps: the Alignment, Pad, Parcel, Mass, Feature line, Measure, Boundary and Catchment tools and a dragged PI or corner snap to survey points and to PIs, pad / parcel / mass corners, feature-line vertices and structures within 10 px (a marker with a label and the E, N; Alt = free). A crosshair Pick button sits beside a PI's northing, every corner's northing and the move / rotate blocks. Tangent from two points under the PI table. Move, copy and rotate (typed distance or two picked points; about the middle or a picked point) for an alignment, pad, parcel and feature line. Not yet: snap to a segment middle or crossing, Pick in the landscape / power-line / water panels, move of storm networks.

CivilCraft Built · Live – – From: a visitor (Site)
FeatureWB.15 Link to WB.15Comment on WB.15 Alignment and Parcels coordinates

1. Allow users to enter Northings and Eastings for parcel and alignment vertices. 2. Allow users to snap to objects when creating or editing alignments and parcels. A pick button in the properties dialog for the N,E would be great. Users can snap to an existing element and the NE for the vertex will be updated. **Built:** Built in /lab 2026-11-06 (civil-snap-09). Alignment PIs already took a typed E / N; now pad, parcel and feature-line corners list typed E and N too, and every one has a Pick button: press it, click a place in the plan (snapped to survey points, PIs, corners and vertices; Alt = free), and the vertex takes that easting and northing, one undo step. Drawing and dragging alignments and parcels snaps the same way.

CivilCraft Built · Live – – From: a visitor (Site)
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
FeatureD8.13 Link to D8.13Comment on D8.13 Add-on: factory floor — from CAM to the machines, cell control and SCADA monitoring

Discord (a Discord member, Oct 29): "CAMCraft", CAM + factory control + SCADA in the suite. Owner 2026-10-30: an add-on, not an app (eight apps). Pieces already in 0.8: CAM with editable posts in PartCraft (LC.15), send G-code to a machine on the network (EG.40, partly), the flow add-on for layout and simulation (SU.858), soft PLC with ladder / structured text (XE.13, partly), live data over OPC UA, MQTT, Modbus, BACnet (XE.9, IND.12, partly), plant historian (CH.27). The add-on ties them into one place: a machine and cell list (from the flow layout), a job queue that posts and sends programs to each machine, machine state read live (OPC UA, MQTT, MTConnect), an operator screen drawn over the layout with values, alarms and trends, history and simple OEE. Reading first; writing to a running machine or PLC stays off by default, behind a per-device switch and a confirm. Not a safety system and never in a safety chain — help says so.

ModelCraftPartCraftStudio App codeOur enginesDesktop host built – – From: Discord community (Discord) Discord 2026-10-29
Hardware design: HDL to silicon (Track HD) 4
FeatureHD.1 Link to HD.1Comment on HD.1 Chip design: Verilog and VHDL source, checks, hierarchy

Edit hardware description files with syntax checks and a module hierarchy view. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 Tried on our own sample only From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.2 Link to HD.2Comment on HD.2 Chip design: netlist graph and schematic view

Read structural Verilog into a netlist graph and show it as a schematic using the shared schematic engine. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 3 Tried on our own sample only From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.3 Link to HD.3Comment on HD.3 Chip design: Liberty, LEF, DEF and SDC files

Our own readers and writers for cell timing and power libraries, floorplans and timing constraints, written from the public format descriptions. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 Own samples only; no vendor/PDK files tried yet From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
FeatureHD.7 Link to HD.7Comment on HD.7 Chip design: GDSII and OASIS layouts

Read and write GDSII and OASIS with layer maps, hierarchy and a fast view of large layouts. Plan docs/0.8-PART8.md.

CadCraftSuperCad Studio App code Built · Live 4 No third-party OASIS file tried yet From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
Add-on Library 3
FeatureBot obtainedOF.1 Link to OF.1Comment on OF.1 Offline on this device: one package of all my add-ons

On /account/addons, one button makes every add-on on the account list (and the engines they need) available offline in this browser, with a readiness check and a size, so a registered user can fly with no Wi-Fi. Remove is one button too. Owner 2026-10-31. Spec docs/0.9-OFFLINE-ADDONS.md. **Implementation started 2026-11-02** (0.9 top-5 pick #5, hardest first; session `offline-09`, log docs/0.9-sessions/offline-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

– Built · Live – Lab testers now (in the Library); everyone when ADDON_LIBRARY_PUBLIC=1. Owner, 2026-10-31
FeatureBot obtainedOF.2 Link to OF.2Comment on OF.2 "Use offline" on the add-on listing

On the "Use this add-on:" frame of a free add-on: signed in goes to the account's offline section; no account adds it to this browser's list and fetches it now. Paid add-ons show none until OF.5. Owner 2026-10-31. Spec docs/0.9-OFFLINE-ADDONS.md. **Implementation started 2026-11-02** (0.9 top-5 pick #5, hardest first; session `offline-09`, log docs/0.9-sessions/offline-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

– Built · Live – Lab testers now (in the Library); everyone when ADDON_LIBRARY_PUBLIC=1. Owner, 2026-10-31
FeatureBot obtainedOF.3 Link to OF.3Comment on OF.3 No account: your add-ons in this browser, offline

A panel in the Library for a visitor with no account: the free add-ons they added to this browser, with the same one-button offline action. The list merges into an account if they sign up. Owner 2026-10-31. Spec docs/0.9-OFFLINE-ADDONS.md. **Implementation started 2026-11-02** (0.9 top-5 pick #5, hardest first; session `offline-09`, log docs/0.9-sessions/offline-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

– Built · Live – Lab testers now (in the Library); visitors see it when ADDON_LIBRARY_PUBLIC=1. Owner, 2026-10-31
Platforms and stores 2
FeatureRL.1 Link to RL.1Comment on RL.1 /download: "Where we release" with current and planned release streams

A tabbed section on /download (#release-streams): Current release streams (this page, the browser at /use, updates inside Studio, GitHub releases) built from Downloads, so a channel shows only with real files; Upcoming and planned streams (Microsoft Store, winget, the signed Windows package, npm/npx, Apple App Store, Homebrew, Google Play, Flathub), no dates. Source: Catalog::releaseStreams() + RELEASE_STREAMS_PLANNED; component core/components/release-streams.inc. TestFlight is not a release stream (owner). Tests: bin/test-product.php.

Studio Site and services Built · Live – – From: owner (Owner) owner 2026-11-01
Fixes 104
FeatureFX.7 Link to FX.7Comment on FX.7 Tutorials: search bar on /tutorials, each app's help and the basics

A server-side search (no JavaScript) over the compiled help: every word must match, title and keyword hits rank first, highlighted snippets, result pages noindex (Help::search, help-search.inc). Not added to single topic pages. Checked over HTTP on live pages; no automated test written.

– Site and servicesHelp and words Built · Live – – Owner, 2026-11-03
FeatureFX.51 Link to FX.51Comment on FX.51 CivilCraft: Render view in 3D, and Apply / Close on the Sun menu

Owner request 2026-11-05. A Render button in the 3D bar draws the land as land: natural terrain colours (grass on the flat, earth and rock on the steep, lighter with height), sky and haze, filmic tone mapping, soft shadows from a default north-west sun (the Sun menu still wins when set). Does not change the model; remembered in the browser. The Sun menu gets Apply and Close buttons. Also: a Bootstrap tooltip shows the whole value of a number box too narrow for it. site-view3d.js, drive-ui.js, civilcraft.js; 3D suite 155/0. No visual check yet.

CivilCraft App code Built · Live – – From: owner (Owner) owner request 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
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.1 Link to ATTR.1Comment on ATTR.1 SuperCad Studio: project report binder with an automatic credits page

Owner 2026-11-03: 'a project report binder, where all the documents go, calculations, notes, etc., and add a credits page.' Built in the lab as the report-binder plugin (Workflow menu, Ctrl+K, Report and price strip): one PDF with a cover and contents, calculations, notes, tasks, optional time and calendar, documents, and always a Credits page, stamped with page numbers, saved in Documentation and downloaded. Credits come from saved IFC and DXF files and from open CadCraft panels (lib/report/credits.js); a closed DWG is listed as not checked. Engineer calculation reports file themselves in the project. Other files are named as not included. Not built: the binder in the Finalize and export zip, other apps' calc sheets filing themselves, bookmarks, a credits table on a sheet in CadCraft and BimCraft. Other scripts print as ? in typeset pages. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. Not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03, library item page
FeatureATTR.2 Link to ATTR.2Comment on ATTR.2 SuperCad Studio: tick what goes in the Finalize and export zip

Owner 2026-11-03. The export dialog has a 'Project documents in the zip' list under the formats: Project file, Notes, Tasks, Time log, Calendar events, Project report binder, Credits page, Documentation folder. Plugins offer items through api.exportItem. The binder is ticked the first time, the rest are not; ticks are remembered in this browser. They go in documents/ and contents.txt names anything that had nothing to add. CC0 items stay on the credits page. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.3 Link to ATTR.3Comment on ATTR.3 Report binder: choose the section for each document

Owner 2026-11-03. Each document in the binder dialog has a section picker (Calculations or Documents), kept in the project. Until someone picks, the guess uses who made it (Engineer), the name (calc, calculation, data sheet, analysis, sizing) and the text (an engineer-of-record line). Only those two document sections exist; no sections of your own. Tests: bin/test-super-binder.mjs, tools/super-test/binder.mjs. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.4 Link to ATTR.4Comment on ATTR.4 Report binder: Unicode text, Arabic and Hebrew right to left

Owner 2026-11-03. Typed pages now embed a subset font only when the text needs one: Latin extended, Greek and Cyrillic (Liberation Sans), Arabic, Hebrew, Armenian and Georgian (DejaVu Sans, newly vendored in assets/vendor/rtl-sans), Thai, and Chinese, Japanese and Korean (10 MB, fetched on first need). Arabic letters join and right-to-left lines are ordered with numbers and Latin kept in order (lib/report/bidi.js, a simplified bidi, no bidi control characters). Limits: Devanagari and other Indic scripts have no font or shaper, so they still print as ? and are counted; those stretches print regular, never bold or italic; text copied from Arabic pages comes out as presentation forms in visual order; the page stamp leaves off a project name it cannot print. A font that fails to load prints ? and the dialog says so. Checked by eye on one rendered page, not by a native reader. In /lab, not released.

SuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
FeatureATTR.5 Link to ATTR.5Comment on ATTR.5 Report binder: clickable contents and PDF bookmarks

Owner 2026-11-03. Each contents row on the cover links to its page, and the PDF has bookmarks by section with the documents under them. Read back with pdf.js. A merged PDF's own bookmarks are not kept. MarkupCraft's writeOutline moved to lib/report/outline.js. In /lab, not released.

MarkupCraftSuperCad Studio Built · Live – – From: owner (Site) owner 2026-11-03
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
MarkupCraft 1
FeatureNOTES.1 Link to NOTES.1Comment on NOTES.1 Pasteboard, show/hide notes and private notes

From a Discord member on Discord (keeps scratch notes and snapshots beside the sheet so they never reach the client). Built in /lab 2026-11-03, not released. Pasteboard: the area around each sheet holds notes and picture snapshots at paper size; nothing on it prints. Notes: any markup can be a note, shown or hidden with Shift+H or the bar switch, kept out of print, flattened copies, exports and other PDF readers. Private notes: encrypted with the writer's own passphrase (no recovery), not sent to Live, assistants or the clipboard; colleagues' saves carry them untouched and nothing tells them one exists. Save a clean copy removes all of it. **SuperCad Studio:** private notes are encrypted files in the project's Documentation/Private notes, never in the PDF, not even sealed, and are left out of the report binder, document exports, Finalize and export and Email this. **Untested:** a real large vector set, a desktop build, a real two-person Live session. Tests: 70, 38 and 27 passed. Log docs/0.9-sessions/notes-pasteboard-09.md.

MarkupCraftSuperCad Studio Built · Live – – From: Discord community (Discord) Discord 2026-11-03
Print stage 15
FeaturePS.1 Link to PS.1Comment on PS.1 Print stage: put things on the bed in the app and send them, with no export

Spec: docs/0.9-PRINT-STAGE.md. ModelCraft's Print stage button: add Library items, position them in the view with the usual tools, Arrange or Fit on the bed, Send to 3D printer. Shared lib/printstage with ModelCraft as first host. Tested in Chromium in /lab against stand-in printers only; nothing has been printed (PS.5).

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.2 Link to PS.2Comment on PS.2 Our own FDM slicer (walls, skins, infill, supports, skirt)

Spec: docs/0.9-PRINT-STAGE.md. lib/printstage/ps-slice.js, Apache-2.0, polygon work by manifold-3d. Answers EG.8's own-slicer question for now. A cube read back move by move matches; 62 of a spread of 62 Library items slice with every move on the bed, 18 of them missing some pieces (the dialog says so). No real print yet; no bridges, seam choice or layer preview.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.3 Link to PS.3Comment on PS.3 Send to a printer: USB, Klipper (Moonraker), OctoPrint, PrusaLink

Spec: docs/0.9-PRINT-STAGE.md. Nothing connects or sends without a click, and sending asks first. Tested only against a fake USB printer and a stand-in Moonraker, following the vendors' docs. Network printers must allow the site (CORS). PrusaLink's sign-in may need more than the API key on some firmware.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.4 Link to PS.4Comment on PS.4 Print this on a Library item page

Spec: docs/0.9-PRINT-STAGE.md. Opens the print stage with the item on the bed. Shown to staff and lab testers while the stage is in the lab.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.6 Link to PS.6Comment on PS.6 Download for 3D printing on a Library item page

Spec: docs/0.9-PRINT-STAGE.md. For people who keep their own slicer: a size or bed choice on the item page gives a 3MF or STL, with an honest print-ready line per item. Server side beside tools/library/variant-export.mjs. Secondary to the print stage. Export tool tools/printstage/print-export.mjs (STL and 3MF scaled to the bed, with an honest print-ready line) and the item-page form are built and tested (test-export 6/0); the handler is not installed. mounts-09 2026-11-06: print-file.php installed (public_html/library/print-file.php + the rewrite line in .htaccess). Lab testers and staff only; anonymous gets 404. Real item page (Griddle, 48 in): the form shows and the STL downloads; curl as a lab session: STL 684 bytes, 3MF a valid zip; nothing is kept.

– Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.10 Link to PS.10Comment on PS.10 Slicer: worker thread, layer preview, bridges, seams, printer profiles

Spec: docs/0.9-PRINT-STAGE.md. The slicer runs on the page's main thread in small steps; supports are slow on a big plate. Add a worker, a layer preview before sending, better surfaces, and real start G-code per printer as data. Worker thread, layer preview, bridges, seams and printer profiles (Ender-3, MK4, Klipper start G-code as data) built 2026-11-05; test-slice 37/0, browser-preview 11/0, browser 35/0. Start G-code of the new profiles has not run on those machines; nothing printed on a real printer.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.12 Link to PS.12Comment on PS.12 Choose your slicer: the print stage takes any engine

Spec: docs/0.9-PRINT-STAGE.md. One job in, G-code out. A picker on the card with Kiri:Moto, PrusaSlicer, OrcaSlicer and CadCraft basic; the choice is remembered. Every engine's output is read and refused if it leaves the bed or prints nothing. Tested in Chromium; real-print test is PS.5.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.13 Link to PS.13Comment on PS.13 Kiri:Moto as the default slicer (MIT, in the page)

Spec: docs/0.9-PRINT-STAGE.md. Built from its 4.7.3 tag, vendored at assets/vendor/kiri-moto (9.4 MB, loaded on first use). Slices a 20 mm cube correctly and in the right place on the bed; compared with CadCraft basic on Library items. Not tried in a packed Studio or offline edition.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.14 Link to PS.14Comment on PS.14 PrusaSlicer and OrcaSlicer through Studio (the person's own install)

Spec: docs/0.9-PRINT-STAGE.md. engines.rs Kind::Slicer: finds the program or lets the person pick it, writes the settings from checked fields, a crash gives no G-code. Built: Rust tests pass compiled alone; the files it writes slice correctly in the real PrusaSlicer 2.9.7 and OrcaSlicer 2.4.2 on Windows. Waits: a Studio build carrying it and a test through the real card; macOS and Linux paths untried. Owner, 2026-11-04: consider built; bugs come as fixes. Needs a Studio build to reach people.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.15 Link to PS.15Comment on PS.15 3D Print add-on

Spec: docs/0.9-PRINT-STAGE.md. modelcraft/a Discord member/addons/print3d, Apache-2.0, on by default: the Print stage button and the Print this link. ModelCraft's own code has no print stage in it. Answers PS.9.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.18 Link to PS.18Comment on PS.18 3D Print in the Add-on Library

Spec: docs/0.9-PRINT-STAGE.md. A listing with the required sections, so it can be added from the account and unbundled like the other add-ons. Listed 2026-11-04: print3d and the three slicer add-ons, behind the Library switch; required listing sections still to write.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
FeaturePS.19 Link to PS.19Comment on PS.19 Each slicer is its own add-on

Spec: docs/0.9-PRINT-STAGE.md. Owner, 2026-11-04. print3d carries the stage, the sending and CadCraft basic. slicer-kiri, slicer-prusaslicer and slicer-orcaslicer are off by default, offered with an Add button on the card and listed in the Library. Kiri is fetched only the first time it slices. Tested in Chromium in /lab.

ModelCraft App code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-04
Point clouds add-on (PC) 11
FeaturePC.1 Link to PC.1Comment on PC.1 Point clouds engine: tiled octree store, streaming build, resume

Built in the lab: lib/pointcloud store + tiler + octree. 150 k points land exactly once, resume is byte-identical, about 3 M points/s on the VPS. 50 M run waits for workstation11a.

CivilCraft Built · Live – – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.2 Link to PC.2Comment on PC.2 Point clouds viewer in CivilCraft 3D and plan

First pass in the lab: streaming nodes within a point budget, colour by RGB/height/class/intensity/residual. Headless software GL only, so the 55 fps target is not measured. civil-points-09 2026-11-05: Eye-dome lighting (own shader, whole scene through a depth target), size attenuation (a point shader), a phone default (500 k, EDL off), and a plan raster that refines when you zoom in (a window raster after the zoom settles) are built and tested in the real page (tools/pointcloud-engine/browser.mjs 27/0). Real GPU on workstation11a (RTX 5070, Chrome): 2 M points drawn at about 100 fps with EDL and shrinking points, no frame gap over 17 ms (tools/pointcloud-engine/gpu-fps.mjs). A made-up site, not a real survey; 50 M points are the PC.1 scale run.

CivilCraft Built · Live 3 – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.3 Link to PC.3Comment on PC.3 Point clouds cleaning: select, delete, reclassify, crop, undo

Built in the lab: non-destructive edit log, lasso/box/polygon with a count before applying, undo and redo to the byte. Lasso in 3D is a vertical prism.

CivilCraft Built · Live – – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.4 Link to PC.4Comment on PC.4 Point clouds noise filters

Built in the lab: isolated-point filter finds 200 of 200 planted strays, 0.09 % false positives. The statistical filter is over the 0.2 % limit and is not the default.

CivilCraft Built · Live – – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.5 Link to PC.5Comment on PC.5 Point clouds ground classification by tile

Built in the lab on the made-up drone scene: RMS 0.017 m to the true terrain, no roof or canopy kept, seams within tolerance. Real drone data not yet tested.

CivilCraft Built · Live – – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.6 Link to PC.6Comment on PC.6 Point clouds geometric classes (vegetation, buildings)

Built in the lab on the made-up scene: 97 % of roof points class 6, 100 % of tree points 3/4/5. No machine learning. Real data not yet tested.

CivilCraft Built · Live – – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.7 Link to PC.7Comment on PC.7 Point clouds residuals, fix the ground, breaklines on the cloud

Built in the lab: residual map and stats, ten worst places, Build ground through the same path as the LAS import, contours. civil-points-09 2026-11-05: Breaklines can now be picked in the plan as well as in 3D (each click takes the nearest cloud point, ground first) and the contours have a preview canvas over the plan raster; both tested in the real page (browser-ui.mjs). The engine can rebuild only the affected area (region + base) but that is not wired to a button.

CivilCraft Built · Live 2 – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.8 Link to PC.8Comment on PC.8 Point clouds volumes: flight to flight, stockpile

Built in the lab: gaussian hill 0.02 % error, cone 0.12 % in engine tests. The browser stockpile on the 360 k scene is 6 % low and must be understood before it is called done. civil-points-09 2026-11-05: Found why the browser stockpile read 6 % low: not the cell size, edges or resampling. The 8 m boundary crossed tree canopy; its samples raised the TIN base by 0.2 m on average. The base now leaves boundary samples above a robust fit out, and a smooth curved base is offered. The 6,000 m3 drone block now reads 1 % to 3 % off depending on the base (engine and browser cases added).

CivilCraft Built · Live 1 – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.11 Link to PC.11Comment on PC.11 Point clouds adapter for BimCraft

Same engine, thin adapter (build for Super); E57/PLY/PCD inputs through pointcloud.js. adapters-09 2026-11-06: The Point clouds add-on now runs in BimCraft over the same lib/pointcloud engine (byte-identical copy) and the same panels as CivilCraft, with a thin host adapter: the cloud is drawn in the IFC 3D view with levels of detail and a point budget, clean with undo, section strip, ground classification, and E57, PLY, PCD, PTX and XYZ through the app's own readers (thinned to 3 million points). window.ccPointCloud.cloud is the open cloud for scan to BIM. Tested in the real page on the 360,200-point made-up site (tools/pointcloud-adapters/browser.mjs --app bim, 20/0). Not tried on a real scan, in Studio or on a GPU; ground building, contours, stockpile volumes and orthomosaics stay in CivilCraft.

CivilCraft Built · Live 5 – From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.12 Link to PC.12Comment on PC.12 Point clouds adapters for CadCraft and SuperCad Studio

Same engine, thin adapters. adapters-09 2026-11-06: CadCraft has the Point clouds add-on over the same engine (3D tab camera, build, clean with undo, section strip, E57/PLY/PCD/PTX/XYZ inputs); tested in the real page (tools/pointcloud-adapters/browser.mjs --app cad, 19/0). CadCraft has no TIN module, so no ground classification there. SuperCad Studio's adapter is not built.

CivilCraft Built · Live 5 Hand check is community test PC.12-HAND (not blocking) From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
FeaturePC.14 Link to PC.14Comment on PC.14 Point clouds LAZ export

LAZ export of the cleaned cloud, next to LAS 1.4. laz-09 2026-11-06: Built: our own LAZ compressor (lib/pointcloud/laz.js, Apache-2.0, written from the public LAZ specification 1.4 R1 of rapidlasso GmbH; no third-party code: laz-perf ships a decoder only, laz-rs and LASzip would need a WebAssembly build we cannot run here). Point formats 0 to 3 with extra bytes, chunked (compressor 2), in a LAS 1.4 header. CivilCraft Point clouds add-on: Export, File type LAZ (format 0, or 2 with colour; classes above 31 refused). Tested: our reader, laz-perf 0.0.7 and laspy 2.7.0 + lazrs 0.8.2 read every field bit for bit (formats 0-3, several chunks, GPS jumps, grey and coloured RGB); three LAZ files made by laspy re-encode to the same bytes and chunk table; the 300 m made-up site (353,766 points) is 2.17 MB LAZ against 10.61 MB LAS 1.4 (20.4 %); in the real page (/lab) download and streamed save byte-identical (bin/test-pointcloud-laz.mjs 65/0, tools/pointcloud-engine/browser-laz.mjs 10/0). Not built: LAZ formats 6 to 10 (layered). Not tried: other LiDAR programs (community test PC.14-HAND).

CivilCraft Built · Live 3 Other LiDAR programs: community test PC.14-HAND (not blocking) From: site suggestion #935 (Suggestion) docs/0.9-POINTCLOUD-ADDON.md
Site 1
FeatureSTATUS.1 Link to STATUS.1Comment on STATUS.1 Public status page and API: /status and /v1/status, with uptime tracking

A public /status page shows "All systems operational" when that is true, each system's state, 90 days of daily uptime bars, 7/30/90 day uptime and recent incidents. The same data is public JSON at /api/v1/status and api.getcadcraft.com/v1/status (in the Developer API docs). Seven systems: hosting and web, data, API services, MeCentral, cloud, payment and messaging connectivity. A check runs every 5 minutes against the real service: public URLs, a database read and rolled-back write, MeCentral and storage lookups, a read of the payment account and a sign-in to the mail relay (no mail sent, no money touched). Late checks show as late rather than as an old all-clear; while the database is down the page still renders and results wait in a spool. Tested with bin/test-status.php (36 pass), against the live services, and on screen in both themes and at phone width; a real outage has only been simulated. The checks run on the server they watch, so a full server or network outage shows only afterwards, as a gap counted against hosting; an outside monitor is not built.

– Built · Live – – From: owner (Site) owner request 2026-11-04
Interior lighting design add-on (IL) 5
FeatureIL.2 Link to IL.2Comment on IL.2 Lighting design in CadCraft: rooms from the drawing, plan for a target, results, map, draw on layers

Built in the lab: add-on lightdesign (off by default). Room from a closed shape or typed outline, generic luminaires or a maker file, plan for a target lux (fewest even grid), grid or rows, requirement checks, false-colour map, report (HTML) and CSV, luminaires and lux drawn on LD-LUMINAIRE / LD-LUX, commands LDESIGN and LDDRAW. Browser test 19/0.

CadCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
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
CadCraft plan drafting 4
FeaturePLAN2D.1 Link to PLAN2D.1Comment on PLAN2D.1 Hatch that stays with its boundary, and a hatch editor

Asked: a hatch editor that works, "when moving the boundary box the hatch will move with it. Similar to illustrator". The assoc flag existed but did nothing. Built in the lab: HATCH links to what bounds it (closed objects, or the objects round a picked area). Move, turn or scale the boundary: the hatch and pattern follow. Reshape it: the hatch is worked out again. Move the hatch alone: the boundary comes too. Link ends with a note when the shape no longer closes. Copies get their own link. HATCHEDIT (HE). The link is saved in DWG and DXF 2000. Also fixed: MOVE left a hatch's pattern behind on any hatch. Not done: links made in other programs are not read (HATCHEDIT Link does it by hand); DXF R12 has no hatch object.

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
FeaturePLAN2D.2 Link to PLAN2D.2Comment on PLAN2D.2 Layer groups: folders in the Layers panel

Asked: a layer manager to group layers for walls, existing, services "instead of it all being in one long list", and to set up layers for drafting new. Built in the lab: folders that fold, group switches for on, freeze and lock, Find a layer, a ready-made set (Existing, Proposed, Demolition, Services, Annotation), Group by name, drag a layer onto a folder, LAYGROUP. Saved in the file; the layer table stays flat for other programs. Not done: AutoCAD's own layer group filters are not written, so AutoCAD shows a flat list.

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
FeaturePLAN2D.3 Link to PLAN2D.3Comment on PLAN2D.3 Stacked floors in one model space

Asked: draw the first floor on top of the ground floor and turn each off, "stacking model spaces, not layers", without Xrefs. Goes further than SU.912's design layers (a layer with a scale and an elevation). Built in the lab: FLOORS panel, FLOOR, one active floor; other floors show faded, snap but can't be edited; a viewport can show one floor; move or copy the selection to a floor; FLOORLAYERS for a file going to someone without floors. Layers run across floors. Saved in the file. Not done: other programs show all floors together unless FLOORLAYERS is run. Floor elevation is stored only, nothing uses it yet. Stairs and anything that spans floors.

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
FeaturePLAN2D.4 Link to PLAN2D.4Comment on PLAN2D.4 2D smart walls, doors and windows in CadCraft

Asked: "a smart wall tool in cad craft, like a polyline ... choose the thickness ... basic doors and windows that can be inserted into those walls ... it is all 2d, and generates no 3d ... if you move a wall it moves the doors and windows with it ... connects into other walls". Built in the lab: WALL (thickness, justify, fill, close), DOOR (single, double, sliding, open doorway), WINDOW (fixed, casement, sliding), DELOPENING; mitred corners, T joins, crossings; joined walls follow a move; grips for ends, middle, sliding an opening, flipping hinge and swing; Properties for each opening. A wall is a block carrying its settings, so DWG/DXF, plotting and Move need nothing new; shared engine lib/plan2d (tools/plan2d/sync.mjs). Not done: wall build-ups (asked as "possibly later"), curved walls, Library doors in these walls, elevations from the plan, not opened in AutoCAD. Dimensions don't attach to walls.

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
Developer API 8
FeatureAPI.1 Link to API.1Comment on API.1 Developer API: keys for licensed accounts, api.getcadcraft.com/v1, categories

The CadCraft API for people's own systems, on its own host. Licensed accounts make keys on /account/developers: scopes per category, one-workspace limit, expiry, allowed addresses, roll and revoke; the key is shown once. Categories: account, licenses, education, library, storage, projects, meta. Rate limits per key, Idempotency-Key on writes, cursor paging, and a log of each key's calls. Thin wrappers over the same services the website uses, so a key can never do more than its account. Test bin/test-a Discord member-api.php --http.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.2 Link to API.2Comment on API.2 Developer area: /developers overview, guides, generated reference, console, changelog

Public docs at /developers, in the footer, sitemap and llms.txt. The reference is generated from the one endpoint catalogue the server routes by, with curl, PHP, Python and Node samples. The console makes real calls with your own key, run on our server so the browser never calls the API; a live key needs a tick before it changes anything.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.3 Link to API.3Comment on API.3 API: seats and license counts (Team Cloud Plan + SuperCad Studio)

License counts per workspace; list Team Cloud Plan seats; assign, unassign, or give a seat to an email address (invited with the seat held). SuperCad Studio: list seats and move one under the website's waiting-time rule. Buying or removing seats stays on the website.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.4 Link to API.4Comment on API.4 API: cloud storage use and project lists

A workspace's space and use plus the account's own folder; projects, one project with members, and its drawings (names, apps, versions and sizes, never the files).

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.5 Link to API.5Comment on API.5 Teachers enroll a class: invite, active on the click (API + /account/students)

An active teacher in the Student Program enrolls a list, on /account/students or POST /v1/education/students (the same service): up to 200 a call, 500 invites a day, 300 students unless staff raise it. Each student gets one email; /education-join needs a real click, then the license is active with no staff review, prices locked as at apply. Invites expire after 30 days. List, edit, resend, CSV; a student can say "This isn't for me" and is not invited again. Taking a student off the list: an unanswered invite ends; someone who joined keeps the versions covered until then and new versions stop, and they can answer a new check if they are still a student. Real mail to a student has not been sent yet (tests only log it).

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.6 Link to API.6Comment on API.6 API: upload library blocks, choose what to add, see where they stand

POST /v1/library/uploads takes a DWG, DXF or library .json (50 MB, 20 an hour, as on the website) and answers with the blocks found; commit the ones to add with a category, license, source and the rights confirmation, or abandon. Public items wait in the same staff review as website uploads; team library items need a seat in force. Also lists the account's items with their versions and review state. Tested over HTTPS with the DXF fixture; a real DWG has not been sent through the API.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-03: "the cadcraft api"
FeatureAPI.7 Link to API.7Comment on API.7 API: a sandbox of your own for cck_test_ keys

Sandbox keys run every call against a practice team, class, SuperCad Studio license and projects in a second database: real writes, but no mail is sent, nothing is charged and uploads never reach the real Library. Each developer's sandbox is apart from everyone else's. Helpers read its mail, play a student or the reviewer, and start over; page /account/developers/sandbox.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-05: "yes v1, build the sandbox next then webhooks"
FeatureAPI.8 Link to API.8Comment on API.8 API: webhooks, so we call your server when something happens

Add an endpoint on /account/developers or with POST /v1/webhooks and hear students join, seats move, SuperCad Studio seats change and library reviews finish. Signed, retried for about 2.7 days, paused with one email when an endpoint keeps failing. Sandbox endpoints hear the sandbox, so you can build against it first. Private addresses and our own server are refused.

– Site and services Built · Live – – From: owner (Owner) Owner, 2026-11-05: "yes v1, build the sandbox next then webhooks"
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)
Digital twin add-on (TW) 9
FeatureTW.1 Link to TW.1Comment on TW.1 Digital twin: soft PLC runs on the flow model

Built in the lab: lib/plc in lock step with the flow simulation, IEC 61131-3 ST or PLCopen XML, starter program from the layout. Same program and seed repeat to the byte. No real PLC involved.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.2 Link to TW.2Comment on TW.2 Digital twin: forces, faults, stock tests, report

Built in the lab: force any signal; stuck eye, stuck gate, belt stop, station down, emergency stop; stall watchdog; tests every layout gets; CSV report. A program that ignores the stop fails on the right check. Not a safety validation.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.3 Link to TW.3Comment on TW.3 Digital twin: rigid-body physics on loads

Built in the lab: our own XPBD with moving belt surfaces, boxes only, up to 8 loads along one line. Checked against closed forms: slip tan θ = μ, tip tan θ = L/H, belt pick-up v/(μg). Formula screen per belt agrees with the run. Not against a measured line yet (TW.12).

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.4 Link to TW.4Comment on TW.4 Digital twin: compare layouts, bottleneck ranking

Built in the lab: repeat runs on common random numbers, 95 % intervals on paired differences, "no clear difference" when the interval holds zero. Ranks what is limiting; found a planted slow station. A ranking, not a proof.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.5 Link to TW.5Comment on TW.5 Digital twin: equipment view

Built in the lab: frames, rollers, legs, machines, robots with moving arms, people, cartons and vehicles in place of plain marks. Generic shapes for the picture. Arm motion is for the picture, not a robot program. Not checked for frame rate on large layouts.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.6 Link to TW.6Comment on TW.6 Digital twin: run into the model for the path tracer

Built in the lab: equipment as real geometry, loads on the animation timeline, up to 150 loads. Path-traced frame at a timeline time rendered on workstation11a (RTX 5070). A full path-traced clip has not been run. Arms do not move in the baked clip.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.8 Link to TW.8Comment on TW.8 Digital twin: ready cells as data

Built in the lab: PLC stop gate, robot palletizing, two-lane sorter, incline and curve. One data entry per cell. Numbers are starting points.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.9 Link to TW.9Comment on TW.9 Digital twin: bill of materials

Built in the lab: quantities from the layout, CSV with price and supplier columns for the person to fill in.

ModelCraft Built · Live – – docs/0.9-DIGITAL-TWIN.md
FeatureTW.15 Link to TW.15Comment on TW.15 Digital twin: order files from a warehouse system

Built in the lab (Material flow add-on, ModelCraft): a source can take its arrivals from a CSV orders file instead of random times (columns time_s / time_min / time_h / time / clock, type, length_m / length_mm, qty, source, order; the time unit and base are stated in the help). The same file gives the same run for any seed (no random draw is used). A row that cannot be read stops the whole read and the panel names the first bad row (line, column, what the cell said); nothing is skipped. Tables are saved in the model file; Save as CSV writes one back. Sample orders (about 130 invented rows) are in the add-on's data folder and the flow listing's Data section. Tested: lib/flow orders tests in the flow suite, and in the real /lab page (browser-orders.mjs 10/0). Does not read any warehouse system's own format.

ModelCraft Built · Live 4 – docs/0.9-DIGITAL-TWIN.md
Planned suggestions, built in 0.9 (2026-11-06) 4
FeatureSU.747c Link to SU.747cComment on SU.747c NURBS surfaces, step S3: fillets and blends between faces, thickening, a solid written to STEP as one closed shell

Asked (#747, #748, #749, #750, Oct 16): concept-to-prototype NURBS and production-quality surfacing. S1 (curves, untrimmed surfaces, measured G0 to G2) is Built in 0.8; trimmed surfaces, solids from them with union, subtract and intersect, and PartCraft Bake are Built in /lab 0.9 (docs/0.9-sessions/nurbs-09.md). That log lists what is left and says 'Fillets between faces come next'. Plan (lib/nurbs): (1) fillets and blends between two faces, constant then variable radius, deviation from the rolling ball measured; (2) thickening a surface into a solid, self-intersection refused and named; (3) a solid written to STEP as one closed shell, read back; (4) Booleans as nodes. Each result measured against a closed form. Not claimed: class-A surfacing, the other programs' file formats, a result equal to Alias or ICEM Surf. Class-A and equality with Alias/ICEM are never claimed. Completed 2026-11-06: in /lab (ModelCraft, PartCraft, SuperCad Studio's panel through the shared libs): fillet between two faces (constant/variable radius, convex/concave, closed edge; deviation from the rolling ball measured), several edges at once (mitred corners; one sphere patch where three flat square faces meet, radius equal), thicken into a solid, STEP and IGES (186 over closed shell 514) with a solid as one closed shell, read back as a solid, Booleans as nodes in the node editor, help lines. Measured against closed forms (removed volume within 2 % at tol 0.05, goes with the tolerance). Not built: vertex blend for curved faces or unequal radii, fillet between faces that do not meet, inside fillet ending on a slanted or curved face, several inside edges that reliably close (the result line says if not), Booleans/fillets on the surfaces without triangles, IGES not tried in another program. Tests: docs/0.9-sessions/nurbs-s3-09.md.

ModelCraftPartCraft Built · Live 8 A real surface model from the reporters (#747 to #750) opened in another program would be the best test docs/0.9-sessions/planned-suggestions-09.md
FeatureSU.749 Link to SU.749Comment on SU.749 PartCraft: large assemblies, measured first at 1,000, 5,000 and 20,000 parts, then fixed where it is slow

Asked (#749, Oct 16): managing large, complex assemblies, with Catia named as the reference. PartCraft's stress tests so far are 750 features in one part (D7.51) and closed-loop mates (D7.40); no row measures an assembly of thousands of parts. Do: (1) generate the test assemblies ONCE under testfiles/generated/ (registry testfiles/LARGE-FILES.md, memory 'large-test-files'), from repeated instances of a few parts, not from files typed by hand; (2) measure open, rotate, select, mate-solve and save at each size in the real page, one browser test at a time with nice and timeout; (3) fix what the numbers show, in this order of likelihood: instancing (one mesh, many transforms), level of detail and a lightweight display mode, hiding by visibility sets, mate solving only for what moved, saving without rewriting unchanged parts. Record every before and after number in the log and in the release notes (memory 'test-results-in-release-notes'). Not claimed: Catia's feature set, any size without a measurement. Untested: everything, including the sizes above. assembly-09 2026-11-06: Measured at 1,000, 5,000 and 20,000 copies of three small parts in the real page (headless Chromium on a CPU renderer, never a GPU), before and after; fixed: one draw group per part (40,000 draw calls to 3 at 20,000), a joint turned places only the parts behind it (5.0 s to 65 ms at 20,000), the part list shows its first rows (a click 11 s to 26 ms), boxes while the view moves (Views > Lightweight display keeps them on; a frame 15.7 s to 0.9 s on the CPU renderer), and assemblies open up to 50,000 copies (500 before). A frame in full detail is not faster on the CPU renderer; assemblies of heavy parts and a real GPU are not measured. No claim about any other program. Table and tests: docs/0.9-sessions/assembly-09.md.

PartCraft Built · Live 6 Hand check is community test SU.749-HAND (not blocking) docs/0.9-sessions/planned-suggestions-09.md
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
FeatureBot obtainedSU.908c Link to SU.908cComment on SU.908c Solid FEM add-on (PartCraft)

Owner 2026-11-06: PartCraft is not moved onto lib/fem inside the app. lib/fem's solid element (ten-node tetrahedron) is an ADD-ON with its own panel, off by default, loaded on demand: Settings > Add-ons > Solid FEM, tab 'Solid FEM' in PartCraft's right panel. Built (lab): mesh the part with PartCraft's own mesher; material presets or custom; fixed faces, forces, pressures and gravity picked by clicking faces in the 3D view (undo, settings saved in the part file, read back with the add-on off); linear static and natural frequencies on a Web Worker; displacement, von Mises, reactions beside the load, mode shapes drawn on the model in colour bands (on or beside the part, deformation scale); warning list also in Problems; liability line. Shared lib: lib/fem solid-study.js, solid-setup.js, solid-panel.js (synced by tools/fem/sync.mjs) with a thin host adapter. Tests: tools/fem/test-solid.mjs (cantilever vs Timoshenko, patch test, Lame, convergence, modal vs Euler-Bernoulli), test-solid-partcraft.mjs (same mesh vs PartCraft's solver: displacement to 5e-3 %, von Mises to 0.2 %), the add-on's panel test, browser-fem-solid.mjs in /lab/partcraft. Not built: ModelCraft and CadCraft 3D hosts (no mesher in the lib for general solids), SuperCad Studio's own check beyond a mounted PartCraft, contact, yielding, several materials, meshes over 5,000 elements in the page (SU.908c-HAND). Not a code check; no claim of equality with any other program. solid-fem-addon 2026-11-06: docs/0.9-sessions/fem-09.md

PartCraft Built · Live 3 Hand check is community test SU.908c-HAND (not blocking) Owner, 2026-11-06 (do not move PartCraft onto lib/fem; make it an add-on); docs/0.9-sessions/fem-09.md
SuperCad Studio 2
FeatureSCF.4 Link to SCF.4Comment on SCF.4 Last-writer rules for synced rows: newest wins, a content tie-break, a clock guard, three-way merge and kept replaced edits

super-merge.js and RowMerge.php share test vectors. Newest wins including deletions; an exact tie is decided by content so every copy agrees; a row more than five minutes ahead is refused; a device keeps the last synced row and merges different fields of one row; an unsynced edit that lost is kept with Restore. Server merges stay whole-row; the client merges before it pushes.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
FeatureSCF.5 Link to SCF.5Comment on SCF.5 Sync status in the SuperCad window and the Lab: status line, Sync status dialog, /lab/sync

Status line item (works in Desktop, same page), the dialog comparing this device with the account per table plus queue, refusals and a log, automatic sync, GET /api/v1/team/teams?stats=1, and /lab/sync for lab testers. Seen working in a real browser against the real server.

SuperCad Studio Built · Live – – teams-sync 2026-11-07
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
WaterCraft add-on (WN) 5
FeatureWN.1 Link to WN.1Comment on WN.1 WaterCraft engine: shared lib/waternet on CivilCraft's water solver

Built in the lab: lib/waternet (quality, fire flow, criticality, demand, report), DOM-free, handed CivilCraft's Water mains solver through configure() so there is one solver. Synced byte-identically into the add-on by tools/waternet-engine/sync.mjs. bin/test-waternet.mjs 69/0 on made-up networks against hand answers.

CivilCraft Built · Live – – From: Discord community (Discord) docs/0.9-WATERCRAFT.md
FeatureWN.2 Link to WN.2Comment on WN.2 WaterCraft water age, chlorine decay and source trace

Built in the lab: plug-flow segments through pipes, mixed junctions and tanks, bulk and wall first-order decay. Age = V/Q within 1.5 %, chlorine exp(-kt) within 1 %, two equal feeds trace 50 %, a filling tank matches (L-L0)/L within 3 %. No booster stations, no second-order decay; not tried on a real utility model.

CivilCraft Built · Live – – From: Discord community (Discord) docs/0.9-WATERCRAFT.md
FeatureWN.3 Link to WN.3Comment on WN.3 WaterCraft fire flow at every hydrant

Built in the lab: available flow at each hydrant (or every junction) holding the residual at the node or everywhere in the system, worst first, meets/short. Matches an independent bisection within 0.3 %. Needed flow default is a starting value; the person sets the real one.

CivilCraft Built · Live – – From: Discord community (Discord) docs/0.9-WATERCRAFT.md
FeatureWN.4 Link to WN.4Comment on WN.4 WaterCraft criticality and valve isolation segments

Built in the lab: every pipe, or every valved section, taken out in turn; demand cut off, junctions newly under minimum, lowest pressure left. A pipe cut partly by a valve is closed whole (the outage shown is slightly worse than real). Valves at nodes are not used.

CivilCraft Built · Live – – From: Discord community (Discord) docs/0.9-WATERCRAFT.md
FeatureWN.6 Link to WN.6Comment on WN.6 WaterCraft CSV tables (demands, fire flow, outages, quality)

Built in the lab: one CSV writer with RFC 4180 quoting and a guard so a name starting = + - @ is never a live formula.

CivilCraft Built · Live – – From: Discord community (Discord) docs/0.9-WATERCRAFT.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
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.