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.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
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
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
SpikePS.8 Link to PS.8Comment on PS.8 Bambu Lab P2S through Bambu Connect

Spec: docs/0.9-PRINT-STAGE.md. Owner, 2026-11-04: Bambu Connect, with installing it in the add-on's instructions. Add-on printer-bambu: slices with the person's own OrcaSlicer and its P2S presets to a sliced .gcode.3mf, then opens it in Bambu Connect, where they start the print. Setup steps on the card and in the Library listing. The file was made by the real OrcaSlicer 2.4.2 on Windows. Not yet run: a Studio build, Bambu Connect itself, a P2S. Other Bambu models and direct sending not built.

ModelCraft Our enginesApp code Built · Live – – docs/0.9-PRINT-STAGE.md; owner, 2026-11-03
DecisionPS.9 Link to PS.9Comment on PS.9 Print stage: stay in the app or become an add-on

Spec: docs/0.9-PRINT-STAGE.md. Loaded on first use from ModelCraft today, so the code is in the build. Moving it means a Library listing and the add-on API reaching the view and the model. Recommended: decide after a real print works. Owner, 2026-11-03: an add-on. Built as print3d (PS.15).

ModelCraft 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
DecisionPS.16 Link to PS.16Comment on PS.16 Bundle PrusaSlicer and OrcaSlicer, or use the person's own copy

Spec: docs/0.9-PRINT-STAGE.md. Built as their own install with a download link. Really bundling them changes ADDONS-SPEC named-GPL condition 4 and means about 110 MB and 140 MB per platform, passing on AGPL source offers, and following their releases. Recommended: keep their own install. Owner, 2026-11-04: not bundled; each slicer is its own add-on (PS.19).

ModelCraft App 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
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.