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
Fixes 104
FixFX.76 Link to FX.76Comment on FX.76 Documents opens as a centered dialog, not a box in the corner

Owner 2026-11-06: Documents seemed to do nothing, and on large screens the placement was wrong. It opened as a small box pinned to the top right of the drawing area, far from the button. It is now a modal dialog centered on the window with the page dimmed, in BimCraft, PartCraft and CadCraft through lib/vault. Esc, the X or a press on the dimmed page closes it. Opening a file or a copy closes it so the file can be seen. Tested at 1280 to 3840 wide in the standard, Vector and Duncan layouts on SwiftShader; not on a real large monitor or in a Studio build.

CadCraftBimCraftPartCraft Built · Live – –
FixFX.109 Link to FX.109Comment on FX.109 Accuracy: exact-equality comparisons reviewed, 7 given a tolerance, the rest tagged (new Changes tab)

Prompted by a community comment that floating-point == / === comparisons in the apps look suspect. All 367 candidates on /accuracy/comparisons were read. 7 now compare within a tolerance (1e-9 relative): electrical add-on (2 places), process dispersion, process vessel, PartCraft lattice, PDF rectangle corners (isAxisRect), window cut-list part merge. The other 277 were left exact on purpose (whole numbers, copied values, zero guards, typed codes, triangulation and ordering tie-breaks) and tagged with the reason in plain words. Every change is on /accuracy/changes with before, after, UTC time and a revert command (node tools/accuracy-equality/fix.mjs revert EQ-n). a Discord member (/lab) only. Not done: live shared shell (engines/risk/weibull.js, calc.js:240) waits for a release go; 6 needs-review items (EQ-0094, 0209, 0215, 0248, 0273, 0279) still to decide; app suites not re-run, edited files only checked to parse; reviewers' reasons come from reading code, not running it.

CadCraftPartCraft Built · Live – – From: community (Site) community comment, accuracy review 2026-11-07
FixFX.117 Link to FX.117Comment on FX.117 Accuracy Changes tab: search, filters, and a before/after check on each fix (1,000,000 inputs)

Owner 2026-11-07. /accuracy/changes now has a search box, tag chips and App / What happened / Before and after filters (server-side, 50 a page). Each of the 7 fixes was run before and after on 1,000,000 generated inputs (tools/accuracy-equality/verify.mjs, one recipe per change in checks/): all 7 show 'Corrected' (the old text was wrong on 13 to 45 percent of inputs, the new text on none) and link to /accuracy/changes/EQ-n with counts, samples and the seed; the raw file is /accuracy/changes/EQ-n.json and lives in core/data/equality-results/ so it can be copied to a CDN (.env NUMERICS_RESULTS_CDN makes the links point there). Limits: it runs the changed comparison text with generated inputs, not the whole app; the 'right answer' is within 1e-12 relative, which is my definition; 277 tag-only entries have nothing to compare. Not done: no revert button on the page; app suites not re-run.

CadCraftPartCraft Built · Live – – From: owner (Site) owner request 2026-11-07
Planned suggestions, built in 0.9 (2026-11-06) 4
FeatureSU.747c Link to SU.747cComment on SU.747c NURBS surfaces, step S3: fillets and blends between faces, thickening, a solid written to STEP as one closed shell

