Release planning

CadCraft 0.9 impact map

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

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

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

Sheet 1 · impact areas

Where 0.9 lands

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

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

Sheet 2 · schedule

Every fix and feature

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

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

Issues sync every 10 minutes; last sync Nov 9, 2026 6:40 pm.

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

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

CadCraftBimCraftCivilCraftDetailCraft App codeSite and servicesHelp and words Built · Live – – From: Owner docs/0.8-ZA-STANDARDS.md Read the doc
Suggestions (Track SX) 25
FeatureSU.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.1112 Link to SU.1112Comment on SU.1112 Live in every app: see each other's cursors and names while co-editing

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

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

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

BimCraftCivilCraft Built · in the lab 12 Built in 0.9; wind is Experimental, not validated vs wind-tunnel data (only Cp converges). Owner: check .epw vs PVWatts, UTCI; AIJ/CEDVAL data. From: site suggestion (Suggestion) docs/0.9-PLAN.md § 9, from /admin/suggestions 2026-11-02
FeatureSU.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.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
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)
Fixes 104
FixFX.9 Link to FX.9Comment on FX.9 EnergyPlus check and address lookup add-ons could not be switched on

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

BimCraftCivilCraft Built · Live – – Found by session climate-futures-09, 2026-11-03
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
FixFX.61 Link to FX.61Comment on FX.61 Apps that read or draw walls (DetailCraft, TakeoffCraft, CivilCraft hardscape): check what stored joins change

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

TakeoffCraftCivilCraftDetailCraft Built · Live 1 – From: Duncan (Session) Duncan, wall tool specification 2026-11-05 (page 2)
FixFX.77 Link to FX.77Comment on FX.77 Studio and browser-edition packers: stale file lists (suite stubs, hub files, docinfo and About modules)

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

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

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

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

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftSuperCad Studio App shell Built · Live – – From: owner (Owner) owner request 2026-11-06
FixBot obtainedFX.110 Link to FX.110Comment on FX.110 CivilCraft help: "Not built yet" said LAS and LAZ cannot be written

The Point clouds add-on writes a cleaned cloud as LAS 1.4 or LAZ (PC.14), but the "Not built yet" row and the elevation-grids topic still said "Writing LAS or LAZ". Both now say what is true: no LAS/LAZ from a surface or the elevation-grid and LiDAR tools; the add-on writes a cloud. Help rebuilt. Checked by reading; no test.

CivilCraft Built · Live – – closing 2026-11-07
FixFX.156 Link to FX.156Comment on FX.156 Tooltips: one Bootstrap engine everywhere; the other tooltip methods are gone

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – The 0.9.1 build (desktop installers carry the shared files from their pack date). From: the owner (Staff) owner 2026-11-09
Education (Track ED) 2
FeatureED.1 Link to ED.1Comment on ED.1 Live TeamWork: follow the teacher (follow the presenter)

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

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

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraftStudio Built · Live – – From: Owner (Owner)
Library 8
FeatureLIB.C1 Link to LIB.C1Comment on LIB.C1 Library collections: the Library is the one home of every object; each app starts from a default collection

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – – From: owner (Owner) owner direction 2026-11-05
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
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
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
FixFX.147 Link to FX.147Comment on FX.147 All apps: a panel tab strip that does not fit scrolls (visible chevrons) instead of cutting tabs off

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

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

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

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

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

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

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

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

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

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

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

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

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live 1 Checked 2026-11-09: in /lab and the 0.9 web folders. Desktop installers staged, not published; ship as 0.9.1 on the owner's go (docs/0.9.1.md 91.2). docs/results/0.9/2026-11-09-suites-fix-ui.md
Layouts 1
FeatureRH.1 Link to RH.1Comment on RH.1 Rhino layout, Rhino keys and four views (Top, Perspective, Front, Right)

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Partly built 1 owner look in /lab; a daily Rhino user to check the keys; the other seven apps' keys and views Discord request, 2026-11-09 (the owner answers the requester directly; no lab pass)
Suggest an item

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