Release planning

CadCraft 0.9 impact map

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

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

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

Sheet 1 · impact areas

Where 0.9 lands

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

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

Sheet 2 · schedule

Every fix and feature

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

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

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

ItemWhatAppsLayersStatusDaysWaits onIssues
One lineup (consolidation) 2
FeatureBot obtainedDC.1 Link to DC.1Comment on DC.1 One app with plugin modes (SuperCadCraft)

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

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

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

ModelCraftPartCraft Built · Live – Hand check is community test DC.54-HAND (not blocking) From: Discord community (Discord) Discord #suggest-a-craft, Oct 14, 2026
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
Requests for 0.8 5
FeatureD8.12 Link to D8.12Comment on D8.12 BimCraft: a working style in Settings — how duplicated views, printing and element classes behave

Discord (a Discord member, Oct 28; owner 2026-10-30: "feels like a LAYOUT in settings"): people coming from the two big BIM programs expect different behaviour, and neither is wrong. Settings › BimCraft › Working style picks a preset that sets the defaults of D8.12-A…D, each still changeable on its own, like the workspace layouts (Track WS): - Each view its own (default): a duplicated view copies its annotations and they stay that view's; sheets print as the screen shows. - Shared annotations and pen tables: duplicates share annotations; printing goes through a pen table. Names describe the way of working, never a product (trademark rule). Checked in /lab 2026-10-30 — already there: families and the family editor (BIM-FAM-MORE, partly built), docked ribbon and toolbox + info box layouts (Track WS), drafting shown only in its own view (DC.117 d), view templates (DF.19), per-view pen overrides (SU.1055, partly). Missing: D8.12-A duplicate a view, D8.12-B print as shown, D8.12-C use an element as another class, D8.12-D project templates. Also from the thread: a Discord member pointed at the vendor's public ideas forum (most-voted) as a list of what users miss; a Discord member offered to work through our project files as an experienced user — the owner/a Discord member to send files. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-A Link to D8.12-AComment on D8.12-A BimCraft: duplicate a view, as its own copy or linked

