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
Drafting and app features 4
FixTK.1 Link to TK.1Comment on TK.1 TakeoffCraft: show lengths in meters, centimeters or millimeters

TakeoffCraft's own settings tab gets "Show lengths as": Follow Global (the metric length unit starred in Settings > Global > Units, else feet-inches), Feet-inches, m, cm or mm. It changes how lengths read on the sheet, in the status bar and in the panels, and the heights too: item height/depth, thickness, head, base and the Levels dialog; a bare number typed in a height field is read in the shown unit. The 1/16, 1/8 and 1/4 inch picker shows only for feet-inches. Display only: quantities, costs and exports still use the exact lengths. Asked for on Discord (a user could not find a meters option). Built in the a Discord member build, checked by syntax and number formatting; not yet tried in a browser.

TakeoffCraft App code Built · Live – – From: Discord community (Discord) Discord, 2026-11-03
Fixes 104
FixFX.23 Link to FX.23Comment on FX.23 CadCraft: moving a hatch left its pattern behind

MOVE, ROTATE and SCALE moved a hatch's outline but its pattern stayed anchored where it was, so the lines shifted inside the shape. geom.js txEntity now takes the origin along, and for built-in patterns the angle and scale on a turn or scale. Mirror keeps the pattern angle. Found while building PLAN2D.1. Test tools/cadcraft-test/plan2d.mjs. Not tested: patterns from a file (custom lines) under rotation, which keep their angle.

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
FixFX.47 Link to FX.47Comment on FX.47 Hatch pattern files (.pat) in CadCraft

