Release planning

CadCraft 0.9 impact map

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

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

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

Sheet 1 · impact areas

Where 0.9 lands

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

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

Sheet 2 · schedule

Every fix and feature

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

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

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

ItemWhatAppsLayersStatusDaysWaits onIssues
Engineering gaps (Track EG) 2
SpikeEG.21 Link to EG.21Comment on EG.21 Spike: AR on site — the model at full size through a phone

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

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

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

BimCraft App code Built · Live 4 You: send 2-3 real phone scans with a tape-measured wall. Session: BimCraft menu and panel mount (closing_PART_4 inbox). Log: spikes_PART_4.md From: owner (Owner) Owner, 2026-10-27 (engineering ideas list, add to 0.8)
Fixes 104
FeatureFX.56 Link to FX.56Comment on FX.56 Auto-focus panel (Settings › Global) and split tool tiles

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

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft App code Built · Live – in /lab; owner to try From: owner (Owner) owner request 2026-11-05
FixFX.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
Requests for 0.9 8
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
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
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.