Today a plan is one view per level plus callouts; there is no Duplicate. Add Duplicate on plans, ceiling plans, sections, elevations and callouts with a choice: Own copy (drafting, dimensions, crop, hidden elements and pen overrides copied; editing or deleting them changes only that view — the default) or Linked (one set shared by both views). The working style (D8.12) sets which one is offered first. Older views on issued sheets must never change because a later copy was edited (the requester's point: revisions are not a straight line). Stored in the IFC as now (CadCraft_PlanView / CadCraft_Drafting View key). Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-B Link to D8.12-BComment on D8.12-B BimCraft: print as shown — pen overrides saved in the file and on sheets and PDF

Pen overrides (SU.1055, pens.js) live in the browser only (localStorage bimcraft.pens), cover walls, doors and windows, and are not on the printed plan yet. Do: keep them in the IFC with the view, cover every category (and drafting), and draw sheets and the PDF exactly as the screen shows (default). The other working style prints through a pen table (colour → weight and ink), reusing CadCraft's plot-style work (DC.14) rather than a second format. Closes SU.1055's pen-override rest. Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.12-C Link to D8.12-CComment on D8.12-C BimCraft: use an element as something else — a wall as a panel, a slab as a road or shelf, a roof as a ramp

Keep the drawing tool's geometry and editing but report the element as another IFC class (and predefined type), so schedules, takeoff, Problems and the IFC export count a slab drawn as a road as a road, not a floor. A "Report as" field in Properties (search of IFC classes that fit the shape), one undo step, round-trips through IFC2X3 and IFC4; schedules group by the reported class. The requester's point: the other program files these as generic models and its schedules stay wrong. Part of D8.12. **Implementation started 2026-11-02** (0.9 top-5 pick #2, hardest first; session `bim-views-09`, log docs/0.9-sessions/bim-views-09.md). Status moves to Partly built or Built only when the code is reachable and tested (rule 49).

BimCraft App code Built · Live – – From: Discord community (Discord) Discord 2026-10-28
FeatureD8.13 Link to D8.13Comment on D8.13 Add-on: factory floor — from CAM to the machines, cell control and SCADA monitoring

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

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

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

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

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

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

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

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

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

CadCraftSuperCad Studio App code Built · Live 4 No third-party OASIS file tried yet From: Discord community (Discord) Discord (a Discord member) 2026-10-30; owner: add this to 0.8, probably an add-on
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
Requests for 0.9 8
FeatureD9.1 Link to D9.1Comment on D9.1 BimCraft: change several columns at once (height, top, size)

Ask: "select multiple columns and edit their height in one go; the height options only show when one column is selected." Several columns picked together already shared Shape, Size, Top and Height, but a pick that also caught a wall or another element (columns stand in walls on grid lines; a box catches both) showed only "N elements picked" with no fields. Built: a pick of several kinds lists each kind with "Keep only these", one click keeps the columns and their shared fields show. Fields where the columns differ are empty ("Mixed"), never the first column's value; Height typed once makes every picked column that tall (a column following the level above gets the offset that makes it so); Top keeps each column's own level above. Files: bimcraft.js showMany, model-grids-ui.js props. Tests: browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
FeatureD9.2 Link to D9.2Comment on D9.2 BimCraft: grid dimensions on the plan

Ask: "a way to show the grid dimensions". Built: Build › Grid has a Dimensions box: the spacing between neighbouring grid lines and the overall size, for the numbered and the lettered lines, drawn past the bubbles on every level's plan and the sheets made from it. Saved in the IFC (CadCraft_Grid Dims), one undo step, follows the grid when lines move, are renamed or added; a turned grid measures across its lines. Files: model-grids.js gridDims, model-grids-ui.js. Tests: test-bimcraft --draw06 (D9.2), browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
FeatureD9.3 Link to D9.3Comment on D9.3 BimCraft: Measure on the plan (temporary dimensions)

Ask: "a measure tool to add temporary dimensions in the Plan view / 3D view". The 3D view already had Measure (M: distance, faces, areas). Built: Draw › Measure on the plan: click two points for a dimension with the distance and ΔX / ΔY; points snap to wall ends, grid lines and crossings, columns; Shift keeps a leg straight; more clicks chain on with a running total; Esc clears it. Nothing is written to the model. With only the plan shown, M opens it (with the 3D view on screen M stays the 3D Measure). Files: model-measure-ui.js (new), model-ui.js planOnly/useTool, bimcraft.js key M, ui.inc. Tests: browser-draw06 --only d9.

BimCraft App code Built · Live – Built in /lab 2026-11-03; the requester tests it on a lab pass. From: Discord community (Discord) Discord 2026-11-03 (owner: build it in the lab now)
MarkupCraft 1
FeatureNOTES.1 Link to NOTES.1Comment on NOTES.1 Pasteboard, show/hide notes and private notes

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

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

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

CadCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.4 Link to IL.4Comment on IL.4 Lighting design glare (UGR) estimate

CIE 117 formula with Einhorn position index, four observers at 1.2 m, initial flux. An estimate from the file, not the maker table. Not checked against a published UGR table yet.

CadCraftBimCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.6 Link to IL.6Comment on IL.6 Lighting design report: printable page with map, results, checks

HTML page (print to PDF), SVG illuminance map with scale, summary, checks, the notes on what the numbers are. Not in the Studio report binder yet.

CadCraftBimCraft Built · Live – – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.9 Link to IL.9Comment on IL.9 Lighting design in BimCraft: IfcLightFixture placement and lux on the model

Place real IFC light fixtures, schedule them, and show the calculated lux on the model rooms. adapters-09 2026-11-06: In BimCraft the add-on reads the model's rooms with their windows and the walls' height, places the luminaires as IfcLightFixture (BimCraft's own ceiling luminaire with plan symbol, tag and watts as Load, plus CadCraft_LightDesign with lumens, watts and the room's mean lux) in the room's level, and writes the lux as numbers into that level's plan view; drawing again replaces, Erase removes, undo restores. Tested on the showcase house in the real page (tools/bimcraft-test/browser-lightdesign-bim.mjs 22/0). Window height is assumed 1.2 m; the plan view was checked through the model data, not by eye in Studio.

BimCraft Built · Live 4 – From: Discord community (Discord) docs/0.9-sessions/lightdesign-09.md
FeatureIL.1 Link to IL.1Comment on IL.1 Lighting design engine: room, photometry, inter-reflection (radiosity)

Built in the lab: lib/lightdesign. Direct light from .ies/.ldt plus the light bounced off floor, walls and ceiling as diffuse patches. Checks: energy conserved to 1.8 %, and a Monte Carlo photon trace of a 6 x 4 m office agrees to 1.4 %. No furniture, columns, windows or daylight.

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

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

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

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

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

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

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

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

CadCraft Built · Live – – From: Discord community (Discord) Discord, a Discord member, 2026-11-02
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
FeatureDC.119 Link to DC.119Comment on DC.119 BimCraft: add a level below the lowest level

Asked 2026-11-04: is there a way to create a level below the lowest one made so far. Not checked in the code. Do: check whether a negative-elevation level can be added (basement, footings); if not, add Level below to the level controls with undo. bim-fix-09 2026-11-05: Checked first: no way existed (Add a level on top only; Add levels... takes heights from 0 up; typing a negative elevation moves every level above with it). Built: Levels panel > Add a level below (model-ops newLevelBelow): a level under the lowest, as tall as it, at a negative elevation, named Level -1, Level -2; nothing else moves; one Undo step; redo keeps the same GlobalId; walls can be drawn on it. Tests: node bin/test-bimcraft.mjs --levelbelow, tools/bimcraft-test/browser-model.mjs --only bm2. Help: draw-walls, site-building-and-levels.

BimCraft Built · Live 1 – docs/0.9-sessions/final-sweep-2026-11-05.md
Resin printing add-ons (RSN) 9
FeatureRSN.1 Link to RSN.1Comment on RSN.1 Resin slicer core: layers at the printer screen, hollowing, island check, layer preview (add-on slicer-resin)

Built in the lab: add-on slicer-resin over lib/printresin, in the 3D Print card under "Printing with: Resin". Layer pictures at the printer's screen resolution with smooth edges, hollowing with vent holes, floating pieces ringed on the layer preview, time, resin and cost. Free, nothing locked. Printer sizes are the makers' published numbers and the exposure numbers are starting points. Tests: slice 35/0, browser 24/0. Never run on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.2 Link to RSN.2Comment on RSN.2 Resin file: Elegoo GOO (add-on printer-resin-goo)

Built in the lab, from Elegoo's published Goo Format Spec V1.2 with no third-party source read. What the spec leaves open is now switchable on the card: byte order (big or little endian; big by default from an unverified secondary report) and checksum (negated sum or plain sum). The spec's own example offset cannot be reached by its field table (the table gives 195,477 bytes, the example 195,255), so the example is read as illustrative. Other gaps are marked SPEC-GAP in rs-goo.js. Read back by our own reader only (86/0). A real Elegoo printer is the check.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.3 Link to RSN.3Comment on RSN.3 Resin file: SL1 layered-image archive (add-on printer-resin-sl1)

Built in the lab, from public descriptions (Prusa publishes no specification): config.ini and numbered 8-bit PNG layers in a zip. Several keys are marked UNVERIFIED in rs-sl1.js. Read back by our own reader only (38/0). NanoDLP's different layout is not built.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.4 Link to RSN.4Comment on RSN.4 Resin exposure test: test part and a ladder of exposures (add-on resin-calibration)

Built in the lab: a 46 x 30 mm test part (square pillars 0.3 to 1.5 mm, round holes 0.4 to 1.5 mm, two bridges) and the same print at five exposures from 70 to 130 percent, one file each, in a zip. Test 10/0 and in the browser test.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.5 Link to RSN.5Comment on RSN.5 Resin supports and raft: pillars from islands, overhangs and the first layer

Built in the lab inside slicer-resin: the part is lifted on a raft; unsupported areas are sampled on a grid and each gets a pillar to the raft or the part below, fine tip and wider shaft; density light, medium, heavy. New and unproven: pillars do not brace each other, no suction-cup detection. Tests in test-slice.mjs.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.6 Link to RSN.6Comment on RSN.6 Resin files from Chitubox: CBDDLP and CTB (add-on printer-resin-chitu)

Built in the lab (owner 2026-11-08), clean room: both written from ONE prose document (cbiffle/catibo a Discord member/cbddlp-ctb.adoc, BSD-2-Clause repository; whether that file carries its own licence is for legal to confirm), no GPL code read. CBDDLP in full; CTB for the layout that document describes (version 2, 7-bit pixels), with the document's cipher as an option. Options on the card: edge smoothing levels, projection flag, resolution field type, encryption. The document says it was tested on the Creality LD-002R and files for the older Elegoo Mars; no other printer is named. Later CTB versions are NOT written (see RSN.10). Tests cbddlp 28/0, ctb 25/0, browser 31/0. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.8 Link to RSN.8Comment on RSN.8 Resin slicing on a worker thread

Built in the lab (2026-11-08). The resin slicer runs on a module worker (lib/printresin/rs-worker.js, started by rs-run.js) so the page stays alive while a big plate is sliced; the worker borrows the print stage's manifold file and ps-slice.js through the URLs the host already gives the filament slicer. The layers come back as run-length data, moved not copied. Cancel ends the worker. A page that cannot start a worker slices on the page as before. Same layers byte for byte as slicing directly (test-worker 14/0; the real-browser run confirms rs-worker.js starts). With FX.140 the drawing is also about 6 times faster. Not tried on a real printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.10 Link to RSN.10Comment on RSN.10 Resin files: Chitubox CTB versions 3, 4 and 5 (in add-on printer-resin-chitu)

Built in the lab (owner 2026-11-08: "build to version 3+"), our own Apache-2.0 code from a written specification (docs/resin-formats/ctb-v3-v5-SPEC.md), by a builder who saw nothing else. Two layouts under one name: plain tables (version 3, 4, 5) and encrypted settings (version 4, 5; AES and SHA-256 through the platform's WebCrypto). Options on the card: layout, version, edge smoothing, projection, layer scrambling. The vendor's disclaimer text is not reproduced (our own 320 bytes: a printer might check it). Which printer needs which layout is not established. The v2 writer's cipher constant is now an option too. Tests ctb3 170/0, incl. the spec's test vectors. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
FeatureRSN.11 Link to RSN.11Comment on RSN.11 Resin files: Anycubic Photon Workshop PWMX and PWS (add-on printer-resin-anycubic)

Built in the lab (owner 2026-11-08), our own Apache-2.0 code from a written specification (docs/resin-formats/anycubic-pwmx-SPEC.md), by a builder who saw nothing else. .pwmx (file version 1, optionally 516) and .pws. Options: mirror the picture, file version, edge smoothing, per-layer flag. Not written: versions 517 and 518 (the newer M5 and M7 families). The spec writer measured two public sample files (a .pws and a .pwmx) and found the real files differ from the reference code in three places; the spec records them. Tests pwmx 91/0, browser 38/0. Never loaded on a printer.

BimCraftModelCraftPartCraft Built · Live – Hand check is community test RSN.1-HAND (not blocking) From: Discord community (Discord) docs/0.9-RESIN-STAGE.md
WaterCraft add-on (WN) 5
FeatureWN.1 Link to WN.1Comment on WN.1 WaterCraft engine: shared lib/waternet on CivilCraft's water solver

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

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

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

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

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

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

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

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

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

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