Asked (#747, #748, #749, #750, Oct 16): concept-to-prototype NURBS and production-quality surfacing. S1 (curves, untrimmed surfaces, measured G0 to G2) is Built in 0.8; trimmed surfaces, solids from them with union, subtract and intersect, and PartCraft Bake are Built in /lab 0.9 (docs/0.9-sessions/nurbs-09.md). That log lists what is left and says 'Fillets between faces come next'. Plan (lib/nurbs): (1) fillets and blends between two faces, constant then variable radius, deviation from the rolling ball measured; (2) thickening a surface into a solid, self-intersection refused and named; (3) a solid written to STEP as one closed shell, read back; (4) Booleans as nodes. Each result measured against a closed form. Not claimed: class-A surfacing, the other programs' file formats, a result equal to Alias or ICEM Surf. Class-A and equality with Alias/ICEM are never claimed. Completed 2026-11-06: in /lab (ModelCraft, PartCraft, SuperCad Studio's panel through the shared libs): fillet between two faces (constant/variable radius, convex/concave, closed edge; deviation from the rolling ball measured), several edges at once (mitred corners; one sphere patch where three flat square faces meet, radius equal), thicken into a solid, STEP and IGES (186 over closed shell 514) with a solid as one closed shell, read back as a solid, Booleans as nodes in the node editor, help lines. Measured against closed forms (removed volume within 2 % at tol 0.05, goes with the tolerance). Not built: vertex blend for curved faces or unequal radii, fillet between faces that do not meet, inside fillet ending on a slanted or curved face, several inside edges that reliably close (the result line says if not), Booleans/fillets on the surfaces without triangles, IGES not tried in another program. Tests: docs/0.9-sessions/nurbs-s3-09.md.

ModelCraftPartCraft Built · Live 8 A real surface model from the reporters (#747 to #750) opened in another program would be the best test docs/0.9-sessions/planned-suggestions-09.md
FeatureSU.749 Link to SU.749Comment on SU.749 PartCraft: large assemblies, measured first at 1,000, 5,000 and 20,000 parts, then fixed where it is slow

Asked (#749, Oct 16): managing large, complex assemblies, with Catia named as the reference. PartCraft's stress tests so far are 750 features in one part (D7.51) and closed-loop mates (D7.40); no row measures an assembly of thousands of parts. Do: (1) generate the test assemblies ONCE under testfiles/generated/ (registry testfiles/LARGE-FILES.md, memory 'large-test-files'), from repeated instances of a few parts, not from files typed by hand; (2) measure open, rotate, select, mate-solve and save at each size in the real page, one browser test at a time with nice and timeout; (3) fix what the numbers show, in this order of likelihood: instancing (one mesh, many transforms), level of detail and a lightweight display mode, hiding by visibility sets, mate solving only for what moved, saving without rewriting unchanged parts. Record every before and after number in the log and in the release notes (memory 'test-results-in-release-notes'). Not claimed: Catia's feature set, any size without a measurement. Untested: everything, including the sizes above. assembly-09 2026-11-06: Measured at 1,000, 5,000 and 20,000 copies of three small parts in the real page (headless Chromium on a CPU renderer, never a GPU), before and after; fixed: one draw group per part (40,000 draw calls to 3 at 20,000), a joint turned places only the parts behind it (5.0 s to 65 ms at 20,000), the part list shows its first rows (a click 11 s to 26 ms), boxes while the view moves (Views > Lightweight display keeps them on; a frame 15.7 s to 0.9 s on the CPU renderer), and assemblies open up to 50,000 copies (500 before). A frame in full detail is not faster on the CPU renderer; assemblies of heavy parts and a real GPU are not measured. No claim about any other program. Table and tests: docs/0.9-sessions/assembly-09.md.

PartCraft Built · Live 6 Hand check is community test SU.749-HAND (not blocking) docs/0.9-sessions/planned-suggestions-09.md
FeatureSU.908 Link to SU.908Comment on SU.908 Finite elements for plates, shells and solids (linear static and modal), the engine behind slabs, shear walls and a solid stress check

Asked (#908: Abaqus, Ansys, SAP2000, STAAD.Pro, ETABS and others; #890 RFEM; #1057 SPACE GASS; #1141 SAP2000): finite elements beyond beams. Built (lib/fem, own code, Apache-2.0): four-node shell (MITC4 or DKQ), ten-node tetrahedron, modal analysis, sparse IC(0)-PCG solver, slabs and shear walls through the frame mesher; known-answer tests with cited derivations (Navier, Lame, Timoshenko, Leissa, Blevins; 60 + 10 + 15 checks). Reachable: the Analysis panel of BimCraft and DetailCraft, block 'Finite elements: natural frequencies': modes, period, effective modal mass, mode drawn on the model, member end releases and rigid floors carried, settings saved with the model, the report carries the table, help written. Deflections, reactions and plate moments of slabs and walls are shown by the frame solver in the same panel (lib/frame plates; lib/fem agrees with it to 1 % in tests). Solid FEM: lib/fem's tet10 solid is the PartCraft add-on 'Solid FEM' with its own panel (SU.908c); PartCraft keeps its own solver (owner 2026-11-06). DKQ is a panel choice; the static solve in the panel stays lib/frame's (one engine, no second copy). Not built: nonlinear, contact, damping, response spectrum, soil models. No claim of equality with any other program. Hand check: SU.908-HAND (big meshes and a real building on a workstation or by the community; not a blocker). fem-complete 2026-11-06: docs/0.9-sessions/fem-09.md

BimCraftModelCraftDetailCraftPartCraft Built · Live 12 Hand check is community test SU.908-HAND (not blocking) docs/0.9-sessions/planned-suggestions-09.md
Units 1
FeatureTKW.1 Link to TKW.1Comment on TKW.1 Weight and temperature units (kg, lb, t, ton; °C, °F, K, °R)

Asked in support message #1329 (metric in the quick properties, kilograms, Celsius). Owner 2026-11-08: build weight and temperatures, both F and C, into 0.9. Shared table lib/units gets two kinds: mass (mg, g, kg, tonne, oz, lb, ton, long ton; exact factors from the 1959 pound) and temperature (K, °C, °F, °R; offset scales, converted without a detour through kelvin for C and F, negative values read correctly); Settings › Global › Units lists them (en, es-MX, id words). TakeoffCraft: lb, ton, kg and t as typed-quantity units (priced like CY), an optional Temperature on every item typed and shown in °C or °F (Settings › TakeoffCraft: Follow Global / °C / °F), kept in kelvin. bin/test-units.mjs 261/0, bin/test-takeoffcraft.mjs 1210/0. Seen in the real /lab page: browser-weights-temps.mjs 12/12 (unit lists, temperature typed in C and F, display setting, undo). Temperatures are absolute (a difference is not converted). Reports/exports do not carry the item temperature yet. Reply sent 2026-11-08 (support #1329, answered). No account for abdulrahman.mahmoud@almada-eg.com yet: the reply invites him to sign up; grant the lab pass (TakeoffCraft, a Discord member) when the account appears.

CadCraftBimCraftModelCraftMarkupCraftTakeoffCraftCivilCraftDetailCraftPartCraft Built · Live – requester account for the lab pass From: Abdulrahman Mahmoud (Site) support message #1329 2026-11-08
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.