Asked on Discord by a Discord member: does hatching work, and can .pat files be used? Hatching already worked (16 built-in patterns, scale, angle, origin, islands, associative, and a DXF/DWG file's own patterns). New: the HATCH command has a Pattern file option (F) that reads a .pat file (one or many patterns, comments, dashes and dots), and the patterns can be used by name (P, ? lists them). The hatch keeps its pattern with it, so it still draws on another computer and still takes scale and angle in Properties; DWG save writes its lines. A .pat file has no unit: sizes are taken as drawing units. New file: a Discord member/patfile.js; hatch.js patternFamilies; test: 'Hatch pattern files' (6 checks). Not done / untested: no pattern picker with previews; a patterns library that stays between sessions (the file is read again next time); a real .pat file from another program (tested with files written to the format only); DXF export still writes the outline only (as for every hatch).

CadCraft Built · Live 1 – From: Discord community (Discord) Discord, a Discord member, 2026-11-05
FixFX.49 Link to FX.49Comment on FX.49 BimCraft: Add levels takes heights below the lowest level

Asked on Discord by a Discord member: is there a way to create a level below the lowest level made so far? The Levels panel already had Add a level below (DC.119). The Add levels dialog (At these heights) still refused anything under 0; it now takes negative heights (for example -10'-0", -20'-0"): the new level reaches up to the next level above it and is named Level -1 (nearest the ground), Level -2, and so on. One undo step. Test: draw06 'Add levels at -6000 and -3000' (225/0). Not tested: a real project with walls or a slab at the lowest level (the levels are added, nothing else moves), a desktop build.

BimCraft Built · Live 1 – From: Discord community (Discord) Discord, a Discord member, 2026-11-04
FixFX.22 Link to FX.22Comment on FX.22 BimCraft: dragging a wall no longer skews the room, and Square up brings 90 degrees back

Discord report with screenshots: dragging a wall's centre grip slightly off square tilted both joined walls, and nothing brought the room back to 90 degrees. The grip moved the wall by the whole drag and carried the joined corners with it; Length did the same. Changed in the lab build. The centre grip moves the wall square to itself; its corners slide along the joined walls, so they keep their angle at any angle, and partitions butting into it come along. Ctrl (Cmd) gives the old free move. An end grip catches square to the wall joined at its other end within 3 degrees (Shift stays on the plan's axes, as before). Properties for a straight wall adds: Measure from (centre line, inside face, outside face), which Length and the new Room size read and set from; Move square (typed, + out, - in); Angle to joined wall (or Direction for a wall on its own); and Square up, which turns the connected walls within 10 degrees of a right angle to their main direction. A distance can be typed while a grip is held (Enter or letting go uses it, Esc drops the move). Each change is one undo step. Geometry in wall-square.js. Tested: tools/bimcraft-test/wall-square-test.mjs 56, browser-wallsquare.mjs 28 (the report's steps), browser-model, browser-comforts and --model pass. Not tested: a real project with many walls, doors in a wall whose corners slide at a non-right angle, or a desktop build.

BimCraft Built · Live – –
FixFX.55 Link to FX.55Comment on FX.55 BimCraft: typing LEVEL does nothing and the ribbon has no Levels button; optional side-panel accordion with a lock (setting, default off)

a Discord member, 2026-11-05 (working in /lab with the drafting ribbon): the help describes the Levels panel, but typing LEVEL on the command line said Unknown command and no ribbon button led to it. Built (/lab, a Discord member): the command line takes LEVEL, LEVELS, STOREY, STOREYS (opens Add levels…); a Levels button sits in the Home > Levels group (Drafting ribbon), the Architecture > Model group (Ribbon) and the Home menu (model.levels in input-bimcraft.js). The left/right panel's collapsible sections (Find, Quantity totals, Checks, Clash …) close each other so the one you opened has the focus when Settings > BimCraft > Side panels is on (default OFF, owner's call 2026-11-05); a lock beside each caret keeps one open, remembered on this device (panel-focus.js). Test: tools/bimcraft-test/browser-levels09.mjs, 15/0. Not in the Docked/Duncan layouts' own tool sets (the docked ribbon already had Level). New strings are English only until the next language sync.

BimCraft App code Built · Live 1 – From: Discord community (Discord) Discord, a Discord member, 2026-11-05
FixFX.140 Link to FX.140Comment on FX.140 Resin slicing: faster on big screens and dense miniature meshes, and less memory

A tester reported the resin slicer crashed while slicing; they later said the model was a dense mesh from a miniatures set, a few MB, not regular geometry. The cause is not confirmed and no crash was reproduced, but tests found three real problems. (1) Drawing: the page spent most of its time turning each layer into a 12K picture (59 million pixels a layer); a 100 mm part at 0.05 mm took over 280 s. Now only the rows a layer lights are touched, one buffer is reused, and dark rows are written as single runs: a 60 mm part 151 s to 27 s, the 100 mm one over 280 s to 100 s. (2) Dense meshes: the island check ran an exact overlap test for every small piece of every layer (40 of 52 s on a 40,000-triangle noisy ball with supports); the overlap of the whole layers is now found once and cut into pieces, same island counts as before (251 = 251 on a test mesh), 52 s to 22 s. The cavity of a hollow part is worked out on an outline simplified by half a pixel (about 25 percent faster, wall within half a pixel). (3) Memory: a 40-piece, 139,000-triangle mesh at 0.03 mm, hollow with supports, peaked at 1.98 GB (enough to kill a browser tab), because every layer's pieces were kept to the end; temporary shapes are now given back at once: 1.20 GB, and it finishes in about 4.5 minutes where it ran past 7. Layers are identical to before the change except the half-pixel cavity. With RSN.8 the slicing also runs on a worker thread, so the page cannot freeze. Not tried on a real printer or on the tester's own file.

BimCraftModelCraftPartCraft App code Built · Live – The tester to try again in /lab and say what happens (printer, layer height, hollow/supports, model size). From: Discord community (Discord) Discord 2026-11-08: "it crashed while slicing"
FixFX.146 Link to FX.146Comment on FX.146 DetailCraft: My profiles, custom profiles kept for every new model

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

DetailCraft Built · Live – Owner to clear in 0.9, then reply to a Discord member. Account sync and channel columns / end plates are not built. From: Discord community (Discord) Discord 2026-11-09
FixFX.157 Link to FX.157Comment on FX.157 CadCraft: objects moved against each other while zooming in a drawing at distant coordinates (a stray object near 0,0 made hatches slide off their outlines)

A member sent a screen recording: a hatch and its outline drifted apart as they zoomed, in a drawing near E 830000 / N 4480000. They guessed a 32-bit float problem, and it is one. A canvas Path2D keeps its points as 32-bit floats and the matrix that draws them is 32-bit too. CadCraft stores paths relative to an origin, but the origin was the middle of the whole drawing's extents: with one object left near 0,0 it sat 2.3 million units from the geometry on screen, so zoomed in the digits were gone. Measured in the released 0.9 build (new tools/cadcraft-test/browser-far-coords.mjs, the real view.js in Chromium): a hatch edge 1 px off at 20 px per unit, 22 px at 200, 94 px at 1000, fill gone at 2000; without the stray object, or with one 20 km away, exact. Only the picture was wrong; coordinates, snaps, measurements and saved files are 64-bit. Fix (view.js): the cache is rebuilt around the view center once the origin is more than 160,000 px from it (FAR_PX), also for the model shown in a sheet viewport; ordinary drawings never rebuild. The test fails on 0.9 (99 px) and passes in the lab (0 px at every zoom); bin/test-cadcraft.mjs 2847 passed. /accuracy had the old origin down as keeping values small: now a 32-bit policy, Drawing far from the origin, on screen, with the measurements and an open item to test BimCraft dwg-view.js, TakeoffCraft cadset.js and CivilCraft view.js (same pattern). Installed 0.9.0 desktop builds carry their own view.js and need 0.9.1.

CadCraft App code Built · Live – The reporter to try it in /lab (send the file or a lab pass); the 0.9.1 build; the other three apps tested for the same pattern. From: Discord community (Discord) Discord 2026-11-09
Discord, last sweep before 0.9 (2026-11-05) 5
FixFX.31 Link to FX.31Comment on FX.31 ModelCraft: Play turns into Pause while an animation plays, and Space toggles it

Reported 2026-10-20: the Play button stays a triangle while the animation runs (it acts as stop); the reporter asks for a Pause state, matching the timeline, and for Space to play and pause while the timeline is open. Untested. Built 2026-11-05 (model-fix-09), in /lab. The timeline's own Play button already turned into Pause while playing (since 0.6); what stayed a triangle was the Animate workspace's toolbar Play (a second button, and Stop beside it). Now it shows Pause (icon, word, pressed) while the animation plays and a second click pauses; Space plays and pauses while the timeline is open (not when a button has the focus, not while a tool runs; with the timeline closed Space is still Select); the new command Play or pause the animation (camera.play) can be given any key in a style of your own. Tests: browser-fix09.mjs 'FX.31' (real keys and clicks) and test-fix09.mjs. Help: animation topic.

ModelCraft Built · Live 1 – docs/0.9-sessions/final-sweep-2026-11-05.md
FixFX.32 Link to FX.32Comment on FX.32 ModelCraft: the Render view pop-up stays over the toolbar, and the Render panel shows "null" under Detail

Reported 2026-10-25 on macOS Studio: switching to Render shows a "The path tracer renders the view..." pop-up that does not go away and passes clicks to the toolbar underneath; the Render in the view panel has the word null below the Detail drop-down. Untested; not yet looked for in the code. Checked 2026-11-05 (model-fix-09): already fixed in 0.7.1 (71.1: the long note became a plain paragraph in the Render panel instead of the floating stage hint; 71.2: the empty slot that printed "null" is gone), and the code is the same in 0.8.1. The reporter was on 0.7. Reproduced in /lab with a browser test (tools/modelcraft-test/browser-fix09.mjs, 'FX.32'): the note sits inside the side panel, does not cover the toolbar, a click on it lands on it, it has a Close control (and "What is this?" brings it back), and the word null is nowhere in the panel. Not tested on macOS Studio itself.

ModelCraft Built · Live 1 – docs/0.9-sessions/final-sweep-2026-11-05.md
FixFX.38 Link to FX.38Comment on FX.38 MarkupCraft: copy and paste a selection of markups, and save it as a stamp or tool

Reported 2026-10-26 (0.7): selecting markup content has no way to copy and paste the selection, or turn it into a stamp or tool-chest tool. Check against the current build first (D8.15 Copy area copies a page region, a different thing). Untested. Checked 2026-11-05 by markup-fix-09: already built in 0.7.1 (71.6 copy/paste, 71.9 Save as a stamp) and in the released 0.8.1. The reporter wrote on 0.7. Copy/paste of markups and of page content works on the same page, other page and other open file (and other tab); Save selection as a stamp puts markups, pictures included, into the tool chest. Tested: tools/markupcraft-test/browser-071.mjs 39/0 in a real browser, bin/test-markupcraft.mjs 565/0 (new check: a picture stamp survives the chest file). Help: stamps-and-notes, tool-chest. Reporter's own build and wording not confirmed.

MarkupCraft Built · Live 2 – docs/0.9-sessions/final-sweep-2026-11-05.md
FixFX.39 Link to FX.39Comment on FX.39 MarkupCraft: add a stamp or signature from an image file, not only by paste

Reported 2026-10-25 (0.7): there is a way to paste a stamp or signature image but not to pick one from a folder, and no flatten option; also asked how to use a scanned code book. Untested. Checked 2026-11-05 by markup-fix-09: already built in 0.7.1 (71.7 Insert a picture from a file, 71.8 signature from a file) and in the released 0.8.1. Stamp tool > Picture or My signature (file picker, scan made see-through, list of saved signatures in this browser), Edit > More > Insert a picture from a file, Flatten into the page when saved in Properties; a picture can also be saved as a stamp in the tool chest. Tested browser-071.mjs 39/0 and test-markupcraft 565/0. Help: stamps-and-notes. Scanned code book: not asked of the reporter; a scanned page opens as a PDF page like any other.

MarkupCraft Built · Live 1 – docs/0.9-sessions/final-sweep-2026-11-05.md
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.