feat: establish reproducible FreeCAD web compatibility baseline

This commit is contained in:
2026-08-10 16:11:38 -04:00
parent e5a5d74dbc
commit b962a5c3b5
733 changed files with 349081 additions and 647 deletions

7
.gitignore vendored
View File

@@ -3,6 +3,13 @@ dist/
.vite/
.runtime/
.cache/
.secrets/
# Reproducible upstream source/build worktrees. Their revisions and artifact
# hashes are recorded under config/ and fetched by the build scripts.
CAMotics/
OpenCAMLib/
cnc_wams_gpt6/
working_ocl/
native/occt-history/dist/
public/native/occt-history/
__pycache__/

View File

@@ -11,6 +11,10 @@ FreeCAD-aligned web CAD frontend baseline for the BitBybit runtime boundary.
- Chinese implementation plan in `docs/web-cad-implementation-plan.zh-CN.md`
- Full 34-module FreeCAD 1.1.1 scope, Bitbybit/OCCT source-build track and executable task ledger in [docs/freecad-complete-parity-backlog.zh-CN.md](docs/freecad-complete-parity-backlog.zh-CN.md)
- Executable reference-oracle and R0-R9 delivery order in [docs/freecad-reference-execution-roadmap.zh-CN.md](docs/freecad-reference-execution-roadmap.zh-CN.md)
- Detailed owner lanes, 83-task WBS, dependencies and gates in [docs/freecad-full-parity-execution-wbs.zh-CN.md](docs/freecad-full-parity-execution-wbs.zh-CN.md)
- Reproducible 34-module source inventory in [config/freecad-source-inventory.json](config/freecad-source-inventory.json), generated and checked with `./npmw run generate:freecad-inventory` and `./npmw run check:freecad-inventory`
- Source-traceable TypeId/property candidate inventory in [config/freecad-type-property-inventory.json](config/freecad-type-property-inventory.json), checked with `./npmw run check:freecad-type-properties`
- Locked FreeCAD 1.1.1 planegcs WASM subset with Dedicated Worker verification for line/circle/curve constraints, SnellsLaw, Ellipse InternalAlignment helpers and clamped cubic B-spline Weight
The current milestone is a facade-first integration slice. Part Design document transactions and history are executable in the mock domain adapter; the internal SQLite WASM + OPFS Persistence Worker, schema and in-memory fallback are bundled behind `facade.project`. FreeCAD/OCCT geometry, solver behavior, FCStd interoperability and full workbench semantics remain staged behind the documented P3-P7 gates.

View File

@@ -0,0 +1,5 @@
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>CAM LinuxCNC WASM Machine Harness</title></head>
<body><pre id="result">running</pre><script type="module" src="/src/chromeCamLinuxcncMachineHarness.ts"></script></body>
</html>

View File

@@ -0,0 +1,12 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>CAMotics WASM Harness</title>
</head>
<body>
<pre id="result">Running CAMotics WASM...</pre>
<script type="module" src="/src/chromeCamoticsWasmHarness.ts"></script>
</body>
</html>

View File

@@ -0,0 +1,16 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="data:," />
<title>Chrome FCStd Golden Harness</title>
</head>
<body>
<main>
<h1>Chrome FCStd Golden Harness</h1>
<p id="status">Initializing Bitbybit...</p>
</main>
<script type="module" src="/src/chromeFcstdGoldenHarness.ts"></script>
</body>
</html>

View File

@@ -0,0 +1,5 @@
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><title>Chrome FCStd semantic round-trip harness</title></head>
<body><main id="status">Initializing FCStd semantic harness.</main><script type="module" src="/src/chromeFcstdSemanticHarness.ts"></script></body>
</html>

View File

@@ -0,0 +1,13 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="data:," />
<title>Bitbybit geometry feature harness</title>
</head>
<body>
<main id="status">Initializing Bitbybit geometry feature harness.</main>
<script type="module" src="/src/chromeGeometryFeatureHarness.ts"></script>
</body>
</html>

View File

@@ -0,0 +1,5 @@
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8" /><title>Bitbybit Part primitive harness</title></head>
<body><main id="status">Initializing Part primitive harness.</main><script type="module" src="/src/chromePartPrimitivesHarness.ts"></script></body>
</html>

View File

@@ -0,0 +1,38 @@
{
"schemaVersion": 1,
"status": "pass",
"source": {
"path": "CAMotics",
"revision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"version": "1.3"
},
"build": {
"command": "scons -C CAMotics with_gui=1 with_tpl=1 strict=0 cxxstd=c++17 v8_compress_pointers=0 camotics tplang -j4",
"gui": true,
"tpl": true,
"qtModules": ["QtCore", "QtGui", "QtOpenGL", "QtNetwork", "QtWidgets", "QtWebSockets"],
"compiler": "g++ (Debian 14.2.0-19) 14.2.0",
"sconsVersion": "4.8.1"
},
"artifacts": {
"CAMotics/camotics": {
"bytes": 6332544,
"sha256": "4a592f91e6987f87aba596dbcaa9ce8826b5f5249361eafe6f7638d039efa658"
},
"CAMotics/tplang": {
"bytes": 4062360,
"sha256": "7d4ae6e81a7382aa355615690c1a9cfbf00be52cd5c5277e7c421795ceef9b1d"
}
},
"smoke": {
"camotics": {"command": "QT_QPA_PLATFORM=offscreen CAMotics/camotics --help", "exitCode": 0, "contains": ["Usage:", "--version"]},
"tplang": {"command": "CAMotics/tplang --help", "exitCode": 0, "contains": ["Usage:", "--linearize", "--json-out"]}
},
"browserBoundary": {
"nativeGuiExecutable": true,
"browserNativeGuiExecutable": false,
"browserSweepWasmKernel": true,
"fullBrowserProgram": false,
"canonicalGcodeParser": "linuxcnc-wasm"
}
}

View File

@@ -0,0 +1,124 @@
{
"schemaVersion": 2,
"status": "pass",
"source": {
"path": "CAMotics",
"repository": "https://github.com/CauldronDevelopmentLLC/CAMotics.git",
"revision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"version": "1.3"
},
"cbang": {
"path": ".cache/camotics-native/cbang",
"repository": "https://github.com/CauldronDevelopmentLLC/cbang.git",
"revision": "9b6672a0e2b800a909d799ffa3ab46774cf171b8",
"version": "1.7.2",
"v8PointerCompression": false
},
"build": {
"mode": "release-native-qt5-tpl-cli",
"compiler": "g++ (Debian 14.2.0-19) 14.2.0",
"sconsVersion": "SCons by Steven Knight et al.:",
"nodeV8PackageVersion": "20.19.2+dfsg-1+deb13u2",
"qtVersion": "5.15.15",
"options": [
"strict=0",
"cxxstd=c++17",
"v8_compress_pointers=0"
],
"withGui": true,
"withTpl": true,
"browserExecutable": false
},
"artifacts": {
"CAMotics/camotics": {
"bytes": 6332544,
"sha256": "4a592f91e6987f87aba596dbcaa9ce8826b5f5249361eafe6f7638d039efa658",
"mode": "100775"
},
"CAMotics/tplang": {
"bytes": 4062360,
"sha256": "7d4ae6e81a7382aa355615690c1a9cfbf00be52cd5c5277e7c421795ceef9b1d",
"mode": "100775"
}
},
"cliArtifacts": {
"CAMotics/camsim": {
"bytes": 4566168,
"sha256": "e5446f5089afc402ef5302e41673b24bdb2dfffec020f77c5c31b92466def8a1",
"mode": "100775"
},
"CAMotics/gcodetool": {
"bytes": 3435664,
"sha256": "0df147ba191be9a14bf828b6a9a2b8d1344927b0870540dd16da2e9dd004a8fc",
"mode": "100775"
},
"CAMotics/planner": {
"bytes": 4258968,
"sha256": "c2ddbad1e63519796d48fc59e4bb146c4694e5f9a992805657279eb2957ebcca",
"mode": "100775"
},
"CAMotics/build/camotics.so": {
"bytes": 5354352,
"sha256": "a05293ffff45608ab78a954c0886a3b308a8443f89d5b64aa4dc0e258d8bb707",
"mode": "100775"
}
},
"cliSmoke": {
"CAMotics/camsim": {
"exitCode": 0,
"containsUsage": true
},
"CAMotics/gcodetool": {
"exitCode": 0,
"containsUsage": true
},
"CAMotics/planner": {
"exitCode": 0,
"containsUsage": true
}
},
"tplTests": {
"command": "cd CAMotics/tests/tplTests && ../testHarness --no-color",
"passed": 10,
"failed": 0,
"outputSha256": "d950c742211b31732a0c2e3eb5b13d142f55c93ce5ed316d426ca64de50c3aeb"
},
"tplExample": {
"input": "CAMotics/examples/box/box.tpl",
"bytes": 1875,
"lines": 118,
"sha256": "bedef74675d294d94f1e820531c605cb0a0c50f16cad1c01af58d01aa0072ee9"
},
"guiSmoke": {
"status": "pass",
"processAliveBeforeTerminate": true,
"browserRuntime": false,
"window": {
"title": "CAMotics",
"width": 1200,
"height": 800,
"depth": 24,
"mapState": "IsViewable"
},
"startupBannerSha256": "4eef1b2b798a03772a6803dc9b70432e1fdc4f404d56f236f803e173a66e3b2a",
"startupStderrSha256": "222d98d486e328bf627d4dde8fae9c7d65b31685fb6cf5d871ff8bf316719811"
},
"pipelineBoundary": {
"workspaceNativeGuiAvailable": true,
"workspaceNativeTplAvailable": true,
"workspaceNativeCliAvailable": true,
"browserNativeGuiAvailable": false,
"browserNativeTplAvailable": false,
"nativeRole": "host-native-qt5-tpl-cli-sidecar",
"generationAuthority": "camotics-source-stage",
"canonicalGcodeParser": "linuxcnc-wasm",
"camoticsParsesCanonicalPipelineGcode": false,
"order": [
"cad",
"opencamlib-wasm",
"camotics-source-stage",
"gcode",
"linuxcnc-wasm-parse-execute"
]
}
}

View File

@@ -0,0 +1,58 @@
{
"schemaVersion": 1,
"status": "pass",
"kind": "standalone-camotics-sweep-wasm-kernel",
"upstream": {
"path": "CAMotics",
"repository": "https://github.com/CauldronDevelopmentLLC/CAMotics.git",
"revision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"version": "1.3"
},
"build": {
"script": "native/camotics-wasm/build.sh",
"compiler": "Emscripten 3.1.69",
"language": "C++17",
"standaloneWasm": true,
"optimization": "O3-lto",
"sourceFiles": {
"CAMotics/src/camotics/sim/Sweep.cpp": "5e32782ab4f258aaba09374a93647e6292088956cbccbae578fbb9dff1c77faf",
"CAMotics/src/camotics/sim/ConicSweep.cpp": "fbc00eb1b5f274d929c59338145da2f054569e831ab1309dd36f2652b61d5dab",
"CAMotics/src/camotics/sim/SpheroidSweep.cpp": "9783b9cb805c138d91e25160fdddf28913b3cb3844d912bf888e795431b68f83",
"native/camotics-wasm/camotics_sweep.cpp": "d5e28dbe64ba4619b0266b902f8956561d4a1f65f4f6da39967c9b5a98e6a147",
"native/camotics-wasm/include/cbang/geom/Rectangle.h": "400e11b1d5bcc8d950758d5cf963f5cabf779e98b48f004c08783ff513be87e0"
}
},
"artifact": {
"path": "public/vendor/camotics/camotics-sweep.wasm",
"url": "/vendor/camotics/camotics-sweep.wasm",
"bytes": 11932,
"sha256": "889588d2dc9755f84f56b8ebe1acc9bc1f0ded7e676e162a5a001011f4ebec5b",
"abiVersion": 1,
"imports": [],
"requiredExports": [
"memory",
"camotics_sweep_abi_version",
"camotics_conic_depth",
"camotics_spheroid_depth",
"camotics_conic_bbox_count"
]
},
"scope": {
"actualUpstreamCppCompiled": true,
"browserExecutable": true,
"conicSweep": true,
"spheroidSweep": true,
"sweepBoundingBoxes": true,
"fullCamoticsProgram": false,
"qtGuiIncluded": false,
"tplIncluded": false,
"gcodeParserIncluded": false,
"canonicalGcodeParser": "linuxcnc-wasm"
},
"smoke": {
"conicInsideDepth": 1,
"conicOutsideDepth": -1,
"spheroidInsideDepth": 1,
"longMoveBoundingBoxes": 3
}
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"catalog": {
"installed": 1,
"revision": 1,
"rollbackVersion": "1.0.0"
},
"security": {
"forgedRejected": true,
"permissionRejected": true,
"removed": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 838,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "ADDON-ALL",
"markerInstalled": 1,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,441 @@
{
"schemaVersion": 1,
"generatedAt": "2026-08-08T17:54:57.664Z",
"browserId": "chrome",
"status": "pass",
"browser": {
"product": "Chrome/150.0.7871.128",
"protocolVersion": "1.3",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
},
"headers": {
"coop": "same-origin",
"coep": "require-corp"
},
"workflows": [
"start-to-workspace",
"viewport-multi-object-box-selection",
"freecad-menus",
"command-search-dialog",
"preferences-about-dialogs",
"model-tree-context-menu",
"workbench-change",
"create-sketch-command",
"loft-section-task",
"drawer-collapse",
"cam-workbench-job-flow",
"opfs-save-reopen",
"import-format-selection",
"export-format-selection"
],
"uiParity": {
"fileMenu": {
"items": 7,
"labels": [
"New documentCtrl+N",
"Open...Ctrl+O",
"SaveCtrl+S",
"Save as...",
"Import...",
"Export...",
"Close documentCtrl+W"
],
"expanded": "File"
},
"commandDialog": {
"modal": true,
"results": 18,
"title": "Command search",
"focused": "Command search"
},
"preferencesDialog": {
"selects": 3,
"checks": 2,
"modal": true
},
"aboutDialog": {
"modal": true,
"baseline": true
},
"contextMenu": {
"items": [
"Toggle visibility Space",
"Rename F2",
"Recompute object",
"Delete"
],
"left": 180,
"top": 330
},
"multiSelection": {
"count": 2,
"labels": [
"Sketch",
"Pad"
]
},
"viewportBoxSelection": {
"objectCount": 2,
"topologySource": "occt-analytic",
"topologySources": {
"face": "occt-analytic",
"edge": "occt-analytic",
"vertex": "occt-analytic"
},
"edgeCount": 15,
"vertexCount": 10,
"selectedCount": 2,
"labels": [
"Box",
"Cylinder"
],
"gesture": {
"mode": "crossing",
"objectIds": [
"box",
"cylinder"
]
}
},
"camMenu": {
"items": 60,
"groups": [
"Project Setup",
"Simulation and Tools",
"2D Operations",
"Machining Operations",
"Path Modification"
],
"labels": [
"Project SetupCreate Job",
"Fixture",
"Compound Path",
"Property Bag",
"Post Process",
"Export Template",
"Sanity Check",
"Simulation and ToolsSimulators",
"CAM Simulator",
"CAM Simulator GL",
"CAMotics",
"Inspect Path",
"Select Loop",
"Stop Processing",
"Toggle Operation",
"ToolBit Library",
"Tool Controller",
"Create ToolBit",
"ToolBit Dock",
"Load ToolBit",
"Save ToolBit",
"Save ToolBit As",
"2D OperationsProfile",
"Pocket Shape",
"Mill Face",
"Helix",
"Adaptive",
"Slot",
"Area",
"Area Workplane",
"Drilling",
"Tapping",
"Thread Milling",
"Engrave",
"Deburr",
"V-Carve",
"Probe",
"Path Shape",
"Custom Operation",
"Path Shape Tool Controller",
"Machining OperationsDrilling Operations",
"Engraving Operations",
"3D Operations",
"Pocket 3D",
"Path ModificationCopy Operation",
"Copy Path",
"Simple Copy",
"Array",
"Dressup Operations",
"Array Dress-up",
"Axis Map Dress-up",
"Dogbone Dress-up",
"Drag Knife Dress-up",
"Lead In/Out Dress-up",
"Path Boundary Dress-up",
"Ramp Entry Dress-up",
"Holding Tags Dress-up",
"Z Correct Dress-up",
"Set Start Point",
"Comment"
]
}
},
"desktop": {
"path": "/workspace/pump-housing",
"workbench": "Part Design",
"persistenceMode": "sqlite-opfs",
"bodyHorizontalOverflow": 0,
"overflowingControls": 0,
"canvas": {
"width": 892,
"height": 679,
"source": "bitbybit-occt",
"uniqueColors": 36,
"glError": 0
},
"panelsSeparated": true,
"commandGroups": 5,
"comboTabs": [
"Model",
"Tasks 1"
],
"selectionView": true,
"statusBar": true,
"kernelPreviewSource": "bitbybit-occt"
},
"loftTask": {
"sectionCount": 1,
"checkedSectionCount": 1,
"labels": [
"Sketch (sketch)"
],
"listVerticalOverflow": 0,
"panelHorizontalOverflow": 0
},
"cam": {
"jobTask": {
"stockModes": 4,
"fields": 5,
"actions": [
"OK",
"Apply",
"Cancel"
]
},
"toolTask": {
"selects": 2,
"inputs": 13
},
"operationTask": {
"inputs": 5,
"selects": 2
},
"undoRedo": {
"undo": {
"pathPoints": 0,
"redoEnabled": true
},
"redo": {
"pathPoints": 5,
"undoEnabled": true
}
},
"extendedTasks": {
"fixture": {
"inputs": 7,
"section": true,
"labels": [
"Fixture ID",
"Min X",
"Min Y",
"Min Z",
"Max X",
"Max Y",
"Max Z"
]
},
"toolBitLoad": {
"inputs": 1,
"textareas": 1,
"schemaVersion": true
},
"drilling": {
"inputs": 5,
"selects": 2,
"labels": [
"Final Depth mm",
"Step Down mm",
"Step Over %",
"Horizontal Feed mm/min",
"Vertical Feed mm/min",
"DirectionClimbConventionalEither",
"Coolant ModeNoneFloodMist"
]
},
"dragKnife": {
"inputs": 1,
"selects": 1,
"knifeOffset": true
},
"post": {
"inputs": 4,
"selects": 4,
"labels": [
"Post Processorgrbllinuxcncmach3-mach4centroidmarlinmasso-g3snapmaker",
"Axis Configuration3-axis4-axis5-axis",
"Rotary AxisABC",
"Rotary Start deg",
"Rotary End deg",
"Tilt AxisABC",
"Tilt Start deg",
"Tilt End deg"
],
"note": "LinuxCNC WASM - XYZBC RTCP; rotary limit checks are enforced before posting."
}
},
"ui": {
"workbench": "CAM",
"commandGroups": 4,
"toolbarCommands": 60,
"jobTree": true,
"treeRows": 7,
"operations": 1,
"generated": true,
"toolpathPoints": 5,
"toolpathOperations": 1,
"toolpathLegend": true,
"horizontalOverflow": 0
}
},
"persistenceRoundTrip": {
"path": "/workspace/pump-housing",
"documentLabel": "Pump Housing / CAM",
"persistenceMode": "sqlite-opfs"
},
"importFlow": {
"path": "/import",
"accept": ".FCStd,.fcstd,.step,.stp,.iges,.igs,.brep,.brp",
"exchangeHint": true
},
"exportFlow": {
"path": "/export",
"formats": {
"STEP": {
"disabled": false,
"selected": true
},
"IGES": {
"disabled": false,
"selected": false
},
"STL": {
"disabled": false,
"selected": false
},
"BREP": {
"disabled": false,
"selected": false
},
"GLB / GLTF": {
"disabled": true,
"selected": false
},
"Web CAD package": {
"disabled": true,
"selected": false
}
},
"selectedAfterInteraction": "STL"
},
"mobile": {
"path": "/start",
"viewport": {
"width": 390,
"height": 844,
"devicePixelRatio": 2
},
"bodyHorizontalOverflow": 0,
"visibleHeading": true,
"visibleActions": true
},
"accessibility": {
"checked": 15,
"missing": []
},
"screenReader": {
"nodes": 162,
"controls": 16,
"namedControls": 16,
"unnamedControls": 0,
"landmarks": 0
},
"keyboard": {
"steps": 8,
"named": 8,
"unnamedVisible": 0,
"sequence": [
{
"tag": "DIV",
"name": "BitBybit Web FreeCAD start page",
"visible": true
},
{
"tag": "BUTTON",
"name": "Help",
"visible": true
},
{
"tag": "BUTTON",
"name": "Account and sync",
"visible": true
},
{
"tag": "BUTTON",
"name": "Open project",
"visible": true
},
{
"tag": "BUTTON",
"name": "New document",
"visible": true
},
{
"tag": "BUTTON",
"name": "Create blank document",
"visible": true
},
{
"tag": "BUTTON",
"name": "Browse examples",
"visible": true
},
{
"tag": "BUTTON",
"name": "Open a projectBrowse local files",
"visible": true
}
]
},
"pwa": {
"manifestLinked": true,
"manifestStatus": 200,
"name": "BitBybit CAD Studio",
"startUrl": "/start",
"scope": "/",
"display": "standalone"
},
"offline": {
"path": "/start",
"shell": true,
"heading": true,
"mode": "online-shell"
},
"screenshots": {
"desktop": {
"path": "fixtures/chrome-app-e2e/desktop-workspace.png",
"byteLength": 108999,
"sha256": "33456e593549e88e561d1168eb80644b362fd941725bf4fff76500a14a6d7949"
},
"cam": {
"path": "fixtures/chrome-app-e2e/cam-workbench.png",
"byteLength": 118390,
"sha256": "5349262af666380bbc96f2932eed2613547ae60870a1d8b9fe44d8ed4831b4ab"
},
"mobile": {
"path": "fixtures/chrome-app-e2e/mobile-start.png",
"byteLength": 130367,
"sha256": "c3873002bf12dde3a7731a511eb651880a6733ce68b149167d1ff84d6e436b69"
}
},
"pageErrors": []
}

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"geometry": {
"components": 2,
"validShapes": 2,
"releasedShapes": 0
},
"solver": {
"status": "solved",
"iterations": 2,
"coincident": "solved",
"distance": "solved",
"shaftX": 5,
"diagnostics": 0,
"workerStatus": "solved",
"angleStatus": "solved",
"angleYaw": 1.5707963267948966
},
"tools": {
"bomRows": 2,
"collisionCount": 1,
"explodedMoved": true,
"variantX": 7,
"motionFrames": 5,
"motionEndX": 9
},
"scale": {
"components": 1000,
"bomRows": 10,
"durationMs": 6.685000061988831,
"budgetMs": 1000
},
"fcstd": {
"bytes": 727,
"objects": 4,
"links": 1,
"reopenedObjects": 4,
"roundTrip": true,
"released": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 980,
"hash": "93bbadc1517ccf2443c74578e92bea6d13c01b02976a53630707f5e7002a6066",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "ASM-TOOLS",
"markerComponents": 2,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,44 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"model": {
"sites": 1,
"buildings": 1,
"levels": 1,
"spaces": 1,
"materials": 1,
"elements": 1,
"scheduleRows": 1,
"ifc4Bytes": 492,
"ifc2x3Bytes": 494,
"ifc4Schema": "IFC4",
"ifc2x3Schema": "IFC2X3",
"ifc4Entities": 7,
"ifc4Hierarchy": 4,
"ifc4PropertySets": 1,
"ifc4Classifications": 1,
"ifc2x3RoundTrip": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 848,
"hash": "7a55c8b5c5f1f5354c2819c6289c9ae60351f7c0d6d1844e51eea2785ce7fad8",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "BIM-IFC",
"elements": 1,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,46 @@
{
"schemaVersion": 1,
"status": "pass",
"stages": [
"CAD",
"OCL",
"CAMotics",
"GCODE",
"LinuxCNC WASM"
],
"openCamLib": {
"backend": "upstream-opencamlib-wasm",
"sourceRevision": "95b036fe28ce6d77c97b98e5fbc337904ae49560",
"artifactSha256": "0379040910f7af277c6e1f6411efb549292db0b071422a83954d93631253bf89",
"algorithm": "path-drop-cutter",
"surfaceModel": "cad-operation-plane",
"triangleCount": 2,
"inputPoints": 5,
"outputPoints": 48,
"sampling": 1
},
"gcode": {
"bytes": 2758,
"hasM428": true,
"hasM429": true,
"hasG93": true,
"hasG94": true,
"hasB": true,
"hasC359": true,
"hasC361": true
},
"machine": {
"backend": "linuxcnc-wasm",
"status": "accepted",
"dryRunStatus": "dry-run",
"parserAuthority": "linuxcnc-wasm",
"lines": 65,
"blocks": 138,
"trajectorySegments": 48
},
"browserId": "chrome",
"browser": {
"product": "150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,134 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"capabilities": {
"openCamLib": {
"status": "available",
"backend": "upstream-opencamlib-wasm",
"sourceRevision": "95b036fe28ce6d77c97b98e5fbc337904ae49560",
"artifactSha256": "0379040910f7af277c6e1f6411efb549292db0b071422a83954d93631253bf89",
"algorithms": [
"path-drop-cutter",
"adaptive-path-drop-cutter",
"waterline",
"adaptive-waterline"
]
},
"solidRemoval": {
"status": "available",
"backend": "bitbybit-occt-wasm",
"model": "sampled-flat-end-brep",
"nativeSolid": true,
"freeCadNativeEquivalent": false,
"sweepModes": [
"sampled-flat-end",
"continuous-segment"
]
},
"camotics": {
"status": "native-host-available",
"backend": "camotics-native-host-qt5-tpl",
"sourceRevision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"cbangRevision": "9b6672a0e2b800a909d799ffa3ab46774cf171b8",
"sourcePaths": [
"CAMotics/src/gcode/machine/GCodeMachine.cpp",
"CAMotics/src/tplang/GCodeModule.cpp",
"CAMotics/src/camotics/sim/ToolSweep.cpp"
],
"workspaceNativeExecutable": true,
"nativeGuiPath": "CAMotics/camotics",
"nativeTplPath": "CAMotics/tplang",
"nativeArtifactEvidence": "config/camotics-native-artifact.json",
"browserExecutable": false,
"browserWasmKernelExecutable": true,
"nativeCliPath": "CAMotics/camsim",
"wasmKernel": {
"backend": "camotics-upstream-sweep-wasm",
"artifactSha256": "889588d2dc9755f84f56b8ebe1acc9bc1f0ded7e676e162a5a001011f4ebec5b",
"scope": [
"conic-sweep",
"spheroid-sweep",
"sweep-bounding-boxes"
],
"fullCamoticsProgram": false,
"gcodeParserIncluded": false
},
"generationAuthority": "camotics-source-stage",
"parserAuthority": "linuxcnc-wasm",
"camoticsParsesCanonicalGcode": false,
"reason": "CAMotics 1.3 native Qt5 GUI and TPL compiler are workspace-verified host sidecars with pinned C! 1.7.2 and V8 ABI settings. The browser executes a standalone upstream Conic/Spheroid sweep WASM subset, not the native ELF, Qt GUI, TPL compiler, or full program; browser G-code generation preserves source-stage motion semantics and sends canonical G-code to LinuxCNC WASM."
}
},
"openCamLib": {
"backend": "upstream-opencamlib-wasm",
"sourceRevision": "95b036fe28ce6d77c97b98e5fbc337904ae49560",
"artifactSha256": "0379040910f7af277c6e1f6411efb549292db0b071422a83954d93631253bf89",
"triangles": 2,
"points": 14,
"minimumZ": 2,
"maximumZ": 2,
"deterministic": true
},
"camotics": {
"backend": "camotics-source-stage-contract",
"sourceRevision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"nativeExecutable": false,
"lineCount": 18,
"gcodeBytes": 164,
"gcodeHash": "0a7731201c19564c7b00950ee6432b4201918811a70b00db501a3663750fb792",
"parserAuthority": "linuxcnc-wasm",
"camoticsParsesCanonicalGcode": false
},
"pipeline": {
"stages": [
"cad",
"opencamlib-wasm",
"camotics-source-stage",
"gcode",
"linuxcnc-wasm-parse-execute"
],
"canonicalGcodeAuthority": "linuxcnc-wasm",
"camoticsSemanticParser": false,
"linuxcncWasmExecution": "handoff-required"
},
"solidRemoval": {
"backend": "bitbybit-occt-wasm",
"model": "sampled-flat-end-brep",
"sweepMode": "sampled-flat-end",
"nativeSolid": true,
"freeCadNativeEquivalent": false,
"sampleCount": 7,
"stockVolume": 299.99999999999994,
"removedVolume": 12,
"remainingVolume": 287.99999999999994,
"structuralValid": true,
"solids": 1,
"meshVertices": 48,
"meshTriangles": 28,
"brepBytes": 4885,
"brepHash": "76237c323f4614488e527b92c9ad7e3d8b6b5db968b5d7a481da26da59fe00be"
},
"curvedSolidRemoval": {
"backend": "bitbybit-occt-wasm",
"model": "continuous-segment-sweep-brep",
"sweepMode": "continuous-segment",
"sampleCount": 13,
"stockVolume": 299.99999999999994,
"removedVolume": 13.876647806980372,
"remainingVolume": 286.12335219301957,
"structuralValid": true,
"solids": 1,
"meshVertices": 506,
"meshTriangles": 652
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,100 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"extended": {
"commandSurface": 60,
"operationKinds": 22,
"dressupKinds": 9,
"toolAssetRoundTrip": true,
"jobAssetRoundTrip": true,
"metadataRoundTrip": true,
"metadataComments": 1,
"metadataProperties": 3,
"metadataCompounds": 1,
"undoRedo": true,
"startPointChanged": true,
"materialRemoval": true,
"removalTimelinePoints": 23,
"fixtureCollision": true,
"multiAxis": true
},
"geometry": {
"sourceShape": "shape-msjl38sz-1",
"valid": true,
"volume": 30
},
"job": {
"stockMode": "from-base-bound-box",
"tools": 2,
"controllers": 2,
"operations": 3,
"operationKinds": [
"profile",
"pocket",
"drilling"
],
"operationStatuses": [
"generated",
"generated",
"generated"
],
"pathPoints": 23,
"dressups": 1,
"setup": {
"safeHeightOffset": 1,
"clearanceHeightOffset": 2,
"coolantMode": "flood"
},
"sanity": "pass",
"sanityIssues": 0,
"simulation": "pass",
"collisions": 0,
"collisionFixture": 1,
"simulationDiagnostics": 0,
"postprocessors": [
"grbl",
"linuxcnc",
"mach3-mach4",
"centroid",
"marlin",
"masso-g3",
"snapmaker"
],
"post": "linuxcnc",
"postHashes": {
"grbl": "9c61705ba595d923d2b44af6ac3c241084ceba2e09f79b1fea73480b4b6a0335",
"linuxcnc": "dc7cb5950e6726652bdec45bcc5050e57df90bc02d5474981534835a6dc67ea6",
"mach3-mach4": "3a19dd81b0aeec7f39e801912af13f66d6cdca564a094c558a6fc7fa5a829140",
"centroid": "ae2e7a7567ef16627bc9ec3279763c492d1a4836905133fdf438a1f7e9043a3d",
"marlin": "f31fe4e2bc177cb4b9d5942f807d26df1a15d8081c244d9b38ac18ad7323e84b",
"masso-g3": "7503170abe807b3be53c599efd3626a3b471809875c898107ce3f7aa378247cb",
"snapmaker": "ee8e3b7cc0403e62e3f382023bec7d67e04edf64c2be69543ecaf6a504c5c638"
},
"unsafePostRejected": true,
"gcodeBytes": 1055,
"gcodeHash": "dc7cb5950e6726652bdec45bcc5050e57df90bc02d5474981534835a6dc67ea6",
"deterministic": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 2478,
"hash": "a5259a9b16395ed0d76f5b7f06303aec72ab5f6b4c1aa3b05bd094f794ec88a7",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "CAM-ALL",
"operations": 3,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,27 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"kernel": {
"backend": "camotics-upstream-sweep-wasm",
"sourceRevision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
"artifactSha256": "889588d2dc9755f84f56b8ebe1acc9bc1f0ded7e676e162a5a001011f4ebec5b",
"abiVersion": 1,
"imports": 0,
"fullCamoticsProgram": false,
"gcodeParserIncluded": false
},
"sweep": {
"conicInsideDepth": 1,
"conicOutsideDepth": -1,
"spheroidInsideDepth": 1,
"longMoveBoundingBoxes": 3,
"deterministic": true
},
"parserAuthority": "linuxcnc-wasm",
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,78 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"adapters": {
"total": 7,
"supported": 4,
"proxy": 3
},
"records": {
"total": 7,
"proxy": 3,
"manifestBytes": 18893
},
"points": {
"sourceCount": 6,
"parsedFormats": [
"pts",
"pcd",
"ply"
],
"mergedCount": 12,
"croppedCount": 4,
"polygonCroppedCount": 4,
"reducedCount": 1,
"structured": {
"width": 3,
"height": 2,
"cells": 6
},
"centered": {
"x": 0,
"y": 0,
"z": 0
},
"exportBytes": {
"asc": 36,
"pts": 38,
"xyz": 36,
"csv": 42,
"pcd": 168,
"ply": 139
}
},
"reverseEngineering": {
"planeRms": 1.725911830690932e-16,
"sphereRadius": 2,
"cylinderRadius": 3,
"cylinderHeight": 8,
"polynomialRms": 0,
"segmentCount": 2,
"segmentSizes": [
2,
2
]
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 8049,
"hash": "cddf902c92cbe1b131aaf8a1bc800f3a7acb0bddc234acaa41130f9e0d6d0860",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "DATA-ALL",
"records": 7,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,59 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"workingPlane": {
"worldPoint": {
"x": 10,
"y": 22,
"z": 33
},
"snapped": {
"x": 1,
"y": 2.5
}
},
"objects": {
"total": 9,
"lines": 2,
"wires": 1,
"circles": 1,
"clones": 5,
"arrays": 4,
"layers": 2,
"sourceDependencies": 5
},
"operations": {
"moved": true,
"rotated": true,
"scaled": true,
"offsetLength": 8,
"trimmedLength": 4,
"cloneTranslation": {
"x": 10,
"y": 0
},
"arrayCount": 4
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 1566,
"hash": "80ed54a852ec54887444b8c003ddd17dcf0cdf73322d2745cb768000306b27b5",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "DRAFT-OPS",
"markerObjects": 9,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,65 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"integrity": {
"complete": true,
"artifacts": 4,
"kinds": 4,
"missingKinds": 0,
"missingRefs": 0,
"projectVersion": 8,
"artifactVersions": [
2,
2,
2,
2
],
"reopenedComplete": true
},
"workflow": {
"assemblyComponents": 2,
"bimElements": 1,
"meshTriangles": 12,
"surfacePatches": 5,
"exports": {
"assemblyBytes": 718,
"ifcBytes": 437,
"meshObjBytes": 340,
"surfaceObjBytes": 641
},
"edited": {
"assemblyX": 6,
"fireRating": "A1",
"meshMinX": -2.75,
"surfaceOffset": 0.5
}
},
"scale": {
"components": 1000,
"bomRows": 20,
"durationMs": 5.044999957084656,
"budgetMs": 1000
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 10035,
"hash": "9e550b295f8f5cb124c341b276437bbfa4b486928a83430538b4151ba8ce1e8e",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "ENG-CLOSURE",
"artifacts": 4,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "dedicated-worker",
"crossOriginIsolated": true,
"sharedArrayBuffer": true,
"status": "pass",
"lifecycle": {
"initialAvailable": true,
"completed": "completed",
"cancelled": "cancelled",
"crashInjected": true,
"unavailableAfterCrash": true,
"workerFactoryCount": 3,
"recovered": "completed",
"stale": "stale",
"recoveredEnd": {
"x": 5,
"y": 0
},
"nativeInitialAvailable": true,
"nativeCrashInjected": true,
"nativeUnavailableAfterCrash": true,
"nativeWorkerFactoryCount": 2,
"nativeRecoveredAvailable": true
},
"opfs": {
"markerBytes": 0,
"markerRemoved": true
},
"activeWorkersBeforeDispose": 3,
"activeNativeWorkersBeforeDispose": 2,
"activeWorkersAfterDispose": 3,
"activeNativeWorkersAfterDispose": 2
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"baseline": {
"freecadVersion": "1.1.1",
"bitbybitVersion": "1.1.1"
},
"directions": [
"freecad-web-freecad",
"web-freecad-web"
],
"scenarios": [
{
"id": "freecad-web-freecad-core",
"direction": "freecad-web-freecad",
"status": "pass",
"differences": [],
"domains": [
"objectTree",
"properties",
"gui",
"resources"
]
},
{
"id": "web-freecad-web-core",
"direction": "web-freecad-web",
"status": "pass",
"differences": [],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
]
}
],
"persistence": {
"mode": "sqlite-opfs",
"bytes": 1969,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "FC-10",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,56 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"objectNames": [
"Source",
"Spreadsheet",
"Cut",
"Sketch"
],
"expression": "Spreadsheet.Width * 2",
"link": "Source",
"linkSub": {
"objectId": "Source",
"subElement": "Face1"
},
"linkSubList": [
{
"objectId": "Source",
"subElement": "Face1"
},
{
"objectId": "Source",
"subElement": "Face2"
}
],
"sketchGeometryIds": [
"profile"
],
"dependencyRelations": [
"expression",
"link",
"topo-ref",
"topo-ref-list"
],
"archiveBytes": 1807,
"guiViews": [
"Front",
"Top"
],
"shapeResource": {
"path": "Part/Source.Shape.brp",
"byteLength": 20,
"elementMap": "1",
"elementMapEntries": 1
},
"opfs": {
"markerSuite": "FC-06",
"archiveBytes": 1807,
"markerRemoved": true
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,45 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"geometry": {
"sourceShape": "shape-msi9tz1t-1",
"valid": true,
"vertices": 8,
"volume": 39.99999999999999
},
"solve": {
"status": "solved",
"strategy": "local-reference",
"nodes": 2,
"nodeSets": 1,
"resultFields": [
"displacement",
"stress"
],
"maxDisplacement": 0.00125,
"maxStress": 25,
"csvBytes": 80
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 664,
"hash": "55d2c9b06f0e451acad3a9295facd864f37044a5e39446447591c015b435b336",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "FEM-ALL",
"nodes": 2,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,270 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"geometryProvider": "Bitbybit OCCT",
"operations": [
{
"name": "fcstd-brep-import",
"shapeId": "shape-msi3gc2p-3",
"meshVertices": 24,
"meshTriangles": 12,
"topology": {
"faces": 6,
"edges": 12,
"vertices": 8
}
},
{
"name": "extrude",
"shapeId": "shape-msi3gc3x-5",
"meshVertices": 24,
"meshTriangles": 12
},
{
"name": "revolution",
"shapeId": "shape-msi3gc4e-6",
"meshVertices": 188,
"meshTriangles": 176
},
{
"name": "fillet-selected-edge",
"shapeId": "shape-msi3gc64-8",
"meshVertices": 54,
"meshTriangles": 40
},
{
"name": "chamfer-selected-edge",
"shapeId": "shape-msi3gc6i-a",
"meshVertices": 30,
"meshTriangles": 16
},
{
"name": "draft-selected-face",
"shapeId": "shape-msi3gc7d-c",
"meshVertices": 24,
"meshTriangles": 12
},
{
"name": "thickness",
"shapeId": "shape-msi3gc9p-e",
"meshVertices": 48,
"meshTriangles": 28
},
{
"name": "hole-counterbore",
"shapeId": "shape-msi3gclb-i",
"meshVertices": 322,
"meshTriangles": 248
},
{
"name": "hole-countersink",
"shapeId": "shape-msi3gcy0-m",
"meshVertices": 476,
"meshTriangles": 350
},
{
"name": "hole-counterdrill",
"shapeId": "shape-msi3gdce-r",
"meshVertices": 530,
"meshTriangles": 402
},
{
"name": "hole-angled-drill-point",
"shapeId": "shape-msi3gdo2-v",
"meshVertices": 439,
"meshTriangles": 323
},
{
"name": "hole-angled-included-depth",
"shapeId": "shape-msi3gdz7-z",
"meshVertices": 439,
"meshTriangles": 323
},
{
"name": "hole-tapered",
"shapeId": "shape-msi3ge0m-12",
"meshVertices": 186,
"meshTriangles": 220
},
{
"name": "loft",
"shapeId": "shape-msi3ge1k-13",
"meshVertices": 28,
"meshTriangles": 20
},
{
"name": "loft-ruled",
"shapeId": "shape-msi3ge21-14",
"meshVertices": 28,
"meshTriangles": 20
},
{
"name": "loft-additive",
"shapeId": "shape-msi3ge70-16",
"meshVertices": 48,
"meshTriangles": 28
},
{
"name": "loft-subtractive",
"shapeId": "shape-msi3ge87-18",
"meshVertices": 52,
"meshTriangles": 32
},
{
"name": "pipe",
"shapeId": "shape-msi3ge93-19",
"meshVertices": 24,
"meshTriangles": 12
},
{
"name": "extrude-two-sided",
"shapeId": "shape-msi3ge9z-1c",
"meshVertices": 24,
"meshTriangles": 12
},
{
"name": "revolution-symmetric",
"shapeId": "shape-msi3gebl-1f",
"meshVertices": 132,
"meshTriangles": 120
},
{
"name": "revolution-two-angles",
"shapeId": "shape-msi3gedv-1i",
"meshVertices": 16,
"meshTriangles": 8
},
{
"name": "pad-two-sided",
"shapeId": "shape-msi3geem-1l",
"meshVertices": 24,
"meshTriangles": 12
},
{
"name": "pocket-two-sided",
"shapeId": "shape-msi3gemb-1o",
"meshVertices": 216,
"meshTriangles": 144
},
{
"name": "pad-tapered",
"shapeId": "shape-msi3gen7-1p",
"meshVertices": 28,
"meshTriangles": 20,
"volume": 98.7734437461102
},
{
"name": "pocket-tapered",
"shapeId": "shape-msi3geos-1r",
"meshVertices": 52,
"meshTriangles": 40,
"volume": 810.4374375507407
},
{
"name": "pocket-through-all",
"shapeId": "shape-msi3gepy-1t",
"meshVertices": 48,
"meshTriangles": 32,
"volume": 960
},
{
"name": "pocket-up-to-face",
"shapeId": "shape-msi3geqo-1v",
"meshVertices": 48,
"meshTriangles": 32,
"volume": 960
},
{
"name": "pad-midplane",
"shapeId": "shape-msi3ger1-1w",
"meshVertices": 24,
"meshTriangles": 12,
"volume": 95.99999999999999
},
{
"name": "linear-pattern-spacing",
"shapeId": "shape-msi3geru-20",
"meshVertices": 72,
"meshTriangles": 36
},
{
"name": "polar-pattern-spacing",
"shapeId": "shape-msi3gesr-24",
"meshVertices": 72,
"meshTriangles": 36
}
],
"beforeRelease": {
"shapeCount": 1076,
"kernelReferenceCount": 1062
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"fcstdBrep": {
"resourcePath": "Part/Box.Shape.brp",
"references": 1,
"sourceBytes": 2573,
"topology": {
"faces": 6,
"edges": 12,
"vertices": 8
},
"massProperties": {
"source": {
"volume": 24,
"surfaceArea": 52,
"centerOfMass": [
9.540979117872439e-18,
4.625929269271485e-18,
3.700743415417188e-17
]
},
"imported": {
"volume": 24,
"surfaceArea": 52,
"centerOfMass": [
9.540979117872439e-18,
4.625929269271485e-18,
3.700743415417188e-17
]
}
},
"emptyRejected": true,
"cancelledBeforeImport": true,
"cancelledResultReleased": true
},
"exchangeFormats": {
"iges": {
"sourceBytes": 12393,
"sourceVolume": 24,
"importedVolume": 24,
"importedFaces": 6,
"importedEdges": 24,
"importedVertices": 24
}
},
"performance": {
"durationMs": 7560.079999923706,
"operationCount": 30,
"averageOperationMs": 252.00266666412352,
"peakShapeCount": 75,
"stressObjectCount": 1000,
"stressDurationMs": 130.1799999475479,
"stressPeakShapeCount": 1075,
"triangleStress": {
"radius": 100,
"precision": 0.01,
"triangles": 100520,
"vertices": 50420,
"durationMs": 2931.8450000286102
}
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
},
"pageErrors": []
}

View File

@@ -0,0 +1,49 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"shape": {
"volume": 120,
"area": 148,
"valid": true,
"solids": 1,
"faces": 6,
"vertices": 8
},
"measurements": {
"distance": 5,
"angle": 90,
"volume": 120,
"area": 148,
"deviation": 0.009999999999999787,
"deviationStatus": "resolved",
"sectionArea": 24.000002000000038,
"topoRefs": 2,
"stableRefs": 1,
"unresolvedRefs": [
"Face2"
],
"csvRows": 6
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 823,
"hash": "85640b462b63bfa773b23b0799541af30db1dce095df77d3ae3bf9fd6cf89b86",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "INSP-ALL",
"measurements": 5,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,55 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"geometry": {
"sourceShape": "shape-msi8t4og-1",
"vertices": 8,
"triangles": 12,
"boundaryEdges": 0,
"nonManifoldEdges": 0,
"degenerateTriangles": 0,
"selfIntersections": 0,
"surfaceArea": 304
},
"operations": {
"welded": 16,
"transformedMin": [
-6.5,
-1,
-3
],
"objBytes": 340,
"objHash": "5e92b07b682e0a4a0133b556494a2c11cacf97ed901579efde985dd270a1213a",
"plyBytes": 479,
"stlBytes": 1371,
"lodTriangles": 6,
"workerLodTriangles": 6
},
"repairs": {
"selfIntersectionFixture": 1,
"nonManifoldFixture": 1,
"holeFilledTriangles": 1
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 259,
"hash": "47984c2196fe7d53e5e9bc8f25796ab0da32a24fdefef0c688ae5d3f8ec78dd1",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "MESH-CORE",
"triangles": 12,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,62 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "geometry-and-history-workers",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer"
],
"transport": "step-text"
},
"history": {
"recordCount": 150,
"relations": {
"modified": 6,
"generated": 72,
"deleted": 72
},
"sourceObjects": [
"Base"
]
},
"result": {
"structuralValid": true,
"solids": 1,
"volume": 215.52000000000004
},
"opfs": {
"markerCreated": true,
"markerSuite": "chamfer",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "geometry-and-history-workers",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft"
],
"transport": "step-text"
},
"history": {
"recordCount": 5,
"relations": {
"modified": 4,
"generated": 1,
"deleted": 0
},
"sourceObjects": [
"Base"
]
},
"result": {
"structuralValid": true,
"solids": 1,
"volume": 63.999999999999986
},
"opfs": {
"markerCreated": true,
"markerSuite": "draft",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,61 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "geometry-and-history-workers",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet"
],
"transport": "step-text"
},
"history": {
"recordCount": 150,
"relations": {
"modified": 6,
"generated": 72,
"deleted": 72
},
"sourceObjects": [
"Base"
]
},
"result": {
"structuralValid": true,
"solids": 1,
"volume": 215.79398223686158
},
"opfs": {
"markerCreated": true,
"markerSuite": "fillet",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,491 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 2,
"sourceObjects": [
"Base",
"Profile",
"chrome-native-groove-history:native-stage:0:result"
],
"relations": {
"modified": 1,
"generated": 0,
"deleted": 1
},
"stages": [
{
"stageId": "chrome-native-groove-history:native-stage:0",
"operation": "revolution",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-groove-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 14,
"recordCount": 23
},
{
"stageId": "chrome-native-groove-history:native-stage:1",
"operation": "cut",
"inputObjectIds": [
"Base",
"chrome-native-groove-history:native-stage:0:result"
],
"resultObjectId": "chrome-native-groove-history:native-stage:1:result",
"ordinal": 1,
"topologyEntries": 40,
"recordCount": 2
}
]
},
"twoAngleHistory": {
"recordCount": 2,
"sourceObjects": [
"Base",
"Profile",
"chrome-native-groove-two-angles-history:native-stage:0:result",
"chrome-native-groove-two-angles-history:native-stage:1:result"
],
"structuralValid": true,
"graphStructuralValid": false,
"graphStructuralErrors": 40,
"graphStructuralWarnings": 0,
"graphStructuralIssues": [
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 0
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 1
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 2
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 3
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 4
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 5
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 6
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 7
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 8
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 9
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 10
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 11
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 12
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 13
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 14
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 15
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 16
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 17
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 18
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 19
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 20
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 21
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 22
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 23
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 24
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 25
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 26
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 27
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 32
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 33
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 34
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 35
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 40
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 41
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 42
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 43
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 44
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 45
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 46
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 47
},
"description": "CoEdgeDef has no Curve2D representation"
}
],
"unexplainedStructuralErrors": 0,
"solids": 1,
"volume": 790.5752220392302,
"stages": [
{
"stageId": "chrome-native-groove-two-angles-history:native-stage:0",
"operation": "rotate",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-groove-two-angles-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 9,
"recordCount": 13
},
{
"stageId": "chrome-native-groove-two-angles-history:native-stage:1",
"operation": "revolution",
"inputObjectIds": [
"chrome-native-groove-two-angles-history:native-stage:0:result"
],
"resultObjectId": "chrome-native-groove-two-angles-history:native-stage:1:result",
"ordinal": 1,
"topologyEntries": 26,
"recordCount": 25
},
{
"stageId": "chrome-native-groove-two-angles-history:native-stage:2",
"operation": "cut",
"inputObjectIds": [
"Base",
"chrome-native-groove-two-angles-history:native-stage:1:result"
],
"resultObjectId": "GrooveTwoAngles",
"ordinal": 2,
"topologyEntries": 52,
"recordCount": 2
}
]
},
"base": {
"boundingBox": {
"min": [
-5.0000001,
-1e-7,
-4.0000001
],
"max": [
5.0000001,
10.0000001,
4.0000001
]
},
"volume": 799.9999999999998
},
"result": {
"structuralValid": true,
"structuralErrors": 0,
"structuralWarnings": 0,
"solids": 1,
"faces": 10,
"edges": 18,
"vertices": 12,
"volume": 781.1504440784611
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"opfs": {
"markerOperation": "groove",
"markerRemoved": true
}
}

View File

@@ -0,0 +1,41 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common"
],
"transport": "step-text"
},
"history": {
"recordCount": 87,
"relations": {
"deleted": 69,
"modified": 18
}
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,101 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "geometry-and-history-workers",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 8,
"relations": {
"modified": 6,
"generated": 0,
"deleted": 2
},
"sourceObjects": [
"Base",
"chrome-native-hole-history:native-stage:0:result"
],
"stages": [
{
"stageId": "chrome-native-hole-history:native-stage:0",
"operation": "hole",
"inputObjectIds": [],
"resultObjectId": "chrome-native-hole-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 8,
"recordCount": 0
},
{
"stageId": "chrome-native-hole-history:native-stage:1",
"operation": "cut",
"inputObjectIds": [
"Base",
"chrome-native-hole-history:native-stage:0:result"
],
"resultObjectId": "chrome-native-hole-history:native-stage:1:result",
"ordinal": 1,
"topologyEntries": 32,
"recordCount": 8
}
],
"sourceStageIds": [
"chrome-native-hole-history:native-stage:0"
],
"resultStageIds": [
"chrome-native-hole-history:native-stage:1"
]
},
"result": {
"structuralValid": true,
"solids": 1,
"volume": 968.584073464102
},
"opfs": {
"markerCreated": true,
"markerSuite": "hole",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,67 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern"
],
"transport": "step-text"
},
"history": {
"recordCount": 66,
"relations": {
"modified": 64,
"generated": 0,
"deleted": 2
},
"sourceObjects": [
"Base"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 12,
"nativeStructuralValid": true,
"nativeSolids": 1,
"nativeVolume": 11.999999999999995
},
"opfs": {
"markerSuite": "linear-pattern",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,73 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"loft",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 24,
"relations": {
"modified": 0,
"generated": 24,
"deleted": 0
},
"sourceObjects": [
"FirstSection",
"SecondSection"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 20
},
"opfs": {
"markerPayload": {
"operation": "loft",
"sections": 2,
"ruled": false
},
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,69 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored"
],
"transport": "step-text"
},
"history": {
"recordCount": 66,
"relations": {
"modified": 64,
"generated": 0,
"deleted": 2
},
"sourceObjects": [
"Base"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 3,
"nativeStructuralValid": true,
"nativeSolids": 1,
"nativeVolume": 2.999999999999999
},
"opfs": {
"markerSuite": "mirrored",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,119 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 311,
"relations": {
"modified": 88,
"generated": 222,
"deleted": 1
},
"sourceObjects": [
"Base"
],
"transformKinds": [
"linear",
"mirrored"
],
"stagedRecordCount": 97,
"stages": [
{
"stageId": "multi-transform-staged-history:native-stage:0",
"operation": "linear-pattern",
"inputObjectIds": [
"Base"
],
"resultObjectId": "multi-transform-staged-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 58,
"recordCount": 30
},
{
"stageId": "multi-transform-staged-history:native-stage:1",
"operation": "mirrored",
"inputObjectIds": [
"multi-transform-staged-history:native-stage:0:result"
],
"resultObjectId": "MultiTransform",
"ordinal": 1,
"topologyEntries": 90,
"recordCount": 97
}
],
"finalRecordLineage": {
"records": 97,
"sourceObjectIds": [
"multi-transform-staged-history:native-stage:0:result"
],
"sourceStageIds": [
"multi-transform-staged-history:native-stage:0"
],
"resultStageIds": [
"multi-transform-staged-history:native-stage:1"
]
}
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 4.999999999999999,
"nativeStructuralValid": true,
"nativeSolids": 1,
"nativeVolume": 4.999999999999998
},
"opfs": {
"markerPayload": {
"operation": "multi-transform",
"transformKinds": [
"linear",
"mirrored"
]
},
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,59 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "dedicated-worker",
"crossOriginIsolated": true,
"status": "pass",
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad"
],
"transport": "step-text"
},
"execution": {
"status": "completed",
"recordCount": 25,
"crossKindRecords": 12,
"relations": {
"modified": 13,
"generated": 12,
"deleted": 0
},
"profileKinds": [
"vertex",
"edge",
"face"
],
"summary": {
"shapeType": "CompSolid",
"isNull": false,
"isValid": true,
"solids": 1,
"faces": 6,
"edges": 12,
"vertices": 8,
"volume": 30,
"area": 62,
"boundingBox": {
"min": [
-1e-7,
-1e-7,
-1e-7
],
"max": [
2.0000001,
3.0000001,
5.0000001
]
}
}
},
"workerDisposed": true
}

View File

@@ -0,0 +1,74 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 28,
"relations": {
"modified": 1,
"generated": 27,
"deleted": 0
},
"sourceObjects": [
"Profile",
"Spine"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 20.000000000000004
},
"opfs": {
"markerPayload": {
"operation": "pipe",
"profiles": 1,
"spineEdges": 1
},
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,147 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 42,
"sourceObjects": [
"Base",
"Profile",
"chrome-native-pocket-history:native-stage:0:result"
],
"relations": {
"modified": 21,
"generated": 0,
"deleted": 21
},
"stages": [
{
"stageId": "chrome-native-pocket-history:native-stage:0",
"operation": "pad",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-pocket-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 26,
"recordCount": 25
},
{
"stageId": "chrome-native-pocket-history:native-stage:1",
"operation": "cut",
"inputObjectIds": [
"Base",
"chrome-native-pocket-history:native-stage:0:result"
],
"resultObjectId": "chrome-native-pocket-history:native-stage:1:result",
"ordinal": 1,
"topologyEntries": 44,
"recordCount": 42
}
]
},
"twoSidedHistory": {
"recordCount": 20,
"structuralValid": true,
"solids": 1,
"sourceObjects": [
"BaseTwoSided",
"Profile",
"chrome-native-pocket-two-sided-history:native-stage:0:result",
"chrome-native-pocket-two-sided-history:native-stage:1:result",
"chrome-native-pocket-two-sided-history:native-stage:2:result"
],
"stages": [
{
"stageId": "chrome-native-pocket-two-sided-history:native-stage:0",
"operation": "pad",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-pocket-two-sided-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 26,
"recordCount": 25
},
{
"stageId": "chrome-native-pocket-two-sided-history:native-stage:1",
"operation": "pad",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-pocket-two-sided-history:native-stage:1:result",
"ordinal": 1,
"topologyEntries": 26,
"recordCount": 25
},
{
"stageId": "chrome-native-pocket-two-sided-history:native-stage:2",
"operation": "fuse",
"inputObjectIds": [
"chrome-native-pocket-two-sided-history:native-stage:0:result",
"chrome-native-pocket-two-sided-history:native-stage:1:result"
],
"resultObjectId": "chrome-native-pocket-two-sided-history:native-stage:2:result",
"ordinal": 2,
"topologyEntries": 42,
"recordCount": 90
},
{
"stageId": "chrome-native-pocket-two-sided-history:native-stage:3",
"operation": "cut",
"inputObjectIds": [
"BaseTwoSided",
"chrome-native-pocket-two-sided-history:native-stage:2:result"
],
"resultObjectId": "PocketTwoSided",
"ordinal": 3,
"topologyEntries": 66,
"recordCount": 20
}
]
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,68 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern"
],
"transport": "step-text"
},
"history": {
"recordCount": 68,
"relations": {
"modified": 68,
"generated": 0,
"deleted": 0
},
"sourceObjects": [
"Base"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 3,
"nativeStructuralValid": true,
"nativeSolids": 1,
"nativeVolume": 3.0000000000000004
},
"opfs": {
"markerSuite": "polar-pattern",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,132 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"rotate",
"pad",
"pocket",
"loft",
"pipe",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness",
"linear-pattern",
"polar-pattern",
"mirrored",
"multi-transform"
],
"transport": "step-text"
},
"history": {
"recordCount": 23,
"crossKindRecords": 10,
"relations": {
"modified": 10,
"generated": 10,
"deleted": 3
}
},
"twoSidedHistory": {
"recordCount": 25,
"structuralValid": true,
"graphStructuralValid": false,
"graphStructuralErrors": 4,
"graphStructuralWarnings": 0,
"graphStructuralIssues": [
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 16
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 17
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 18
},
"description": "CoEdgeDef has no Curve2D representation"
},
{
"severity": "error",
"node": {
"kind": "coedge",
"index": 19
},
"description": "CoEdgeDef has no Curve2D representation"
}
],
"unexplainedStructuralErrors": 0,
"solids": 1,
"volume": 37.69911184307333,
"stages": [
{
"stageId": "chrome-native-revolution-two-sided-history:native-stage:0",
"operation": "rotate",
"inputObjectIds": [
"Profile"
],
"resultObjectId": "chrome-native-revolution-two-sided-history:native-stage:0:result",
"ordinal": 0,
"topologyEntries": 9,
"recordCount": 13
},
{
"stageId": "chrome-native-revolution-two-sided-history:native-stage:1",
"operation": "revolution",
"inputObjectIds": [
"chrome-native-revolution-two-sided-history:native-stage:0:result"
],
"resultObjectId": "RevolutionTwoSided",
"ordinal": 1,
"topologyEntries": 26,
"recordCount": 25
}
]
},
"result": {
"structuralValid": true,
"solids": 1,
"volume": 75.39822368615503
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,68 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "geometry-and-history-workers",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"nativeCapabilities": {
"providerId": "occt-native.history-step",
"providerVersion": "8.0.0-embind",
"occtVersion": "8.0.0",
"availability": "available",
"operations": [
"fuse",
"cut",
"common",
"pad",
"pocket",
"revolution",
"groove",
"fillet",
"chamfer",
"hole",
"draft",
"thickness"
],
"transport": "step-text"
},
"history": {
"recordCount": 38,
"relations": {
"modified": 1,
"generated": 37,
"deleted": 0
},
"sourceObjects": [
"Base"
]
},
"result": {
"bitbybitStructuralValid": false,
"bitbybitSolids": 1,
"bitbybitVolume": 64.57600000000002,
"nativeStructuralValid": true,
"nativeSolids": 1,
"nativeVolume": 64.57600000000002
},
"opfs": {
"markerCreated": true,
"markerSuite": "thickness",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"serviceWorker": {
"registered": true,
"controlled": true,
"shellCached": true,
"staleCacheRemoved": true,
"offlineFallback": true,
"cacheNames": [
"bitbybit-cad-shell-v1"
]
},
"persistence": {
"mode": "sqlite-opfs",
"bytes": 80,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "REL-01",
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"migration": {
"sourceSchemaVersion": 1,
"migratedSchemaVersion": 6,
"migratedDocumentVersion": 3,
"migratedLabel": "Legacy OPFS project",
"migratedObjectCount": 1,
"recomputeDefaulted": true,
"reopenedSchemaVersion": 6,
"reopenedVersion": 4,
"reopenedLabel": "Migrated OPFS project",
"checkpointVersion": 4,
"recoveryIntegrity": "ok",
"reopenedRecoveryIntegrity": "ok",
"resourceRoundTrip": true,
"resourceReleased": true
},
"rollback": {
"rejected": true,
"interruptedAfterMarker": true,
"error": "Injected migration interruption after schema version 3.",
"appliedVersionsAfterFailure": [
1
]
},
"cleanup": {
"databasePath": "/bitbybit-rel02-301b6b76-9ab6-44ef-bf40-f2e6052e58ae.sqlite3",
"removedFiles": [
"bitbybit-rel02-301b6b76-9ab6-44ef-bf40-f2e6052e58ae.sqlite3"
]
}
}

View File

@@ -0,0 +1,54 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"operations": [
{
"name": "ellipsoid",
"meshVertices": 603,
"meshTriangles": 1170,
"volume": 100.48699804303837
},
{
"name": "torus",
"meshVertices": 972,
"meshTriangles": 1820,
"volume": 98.69604401089352
},
{
"name": "prism",
"meshVertices": 36,
"meshTriangles": 20,
"volume": 41.569219381653056
},
{
"name": "wedge",
"meshVertices": 24,
"meshTriangles": 12,
"volume": 120
},
{
"name": "helix",
"meshVertices": 0,
"meshTriangles": 0,
"length": 25.839014719433763
}
],
"beforeRelease": {
"shapeCount": 5,
"kernelReferenceCount": 5
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"opfs": {
"markerSuite": "PART-ALL",
"markerOperations": 5,
"markerRemoved": true
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,93 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"structural": {
"initialOrder": [
"sketch",
"pad",
"pocket",
"fillet"
],
"restoredOrder": [
"sketch",
"pad",
"pocket",
"fillet"
],
"reorderRejected": true,
"dependencyRemovalRejected": true,
"deleted": {
"removed": [
"fillet"
],
"tip": "pocket",
"filletExists": false
},
"deletionUndone": {
"tip": "fillet",
"filletExists": true
},
"deletionRedone": {
"tip": "pocket",
"filletExists": false
},
"restoredTip": "fillet"
},
"initial": {
"length": 42,
"tip": "pad",
"support": "XY_Plane",
"pocketSuppressed": true,
"filletSuppressed": true,
"shapeId": "shape-msi74mj9-1",
"volume": 504,
"solids": 1,
"structuralValid": false
},
"edited": {
"length": 31,
"tip": "pad",
"support": "XY_Plane",
"recompute": "completed",
"shapeCount": 1,
"kernelReferenceCount": 1,
"shapeId": "shape-msi74ml0-2",
"volume": 372,
"solids": 1,
"structuralValid": false
},
"undone": {
"length": 42,
"tip": "pad",
"support": "XY_Plane",
"recompute": "completed",
"shapeCount": 1,
"kernelReferenceCount": 1,
"shapeId": "shape-msi74mln-3",
"volume": 504,
"solids": 1,
"structuralValid": false
},
"reopened": {
"length": 42,
"tip": "pad",
"support": "XY_Plane",
"pocketSuppressed": true,
"filletSuppressed": true,
"persistedLength": 42,
"savedVersion": 24,
"activeVersion": 24,
"recompute": "completed",
"persistenceMode": "sqlite-opfs",
"shapeId": "shape-msi74moe-5",
"volume": 504,
"solids": 1,
"structuralValid": false
},
"released": {
"shapeCount": 0,
"kernelReferenceCount": 0
}
}

View File

@@ -0,0 +1,118 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"operations": [
{
"command": "additive-loft",
"objectId": "additive-loft",
"typeId": "PartDesign::AdditiveLoft",
"recompute": "completed",
"base": "pad",
"profile": "sketch",
"sections": [
"sketch001"
],
"spine": null,
"transition": null,
"tip": "additive-loft",
"shapeId": "shape-msi3obcr-2",
"volume": 504
},
{
"command": "additive-pipe",
"objectId": "additive-pipe",
"typeId": "PartDesign::AdditivePipe",
"recompute": "completed",
"base": "additive-loft",
"profile": "sketch003",
"sections": null,
"spine": {
"schemaVersion": 1,
"objectId": "sketch002",
"subElements": []
},
"transition": "Transformed",
"tip": "additive-pipe",
"shapeId": "shape-msi3obgk-4",
"volume": 524
},
{
"command": "subtractive-loft",
"objectId": "subtractive-loft",
"typeId": "PartDesign::SubtractiveLoft",
"recompute": "completed",
"base": "additive-pipe",
"profile": "sketch004",
"sections": [
"sketch005"
],
"spine": null,
"transition": null,
"tip": "subtractive-loft",
"shapeId": "shape-msi3obk0-5",
"volume": 512.0000000000001
},
{
"command": "subtractive-pipe",
"objectId": "subtractive-pipe",
"typeId": "PartDesign::SubtractivePipe",
"recompute": "completed",
"base": "subtractive-loft",
"profile": "sketch006",
"sections": null,
"spine": {
"schemaVersion": 1,
"objectId": "sketch007",
"subElements": []
},
"transition": "Transformed",
"tip": "subtractive-pipe",
"shapeId": "shape-msi3obnp-6",
"volume": 511.0000000000001
}
],
"failureRecovery": {
"loft": {
"status": "failed",
"code": "LOFT_SECTIONS_DUPLICATE",
"retainedShapeId": "shape-msi3obcr-2",
"previousShapeId": "shape-msi3obcr-2",
"restoredStatus": "completed",
"restoredShapeId": "shape-msi3obdt-3"
},
"pipe": {
"status": "failed",
"code": "PIPE_PATH_BRANCH",
"retainedShapeId": "shape-msi3obnp-6",
"previousShapeId": "shape-msi3obnp-6",
"restoredStatus": "completed",
"restoredShapeId": "shape-msi3obq6-7"
}
},
"persistence": {
"mode": "sqlite-opfs",
"savedVersion": 70,
"reopenedVersion": 70,
"objectCount": 19,
"reopenedTip": "subtractive-pipe"
},
"opfs": {
"markerSuite": "PD-LOFT",
"markerOperations": 4,
"markerRemoved": true
},
"beforeRelease": {
"shapeCount": 5,
"kernelReferenceCount": 5
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,337 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"operations": [
{
"command": "hole",
"objectId": "hole",
"typeId": "PartDesign::Hole",
"base": "pad",
"tip": "hole",
"recompute": "completed",
"shapeCount": 2,
"kernelReferenceCount": 2,
"shapeId": "shape-msi6khll-3",
"volume": 497.71681469282044,
"solids": 1,
"structuralValid": false,
"threaded": false,
"modelThread": false,
"threadType": "None",
"threadSize": "M6x1.0",
"threadDirection": "Right"
},
{
"command": "fillet",
"objectId": "fillet001",
"typeId": "PartDesign::Fillet",
"base": {
"schemaVersion": 1,
"objectId": "hole",
"kind": "edge",
"persistentId": "topo-edge-c5080c7f512c3757",
"topologyVersion": 25,
"generation": 2,
"status": "new",
"signature": "edge|curve=line|length=800|range=|adjacent=plane,plane,plane|degenerated=0"
},
"tip": "fillet001",
"recompute": "completed",
"shapeCount": 3,
"kernelReferenceCount": 3,
"shapeId": "shape-msi6khor-4",
"volume": 497.5808989123684,
"solids": 1,
"structuralValid": false
},
{
"command": "chamfer",
"objectId": "chamfer",
"typeId": "PartDesign::Chamfer",
"base": {
"schemaVersion": 1,
"objectId": "hole",
"kind": "edge",
"persistentId": "topo-edge-1190dbb2fa02bb4d",
"topologyVersion": 25,
"generation": 2,
"status": "new",
"signature": "edge|curve=line|length=800|range=|adjacent=plane,plane|degenerated=0"
},
"tip": "chamfer",
"recompute": "completed",
"shapeCount": 4,
"kernelReferenceCount": 4,
"shapeId": "shape-msi6khqq-5",
"volume": 497.5368146928205,
"solids": 1,
"structuralValid": false
},
{
"command": "draft",
"objectId": "draft",
"typeId": "PartDesign::Draft",
"base": {
"schemaVersion": 1,
"objectId": "hole",
"kind": "face",
"persistentId": "topo-face-154d54dd4cc87e90",
"topologyVersion": 25,
"generation": 2,
"status": "new",
"signature": "face|surface=cylinder|area=5027|adjacent=2|edges=3|wires=0|natural=0"
},
"tip": "draft",
"recompute": "completed",
"shapeCount": 5,
"kernelReferenceCount": 5,
"shapeId": "shape-msi6khs1-7",
"volume": 484.8175441487494,
"solids": 1,
"structuralValid": false
},
{
"command": "thickness",
"objectId": "thickness",
"typeId": "PartDesign::Thickness",
"base": "hole",
"tip": "thickness",
"recompute": "completed",
"shapeCount": 6,
"kernelReferenceCount": 6,
"shapeId": "shape-msi6khue-9",
"volume": 505.16706481222076,
"solids": 1,
"structuralValid": false
},
{
"command": "hole",
"objectId": "hole001",
"typeId": "PartDesign::Hole",
"base": "hole",
"tip": "hole001",
"recompute": "completed",
"shapeCount": 7,
"kernelReferenceCount": 7,
"shapeId": "shape-msi6ki2i-j",
"volume": 363.66427233552065,
"solids": 1,
"structuralValid": false,
"threaded": true,
"modelThread": false,
"threadType": "ISOMetricProfile",
"threadSize": "M1x0.25",
"threadDirection": "Right"
},
{
"command": "hole",
"objectId": "hole002",
"typeId": "PartDesign::Hole",
"base": "hole001",
"tip": "hole002",
"recompute": "completed",
"shapeCount": 8,
"kernelReferenceCount": 8,
"shapeId": "shape-msi6kjlh-m",
"volume": 347.12633973440813,
"solids": 1,
"structuralValid": false,
"threaded": true,
"modelThread": true,
"threadType": "ISOMetricProfile",
"threadSize": "M2x0.4",
"threadDirection": "Left"
},
{
"command": "linear-pattern",
"objectId": "linear-pattern",
"typeId": "PartDesign::LinearPattern",
"base": "hole001",
"tip": "linear-pattern",
"recompute": "completed",
"shapeCount": 9,
"kernelReferenceCount": 9,
"shapeId": "shape-msi6kk24-p",
"volume": 357.3810870283411,
"solids": 1,
"structuralValid": false,
"transformMode": "Features",
"originals": [
"hole"
]
},
{
"command": "mirrored",
"objectId": "mirrored",
"typeId": "PartDesign::Mirrored",
"base": "linear-pattern",
"tip": "mirrored",
"recompute": "completed",
"shapeCount": 10,
"kernelReferenceCount": 10,
"shapeId": "shape-msi6kk4j-s",
"volume": 354.26859542168523,
"solids": 1,
"structuralValid": false,
"transformMode": "Features",
"originals": [
"hole"
]
},
{
"command": "mirrored",
"objectId": "mirrored001",
"typeId": "PartDesign::Mirrored",
"base": "mirrored",
"tip": "mirrored001",
"recompute": "completed",
"shapeCount": 11,
"kernelReferenceCount": 11,
"shapeId": "shape-msi6kk61-t",
"volume": 354.26859542168523,
"solids": 1,
"structuralValid": false,
"transformMode": "Whole shape",
"originals": []
},
{
"command": "linear-pattern",
"objectId": "linear-pattern001",
"typeId": "PartDesign::LinearPattern",
"base": "mirrored001",
"tip": "linear-pattern001",
"recompute": "completed",
"shapeCount": 12,
"kernelReferenceCount": 12,
"shapeId": "shape-msi6kkk8-w",
"volume": 547.6164162707034,
"solids": 1,
"structuralValid": false,
"transformMode": "Whole shape",
"originals": []
},
{
"command": "polar-pattern",
"objectId": "polar-pattern",
"typeId": "PartDesign::PolarPattern",
"base": "linear-pattern001",
"tip": "polar-pattern",
"recompute": "completed",
"shapeCount": 13,
"kernelReferenceCount": 13,
"shapeId": "shape-msi6kl0z-z",
"volume": 1351.4339505434775,
"solids": 1,
"structuralValid": false,
"transformMode": "Whole shape",
"originals": []
},
{
"command": "multi-transform",
"objectId": "multi-transform",
"typeId": "PartDesign::MultiTransform",
"base": "polar-pattern",
"tip": "multi-transform",
"recompute": "completed",
"shapeCount": 14,
"kernelReferenceCount": 14,
"shapeId": "shape-msi6kmxn-13",
"volume": 2031.0345622237955,
"solids": 1,
"structuralValid": false,
"transformMode": "Whole shape",
"originals": []
},
{
"command": "hole",
"objectId": "hole003",
"typeId": "PartDesign::Hole",
"base": "multi-transform",
"tip": "hole003",
"recompute": "completed",
"shapeCount": 15,
"kernelReferenceCount": 15,
"shapeId": "shape-msi6kn10-17",
"volume": 1996.182518723034,
"solids": 1,
"structuralValid": false,
"threaded": false,
"modelThread": false,
"threadType": "None",
"threadSize": "M6x1.0",
"threadDirection": "Right"
}
],
"ambiguityRecovery": {
"command": "fillet",
"status": "failed",
"code": "DRESSUP_EDGE_REFERENCE_UNRESOLVED",
"retainedShapeId": "shape-msi6khor-4",
"previousShapeId": "shape-msi6khor-4",
"restoredStatus": "completed",
"restoredShapeId": "shape-msi6khvg-a"
},
"topologyMigration": {
"editedPadLength": 31,
"migrated": [
{
"command": "fillet",
"objectId": "hole",
"kind": "edge",
"status": "ambiguous",
"persistentId": "topo-edge-c5080c7f512c3757"
},
{
"command": "chamfer",
"objectId": "hole",
"kind": "edge",
"status": "ambiguous",
"persistentId": "topo-edge-1190dbb2fa02bb4d"
},
{
"command": "draft",
"objectId": "hole",
"kind": "face",
"status": "stable",
"persistentId": "topo-face-154d54dd4cc87e90"
},
{
"command": "thickness",
"objectId": "hole",
"kind": "face",
"status": "ambiguous",
"persistentId": "topo-face-82a09f740c619c10"
}
],
"stable": 1,
"ambiguous": 3,
"ambiguityDiagnostics": 3,
"wrongBindings": 0
},
"persistence": {
"mode": "sqlite-opfs",
"savedVersion": 41,
"reopenedVersion": 41,
"reopenedTip": "hole003",
"objectCount": 21
},
"opfs": {
"markerSuite": "PD-TRANSFORM",
"markerOperations": 14,
"markerRemoved": true
},
"beforeRelease": {
"shapeCount": 12,
"kernelReferenceCount": 12
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,35 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"benchmark": {
"objects": 1000,
"triangles": 1000000,
"tableCells": 100000,
"objectMs": 0.26999998092651367,
"triangleMs": 3.1500000953674316,
"tableMs": 1.0499999523162842,
"heapBytes": 34939773,
"pass": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 408,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "QA-05",
"triangles": 1000000,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,22 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"mode": "sqlite-opfs",
"sqliteWasm": true,
"opfs": true,
"schemaVersion": 6,
"crossTabWriteLock": "web-locks"
},
"roundTrip": {
"savedMode": "sqlite-opfs",
"loadedVersion": 7,
"loadedLabel": "Chrome OPFS persistence",
"checkpointVersion": 7,
"resourceRoundTrip": true,
"recoveryIntegrity": "ok",
"checkpointCount": 1
}
}

View File

@@ -0,0 +1,757 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"executionContext": "dedicated-worker",
"crossOriginIsolated": true,
"sharedArrayBuffer": true,
"status": "pass",
"solve": {
"solveStatus": 0,
"startX": 0,
"startY": 0,
"endX": 5,
"endY": 0,
"residual": 0
},
"verticalSolve": {
"solveStatus": 0,
"startX": 0,
"startY": 0,
"endX": 0,
"endY": 5,
"residual": 0
},
"distanceXSolve": {
"solveStatus": 0,
"startX": 0,
"startY": 0,
"endX": 6,
"endY": 0,
"residual": 0
},
"distanceYSolve": {
"solveStatus": 0,
"startX": 0,
"startY": 0,
"endX": 0,
"endY": 6,
"residual": 0
},
"angleSolve": {
"solveStatus": 0,
"startX": 0,
"startY": 0,
"endX": 3.5355339059327666,
"endY": 3.535533905932768,
"lengthResidual": 4.1744385725905886e-14,
"residual": 2.220446049250313e-16,
"targetAngle": 0.7853981633974483
},
"circleRadiusSolve": {
"solveStatus": 0,
"centerX": 2,
"centerY": 3,
"radius": 4,
"residual": 0
},
"circleDiameterSolve": {
"solveStatus": 0,
"centerX": 2,
"centerY": 3,
"radius": 4,
"residual": 0
},
"equalLinesSolve": {
"solveStatus": 0,
"firstStartX": 0,
"firstStartY": 0,
"firstEndX": 4,
"firstEndY": 0,
"secondStartX": 0,
"secondStartY": 2,
"secondEndX": 2.8550078532679066,
"secondEndY": 4.801594217187551,
"residual": 1.865174681370263e-14
},
"equalCirclesSolve": {
"solveStatus": 0,
"firstCenterX": 2,
"firstCenterY": 3,
"firstRadius": 4,
"secondCenterX": 8,
"secondCenterY": 9,
"secondRadius": 4,
"residual": 0
},
"tangentCirclesSolve": {
"solveStatus": 0,
"firstCenterX": 2,
"firstCenterY": 3,
"firstRadius": 4,
"secondCenterX": 10,
"secondCenterY": 3,
"secondRadius": 4.000000000000001,
"residual": -8.881784197001252e-16
},
"pointSymmetrySolve": {
"solveStatus": 0,
"firstX": 1,
"firstY": 2,
"secondX": 7.000000000002508,
"secondY": 9.99999999999955,
"centerX": 4,
"centerY": 6,
"residual": 1.2740804112383381e-12
},
"pointOnLineSolve": {
"solveStatus": 0,
"pointX": 2,
"pointY": 0,
"startX": 0,
"startY": 0,
"endX": 4,
"endY": 0,
"residual": 0
},
"pointOnCircleSolve": {
"solveStatus": 0,
"pointX": 4,
"pointY": 6.464101615137755,
"centerX": 2,
"centerY": 3,
"radius": 4,
"residual": 0
},
"pointOnArcSolve": {
"solveStatus": 0,
"pointX": 2,
"pointY": 7,
"centerX": 2,
"centerY": 3,
"radius": 4,
"startAngle": 0,
"endAngle": 3.141592653589793,
"residual": 0
},
"pointOnEllipseSolve": {
"solveStatus": 0,
"pointX": 2,
"pointY": 6.000000000037419,
"centerX": 2,
"centerY": 3,
"focusX": 6,
"focusY": 3,
"minorRadius": 3,
"residual": 4.490274818635953e-11
},
"pointOnBsplineSolve": {
"solveStatus": 0,
"pointX": 2,
"pointY": 1.500000000000298,
"pointParameter": 0.5,
"residualX": 0,
"residualY": 2.97983859809392e-13
},
"bsplineWeightSolve": {
"solveStatus": 0,
"weights": [
1,
1.5,
1.25,
1
],
"helper": {
"center": {
"x": 1,
"y": 2
},
"radius": 1.5
},
"alignmentResidual": 0,
"residual": 0
},
"parallelSolve": {
"solveStatus": 0,
"firstStartX": 0,
"firstStartY": 0,
"firstEndX": 4,
"firstEndY": 0,
"secondStartX": 0,
"secondStartY": 2,
"secondEndX": 5,
"secondEndY": 2,
"residual": 0
},
"perpendicularSolve": {
"solveStatus": 0,
"firstStartX": 0,
"firstStartY": 0,
"firstEndX": 4,
"firstEndY": 0,
"secondStartX": 0,
"secondStartY": 2,
"secondEndX": 0,
"secondEndY": 7,
"residual": 0
},
"coincidentSolve": {
"solveStatus": 0,
"firstEndX": 4,
"firstEndY": 0,
"secondStartX": 4,
"secondStartY": 0,
"residual": 0
},
"coincidentEndpointSolves": [
{
"firstPoint": "start",
"secondPoint": "start",
"solveStatus": 0,
"first": {
"x": 0,
"y": 0
},
"second": {
"x": 0,
"y": 0
},
"secondLength": 5.000000000000613,
"residual": 0
},
{
"firstPoint": "start",
"secondPoint": "end",
"solveStatus": 0,
"first": {
"x": 0,
"y": 0
},
"second": {
"x": 0,
"y": 0
},
"secondLength": 5,
"residual": 0
},
{
"firstPoint": "end",
"secondPoint": "start",
"solveStatus": 0,
"first": {
"x": 4,
"y": 0
},
"second": {
"x": 4,
"y": 0
},
"secondLength": 5.000000000000001,
"residual": 0
},
{
"firstPoint": "end",
"secondPoint": "end",
"solveStatus": 0,
"first": {
"x": 4,
"y": 0
},
"second": {
"x": 4,
"y": 0
},
"secondLength": 5,
"residual": 0
}
],
"coincidentEndpointProviders": [
{
"firstPoint": "start",
"secondPoint": "start",
"completed": "completed",
"first": {
"x": 0,
"y": 0
},
"second": {
"x": 0,
"y": 0
},
"secondLength": 5.000000000000613
},
{
"firstPoint": "start",
"secondPoint": "end",
"completed": "completed",
"first": {
"x": 0,
"y": 0
},
"second": {
"x": 0,
"y": 0
},
"secondLength": 5
},
{
"firstPoint": "end",
"secondPoint": "start",
"completed": "completed",
"first": {
"x": 4,
"y": 0
},
"second": {
"x": 4,
"y": 0
},
"secondLength": 5.000000000000001
},
{
"firstPoint": "end",
"secondPoint": "end",
"completed": "completed",
"first": {
"x": 4,
"y": 0
},
"second": {
"x": 4,
"y": 0
},
"secondLength": 5
}
],
"snellsLawSolve": {
"solveStatus": 0,
"firstStart": {
"x": 0,
"y": 0
},
"firstEnd": {
"x": -4,
"y": 4
},
"secondStart": {
"x": 0,
"y": 0
},
"secondEnd": {
"x": 2.3570226039551594,
"y": 4.409585518440984
},
"boundaryStart": {
"x": -5,
"y": 0
},
"boundaryEnd": {
"x": 5,
"y": 0
},
"ratio": 1.5,
"residual": -4.440892098500626e-16
},
"snellsLawProvider": {
"completed": "completed",
"degreesOfFreedom": 8,
"residual": 4.440892098500626e-16,
"first": {
"start": {
"x": 0,
"y": 0
},
"end": {
"x": -4,
"y": 4
}
},
"second": {
"start": {
"x": 0,
"y": 0
},
"end": {
"x": 2.3570226039551594,
"y": 4.409585518440984
}
},
"boundary": {
"start": {
"x": -5,
"y": 0
},
"end": {
"x": 5,
"y": 0
}
}
},
"ellipseInternalAlignmentSolves": [
{
"alignmentType": 1,
"solveStatus": 0,
"center": {
"x": 2,
"y": 3
},
"focus": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"minorRadius": 3,
"helperStart": {
"x": 6.844562108553224,
"y": 4.237019796272614
},
"helperEnd": {
"x": -2.844562108553224,
"y": 1.7629802037273854
},
"helperError": 0,
"residual": 7.771561172376096e-16
},
{
"alignmentType": 2,
"solveStatus": 0,
"center": {
"x": 2,
"y": 3
},
"focus": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"minorRadius": 3,
"helperStart": {
"x": 1.2577881222364313,
"y": 5.906737265131934
},
"helperEnd": {
"x": 2.7422118777635687,
"y": 0.09326273486806569
},
"helperError": 0,
"residual": 5.874748045952207e-16
},
{
"alignmentType": 3,
"solveStatus": 0,
"center": {
"x": 2,
"y": 3
},
"focus": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"minorRadius": 3,
"helperStart": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"helperEnd": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"helperError": 0,
"residual": 0
},
{
"alignmentType": 4,
"solveStatus": 0,
"center": {
"x": 2,
"y": 3
},
"focus": {
"x": 5.8756496868425785,
"y": 3.989615837018092
},
"minorRadius": 3,
"helperStart": {
"x": -1.875649686842579,
"y": 2.010384162981908
},
"helperEnd": {
"x": -1.875649686842579,
"y": 2.010384162981908
},
"helperError": 0,
"residual": 3.1401849173675503e-16
}
],
"ellipseInternalAlignmentProvider": {
"completed": "completed",
"degreesOfFreedom": 5,
"residual": 7.771561172376096e-16,
"ellipse": {
"center": {
"x": 2,
"y": 3
},
"majorRadius": 5,
"minorRadius": 3,
"rotation": 0.25
}
},
"bsplineWeightProvider": {
"completed": "completed",
"degreesOfFreedom": 11,
"residual": 0,
"bspline": {
"degree": 3,
"controlPoints": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 0
}
],
"weights": [
1,
1.5,
1.25,
1
],
"knots": [
0,
0,
0,
0,
1,
1,
1,
1
],
"periodic": false
}
},
"pointOnCircleProvider": {
"completed": "completed",
"point": {
"x": 4,
"y": 6.464101615137755
}
},
"pointOnArcProvider": {
"completed": "completed",
"point": {
"x": 2,
"y": 7
},
"arc": {
"center": {
"x": 2,
"y": 3
},
"radius": 4,
"startAngle": 0,
"endAngle": 3.141592653589793
}
},
"pointOnEllipseProvider": {
"completed": "completed",
"point": {
"x": 2,
"y": 6.000000000037419
},
"ellipse": {
"center": {
"x": 2,
"y": 3
},
"majorRadius": 5,
"minorRadius": 3,
"rotation": 0
}
},
"pointOnBsplineProvider": {
"completed": "completed",
"point": {
"x": 2,
"y": 1.5
},
"bspline": {
"degree": 3,
"controlPoints": [
{
"x": 0,
"y": 0
},
{
"x": 1,
"y": 2
},
{
"x": 3,
"y": 2
},
{
"x": 4,
"y": 0
}
],
"weights": [
1,
1,
1,
1
],
"knots": [
0,
0,
0,
0,
1,
1,
1,
1
],
"periodic": false
}
},
"blockProvider": {
"completed": "completed",
"degreesOfFreedom": 0,
"line": {
"start": {
"x": 1,
"y": 2
},
"end": {
"x": 4,
"y": 6
}
}
},
"providerLifecycle": {
"availability": "available",
"engine": "planegcs-wasm",
"supportedGeometry": [
"point",
"line",
"circle",
"arc",
"ellipse",
"bspline"
],
"supportedConstraints": [
"horizontal",
"vertical",
"parallel",
"perpendicular",
"distance",
"distanceX",
"distanceY",
"angle",
"radius",
"diameter",
"equal",
"tangent",
"coincident",
"symmetric",
"pointOnObject",
"snellsLaw",
"internalAlignment",
"weight",
"block"
],
"completed": "completed",
"verticalCompleted": "completed",
"verticalEnd": {
"x": 0,
"y": 5
},
"angleCompleted": "completed",
"angleEnd": {
"x": 3.5355339059327666,
"y": 3.535533905932768
},
"circleRadiusCompleted": "completed",
"circleRadius": {
"center": {
"x": 2,
"y": 3
},
"radius": 4
},
"circleDiameterCompleted": "completed",
"circleDiameter": {
"center": {
"x": 2,
"y": 3
},
"radius": 4
},
"equalLinesCompleted": "completed",
"equalLinesSecond": {
"start": {
"x": 0,
"y": 2
},
"end": {
"x": 2.8550078532679066,
"y": 4.801594217187551
}
},
"equalCirclesCompleted": "completed",
"equalCirclesSecond": {
"center": {
"x": 8,
"y": 9
},
"radius": 4
},
"tangentCirclesCompleted": "completed",
"tangentCirclesSecond": {
"center": {
"x": 10,
"y": 3
},
"radius": 4.000000000000001
},
"pointSymmetryCompleted": "completed",
"pointSymmetrySecond": {
"x": 7.000000000002508,
"y": 9.99999999999955
},
"pointOnLineCompleted": "completed",
"pointOnLinePoint": {
"x": 2,
"y": 0
},
"parallelCompleted": "completed",
"parallelEnd": {
"x": 5,
"y": 2
},
"perpendicularCompleted": "completed",
"perpendicularEnd": {
"x": 0,
"y": 7
},
"coincidentCompleted": "completed",
"coincidentStart": {
"x": 4,
"y": 0
},
"cancelled": "cancelled",
"recovered": "completed",
"stale": "stale",
"recoveredEnd": {
"x": 5,
"y": 0
}
}
}

View File

@@ -0,0 +1,87 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"series": {
"count": 2,
"boundSource": "Spreadsheet",
"points": 3,
"updatedValue": 16,
"legend": true
},
"axes": {
"x": "Revision",
"y": "Length (mm)",
"xRange": [
0,
2
],
"yRange": [
0,
20
]
},
"logAxis": {
"xScale": "log",
"yScale": "log",
"svgHasLogMapping": true,
"rejectedNonPositive": true
},
"svg": {
"bytes": 1075,
"sha256": "29c4de596904c4048fdaf524b099eb0cbc1ba49c10a77d65d5d882d23638ceff",
"deterministic": true,
"paths": 2,
"accessible": true
},
"png": {
"bytes": 19408,
"sha256": "281e93a2acd75a0dd902cdcd52bb088094a05237ac15296462ca06936a956443",
"deterministic": true,
"width": 640,
"height": 360,
"validSignature": true
},
"csv": {
"bytes": 156,
"rows": 7,
"sha256": "5879d47bdda947b5432ef38a03a6e8299cdb4e90cfea0370e398833a9c01244a"
},
"resources": [
{
"mediaType": "image/svg+xml",
"hash": "29c4de596904c4048fdaf524b099eb0cbc1ba49c10a77d65d5d882d23638ceff",
"byteLength": 1075,
"roundTrip": true,
"released": true
},
{
"mediaType": "text/csv",
"hash": "5879d47bdda947b5432ef38a03a6e8299cdb4e90cfea0370e398833a9c01244a",
"byteLength": 156,
"roundTrip": true,
"released": true
},
{
"mediaType": "image/png",
"hash": "281e93a2acd75a0dd902cdcd52bb088094a05237ac15296462ca06936a956443",
"byteLength": 19408,
"roundTrip": true,
"released": true
}
],
"opfs": {
"markerSuite": "PLOT-ALL",
"markerSeries": 2,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,64 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"closure": {
"complete": true,
"artifacts": 4,
"missingKinds": 0,
"missingDependencies": 0,
"cycles": 0,
"documentVersion": 8,
"reopenedComplete": true,
"artifactVersions": [
2,
2,
2,
2
]
},
"workflow": {
"created": {
"spreadsheetCells": 2,
"draftObjects": 1,
"techdrawViews": 1,
"plotSeries": 1
},
"edited": {
"spreadsheetValue": 6,
"draftStartX": 1,
"techdrawDimension": 5,
"plotValue": 6
},
"exports": {
"spreadsheetCsvBytes": 31,
"draftJsonBytes": 384,
"techdrawSvgBytes": 509,
"techdrawPdfBytes": 849,
"techdrawPdfValid": true,
"plotSvgBytes": 774,
"plotCsvBytes": 52
}
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 8568,
"hash": "81ab5272815a42162a7f977bae74a0cefc2d1e23195865ac810eceb81bd71c30",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "DOC-CLOSURE",
"artifacts": 4,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,122 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"fixtures": {
"closed": {
"status": "closed",
"ringCount": 1,
"selfIntersections": 0
},
"open": {
"status": "open",
"ringCount": 1,
"selfIntersections": 0
},
"multiRing": {
"status": "multi-ring",
"ringCount": 2,
"selfIntersections": 0
},
"selfIntersecting": {
"status": "self-intersecting",
"ringCount": 1,
"selfIntersections": 1
},
"invalidNesting": {
"status": "invalid-nesting",
"ringCount": 2,
"selfIntersections": 0
},
"nonPlanar": {
"status": "non-planar",
"ringCount": 1,
"selfIntersections": 0
},
"degenerate": {
"status": "degenerate",
"ringCount": 1,
"selfIntersections": 0
}
},
"validationErrors": {
"closed": null,
"multiRing": null,
"open": "Profile ring 0 is open.",
"selfIntersecting": "Profile contains self-intersecting edges.",
"invalidNesting": "Profile holes must be contained directly inside the outer ring.",
"nonPlanar": "Profile ring 0 is not coplanar with the outer ring.",
"degenerate": "Profile ring 0 is collinear."
},
"partDesignProfiles": {
"closed": {
"code": null,
"regionCount": 1
},
"multiRing": {
"code": null,
"outerPoints": 4,
"holeCount": 1,
"regionCount": 1
},
"open": {
"code": "PROFILE_OPEN"
},
"selfIntersecting": {
"code": null,
"regionCount": 2,
"regionPoints": [
3,
3
]
},
"invalidNesting": {
"code": null,
"regionCount": 2,
"regionPoints": [
4,
4
]
}
},
"partDesignGeometry": {
"closed": {
"volume": 360,
"solids": 1,
"shapeType": "solid",
"structuralValid": false,
"structuralErrors": 20,
"structuralWarnings": 0
},
"multiRing": {
"volume": 320,
"solids": 1,
"shapeType": "solid",
"structuralValid": false,
"structuralErrors": 40,
"structuralWarnings": 0
},
"selfIntersecting": {
"volume": 80,
"solids": 2,
"shapeType": "compound",
"structuralValid": true,
"structuralErrors": 0,
"structuralWarnings": 0
},
"invalidNesting": {
"volume": 370,
"solids": 2,
"shapeType": "compound",
"structuralValid": true,
"structuralErrors": 0,
"structuralWarnings": 0
}
},
"opfs": {
"markerSuite": "SK-11",
"markerCases": 12,
"markerRemoved": true
}
}

View File

@@ -0,0 +1,42 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"locales": {
"supported": 3,
"snapshots": 3,
"longLabel": true,
"decimalSamples": [
"12.346 mm",
"12.346 mm",
"12,346 mm"
]
},
"accessibility": {
"checked": 4,
"missingNames": 0,
"duplicates": 0,
"unnamedFocusable": 0,
"pass": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 813,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "QA-08",
"localeCount": 3,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,43 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"geometry": {
"sourceShape": "shape-msi9vj60-1",
"valid": true,
"volume": 7.999999999999998
},
"trajectory": {
"joints": 3,
"waypoints": 2,
"poses": 5,
"status": "generated",
"violations": 0,
"maxReach": 6,
"homeX": 6,
"collisions": 1,
"controllerBytes": 1120,
"csvBytes": 174
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 551,
"hash": "8f750b2eaaf68e4c3523a0c97145931ad6d6d83e854985d2b4069bb10fe8de26",
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "ROBOT-ALL",
"poses": 5,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,42 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"macro": {
"commands": 2,
"replay": "replayed",
"executed": 2,
"bytes": 210
},
"security": {
"disallowedRejected": true,
"quotaRejected": true,
"noDynamicExecution": true,
"deniedCapabilities": [
"file",
"network",
"time",
"resource"
]
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 210,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "SCRIPT-ALL",
"commands": 2,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,120 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"formats": {
"descriptors": 8,
"records": 8,
"nativeExports": 3,
"proxyImports": 8,
"bytes": 665,
"categories": [
"2d",
"bim",
"data",
"mesh"
],
"matrix": [
{
"format": "DXF",
"category": "2d",
"byteLength": 36,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "SVG",
"category": "2d",
"byteLength": 217,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "OBJ",
"category": "mesh",
"byteLength": 72,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "PLY",
"category": "mesh",
"byteLength": 49,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "STL",
"category": "mesh",
"byteLength": 59,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "PDF",
"category": "2d",
"byteLength": 48,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "IFC",
"category": "bim",
"byteLength": 136,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
},
{
"format": "CSV",
"category": "data",
"byteLength": 48,
"imported": true,
"rejectedInvalid": true,
"byteExactRoundTrip": true,
"deterministic": true,
"proxy": true
}
]
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 1884,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "FC-09",
"records": 8,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,33 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"checks": {
"path": 5,
"archiveEntries": 3,
"xmlBytes": 79,
"permissionChecks": 3,
"rejectedCases": 4,
"pass": true
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 180,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "QA-07",
"checks": 4,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,65 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"edit": {
"stableId": true,
"degree": 1,
"poleCount": 3,
"middlePole": {
"x": 2,
"y": 3
},
"weights": [
1,
0.5,
1
],
"knots": [
0,
0,
0.5,
1,
1
],
"periodic": true,
"sourceUnchanged": true
},
"validationErrors": {
"invalidWeight": "spline weights must be positive finite values matching control points.",
"invalidKnots": "spline knots must be non-decreasing and have controlPointCount + degree + 1 entries.",
"invalidDegree": "spline requires at least degree + 1 control points."
},
"roundTrip": {
"archiveBytes": 1493,
"geometryEqual": true,
"constraintsEqual": true,
"constraintTypes": [
"weight",
"internalAlignment",
"weight"
],
"weights": [
1,
1.5,
1.25,
1
],
"knots": [
0,
0,
0,
0,
1,
1,
1,
1
]
},
"opfs": {
"markerSuite": "SK-10",
"markerFields": 8,
"markerRemoved": true
}
}

View File

@@ -0,0 +1,37 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"fixtures": {
"reference": {
"status": "under-constrained",
"degreesOfFreedom": 3,
"diagnostic": true,
"unchangedEnd": true
},
"redundant": {
"status": "under-constrained",
"diagnostic": true
},
"conflicting": {
"status": "conflicting",
"diagnostic": true,
"notConverged": true
},
"coincident": {
"status": "under-constrained",
"residual": 0,
"sharedPoint": true
},
"block": {
"status": "solved",
"degreesOfFreedom": 0,
"unchanged": true
}
},
"opfs": {
"markerSuite": "SK-06/SK-07",
"markerRemoved": true
}
}

View File

@@ -0,0 +1,115 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"operations": {
"drag": {
"start": {
"x": 0,
"y": 2
},
"end": {
"x": 8,
"y": 2
},
"sourceUnchanged": true
},
"split": {
"ids": [
"line",
"line-2"
],
"endpoints": [
[
{
"x": 0,
"y": 0
},
{
"x": 4,
"y": 0
}
],
[
{
"x": 4,
"y": 0
},
{
"x": 10,
"y": 0
}
]
],
"constraintTypes": [
"coincident"
]
},
"extend": {
"end": {
"x": 15,
"y": 0
},
"sourceUnchanged": true
},
"trim": {
"end": {
"x": 7,
"y": 0
},
"constraintTypes": [
"pointOnObject"
],
"sourceUnchanged": true
},
"construction": {
"enabled": true,
"sourceUnchanged": true
},
"autoConstraint": {
"suggestionReasons": [
"coincident",
"horizontal"
],
"appliedIds": [
"auto-coincident-line-a.end-line-b.start",
"auto-horizontal-line-a"
],
"sourceUnchanged": true
},
"replay": {
"applied": 2,
"undone": 1,
"redone": 1,
"finalEnd": {
"x": 6,
"y": 0
}
}
},
"interactions": {
"nativeEvents": {
"pointer": 3,
"keyboard": 3
},
"start": {
"x": 0,
"y": 2
},
"end": {
"x": 8,
"y": 2
},
"tool": "select",
"pointerActive": false,
"applied": 1,
"undone": 1,
"redone": 1
},
"opfs": {
"markerSuite": "SK-09",
"markerOperations": 9,
"markerRemoved": true
}
}

View File

@@ -0,0 +1,37 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"stress": {
"seed": 539363331,
"models": 500,
"solves": 1000,
"durationMs": 15.394999980926514,
"averageSolveMs": 0.015394999980926513,
"maxIterations": 64,
"maxResidual": 4.577566798522237e-16,
"deterministicMismatches": 0,
"unexpectedResults": 0,
"digest": "edac8aed",
"categories": {
"constraints": 100,
"conflict": 100,
"redundant": 100,
"reference": 100,
"drag": 100
},
"statuses": {
"solved": 0,
"under-constrained": 400,
"conflicting": 100,
"invalid": 0
}
},
"opfs": {
"markerSuite": "SK-12",
"markerModels": 500,
"markerSolves": 1000,
"markerRemoved": true
}
}

View File

@@ -0,0 +1,87 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"cells": {
"width": 6,
"length": 12,
"updatedLength": 16,
"dimension": "length"
},
"aliases": [
"Length",
"Width"
],
"dependencies": [
"A2->A1:Width",
"B1->A1:A1"
],
"cycle": {
"detected": true,
"cells": [
"C1",
"D1"
]
},
"binding": {
"alias": "Length",
"objectId": "pad",
"propertyName": "Length",
"appliedValue": 16,
"undoValue": 12,
"redoValue": 16
},
"expression": {
"value": 13,
"dimension": "length",
"references": [
"Spreadsheet.Length"
]
},
"layout": {
"styledCells": 4,
"namedRange": "A1:A3",
"mergedRange": "A1:C3",
"shiftedFormulaAddress": "A3"
},
"csv": {
"rows": 2,
"columns": 4,
"bytes": 46
},
"largeSheet": {
"cells": 10000,
"rows": 100,
"columns": 100,
"evaluationErrors": 0,
"csvBytes": 175112,
"durationMs": 53.85000002384186,
"budgetMs": 5000
},
"persistence": {
"mode": "sqlite-opfs",
"savedVersion": 20,
"reopenedVersion": 20,
"reopenedValue": 16
},
"resource": {
"hash": "7bd33d02ab448a6cfe803608d27d4d394213ee4cc2998eeaaa31176e4216a161",
"byteLength": 939,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "SS-ALL",
"markerCells": 9,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"model": {
"patches": 5,
"poles": 20,
"trimmed": 1,
"sewn": 1,
"continuity": "C0",
"fillKind": "bezier",
"offsetDistance": 1.5,
"topoRefs": 4,
"objBytes": 641
},
"persistence": {
"mode": "sqlite-opfs",
"byteLength": 846,
"roundTrip": true,
"released": true
},
"opfs": {
"markerSuite": "SURF-CORE",
"patches": 5,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,70 @@
{
"schemaVersion": 1,
"status": "pass",
"browserId": "chrome",
"crossOriginIsolated": true,
"page": {
"views": 2,
"sections": 1,
"dimensions": 1,
"annotations": 1,
"tolerances": 1,
"updatedDimension": 6,
"unresolvedRefs": [
"Vertex3"
],
"unresolvedTolerances": [
"flatness"
]
},
"svg": {
"bytes": 636,
"sha256": "0762dbd1f6d4587e6f59b3596f493aceaf8da5e7fb47b0f08e89e13ba27bcfc9",
"deterministic": true,
"lines": 2,
"accessible": true
},
"pdf": {
"bytes": 872,
"sha256": "fb66bbb3b98ca60a1d75d396124cc1f27d1a89080a82eaf23ae0525fc9709059",
"deterministic": true,
"validHeader": true,
"validXref": true
},
"resources": [
{
"mediaType": "image/svg+xml",
"hash": "0762dbd1f6d4587e6f59b3596f493aceaf8da5e7fb47b0f08e89e13ba27bcfc9",
"byteLength": 636,
"roundTrip": true,
"released": true
},
{
"mediaType": "application/pdf",
"hash": "fb66bbb3b98ca60a1d75d396124cc1f27d1a89080a82eaf23ae0525fc9709059",
"byteLength": 872,
"roundTrip": true,
"released": true
},
{
"mediaType": "application/vnd.bitbybit.techdraw+json",
"hash": "2c0493a55f851c4db55af3d87c002e8584dbb65b038a0a56e8adcdf063d5f3da",
"byteLength": 1934,
"roundTrip": true,
"released": true
}
],
"opfs": {
"markerSuite": "TD-ALL",
"markerViews": 2,
"markerRemoved": true
},
"afterRelease": {
"shapeCount": 0,
"kernelReferenceCount": 0
},
"browser": {
"product": "Chrome/150.0.7871.128",
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36"
}
}

View File

@@ -0,0 +1,34 @@
{
"schemaVersion": 1,
"browserId": "chrome",
"crossOriginIsolated": true,
"status": "pass",
"capabilities": {
"provider": "Bitbybit OCCT",
"version": "1.1.1",
"status": "ready",
"worker": true,
"wasm": true,
"shapeCount": 0,
"kernelReferenceCount": 0,
"releasedShapeCount": 0,
"peakShapeCount": 0,
"peakKernelReferenceCount": 0
},
"topology": {
"faces": 6,
"edges": 12,
"vertices": 8,
"analyticFaces": 6,
"analyticEdges": 12,
"adjacencyKeys": [
6,
6,
12,
12,
8
],
"transientIndexFree": true,
"opfsTopologyRoundTrip": true
}
}

View File

@@ -5,36 +5,36 @@
"Part Design": { "status": "facade-partial", "level": "experimental", "commands": ["create-body", "create-sketch", "pad", "pocket", "revolution", "fillet", "chamfer", "mirrored", "multi-transform", "linear-pattern", "polar-pattern"] },
"Part": { "status": "facade-partial", "level": "experimental", "commands": ["primitive", "union", "cut", "intersection", "check-shape"] },
"Sketcher": { "status": "facade-model", "level": "experimental", "commands": ["new-sketch", "line", "arc", "circle", "rectangle", "constrain-horizontal", "constrain-vertical", "solve-sketch"] },
"Draft": { "status": "ui-prototype", "level": "read-only", "commands": ["working-plane", "snap-settings", "draft-line", "draft-wire", "move", "rotate"] },
"TechDraw": { "status": "ui-prototype", "level": "read-only", "commands": ["new-page", "view-part", "section-view", "dimension", "annotation"] },
"Spreadsheet": { "status": "ui-prototype", "level": "read-only", "commands": ["new-sheet", "set-alias", "expression", "bind-property"] },
"Assembly": { "status": "ui-prototype", "level": "read-only", "commands": ["insert-component", "coincident", "concentric", "distance", "interference"] },
"BIM": { "status": "ui-manifest", "level": "unsupported", "commands": ["wall", "structure", "window", "ifc-export"] },
"CAM": { "status": "ui-manifest", "level": "unsupported", "commands": ["new-job", "stock", "profile-path", "simulate", "post-process"] },
"FEM": { "status": "ui-manifest", "level": "unsupported", "commands": ["new-analysis", "material", "mesh", "solve", "results"] },
"Mesh": { "status": "ui-prototype", "level": "read-only", "commands": ["mesh-import", "analyze-mesh", "repair-mesh", "fill-holes", "mesh-export"] },
"Surface": { "status": "ui-manifest", "level": "unsupported", "commands": ["bspline", "bezier", "fill-surface", "loft-surface", "trim-surface"] },
"Inspection": { "status": "ui-manifest", "level": "unsupported", "commands": ["measure-distance", "measure-angle", "measure-area", "section", "check-dependencies"] },
"AddonManager": { "status": "scope-only", "level": "unsupported", "commands": ["addon-list", "addon-install", "addon-update", "addon-remove"] },
"Draft": { "status": "domain-contract", "level": "experimental", "commands": ["working-plane", "snap-settings", "draft-line", "draft-wire", "draft-circle", "move", "rotate", "scale", "offset", "array", "clone", "layer"] },
"TechDraw": { "status": "domain-contract", "level": "experimental", "commands": ["new-page", "view-part", "section-view", "dimension", "annotation", "svg-export"] },
"Spreadsheet": { "status": "domain-contract", "level": "experimental", "commands": ["new-sheet", "set-alias", "expression", "bind-property", "csv-export"] },
"Assembly": { "status": "domain-contract", "level": "experimental", "commands": ["insert-component", "ground-component", "connector", "coincident", "concentric", "distance", "angle", "solve-assembly", "bom", "collision-check", "explode-view", "variant"] },
"BIM": { "status": "domain-contract", "level": "experimental", "commands": ["wall", "structure", "window", "level", "space", "material", "quantity-schedule", "ifc-export"] },
"CAM": { "status": "domain-contract", "level": "experimental", "commands": ["new-job", "stock", "tool", "profile-path", "simulate", "gcode-export"] },
"FEM": { "status": "domain-contract", "level": "experimental", "commands": ["new-analysis", "material", "mesh", "fix-node", "load", "solve-reference-bar", "results-csv"] },
"Mesh": { "status": "domain-contract", "level": "experimental", "commands": ["mesh-import", "weld-vertices", "analyze-mesh", "remove-degenerate", "repair-triangle", "mesh-transform", "obj-export"] },
"Surface": { "status": "domain-contract", "level": "experimental", "commands": ["bspline", "bezier", "fill-surface", "loft-surface", "trim-surface", "sew-surface", "surface-continuity"] },
"Inspection": { "status": "domain-contract", "level": "experimental", "commands": ["measure-distance", "measure-angle", "measure-area", "measure-volume", "check-dependencies", "csv-report"] },
"AddonManager": { "status": "domain-contract", "level": "experimental", "commands": ["addon-list", "addon-install", "addon-update", "addon-remove", "addon-rollback", "addon-permissions"] },
"Cloud": { "status": "scope-only", "level": "unsupported", "commands": ["cloud-login", "cloud-open", "cloud-save", "cloud-share"] },
"Fem": { "status": "scope-only", "level": "unsupported", "commands": ["new-analysis", "material", "mesh", "solve", "results"] },
"Help": { "status": "scope-only", "level": "unsupported", "commands": ["help-contents", "help-search", "help-about"] },
"Idf": { "status": "scope-only", "level": "unsupported", "commands": ["idf-import", "idf-export"] },
"Import": { "status": "scope-only", "level": "unsupported", "commands": ["import-model", "import-batch", "import-options"] },
"JtReader": { "status": "scope-only", "level": "unsupported", "commands": ["jt-import", "jt-assembly", "jt-export"] },
"Material": { "status": "scope-only", "level": "unsupported", "commands": ["material-card", "material-library", "material-assign"] },
"Idf": { "status": "data-adapter-registry", "level": "read-only", "commands": ["idf-import", "idf-export"] },
"Import": { "status": "domain-contract", "level": "experimental", "commands": ["import-model", "import-batch", "import-options"] },
"JtReader": { "status": "data-adapter-registry", "level": "read-only", "commands": ["jt-import", "jt-assembly", "jt-export"] },
"Material": { "status": "domain-contract", "level": "experimental", "commands": ["material-card", "material-library", "material-assign"] },
"Measure": { "status": "scope-only", "level": "unsupported", "commands": ["measure-distance", "measure-angle", "measure-area", "measure-volume"] },
"MeshPart": { "status": "scope-only", "level": "unsupported", "commands": ["mesh-to-shape", "shape-to-mesh", "mesh-section"] },
"OpenSCAD": { "status": "scope-only", "level": "unsupported", "commands": ["openscad-import", "openscad-export", "openscad-preview"] },
"Plot": { "status": "scope-only", "level": "unsupported", "commands": ["plot-create", "plot-style", "plot-export"] },
"Points": { "status": "scope-only", "level": "unsupported", "commands": ["points-import", "points-filter", "points-export"] },
"ReverseEngineering": { "status": "scope-only", "level": "unsupported", "commands": ["fit-curve", "fit-surface", "reverse-engineer"] },
"Robot": { "status": "scope-only", "level": "unsupported", "commands": ["robot-model", "robot-trajectory", "robot-simulate", "robot-export"] },
"OpenSCAD": { "status": "data-adapter-registry", "level": "read-only", "commands": ["openscad-import", "openscad-export", "openscad-preview"] },
"Plot": { "status": "domain-contract", "level": "experimental", "commands": ["plot-create", "plot-style", "plot-bind", "plot-svg-export", "plot-csv-export"] },
"Points": { "status": "data-adapter-registry", "level": "read-only", "commands": ["points-import", "points-filter", "points-export"] },
"ReverseEngineering": { "status": "data-adapter-registry", "level": "read-only", "commands": ["fit-curve", "fit-surface", "reverse-engineer"] },
"Robot": { "status": "domain-contract", "level": "experimental", "commands": ["robot-model", "joint-limits", "waypoint", "robot-trajectory", "robot-export"] },
"Show": { "status": "scope-only", "level": "unsupported", "commands": ["show-object", "show-share", "show-presentation"] },
"Start": { "status": "scope-only", "level": "unsupported", "commands": ["start-page", "recent-projects", "templates"] },
"Web": { "status": "scope-only", "level": "unsupported", "commands": ["web-export", "web-view", "web-share"] },
"Sandbox": { "status": "scope-only", "level": "unsupported", "commands": [] },
"TemplatePyMod": { "status": "scope-only", "level": "unsupported", "commands": [] },
"TemplatePyMod": { "status": "domain-contract", "level": "experimental", "commands": ["macro-record", "macro-replay", "facade-command"] },
"Test": { "status": "scope-only", "level": "unsupported", "commands": [] },
"Tux": { "status": "scope-only", "level": "unsupported", "commands": [] }
},
@@ -65,23 +65,24 @@
"occtPackage": "packages/dev/occt",
"workerPackage": "packages/dev/occt-worker",
"sourceForm": "generated-wasm-and-typescript-only",
"wasmArtifact": { "path": "node_modules/@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.a4a6ec2a.wasm", "sha256": "1b6a8fc7b83d222854f73b66af8d0e45ad4fdee025904b447e885d4e18ae8656", "status": "compiled-artifact-verified" },
"missingBuildInputs": ["OCCT C++ source checkout", "Embind generation rules", "Emscripten link/export manifest"],
"evidence": "./npmw run check:bitbybit-history"
},
"nativeOcctHistory": {
"status": "built-provider-not-default-runtime",
"status": "built-provider-browser-verified-default-worker",
"sourceCheckout": "OCCT_SOURCE_DIR",
"sourceCommit": "bb75017e915f6509a4bfa8b551f853352754c2da",
"occtVersion": "8.0.0",
"toolchain": "Emscripten 3.1.69 + CMake 3.31.6 + Ninja 1.12.1",
"library": ["TKBO", "TKDESTEP", "TKXSBase", "TKDE"],
"bindings": ["BRepAlgoAPI_Fuse", "BRepAlgoAPI_Cut", "BRepAlgoAPI_Common", "Generated", "Modified", "IsDeleted", "TopExp_Explorer", "STEPControl_Reader", "STEPControl_Writer", "shapeToStep", "booleanHistoryFromStep"],
"library": ["TKBO", "TKBool", "TKFillet", "TKOffset", "TKDESTEP", "TKXSBase", "TKDE"],
"bindings": ["BRepPrimAPI_MakeBox", "BRepPrimAPI_MakeCylinder", "BRepPrimAPI_MakeSphere", "BRepPrimAPI_MakeCone", "BRepPrimAPI_MakePrism", "BRepPrimAPI_MakeRevol", "BRepBuilderAPI_Transform", "BRepFilletAPI_MakeFillet", "BRepFilletAPI_MakeChamfer", "BRepOffsetAPI_DraftAngle", "BRepOffsetAPI_MakePipe", "BRepOffsetAPI_MakeThickSolid", "BRepAlgoAPI_Fuse", "BRepAlgoAPI_Cut", "BRepAlgoAPI_Common", "Generated", "Modified", "IsDeleted", "BRepCheck_Analyzer", "BRepGProp", "BRepBndLib", "TopExp_Explorer", "STEPControl_Reader", "STEPControl_Writer", "shapeToStep", "shapeSummary", "booleanProbe", "booleanResult", "booleanHistoryFromStep", "prismHistoryFromStep", "pocketHistoryFromStep", "loftHistoryFromStep", "pipeHistoryFromStep", "revolutionHistoryFromStep", "grooveHistoryFromStep", "filletHistoryFromStep", "chamferHistoryFromStep", "holeHistoryFromStep", "draftHistoryFromStep", "thicknessHistoryFromStep", "linearPatternHistoryFromStep", "polarPatternHistoryFromStep", "mirroredHistoryFromStep", "multiTransformHistoryFromStep", "makeRectangleFace", "makeRectangleFacePlaced", "makeLineWire"],
"buildOptimization": "OCCT dependencies -O0 with Emscripten -fexceptions; Embind wrapper -O2 with -fexceptions",
"artifact": {
"javascript": "native/occt-history/dist/bitbybit-occt-history.js",
"wasm": "native/occt-history/dist/bitbybit-occt-history.wasm",
"javascriptSha256": "e2feca5a8bab431e3351e6af3972beef4f9ce47fe02de2d0ac7ba9de91882311",
"wasmSha256": "6fac28102132ddeb8e7f1f254c76643d595cc60a26b2adf80fe3d6407b18b675"
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
"wasmSha256": "b6cb6307399b188cdf1377e9294b4af8e36b21783693101db8f985e41cff5fbe"
},
"protocol": "native result and history records stay inside the provider; cross-WASM handles are forbidden; STEP text is the explicit transport boundary",
"historyProtocol": {
@@ -91,26 +92,45 @@
"transport": "step-text",
"cancellation": "AbortSignal",
"timeout": "coordinator-configured",
"staleGuard": "documentId + documentVersion + operationId"
"staleGuard": "documentId + documentVersion + operationId",
"namingEvidence": {
"status": "explicit-runtime-contract",
"mappedNameRef": "optional provider evidence; final-shape-only stages are marked and cannot mint FreeCAD tokens",
"stringHasher": "optional opaque native table; validated and preserved losslessly",
"exactBlockers": ["private FreeCAD token algorithm", "missing native builder stage", "non-unique isomorphic source"]
}
},
"browserWorker": {
"entry": "src/facade/nativeHistoryWorkerEntry.ts",
"client": "src/facade/nativeHistoryWorkerClient.ts",
"moduleUrl": "/native/occt-history/bitbybit-occt-history.js",
"runtimeConfiguration": "BitbybitGeometryRuntime.configureNativeHistory(provider, timeoutMs)",
"artifactPublishCommand": "./npmw run build:occt-history",
"status": "worker-provider-configurable-not-default-runtime"
"artifactPublishCommand": "./npmw run build:occt-history",
"status": "default-application-worker-with-fallback",
"browserVerification": "config/occt-browser-verification.json",
"threeWayVerification": "config/freecad-bitbybit-native-threeway.json",
"operations": ["worker-initialize", "worker-cancel", "worker-stale-isolation", "worker-crash-recovery-contract", "ownership-ledger-metrics", "browser-memory-budget-gate", "upstream-abi-golden-drift-gate", "artifact-dist-public-hash"]
},
"buildCommand": "./npmw run build:occt-history",
"testCommand": "./npmw run test:occt-history"
},
"facadeCapabilities": {
"geometry": { "level": "experimental", "provider": "BitBybit OCCT 1.1.1", "operations": ["box", "cylinder", "sphere", "cone", "placement", "object-placement-recompute", "placement-validation", "mirror-plane", "mirrored-whole-shape", "multi-transform-whole-shape", "union", "cut", "intersection", "part-primitive-recompute", "part-boolean-recompute", "shape-check", "pad", "pocket", "pocket-through-all", "revolution", "fillet", "chamfer", "linear-pattern-whole-shape", "polar-pattern-whole-shape", "hole-basic-origin-normal", "feature-shape-cache", "face-edge-vertex-topology", "step-export", "stl-export"] },
"document": { "level": "experimental", "operations": ["typed-properties", "property-vector", "property-placement", "property-multi-transform", "property-link-list", "property-string-list", "property-link-sub", "expressions", "units", "dependency-dag", "parallel-level-recompute", "sync-recompute", "async-generation-recompute", "root-cause-diagnostics", "repair-branch-recompute", "versioned-toporef", "toporef-migration", "generation-topology-snapshot", "linksub-external-geometry-migration", "ambiguous-deleted-topology-diagnostics", "toporef-candidate-replacement-transaction", "signature-topology-history-fallback", "native-topology-history-adapter", "undo-redo"] },
"geometry": { "level": "experimental", "provider": "BitBybit OCCT 1.1.1", "operations": ["box", "cylinder", "sphere", "cone", "placement", "object-placement-recompute", "placement-validation", "mirror-plane", "mirrored-whole-shape", "multi-transform-whole-shape", "union", "cut", "intersection", "part-primitive-recompute", "part-boolean-recompute", "shape-check", "pad", "pocket", "pocket-through-all", "revolution", "loft", "pipe", "fillet", "chamfer", "linear-pattern-whole-shape", "polar-pattern-whole-shape", "hole-basic-origin-normal", "feature-shape-cache", "face-edge-vertex-topology", "native-cross-feature-history-routing", "step-export", "stl-export"], "featureLevels": { "pad": { "level": "compatible", "exactBlockedBy": ["native MappedNameRef/StringHasher evidence when provider omits it"] }, "pocket": { "level": "compatible", "exactBlockedBy": ["native MappedNameRef/StringHasher evidence when provider omits it"] }, "revolution": { "level": "compatible", "exactBlockedBy": ["native MappedNameRef/StringHasher evidence when provider omits it"] }, "groove": { "level": "compatible", "exactBlockedBy": ["native MappedNameRef/StringHasher evidence when provider omits it", "OCCT/FreeCAD private token generation"] }, "boolean": { "level": "compatible", "exactBlockedBy": ["native MappedNameRef/StringHasher evidence when provider omits it", "isomorphic source ambiguity"] }, "fillet": { "level": "experimental", "exactBlockedBy": ["complete cross-feature native stage history"] }, "chamfer": { "level": "experimental", "exactBlockedBy": ["complete cross-feature native stage history"] }, "multi-transform": { "level": "experimental", "exactBlockedBy": ["feature-list native history", "private naming tokens"] } } },
"document": { "level": "experimental", "operations": ["typed-properties", "property-vector", "property-placement", "property-multi-transform", "property-link-list", "property-string-list", "property-link-sub", "expressions", "units", "dependency-dag", "parallel-level-recompute", "sync-recompute", "async-generation-recompute", "root-cause-diagnostics", "repair-branch-recompute", "versioned-toporef", "toporef-migration", "generation-topology-snapshot", "linksub-external-geometry-migration", "ambiguous-deleted-topology-diagnostics", "adjacency-fingerprint-disambiguation", "toporef-candidate-replacement-transaction", "signature-topology-history-fallback", "native-topology-history-adapter", "native-cross-feature-history-routing", "runtime-mapped-name-ref-evidence", "string-hasher-evidence-validation", "element-map2-multi-stage-name-mapping", "isomorphic-candidate-persistence", "element-map-name-contract", "undo-redo"] },
"persistence": { "level": "experimental", "provider": "SQLite WASM + OPFS with transient fallback", "operations": ["schema-v6", "object-topology-snapshots", "transactional-migrations", "migration-rollback", "serialized-write-queue", "five-version-checkpoints", "checkpoint-load", "recovery-report", "content-addressed-resources", "quota-preflight", "resource-sweep-plan", "opfs-orphan-sweep", "cross-tab-lock-notice"] },
"sketcher": { "level": "experimental", "provider": "typescript-basic; planegcs-wasm unavailable", "operations": ["point-line-circle-arc-model", "ellipse-bspline-model-only", "construction-geometry", "stable-external-geometry-model", "basic-constraints", "diameter-symmetric-tangent", "basic-solver", "versioned-solver-protocol", "solver-capability-probe", "cancel-stale-isolation", "replay-contract", "persistence"] },
"fcstd": { "level": "read-only", "operations": ["zip-preflight", "document-xml-metadata", "document-property-projection", "proxy-report", "script-isolation"] },
"verification": { "level": "experimental", "provider": "FreeCADCmd 1.1.1 native headless Part oracle", "operations": ["locked-source-commit", "reproducible-native-build", "declarative-golden-contract", "part-geometry-replay", "numeric-tolerance-comparison"] }
"sketcher": { "level": "experimental", "provider": "typescript-basic; FreeCAD 1.1.1 planegcs WASM core installed", "operations": ["point-line-circle-arc-model", "ellipse-bspline-periodic-model", "construction-geometry", "geometry-validation", "stable-geometry-signature", "stable-external-geometry-model", "basic-constraints", "advanced-constraint-proxy", "diameter-symmetric-tangent", "basic-solver", "versioned-solver-protocol", "solver-capability-probe", "cancel-stale-isolation", "replay-contract", "planegcs-native-system-solve", "planegcs-horizontal-distance", "planegcs-vertical-distance", "planegcs-distance-x", "planegcs-distance-y", "planegcs-angle", "planegcs-circle-radius", "planegcs-circle-diameter", "planegcs-equal-lines", "planegcs-equal-circles", "planegcs-tangent-circles", "planegcs-point-symmetry", "planegcs-point-on-object", "planegcs-point-on-arc", "planegcs-point-on-ellipse", "planegcs-point-on-cubic-bspline", "planegcs-block-freeze", "planegcs-parallel-lines", "planegcs-perpendicular-lines", "planegcs-coincident-lines", "planegcs-snells-law-lines", "planegcs-ellipse-internal-alignment", "planegcs-cubic-bspline-weight", "planegcs-dedicated-worker-smoke", "persistence"] },
"fcstd": { "level": "read-only", "operations": ["zip-preflight", "document-xml-metadata", "document-property-projection", "live-topology-element-map", "proxy-report", "script-isolation"] },
"viewport": { "level": "experimental", "provider": "Three.js WebGL2", "operations": ["mesh-rendering", "multi-object-mesh-registry", "view-orientation", "fit-and-zoom", "subshape-triangle-mapping", "subshape-click-selection", "subshape-hover-preselection", "subshape-hover-highlight", "occt-analytic-picking-topology", "brep-edge-polyline-picking", "edge-pixel-tolerance-picking", "vertex-pixel-tolerance-picking", "diagnostic-selection-flash", "multi-object-selection-set", "modifier-box-selection-gesture", "window-contained-box-selection", "crossing-intersection-box-selection", "multi-object-selection-highlight", "object-visibility-projection", "selection-resource-release"] },
"verification": { "level": "experimental", "provider": "FreeCADCmd 1.1.1 native headless Part oracle", "operations": ["locked-source-commit", "reproducible-native-build", "declarative-golden-contract", "part-geometry-replay", "numeric-tolerance-comparison", "execution-plan-validation", "source-inventory-validation", "type-property-inventory-validation"] }
},
"systemExactEvaluation": {
"evaluatedAt": "2026-08-09",
"exact": false,
"featureExactCount": 0,
"plan": "config/freecad-web-exact-parity-plan.json",
"promotionTask": "EX-REL-01",
"taskStatus": { "completed": 1, "inProgress": 37, "pending": 14, "blocked": 0 },
"blockers": ["private FreeCAD token algorithm", "missing native builder stage", "non-unique isomorphic source"]
},
"rules": [
"UI status does not imply geometry or file compatibility.",

View File

@@ -6,5 +6,5 @@
"uiContract": "FreeCAD official desktop UI and Developers Handbook",
"compatibilityLevels": ["exact", "compatible", "read-only", "proxy", "unsupported"],
"status": "native-headless-part-oracle-verified",
"notes": "The official 1.1.1 tag and commit are locked. A reproducible local headless Part oracle and five geometry replay fixtures are verified; the digest-locked container, full workbench build, 100 golden files, and 50 error files remain P0-01/P0-03 deliverables."
"notes": "The official 1.1.1 tag and commit are locked. The local headless oracle verifies 100 primary success, 51 primary failure, and 5/5 supplemental Part-family success/failure fixtures. This baseline evidence does not promote the system exact claim."
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,123 @@
{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"source": {
"workbench": "src/Mod/CAM/InitGui.py",
"commandInventory": "config/freecad-gui-command-inventory.json",
"desktopOracle": "config/freecad-desktop-oracle.json",
"dynamicOracleStatus": "partial-command-state-only"
},
"status": "in_progress",
"claim": "compatible-browser-subset-not-exact-freecad-cam-parity",
"commandSurface": {
"toolbarGroups": 4,
"menuGroups": 5,
"webCommands": 60,
"freecadCamRuntimeCommands": 56,
"freecadCamSourceOnlyCommands": 5,
"notYetSurfacedCommands": [],
"nonActionableSourceTemplates": ["CAM_%s"],
"freecadCommandIds": [
"CAM_Adaptive", "CAM_Area", "CAM_Area_Workplane", "CAM_Array", "CAM_Comment", "CAM_Compound", "CAM_Custom", "CAM_Deburr", "CAM_DressupArray", "CAM_DressupAxisMap", "CAM_DressupDogbone", "CAM_DressupDragKnife", "CAM_DressupLeadInOut", "CAM_DressupPathBoundary", "CAM_DressupRampEntry", "CAM_DressupTag", "CAM_DressupTools", "CAM_DressupZCorrect", "CAM_Drilling", "CAM_DrillingTools", "CAM_Engrave", "CAM_EngraveTools", "CAM_ExportTemplate", "CAM_Fixture", "CAM_Helix", "CAM_Inspect", "CAM_Job", "CAM_MillFace", "CAM_OpActiveToggle", "CAM_OperationCopy", "CAM_PathShapeTC", "CAM_Pocket3D", "CAM_Pocket_Shape", "CAM_Post", "CAM_Probe", "CAM_Profile", "CAM_PropertyBag", "CAM_Sanity", "CAM_SelectLoop", "CAM_SetStartPoint", "CAM_Shape", "CAM_SimpleCopy", "CAM_SimTools", "CAM_Simulator", "CAM_SimulatorGL", "CAM_Slot", "CAM_Stop", "CAM_Tapping", "CAM_ThreadMilling", "CAM_ToolBitCreate", "CAM_ToolBitDock", "CAM_ToolBitLibraryOpen", "CAM_ToolBitLoad", "CAM_ToolBitSave", "CAM_ToolBitSaveAs", "CAM_ToolController", "CAM_Vcarve", "CAM_Camotics", "CAM_Copy", "CAM_3dTools"
]
},
"browserDomain": {
"stockModes": 4,
"toolShapes": 7,
"operationKinds": 22,
"dressupKinds": 9,
"postprocessors": 7
},
"coverage": [
{
"id": "CAM-21",
"level": "exact",
"scope": "Locked FreeCAD source command identifiers and CAM command grouping manifest",
"evidence": "check:cam-parity"
},
{
"id": "CAM-22",
"level": "compatible",
"scope": "Sixty actionable CAM commands, four toolbars, five menu groups, Job tree, task panels and viewport toolpath presentation",
"evidence": "check:chrome-app-e2e"
},
{
"id": "CAM-23",
"level": "compatible",
"scope": "Job, four stock modes and SetupSheet browser contract",
"evidence": "check:chrome-cam"
},
{
"id": "CAM-24",
"level": "compatible",
"scope": "Seven ToolBit shapes, versioned JSON assets, tool controllers, feeds, rapids, spindle and coolant",
"evidence": "check:chrome-cam"
},
{
"id": "CAM-25",
"level": "compatible",
"scope": "Twenty-two deterministic browser operation kinds; not native Path algorithms",
"evidence": "test:cam"
},
{
"id": "CAM-26",
"level": "compatible",
"scope": "Nine deterministic path dress-up kinds",
"evidence": "test:cam"
},
{
"id": "CAM-27",
"level": "compatible",
"scope": "Sanity check, deterministic swept-volume material-removal timeline, and path/stock/tool-holder/fixture collision diagnostics",
"evidence": "check:chrome-cam"
},
{
"id": "CAM-28",
"level": "compatible",
"scope": "Seven allowlisted deterministic postprocessors with unsafe post rejection",
"evidence": "check:chrome-cam"
},
{
"id": "CAM-29",
"level": "development",
"scope": "Versioned CAM Job assets, validated import, OPFS snapshot, Undo/Redo, and persistent Comment/PropertyBag/Compound metadata are implemented; FreeCAD native Path::Feature/FeaturePython round-trip and Web Path::PropertyPath resource editing for native Path::Feature plus explicit non-executing FeaturePython opt-in are oracle-verified; FeaturePython operation metadata/recompute and full operation-object semantics remain bounded",
"evidence": "check:chrome-cam"
},
{
"id": "CAM-30",
"level": "compatible",
"scope": "FreeCAD-style task flow and command lifecycle; native Qt Job/Profile Task open/accept/cancel lifecycle is oracle-verified, while full focus, keyboard, validation and all operation panels remain pending",
"evidence": "check:chrome-app-e2e"
},
{
"id": "CAM-31",
"level": "development",
"scope": "OpenCAMLib WASM PathDropCutter, CAMotics source-stage G-code generation, CAMotics 1.3 native Qt/TPL plus CLI sidecars, standalone browser CAMotics sweep WASM, OCCT native BRep removal including continuous-segment sweep, and LinuxCNC XYZBC RTCP post/bridge are verified; full browser CAMotics program/same-input differential, full FreeCAD Path algorithms and complete continuous tool-axis oracle remain open",
"evidence": "check:chrome-camotics-wasm"
},
{
"id": "CAM-32",
"level": "development",
"scope": "LinuxCNC WASM XYZBC machine acceptance is closed for the certified table-rotary-tilting digital case; Qt Task lifecycle, native Path::Feature Web codec, CAMotics native Qt/TPL and CLI sidecars, curved-segment BRep sweep and fail-closed safety matrix are evidenced, while exact dynamic FreeCAD comparison, FeaturePython/full Path semantics, full browser CAMotics differential and production authorization remain closed",
"evidence": "check:chrome-cam-linuxcnc-machine"
}
],
"tasks": {
"completed": 8,
"inProgress": 4,
"pending": 0,
"blocked": 0
},
"unclosedDifferences": [
"Native FreeCAD Path operation algorithms and geometry semantics",
"Complete CAM Qt task-panel validation, focus, keyboard and all operation-dialog state oracle",
"CAMotics full browser program runtime and same-input simulator differential",
"Analytic arbitrary-curved-path native swept-volume material removal and holder/fixture oracle",
"Complete continuous tool-axis/singularity oracle beyond certified XYZBC case",
"FeaturePython operation metadata/recompute and full-operation semantic Path::PropertyPath codec/editable FCStd round-trip",
"Machine-specific production safety authorization and physical actuator/metrology validation"
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"profile": "desktop",
"buildDirectory": ".cache/freecad/build-desktop",
"installDirectory": ".cache/freecad/install-desktop",
"sysrootDirectory": ".cache/freecad/sysroot",
"requiredRuntime": "FreeCAD",
"cmake": {
"buildGui": true,
"developerTests": false,
"pivyProbe": false,
"externalSmesh": false,
"disabledOptionalModules": ["Cloud", "JtReader", "VR", "TemplatePyMod", "Sandbox"]
},
"sourceModules": [
"AddonManager", "Assembly", "BIM", "CAM", "Cloud", "Draft", "Fem", "Help", "Idf", "Import", "Inspection", "JtReader", "Material", "Measure", "Mesh", "MeshPart", "OpenSCAD", "Part", "PartDesign", "Plot", "Points", "ReverseEngineering", "Robot", "Sandbox", "Show", "Sketcher", "Spreadsheet", "Start", "Surface", "TechDraw", "TemplatePyMod", "Test", "Tux", "Web"
],
"evidence": {
"configureCommand": "FREECAD_ORACLE_PROFILE=desktop ./npmw run configure:freecad-native",
"buildCommand": "FREECAD_ORACLE_PROFILE=desktop ./npmw run build:freecad-native",
"probeCommand": "FREECAD_ORACLE_PROFILE=desktop xvfb-run -a ./npmw run probe:freecad-reference",
"checkCommand": "./npmw run check:freecad-desktop-oracle",
"fcstdNativeRoundTripCommand": "./npmw run test:freecad-fcstd-native",
"probeReport": ".cache/freecad/reference-desktop.json"
},
"artifact": {
"path": ".cache/freecad/install-desktop/bin/FreeCAD",
"reportedVersion": "FreeCAD 1.1.1 Revision: 14556 (Git)",
"sizeBytes": 153160,
"sha256": "2c75642f0cdfd8a44ecb46aeb1cd6ef5e5643b313c5e3d617e3766406766ef70"
},
"verification": {
"status": "verified",
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"guiUp": true,
"moduleCount": 34,
"moduleStatusSummary": {
"compiled-importable": 30,
"not-built": 4
},
"disabledModules": ["Cloud", "JtReader", "Sandbox", "TemplatePyMod"],
"probeObjects": ["Part::Box", "Part::Cylinder", "Part::Sphere", "Part::Cone", "Part::Feature", "PartDesign::Feature", "Sketcher::SketchObject"]
},
"status": "desktop-build-probed"
}

View File

@@ -0,0 +1,577 @@
{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d"
},
"generatedBy": "scripts/generate-freecad-entrypoint-inventory.mjs",
"sourceInventory": "config/freecad-source-inventory.json",
"formats": [
{
"id": "FCStd",
"category": "project",
"modules": [
"App",
"Gui"
],
"sourceEvidence": [
"src/App/Document.cpp",
"src/Gui/Document.cpp"
],
"webStrategy": "native-parser",
"compatibility": "read-only",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "BREP",
"category": "geometry",
"modules": [
"Part"
],
"sourceEvidence": [
"src/Mod/Part/App/FeaturePartImportBrep.cpp"
],
"webStrategy": "occt-worker",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "STEP",
"category": "geometry",
"modules": [
"Part",
"Import"
],
"sourceEvidence": [
"src/Mod/Part/App/FeaturePartImportStep.cpp",
"src/Mod/Import/App/WriterStep.cpp"
],
"webStrategy": "occt-worker",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "IGES",
"category": "geometry",
"modules": [
"Part",
"Import"
],
"sourceEvidence": [
"src/Mod/Part/App/FeaturePartImportIges.cpp",
"src/Mod/Import/App/WriterIges.cpp"
],
"webStrategy": "occt-worker",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "STL",
"category": "mesh",
"modules": [
"Mesh",
"MeshPart"
],
"sourceEvidence": [
"src/Mod/Mesh/App/Importer.cpp",
"src/Mod/Mesh/App/Exporter.cpp"
],
"webStrategy": "worker-adapter",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "OBJ",
"category": "mesh",
"modules": [
"Mesh"
],
"sourceEvidence": [
"src/Mod/Mesh/App/Importer.cpp",
"src/Mod/Mesh/App/Exporter.cpp"
],
"webStrategy": "worker-adapter",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "PLY",
"category": "mesh",
"modules": [
"Mesh"
],
"sourceEvidence": [
"src/Mod/Mesh/App/Importer.cpp",
"src/Mod/Mesh/App/Exporter.cpp"
],
"webStrategy": "worker-adapter",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "DXF",
"category": "2d",
"modules": [
"Draft",
"Import"
],
"sourceEvidence": [
"src/Mod/Draft/importDXF.py",
"src/Mod/Import/App/dxf/ImpExpDxf.cpp"
],
"webStrategy": "worker-adapter",
"compatibility": "read-only",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "SVG",
"category": "drawing",
"modules": [
"Draft",
"TechDraw"
],
"sourceEvidence": [
"src/Mod/Draft/importSVG.py",
"src/Mod/TechDraw/App/TechDrawExport.cpp"
],
"webStrategy": "sanitized-parser",
"compatibility": "read-only",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "PDF",
"category": "drawing",
"modules": [
"TechDraw"
],
"sourceEvidence": [
"src/Mod/TechDraw/App/TechDrawExport.cpp"
],
"webStrategy": "server-export",
"compatibility": "read-only",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "IFC",
"category": "bim",
"modules": [
"BIM"
],
"sourceEvidence": [
"src/Mod/BIM/importers/importIFC.py"
],
"webStrategy": "sandboxed-adapter",
"compatibility": "unsupported",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "CSV",
"category": "data",
"modules": [
"Spreadsheet"
],
"sourceEvidence": [
"src/Mod/Spreadsheet/App/SheetPyImp.cpp"
],
"webStrategy": "facade-parser",
"compatibility": "experimental",
"roundTrip": true,
"status": "inventory-recorded"
},
{
"id": "GCODE",
"category": "manufacturing",
"modules": [
"CAM"
],
"sourceEvidence": [
"src/Mod/CAM/PathCommands.py"
],
"webStrategy": "sandboxed-adapter",
"compatibility": "unsupported",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "JT",
"category": "geometry",
"modules": [
"JtReader"
],
"sourceEvidence": [
"src/Mod/JtReader/CMakeLists.txt"
],
"webStrategy": "proxy-resource",
"compatibility": "unsupported",
"roundTrip": false,
"status": "inventory-recorded"
},
{
"id": "IDF",
"category": "electronics",
"modules": [
"Idf"
],
"sourceEvidence": [
"src/Mod/Idf/Idf.py"
],
"webStrategy": "proxy-resource",
"compatibility": "unsupported",
"roundTrip": false,
"status": "inventory-recorded"
}
],
"entrypoints": [
{
"id": "python-api",
"category": "scripting",
"modules": [
"App",
"Gui"
],
"sourceEvidence": [
"src/App/ApplicationPy.cpp",
"src/Gui/ApplicationPy.cpp"
],
"webStrategy": "sandboxed-interpreter",
"compatibility": "unsupported",
"execution": false,
"status": "inventory-recorded"
},
{
"id": "macro-fcmacro",
"category": "scripting",
"modules": [
"Gui"
],
"sourceEvidence": [
"src/Gui/CommandMacro.cpp"
],
"webStrategy": "blocked-resource",
"compatibility": "unsupported",
"execution": false,
"status": "inventory-recorded"
},
{
"id": "addon-package",
"category": "extension",
"modules": [
"AddonManager"
],
"sourceEvidence": [
"src/Mod/AddonManager"
],
"webStrategy": "signed-catalog",
"compatibility": "unsupported",
"execution": false,
"status": "inventory-recorded"
},
{
"id": "preferences",
"category": "configuration",
"modules": [
"App",
"Gui"
],
"sourceEvidence": [
"src/Base/Parameter.cpp",
"src/Gui/PreferencePages"
],
"webStrategy": "namespaced-settings",
"compatibility": "experimental",
"execution": false,
"status": "inventory-recorded"
},
{
"id": "clipboard",
"category": "desktop",
"modules": [
"Gui"
],
"sourceEvidence": [
"src/Gui/MainWindow.cpp"
],
"webStrategy": "browser-clipboard-permission",
"compatibility": "unsupported",
"execution": false,
"status": "inventory-recorded"
},
{
"id": "print-job",
"category": "desktop",
"modules": [
"Gui",
"TechDraw"
],
"sourceEvidence": [
"src/Gui/MainWindow.cpp",
"src/Mod/TechDraw/Gui/PagePrinter.cpp"
],
"webStrategy": "server-export",
"compatibility": "unsupported",
"execution": false,
"status": "inventory-recorded"
}
],
"moduleCoverage": [
{
"name": "AddonManager",
"sourcePath": "src/Mod/AddonManager",
"coveredBy": [
"addon-package"
],
"status": "entrypoint-covered"
},
{
"name": "Assembly",
"sourcePath": "src/Mod/Assembly",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "BIM",
"sourcePath": "src/Mod/BIM",
"coveredBy": [
"IFC"
],
"status": "entrypoint-covered"
},
{
"name": "CAM",
"sourcePath": "src/Mod/CAM",
"coveredBy": [
"GCODE"
],
"status": "entrypoint-covered"
},
{
"name": "Cloud",
"sourcePath": "src/Mod/Cloud",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Draft",
"sourcePath": "src/Mod/Draft",
"coveredBy": [
"DXF",
"SVG"
],
"status": "entrypoint-covered"
},
{
"name": "Fem",
"sourcePath": "src/Mod/Fem",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Help",
"sourcePath": "src/Mod/Help",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Idf",
"sourcePath": "src/Mod/Idf",
"coveredBy": [
"IDF"
],
"status": "entrypoint-covered"
},
{
"name": "Import",
"sourcePath": "src/Mod/Import",
"coveredBy": [
"STEP",
"IGES",
"DXF"
],
"status": "entrypoint-covered"
},
{
"name": "Inspection",
"sourcePath": "src/Mod/Inspection",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "JtReader",
"sourcePath": "src/Mod/JtReader",
"coveredBy": [
"JT"
],
"status": "entrypoint-covered"
},
{
"name": "Material",
"sourcePath": "src/Mod/Material",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Measure",
"sourcePath": "src/Mod/Measure",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Mesh",
"sourcePath": "src/Mod/Mesh",
"coveredBy": [
"STL",
"OBJ",
"PLY"
],
"status": "entrypoint-covered"
},
{
"name": "MeshPart",
"sourcePath": "src/Mod/MeshPart",
"coveredBy": [
"STL"
],
"status": "entrypoint-covered"
},
{
"name": "OpenSCAD",
"sourcePath": "src/Mod/OpenSCAD",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Part",
"sourcePath": "src/Mod/Part",
"coveredBy": [
"BREP",
"STEP",
"IGES"
],
"status": "entrypoint-covered"
},
{
"name": "PartDesign",
"sourcePath": "src/Mod/PartDesign",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Plot",
"sourcePath": "src/Mod/Plot",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Points",
"sourcePath": "src/Mod/Points",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "ReverseEngineering",
"sourcePath": "src/Mod/ReverseEngineering",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Robot",
"sourcePath": "src/Mod/Robot",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Sandbox",
"sourcePath": "src/Mod/Sandbox",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Show",
"sourcePath": "src/Mod/Show",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Sketcher",
"sourcePath": "src/Mod/Sketcher",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Spreadsheet",
"sourcePath": "src/Mod/Spreadsheet",
"coveredBy": [
"CSV"
],
"status": "entrypoint-covered"
},
{
"name": "Start",
"sourcePath": "src/Mod/Start",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Surface",
"sourcePath": "src/Mod/Surface",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "TechDraw",
"sourcePath": "src/Mod/TechDraw",
"coveredBy": [
"SVG",
"PDF",
"print-job"
],
"status": "entrypoint-covered"
},
{
"name": "TemplatePyMod",
"sourcePath": "src/Mod/TemplatePyMod",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Test",
"sourcePath": "src/Mod/Test",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Tux",
"sourcePath": "src/Mod/Tux",
"coveredBy": [],
"status": "scope-only"
},
{
"name": "Web",
"sourcePath": "src/Mod/Web",
"coveredBy": [],
"status": "scope-only"
}
],
"policy": {
"unsupportedExecution": [
"Python API",
"FCMacro",
"addon package",
"clipboard",
"print job"
],
"unknownOrUnlistedEntries": "fail-inventory-check",
"untrustedContent": "never-execute"
}
}

View File

@@ -0,0 +1,20 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1-composite-history-elementmap2",
"requiredCases": 30,
"requiredFreecadVersion": "1.1.1",
"requiredFreecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"requirements": {
"wrongBindings": 0,
"unexplainedRelations": 0,
"roundtripNameDrift": 0,
"elementMap2ParseFailures": 0,
"elementMap2SemanticFailures": 0,
"elementMap2TokenWriterFailures": 0,
"stringHasherParseFailures": 0,
"stringHasherSemanticFailures": 0,
"stringHasherEvidenceFailures": 0,
"namingEvidenceMissing": 0,
"namingEvidenceBoundaryViolations": 0
}
}

View File

@@ -0,0 +1,215 @@
{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"bitbybitVersion": "1.1.1",
"occtNativeVersion": "8.0.0"
},
"lanes": [
{ "id": "ORACLE", "ownerRole": "FreeCAD reference and inventory", "scope": "Desktop/headless oracle, manifests, golden fixtures" },
{ "id": "KERNEL", "ownerRole": "Geometry kernel and WASM", "scope": "Bitbybit, OCCT bindings, Workers, shape ownership" },
{ "id": "TOPO", "ownerRole": "Topology naming", "scope": "TopoRef, history, signatures, migration and selection" },
{ "id": "SKETCH", "ownerRole": "Sketcher solver", "scope": "planegcs, constraints, sketch editing and diagnostics" },
{ "id": "CORE", "ownerRole": "Parametric document core", "scope": "Document, DAG, Part, PartDesign, Body and attachment" },
{ "id": "IO", "ownerRole": "Persistence and interoperability", "scope": "FCStd, BRep resources, formats and round-trip" },
{ "id": "DOC", "ownerRole": "Production workbenches", "scope": "TechDraw, Spreadsheet, Draft and Plot" },
{ "id": "ENGINEERING", "ownerRole": "Engineering workbenches", "scope": "Assembly, BIM, Mesh and Surface" },
{ "id": "PLATFORM", "ownerRole": "Analysis and platform capabilities", "scope": "FEM, CAM, Robot, Inspection, data, addons and scripts" },
{ "id": "QUALITY", "ownerRole": "Quality and release", "scope": "Browsers, performance, security, migrations and release" }
],
"gates": [
{ "id": "G0", "title": "Reference inventory", "requiredPrograms": ["P01"] },
{ "id": "G1", "title": "Browser geometry kernel", "requiredPrograms": ["P02"] },
{ "id": "G2", "title": "Stable topology", "requiredPrograms": ["P03"] },
{ "id": "G3", "title": "Sketcher parity", "requiredPrograms": ["P04"] },
{ "id": "G4", "title": "Parametric Part and PartDesign", "requiredPrograms": ["P05"] },
{ "id": "G5", "title": "FCStd round-trip", "requiredPrograms": ["P06"] },
{ "id": "G6", "title": "Production workbenches", "requiredPrograms": ["P07"] },
{ "id": "G7", "title": "Engineering workbenches", "requiredPrograms": ["P08"] },
{ "id": "G8", "title": "Analysis and platform", "requiredPrograms": ["P09"] },
{ "id": "G9", "title": "Release", "requiredPrograms": ["P10"] }
],
"programs": [
{
"id": "P01",
"title": "Complete desktop FreeCAD oracle and 34-module inventory",
"ownerLane": "ORACLE",
"dependencies": [],
"gate": "G0",
"tasks": [
{ "id": "ORA-01", "title": "Create full desktop oracle build profile", "status": "completed", "dependencies": [], "deliverables": ["Pinned GUI/workbench CMake profile", "Build manifest and hashes"], "acceptance": ["Clean build reports FreeCAD 1.1.1 at the locked commit", "GUI and workbench modules are probeable"] },
{ "id": "ORA-02", "title": "Extend runtime probe for GUI and module failure classes", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["GUI-aware probe", "Compiled/import/gui-only status model"], "acceptance": ["Probe distinguishes missing build, import failure and GUI-only", "Report is deterministic JSON"] },
{ "id": "INV-01", "title": "Generate 34-module and workbench inventory", "status": "completed", "dependencies": ["ORA-02"], "deliverables": ["Module/workbench/command manifest", "Source locations"], "acceptance": ["All src/Mod directories are classified", "No unregistered workbench command"] },
{ "id": "INV-02", "title": "Inventory TypeId and Property metadata", "status": "completed", "dependencies": ["ORA-02"], "deliverables": ["TypeId/property/default/status manifest", "Source-traceable static TypeId/property candidate inventory", "Minimal object fixtures"], "acceptance": ["Core objects trace to source and runtime", "Read-only/hidden/output flags are recorded", "Static candidates are reproducible from the locked source checkout and remain explicitly unpromoted until runtime probes confirm them"] },
{ "id": "INV-03", "title": "Inventory GUI commands and selection preconditions", "status": "completed", "dependencies": ["INV-01"], "deliverables": ["Menu/toolbar/context/shortcut map", "Selection and task preconditions"], "acceptance": ["Every GUI command has enabled/disabled oracle cases"] },
{ "id": "INV-04", "title": "Inventory formats, preferences, Python and addon entry points", "status": "completed", "dependencies": ["INV-01"], "deliverables": ["Format and optional-library matrix", "Preference/API/addon inventory"], "acceptance": ["Every entry has web strategy and compatibility level"] },
{ "id": "BASE-03", "title": "Expand oracle fixtures", "status": "completed", "dependencies": ["INV-02", "INV-03"], "deliverables": ["100 success fixtures", "51 failure fixtures"], "acceptance": ["Fixtures cover core objects, units, topology changes and errors"] },
{ "id": "BASE-04", "title": "Build oracle-to-Web semantic comparator", "status": "completed", "dependencies": ["BASE-03"], "deliverables": ["Tree/property/shape/topology comparator", "Diff report schema"], "acceptance": ["Known differences are explicit", "Unknown differences fail the gate"] }
]
},
{
"id": "P02",
"title": "Native OCCT Worker browser execution and Boolean gates",
"ownerLane": "KERNEL",
"dependencies": ["P01"],
"gate": "G1",
"tasks": [
{ "id": "BYB-03", "title": "Reproducible Bitbybit and OCCT source build", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["Pinned toolchain build", "Patch, ABI, hash and license manifest"], "acceptance": ["Clean rebuild has the declared exports and traceable hashes"] },
{ "id": "BYB-05", "title": "Version and harden Worker protocol", "status": "completed", "dependencies": ["BYB-03"], "deliverables": ["Capabilities handshake", "Cancellation, timeout, crash and stale-result protocol"], "acceptance": ["Malformed messages fail safely", "Restart does not accept stale results"] },
{ "id": "BYB-06", "title": "Define shape ownership and release accounting", "status": "completed", "dependencies": ["BYB-05"], "deliverables": ["Ownership ledger", "Reference counting and disposal metrics", "Browser Worker crash recovery and reinitialization contract"], "acceptance": ["No use-after-release", "Long Boolean sessions remain within memory budget", "A failed Worker is replaced before a retry and pending requests are rejected"] },
{ "id": "BROWSER-OCCT-01", "title": "Instantiate native history WASM in Chrome", "status": "completed", "dependencies": ["BYB-05"], "deliverables": ["Chrome harness", "COOP/COEP, OPFS, and artifact-loading evidence"], "acceptance": ["JS/WASM Worker initializes in Chrome", "Abort and worker crash are recoverable"] },
{ "id": "BYB-07", "title": "Run three-way Boolean golden comparison", "status": "completed", "dependencies": ["BROWSER-OCCT-01", "BASE-04"], "deliverables": ["Fuse/Cut/Common FreeCAD-Bitbybit-native reports", "Tolerance and error taxonomy"], "acceptance": ["Geometry and history differences are explained", "No silent topology mismatch"] },
{ "id": "MEM-OCCT-01", "title": "Enforce Worker memory gate", "status": "completed", "dependencies": ["BYB-06", "BYB-07"], "deliverables": ["1000-operation stress fixture", "Heap/WASM/GPU retention report"], "acceptance": ["Peak and retained memory meet budgets", "All temporary shapes are accounted for"] },
{ "id": "BYB-08", "title": "Automate upstream ABI and golden drift", "status": "completed", "dependencies": ["BYB-07"], "deliverables": ["API/ABI diff job", "Golden drift report"], "acceptance": ["Dependency upgrades cannot silently change capabilities"] }
]
},
{
"id": "P03",
"title": "Stable TopoRef, signatures and mutation replay",
"ownerLane": "TOPO",
"dependencies": ["P02"],
"gate": "G2",
"tasks": [
{ "id": "TSN-03", "title": "Complete native history coverage", "status": "completed", "dependencies": ["BYB-07"], "deliverables": ["Generated/Modified/Deleted for Boolean and features"], "acceptance": ["Every source subshape has an explainable relation"] },
{ "id": "TSN-04", "title": "Implement analytic curve and surface signatures", "status": "completed", "dependencies": ["TSN-03"], "deliverables": ["Curve/surface parameter signatures", "Orientation and tolerance normalization"], "acceptance": ["Signatures do not depend on triangulation precision"] },
{ "id": "TSN-05", "title": "Add adjacency and confidence matching", "status": "completed", "dependencies": ["TSN-04"], "deliverables": ["Adjacency graph", "One-to-one/one-to-many scoring"], "acceptance": ["Rigid transforms and parameter edits retain safe references"] },
{ "id": "TSN-06", "title": "Handle symmetry, split and merge ambiguity", "status": "completed", "dependencies": ["TSN-05"], "deliverables": ["Ambiguity policy", "Candidate and confidence diagnostics"], "acceptance": ["Low confidence never binds silently"] },
{ "id": "TSN-07", "title": "Map Boolean, Pattern and cross-Body history", "status": "completed", "dependencies": ["TSN-03", "TSN-06"], "deliverables": ["Multi-input source mapping", "Pattern instance lineage"], "acceptance": ["Every result relation identifies its source object"] },
{ "id": "TSN-08", "title": "Persist and migrate TopoRef everywhere", "status": "completed", "dependencies": ["TSN-07"], "deliverables": ["LinkSub/external geometry/FCStd migration", "Schema upgrade fixtures"], "acceptance": ["Save/load and version upgrades preserve stable/ambiguous/deleted states"] },
{ "id": "TSN-09", "title": "Connect 3D pick, preselect and candidate repair", "status": "completed", "dependencies": ["TSN-08"], "deliverables": ["Facade selection contract", "Candidate highlight and repair flow"], "acceptance": ["UI never persists transient mesh indexes"] },
{ "id": "TSN-10", "title": "Run parameter mutation and fuzz replay", "status": "completed", "dependencies": ["TSN-07", "TSN-09"], "deliverables": ["100-model/1000-mutation suite", "Wrong-bind audit"], "acceptance": ["No silent wrong binding", "All ambiguity is diagnosable"] }
]
},
{
"id": "P04",
"title": "planegcs WASM and complete Sketcher constraints",
"ownerLane": "SKETCH",
"dependencies": ["P01", "P03"],
"gate": "G3",
"tasks": [
{ "id": "SK-03", "title": "Build planegcs WASM", "status": "completed", "dependencies": ["ORA-01"], "deliverables": ["Minimal source graph", "Emscripten build and hashes"], "acceptance": ["Deterministic solve works in a dedicated Worker"] },
{ "id": "SK-04", "title": "Finalize solver protocol and lifecycle", "status": "completed", "dependencies": ["SK-03"], "deliverables": ["Capabilities and diagnostics", "Cancel/stale/crash recovery"], "acceptance": ["Provider replacement does not change Facade contracts"] },
{ "id": "SK-05", "title": "Complete sketch geometry model", "status": "completed", "dependencies": ["SK-04"], "deliverables": ["Ellipse, B-spline, periodic and construction geometry"], "acceptance": ["Geometry round-trips with stable IDs"] },
{ "id": "SK-06", "title": "Implement complete geometric constraints", "status": "completed", "dependencies": ["SK-04", "SK-05"], "deliverables": ["Coincident through block constraint set"], "acceptance": ["Each constraint has FreeCAD success and failure fixtures"] },
{ "id": "SK-07", "title": "Implement dimensional/reference constraints and diagnoses", "status": "completed", "dependencies": ["SK-06"], "deliverables": ["Driving/reference dimensions", "DOF/redundant/conflicting classification"], "acceptance": ["Solver classifications match FreeCAD fixtures"] },
{ "id": "SK-08", "title": "Implement support and external geometry", "status": "completed", "dependencies": ["TSN-09", "SK-06"], "deliverables": ["Plane/face support", "Projection and CarbonCopy"], "acceptance": ["Upstream topology migration updates sketch references safely"] },
{ "id": "SK-09", "title": "Complete interactive editor", "status": "completed", "dependencies": ["SK-07", "SK-08"], "deliverables": ["Trim/extend/split/drag/autoconstraint", "Keyboard and pointer replay"], "acceptance": ["Editing and task lifecycle match oracle behavior"] },
{ "id": "SK-10", "title": "Complete B-spline editing", "status": "completed", "dependencies": ["SK-05", "SK-09"], "deliverables": ["Poles/knots/weights/degree/periodic editing"], "acceptance": ["B-spline constraints and round-trip fixtures pass"] },
{ "id": "SK-11", "title": "Validate feature profiles", "status": "completed", "dependencies": ["SK-08", "SK-10"], "deliverables": ["Open/closed/multi-ring/self-intersection classifier"], "acceptance": ["PartDesign consumes profiles with FreeCAD-compatible errors"] },
{ "id": "SK-12", "title": "Run Sketcher golden and stress suite", "status": "completed", "dependencies": ["SK-07", "SK-09", "SK-11"], "deliverables": ["500-model suite", "Solve time and determinism report"], "acceptance": ["Success, conflict, redundancy and drag cases pass budgets"] }
]
},
{
"id": "P05",
"title": "Part and PartDesign parametric closure",
"ownerLane": "CORE",
"dependencies": ["P03", "P04"],
"gate": "G4",
"tasks": [
{ "id": "CORE-09", "title": "Complete Body, Origin and Tip rules", "status": "completed", "dependencies": ["TSN-08"], "deliverables": ["Feature ordering and Tip redirection", "Single-solid enforcement"], "acceptance": ["Suppression, deletion and reorder match FreeCAD"] },
{ "id": "CORE-10", "title": "Implement Support and MapMode", "status": "completed", "dependencies": ["TSN-09", "CORE-09"], "deliverables": ["Support schema", "Attachment engine modes"], "acceptance": ["Face/plane support survives topology migration"] },
{ "id": "CORE-11", "title": "Implement AttachmentOffset and local coordinates", "status": "completed", "dependencies": ["CORE-10"], "deliverables": ["Placement composition", "Local coordinate-chain tests"], "acceptance": ["Result placements match FreeCAD within tolerance"] },
{ "id": "PART-ALL", "title": "Complete Part objects and operations", "status": "completed", "dependencies": ["TSN-07", "CORE-11"], "deliverables": ["Primitive, Boolean, builder, modification and check operations"], "acceptance": ["Part command fixtures and STEP/IGES/BREP gates pass"] },
{ "id": "PD-BASE", "title": "Complete Pad, Pocket, Revolution and Groove modes", "status": "completed", "dependencies": ["SK-11", "CORE-11"], "deliverables": ["Lengths, to-face, through-all, taper and midplane modes"], "acceptance": ["Parameter edits recompute with native history"] },
{ "id": "PD-LOFT", "title": "Implement additive/subtractive loft and pipe", "status": "completed", "dependencies": ["PD-BASE"], "deliverables": ["Section/path/transition features"], "acceptance": ["Failure recovery retains the last valid shape"] },
{ "id": "PD-DRESSUP", "title": "Complete dress-up features", "status": "completed", "dependencies": ["TSN-09", "PD-BASE"], "deliverables": ["Fillet/chamfer/draft/thickness with stable selections"], "acceptance": ["Edge/face changes migrate or report ambiguity"] },
{ "id": "PD-TRANSFORM", "title": "Complete transforms and Hole", "status": "completed", "dependencies": ["CORE-10", "PD-DRESSUP"], "deliverables": ["Feature-list transforms", "Full Hole standards and placement"], "acceptance": ["Single-solid, axis/plane and thread semantics are tested"] },
{ "id": "PD-CLOSURE", "title": "Run full parametric lifecycle", "status": "completed", "dependencies": ["PART-ALL", "PD-LOFT", "PD-TRANSFORM"], "deliverables": ["Create/edit/recompute/undo/save/load suite"], "acceptance": ["No stale shapes or broken Tip/Support references"] }
]
},
{
"id": "P06",
"title": "FCStd bidirectional round-trip",
"ownerLane": "IO",
"dependencies": ["P03", "P05"],
"gate": "G5",
"tasks": [
{ "id": "FC-04", "title": "Map Document.xml and GuiDocument.xml", "status": "completed", "dependencies": ["INV-02"], "deliverables": ["Object/property/extension mapper", "View state mapper"], "acceptance": ["Known metadata round-trips without semantic loss"] },
{ "id": "FC-05", "title": "Read and write BRep/Shape resources", "status": "completed", "dependencies": ["PART-ALL", "FC-04"], "deliverables": ["Shape resource resolver", "Topology/precision/color report"], "acceptance": ["Shape counts and mass properties match oracle"] },
{ "id": "FC-06", "title": "Serialize expressions, links, TopoRef and Sketcher", "status": "completed", "dependencies": ["TSN-08", "SK-12", "FC-04"], "deliverables": ["Typed property codecs", "Reference migration report"], "acceptance": ["FreeCAD can recompute supported objects after save"] },
{ "id": "FC-07", "title": "Preserve unknown XML and resources", "status": "completed", "dependencies": ["FC-04"], "deliverables": ["Opaque extension store", "Script isolation metadata"], "acceptance": ["Unknown/proxy bytes survive read-write unchanged"] },
{ "id": "FC-08", "title": "Complete STEP, IGES and BREP exchange", "status": "completed", "dependencies": ["FC-05"], "deliverables": ["Import/export adapters", "Units/colors/tolerance report"], "acceptance": ["100-model format golden suite passes"] },
{ "id": "FC-09", "title": "Complete secondary format adapters", "status": "completed", "dependencies": ["FC-08"], "deliverables": ["Mesh/2D/BIM/data format matrix"], "acceptance": ["Each format has success, failure and round-trip evidence"] },
{ "id": "FC-10", "title": "Run FreeCAD-Web-FreeCAD round-trip", "status": "completed", "dependencies": ["FC-05", "FC-06", "FC-07"], "deliverables": ["Core editable-object reports", "Proxy byte-preservation reports"], "acceptance": ["No silent loss", "All differences are classified"] },
{ "id": "FC-11", "title": "Harden large and corrupt file handling", "status": "completed", "dependencies": ["FC-10"], "deliverables": ["Streaming/limit/cancel/recovery tests"], "acceptance": ["Files within limits do not crash", "Over-limit files fail explicitly"] }
]
},
{
"id": "P07",
"title": "TechDraw, Spreadsheet, Draft and Plot",
"ownerLane": "DOC",
"dependencies": ["P05", "P06"],
"gate": "G6",
"tasks": [
{ "id": "TD-ALL", "title": "Complete TechDraw", "status": "completed", "dependencies": ["TSN-09", "FC-06"], "deliverables": ["Pages/views/sections/dimensions/annotations", "SVG/PDF output"], "acceptance": ["Projection, scale and TopoRef update fixtures pass"] },
{ "id": "SS-ALL", "title": "Complete Spreadsheet", "status": "completed", "dependencies": ["FC-06"], "deliverables": ["Cells/formulas/aliases/styles/bindings", "CSV and large-sheet support"], "acceptance": ["DAG cycles and object bindings match FreeCAD"] },
{ "id": "DRAFT-BASE", "title": "Complete Draft geometry and working plane", "status": "completed", "dependencies": ["CORE-11", "SK-12"], "deliverables": ["Working plane/snap/grid", "Parametric 2D objects"], "acceptance": ["Creation and edit fixtures match oracle"] },
{ "id": "DRAFT-OPS", "title": "Complete Draft operations and layers", "status": "completed", "dependencies": ["DRAFT-BASE"], "deliverables": ["Move/rotate/scale/offset/trim/array/clone", "Layer behavior"], "acceptance": ["Dependencies and round-trip remain parametric"] },
{ "id": "PLOT-ALL", "title": "Complete Plot", "status": "completed", "dependencies": ["SS-ALL"], "deliverables": ["Series/axes/legend/styles/bindings", "Image/SVG/CSV output"], "acceptance": ["Bound plots update deterministically"] },
{ "id": "DOC-CLOSURE", "title": "Run production-document workflow", "status": "completed", "dependencies": ["TD-ALL", "SS-ALL", "DRAFT-OPS", "PLOT-ALL"], "deliverables": ["Cross-workbench document fixtures"], "acceptance": ["Create/edit/save/load/export succeeds across all four workbenches"] }
]
},
{
"id": "P08",
"title": "Assembly, BIM, Mesh and Surface",
"ownerLane": "ENGINEERING",
"dependencies": ["P05", "P06"],
"gate": "G7",
"tasks": [
{ "id": "ASM-CORE", "title": "Implement Assembly model and solver", "status": "completed", "dependencies": ["CORE-09", "FC-06"], "deliverables": ["Components/links/LCS/joints", "Solver Worker and diagnostics"], "acceptance": ["Fixed, distance, angle and motion fixtures pass"] },
{ "id": "ASM-TOOLS", "title": "Complete Assembly tools", "status": "completed", "dependencies": ["ASM-CORE"], "deliverables": ["Collision/exploded view/BOM/variants"], "acceptance": ["Large assembly and FCStd gates pass"] },
{ "id": "BIM-CORE", "title": "Implement BIM object model", "status": "completed", "dependencies": ["DRAFT-OPS", "SS-ALL"], "deliverables": ["Site/building/level/space and elements", "Materials and property sets"], "acceptance": ["Parametric edits and quantity schedules pass"] },
{ "id": "BIM-IFC", "title": "Implement IFC interoperability", "status": "completed", "dependencies": ["BIM-CORE", "FC-09"], "deliverables": ["IFC2x3/IFC4 import/export", "Classification and proxy report"], "acceptance": ["Geometry, hierarchy and properties round-trip"] },
{ "id": "MESH-CORE", "title": "Complete Mesh and MeshPart", "status": "completed", "dependencies": ["FC-09", "BYB-06"], "deliverables": ["Import/export/convert/analyze/repair", "Worker and LOD pipeline"], "acceptance": ["Non-manifold/self-intersection/hole fixtures pass"] },
{ "id": "SURF-CORE", "title": "Complete Surface modeling", "status": "completed", "dependencies": ["TSN-04", "PART-ALL"], "deliverables": ["Bezier/BSpline/fill/offset/trim/join", "Continuity and tolerance diagnostics"], "acceptance": ["Surface geometry and TopoRef fixtures pass"] },
{ "id": "ENG-CLOSURE", "title": "Run engineering-workbench integration", "status": "completed", "dependencies": ["ASM-TOOLS", "BIM-IFC", "MESH-CORE", "SURF-CORE"], "deliverables": ["Large mixed engineering projects"], "acceptance": ["Cross-workbench save/load and performance budgets pass"] }
]
},
{
"id": "P09",
"title": "FEM, CAM, Robot, Inspection, data, addons and scripting",
"ownerLane": "PLATFORM",
"dependencies": ["P06", "P08"],
"gate": "G8",
"tasks": [
{ "id": "FEM-ALL", "title": "Complete FEM workflow", "status": "completed", "dependencies": ["MESH-CORE", "BIM-CORE"], "deliverables": ["Analysis/material/sets/loads/meshing", "Solver strategy and result fields"], "acceptance": ["Reference solves or explicit remote capability pass"] },
{ "id": "CAM-ALL", "title": "Complete CAM workflow", "status": "completed", "dependencies": ["PART-ALL", "MESH-CORE"], "deliverables": ["Job/stock/tools/operations/simulation", "Sandboxed posts and G-code"], "acceptance": ["Collision, simulation and G-code golden tests pass"] },
{ "id": "ROBOT-ALL", "title": "Complete Robot workflow", "status": "completed", "dependencies": ["ASM-CORE", "MESH-CORE"], "deliverables": ["Robot/axes/poses/trajectory/kinematics", "Collision and controller export"], "acceptance": ["Motion and workspace fixtures pass"] },
{ "id": "INSP-ALL", "title": "Complete Inspection and Measure", "status": "completed", "dependencies": ["TSN-09", "SURF-CORE"], "deliverables": ["Measurements/sections/deviation/checks", "TopoRef reports"], "acceptance": ["Units, precision and report export match oracle"] },
{ "id": "DATA-ALL", "title": "Complete data and specialist modules", "status": "completed", "dependencies": ["FC-09", "MESH-CORE", "SURF-CORE"], "deliverables": ["Points/RE/OpenSCAD/IDF/JT/Material/Import"], "acceptance": ["Every source module has a tested adapter or explicit proxy"] },
{ "id": "ADDON-ALL", "title": "Implement addon governance", "status": "completed", "dependencies": ["DATA-ALL"], "deliverables": ["Signed catalog/install/update/remove", "Permissions, isolation and rollback"], "acceptance": ["Untrusted addons cannot bypass Facade or permissions"] },
{ "id": "SCRIPT-ALL", "title": "Implement scripting and macro capability", "status": "completed", "dependencies": ["ADDON-ALL"], "deliverables": ["API compatibility map", "Sandboxed interpreter and macro replay"], "acceptance": ["File/network/time/resource permissions are enforced"] },
{ "id": "PLATFORM-CLOSURE", "title": "Close all long-tail modules", "status": "completed", "dependencies": ["FEM-ALL", "CAM-ALL", "ROBOT-ALL", "INSP-ALL", "SCRIPT-ALL"], "deliverables": ["34-module coverage report"], "acceptance": ["No scope-only or unexplained unsupported entry remains"] }
]
},
{
"id": "P10",
"title": "QA, browsers, performance, security, migrations and release",
"ownerLane": "QUALITY",
"dependencies": ["P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09"],
"gate": "G9",
"tasks": [
{ "id": "QA-01", "title": "Enforce unit and property coverage", "status": "completed", "dependencies": [], "deliverables": ["Coverage and invariant gates"], "acceptance": ["Core error branches and parsers are covered"] },
{ "id": "QA-02", "title": "Enforce FreeCAD CLI and GUI comparison", "status": "completed", "dependencies": ["BASE-04"], "deliverables": ["Per-command success/failure fixtures"], "acceptance": ["Every compatible command has oracle evidence"] },
{ "id": "QA-03", "title": "Run Chrome E2E and visual baselines", "status": "completed", "dependencies": ["BROWSER-OCCT-01"], "deliverables": ["Chrome matrix", "Desktop/mobile screenshots"], "acceptance": ["Core workflows have no blocking divergence"] },
{ "id": "QA-04", "title": "Run geometry, solver and parser fuzzing", "status": "completed", "dependencies": ["TSN-10", "SK-12"], "deliverables": ["Seeded fuzz suites", "Crash and wrong-bind corpus"], "acceptance": ["Random inputs do not crash or silently corrupt"] },
{ "id": "QA-05", "title": "Enforce performance and memory budgets", "status": "completed", "dependencies": ["MEM-OCCT-01", "ENG-CLOSURE"], "deliverables": ["1000-object/million-triangle/large-table reports"], "acceptance": ["P95 and peak memory meet declared budgets"] },
{ "id": "QA-06", "title": "Run Worker, WASM and OPFS fault injection", "status": "completed", "dependencies": ["FC-11", "QA-03"], "deliverables": ["Crash/quota/power-loss/stale-result matrix"], "acceptance": ["Recovery is deterministic and data loss is reported"] },
{ "id": "QA-07", "title": "Complete security gates", "status": "completed", "dependencies": ["SCRIPT-ALL", "FC-11"], "deliverables": ["File/message/script/addon fuzzing", "CSP and permission report"], "acceptance": ["No critical unmitigated finding"] },
{ "id": "QA-08", "title": "Complete accessibility and internationalization", "status": "completed", "dependencies": ["DOC-CLOSURE"], "deliverables": ["Keyboard/screen-reader/locale/mobile matrix"], "acceptance": ["Core workflows meet target accessibility criteria"] },
{ "id": "REL-01", "title": "Complete deployment and offline gates", "status": "completed", "dependencies": ["QA-03", "QA-06"], "deliverables": ["PWA/cache/COOP/COEP/CSP runbook"], "acceptance": ["Install, upgrade, offline and cache recovery pass"] },
{ "id": "REL-02", "title": "Complete migration and rollback rehearsal", "status": "completed", "dependencies": ["FC-10", "QA-06"], "deliverables": ["Supported-version migration matrix", "Rollback or lossless export"], "acceptance": ["Every supported version has a tested recovery route"] },
{ "id": "REL-03", "title": "Generate SBOM, licenses and signed artifacts", "status": "completed", "dependencies": ["PLATFORM-CLOSURE"], "deliverables": ["SBOM/license/vulnerability report", "Signed release artifacts"], "acceptance": ["No unknown binary or unresolved critical issue"] },
{ "id": "REL-04", "title": "Publish final capability and difference matrix", "status": "completed", "dependencies": ["QA-01", "QA-02", "QA-03", "QA-04", "QA-05", "QA-06", "QA-07", "QA-08", "REL-01", "REL-02", "REL-03"], "deliverables": ["Exact/compatible/proxy/unsupported report", "Release runbook"], "acceptance": ["G0 through G9 pass", "No unexplained unsupported capability"] }
]
}
],
"rules": [
"A task is complete only when every deliverable exists and every acceptance condition has executable evidence.",
"Program dependencies and task dependencies are blocking; UI prototypes do not satisfy them.",
"All Node and npm commands use ./npmw.",
"Capability levels are updated only after the relevant gate passes.",
"Browser-restricted desktop features require an explicit proxy or unsupported decision with data preservation."
]
}

View File

@@ -0,0 +1,868 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"bitbybitVersion": "1.1.1",
"unknownDifferencesFail": true,
"directions": [
"freecad-web-freecad",
"web-freecad-web"
],
"scenarioCount": 22,
"scenarios": [
{
"id": "proxy-byte-preservation",
"direction": "freecad-web-freecad",
"stages": [
"freecad-source",
"web-inspect",
"web-byte-preserving-write",
"byte-compare",
"freecad-open",
"freecad-resave",
"web-inspect-resaved"
],
"domains": [
"objectTree",
"properties",
"gui",
"resources",
"proxy"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"sourceArchiveBytes": 49349,
"preservedArchiveBytes": 49349,
"sourceSha256": "a8184e071ce36e22f6407dcb5d789946003dc0031dbdaf261130fb15171cf8ab",
"preservedSha256": "a8184e071ce36e22f6407dcb5d789946003dc0031dbdaf261130fb15171cf8ab",
"byteIdentical": true,
"proxyObjectCount": 8,
"blockedObjectCount": 0,
"unknownTypeIds": [
"App::Line",
"App::Origin",
"App::Plane",
"App::Point"
],
"resavedObjectCount": 17,
"resavedProxyObjectCount": 8,
"resavedShapeValid": true
}
},
{
"id": "locked-partdesign-shape",
"direction": "freecad-web-freecad",
"stages": [
"freecad-source",
"web-inspect",
"web-write",
"freecad-open",
"freecad-resave",
"web-inspect-resaved"
],
"domains": [
"shape",
"topology",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"solidCount": 1,
"faceCount": 23,
"volume": 583719.3669394433,
"elementMapPostfixCount": 63,
"elementMapCount": 2,
"stringHasherBytes": 4669
}
},
{
"id": "part-box",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Box",
"solidCount": 1,
"faceCount": 6,
"volume": 23.999999999999996,
"boundingBox": {
"max": [
2,
3,
4
],
"min": [
0,
0,
0
]
},
"propertyCount": 5,
"resavedShapeAvailable": true
}
},
{
"id": "part-cylinder",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Cylinder",
"solidCount": 1,
"faceCount": 5,
"volume": 31.41592653589793,
"boundingBox": {
"max": [
2,
2,
5
],
"min": [
-2,
0,
0
]
},
"propertyCount": 3,
"resavedShapeAvailable": true
}
},
{
"id": "part-sphere",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Sphere",
"solidCount": 1,
"faceCount": 1,
"volume": 113.09733552923255,
"boundingBox": {
"max": [
3,
3,
3
],
"min": [
-3,
-3,
-3
]
},
"propertyCount": 1,
"resavedShapeAvailable": true
}
},
{
"id": "part-ellipsoid",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Ellipsoid",
"solidCount": 1,
"faceCount": 1,
"volume": 133.9826640573845,
"boundingBox": {
"max": [
4,
6.928203230275507,
2
],
"min": [
-7.999999999999998,
-6.9282032302755105,
-2
]
},
"propertyCount": 6,
"properties": {
"Angle1": -90,
"Angle2": 90,
"Angle3": 360,
"Radius1": 2,
"Radius2": 4,
"Radius3": 0
},
"resavedShapeAvailable": true
}
},
{
"id": "part-cone",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Cone",
"solidCount": 1,
"faceCount": 3,
"volume": 175.92918860102841,
"boundingBox": {
"max": [
4,
4,
6.000000000000001
],
"min": [
-4,
-4,
0
]
},
"propertyCount": 4,
"resavedShapeAvailable": true
}
},
{
"id": "part-torus",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Torus",
"solidCount": 1,
"faceCount": 3,
"volume": 592.1762640653616,
"boundingBox": {
"max": [
12.988706403508727,
12.988706403508727,
2
],
"min": [
-12.988706403508727,
-12.988706403508727,
-2
]
},
"propertyCount": 5,
"resavedShapeAvailable": true
}
},
{
"id": "part-prism",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Prism",
"solidCount": 1,
"faceCount": 8,
"volume": 103.92304845413267,
"boundingBox": {
"max": [
3.76326980708465,
1.7320508075688776,
10
],
"min": [
-2,
-2.6069374428281185,
0
]
},
"propertyCount": 5,
"properties": {
"Circumradius": 2,
"FirstAngle": 10,
"Height": 10,
"Polygon": 6,
"SecondAngle": -5
},
"resavedShapeAvailable": true
}
},
{
"id": "part-wedge",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Wedge",
"solidCount": 1,
"faceCount": 6,
"volume": 813.3333333333333,
"boundingBox": {
"max": [
10,
10.000000000000002,
10
],
"min": [
0,
0,
0
]
},
"propertyCount": 10,
"properties": {
"X2max": 8,
"X2min": 0,
"Xmax": 10,
"Xmin": 0,
"Ymax": 10,
"Ymin": 0,
"Z2max": 8,
"Z2min": 0,
"Zmax": 10,
"Zmin": 0
},
"resavedShapeAvailable": true
}
},
{
"id": "part-fuse",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Fuse",
"solidCount": 1,
"faceCount": 9,
"volume": 23.999999999999996,
"boundingBox": {
"max": [
2,
3,
4
],
"min": [
0,
0,
0
]
},
"propertyCount": 3,
"refine": false,
"resavedShapeAvailable": true
}
},
{
"id": "part-cut",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Cut",
"solidCount": 1,
"faceCount": 9,
"volume": 22.999999999999996,
"boundingBox": {
"max": [
2,
3,
4
],
"min": [
0,
0,
0
]
},
"propertyCount": 3,
"refine": false,
"resavedShapeAvailable": true
}
},
{
"id": "part-common",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Common",
"solidCount": 1,
"faceCount": 6,
"volume": 0.9999999999999998,
"boundingBox": {
"max": [
1,
1,
1
],
"min": [
0,
0,
0
]
},
"propertyCount": 3,
"refine": true,
"resavedShapeAvailable": true
}
},
{
"id": "part-sphere-trim",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"properties",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"solidCount": 1,
"faceCount": 5,
"volume": 154.26676868605438,
"boundingBox": {
"max": [
5,
5,
3.5355339059327373
],
"min": [
-2.499999999999999,
0,
-3.5355339059327386
]
},
"properties": {
"Angle1": -45,
"Angle2": 45,
"Angle3": 120,
"Radius": 5
},
"resavedShapeAvailable": true
}
},
{
"id": "part-extrusion",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"sketch",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Extrusion",
"solidCount": 1,
"faceCount": 6,
"volume": 30,
"properties": {
"Base": "FeatureProfile",
"DirMode": "Custom",
"LengthFwd": 5,
"LengthRev": 0,
"Reversed": false,
"Solid": true,
"Symmetric": false,
"TaperAngle": 0,
"TaperAngleRev": 0
},
"resavedShapeAvailable": true
}
},
{
"id": "part-revolution",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"sketch",
"shape",
"resources"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"typeId": "Part::Revolution",
"solidCount": 1,
"faceCount": 4,
"volume": 113.09733552923254,
"properties": {
"Angle": 360,
"Solid": true,
"Source": "FeatureProfile",
"Symmetric": false
},
"resavedShapeAvailable": true
}
},
{
"id": "sketch-core-external-attachment",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"objectTree",
"properties",
"sketch",
"topology"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"geometryCount": 10,
"constraintCount": 11,
"externalTypes": [
0
],
"mapMode": "FlatFace",
"roundTripGeometryIds": 10,
"roundTripConstraintIds": 11
}
},
{
"id": "sketch-face-projection",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"sketch",
"topology"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"externalTypes": [
0
],
"externalGeoCount": 6,
"roundTripIds": 4
}
},
{
"id": "sketch-external-modes",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"sketch",
"topology",
"properties"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"externalTypes": [
1,
2,
0
],
"externalGeoCount": 8,
"nativeFlags": [
1,
1,
1,
1,
1,
2
],
"roundTripModes": [
"intersection",
"both",
"both",
"both",
"both",
"projection"
]
}
},
{
"id": "sketch-snells-law",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"sketch",
"properties"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"geometryCount": 3,
"constraintTypes": [
"SnellsLaw"
],
"roundTripConstraints": 1
}
},
{
"id": "sketch-bspline-weight",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"sketch",
"properties"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"geometryCount": 2,
"constraintTypes": [
"InternalAlignment",
"Weight"
],
"roundTripConstraints": 1
}
},
{
"id": "sketch-internal-alignment",
"direction": "web-freecad-web",
"stages": [
"web-model",
"web-write",
"freecad-open",
"freecad-recompute",
"freecad-resave",
"web-inspect"
],
"domains": [
"sketch",
"properties"
],
"freecadVersion": "1.1.1",
"status": "pass",
"differences": [],
"evidence": {
"geometryCount": 7,
"constraintTypes": [
"InternalAlignment",
"InternalAlignment",
"InternalAlignment",
"InternalAlignment",
"InternalAlignment"
],
"roundTripConstraints": 5
}
}
],
"status": "verified"
}

View File

@@ -0,0 +1,65 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"parameterMutationPlan": "config/freecad-parameter-mutation-plan.json",
"successManifest": "fixtures/freecad-golden/manifest.json",
"failureManifest": "fixtures/freecad-golden/failures/manifest.json",
"supplementalSuccessManifest": "fixtures/freecad-golden/feature-families/manifest.json",
"supplementalFailureManifest": "fixtures/freecad-golden/feature-families/failures/manifest.json",
"compositeOracle": "config/freecad-composite-history-elementmap-oracle.json",
"fcstdRoundtrip": "config/freecad-fcstd-roundtrip-verification.json",
"browserGolden": "config/chrome-fcstd-golden-verification.json",
"browserPrimitiveEvidence": "config/chrome-part-primitives-verification.json",
"partdesignFailureOracle": "config/freecad-partdesign-failure-oracle.json",
"partdesignRevolutionGrooveOracle": "config/freecad-partdesign-revolution-groove-oracle.json",
"partdesignTransformOracle": "config/freecad-partdesign-transform-oracle.json",
"partBuildersOracle": "config/freecad-part-builders-oracle.json",
"historyEvidenceGlob": "config/chrome-native-*-history-verification.json",
"dimensions": [
"success-fixture",
"failure-fixture",
"native-history",
"composite-stage",
"elementmap2-resource",
"fcstd-roundtrip",
"browser-replay"
],
"families": [
{ "id": "Part::Box", "operationTypes": ["box"], "stageTypeIds": ["Part::Box"], "roundtripIds": ["part-box"], "browserOperations": ["box"] },
{ "id": "Part::Cylinder", "operationTypes": ["cylinder"], "stageTypeIds": ["Part::Cylinder"], "roundtripIds": ["part-cylinder"], "browserOperations": ["cylinder"] },
{ "id": "Part::Sphere", "operationTypes": ["sphere"], "stageTypeIds": [], "roundtripIds": ["part-sphere", "part-sphere-trim"], "browserOperations": ["sphere"] },
{ "id": "Part::Ellipsoid", "operationTypes": ["ellipsoid"], "stageTypeIds": [], "roundtripIds": ["part-ellipsoid"], "browserOperations": ["ellipsoid"] },
{ "id": "Part::Cone", "operationTypes": ["cone"], "stageTypeIds": [], "roundtripIds": ["part-cone"], "browserOperations": ["cone"] },
{ "id": "Part::Torus", "operationTypes": ["torus"], "stageTypeIds": [], "roundtripIds": ["part-torus"], "browserOperations": ["torus"] },
{ "id": "Part::Helix", "operationTypes": ["helix"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": ["helix"] },
{ "id": "Part::Prism", "operationTypes": ["prism"], "stageTypeIds": [], "roundtripIds": ["part-prism"], "browserOperations": ["prism"] },
{ "id": "Part::Wedge", "operationTypes": ["wedge"], "stageTypeIds": [], "roundtripIds": ["part-wedge"], "browserOperations": ["wedge"] },
{ "id": "Part::Fuse", "operationTypes": ["fuse"], "stageTypeIds": ["Part::Fuse"], "roundtripIds": ["part-fuse"], "browserOperations": ["fuse"] },
{ "id": "Part::Cut", "operationTypes": ["cut"], "stageTypeIds": ["Part::Cut"], "roundtripIds": ["part-cut", "part-cut-through-hole"], "browserOperations": ["cut"] },
{ "id": "Part::Common", "operationTypes": ["common"], "stageTypeIds": ["Part::Common"], "roundtripIds": ["part-common"], "browserOperations": ["common"] },
{ "id": "Part::Extrusion", "operationTypes": ["extrusion"], "stageTypeIds": [], "roundtripIds": ["part-extrusion"], "browserOperations": [] },
{ "id": "Part::Revolution", "operationTypes": ["revolution"], "stageTypeIds": [], "roundtripIds": ["part-revolution"], "browserOperations": [] },
{ "id": "Part::Loft", "operationTypes": ["loft"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "Part::Sweep", "operationTypes": ["sweep"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "Part::Fillet", "operationTypes": ["fillet"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "Part::Chamfer", "operationTypes": ["chamfer"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "PartDesign::Pad", "operationTypes": ["pad"], "stageTypeIds": ["PartDesign::Pad"], "roundtripIds": ["locked-partdesign-shape"], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-base-oracle.json", "ids": ["pad-tapered", "pad-midplane"] }] },
{ "id": "PartDesign::Pocket", "operationTypes": ["pocket"], "stageTypeIds": ["PartDesign::Pocket"], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-base-oracle.json", "ids": ["pocket-tapered", "pocket-through-all", "pocket-up-to-face"] }] },
{ "id": "PartDesign::Revolution", "operationTypes": ["partdesign-revolution"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "PartDesign::Groove", "operationTypes": ["groove"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [] },
{ "id": "PartDesign::AdditiveLoft", "operationTypes": ["additive-loft"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-loft-oracle.json", "ids": ["additive-loft"] }] },
{ "id": "PartDesign::SubtractiveLoft", "operationTypes": ["subtractive-loft"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-loft-oracle.json", "ids": ["subtractive-loft"] }] },
{ "id": "PartDesign::AdditivePipe", "operationTypes": ["additive-pipe"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-loft-oracle.json", "ids": ["additive-pipe"] }] },
{ "id": "PartDesign::SubtractivePipe", "operationTypes": ["subtractive-pipe"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-loft-oracle.json", "ids": ["subtractive-pipe"] }] },
{ "id": "PartDesign::Fillet", "operationTypes": ["partdesign-fillet"], "stageTypeIds": ["PartDesign::Fillet"], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-dressup-oracle.json", "ids": ["fillet-selected-edge"] }] },
{ "id": "PartDesign::Chamfer", "operationTypes": ["partdesign-chamfer"], "stageTypeIds": ["PartDesign::Chamfer"], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-dressup-oracle.json", "ids": ["chamfer-selected-edge"] }] },
{ "id": "PartDesign::Draft", "operationTypes": ["draft"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-dressup-oracle.json", "ids": ["draft-selected-face"] }] },
{ "id": "PartDesign::Thickness", "operationTypes": ["thickness"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-dressup-oracle.json", "ids": ["thickness-selected-face"] }] },
{ "id": "PartDesign::Mirrored", "operationTypes": ["mirrored"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-transform-oracle.json", "ids": ["mirrored-feature-list"] }] },
{ "id": "PartDesign::MultiTransform", "operationTypes": ["multi-transform"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-transform-oracle.json", "ids": ["multi-transform-feature-list"] }] },
{ "id": "PartDesign::LinearPattern", "operationTypes": ["linear-pattern"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-transform-oracle.json", "ids": ["linear-feature-list"] }] },
{ "id": "PartDesign::PolarPattern", "operationTypes": ["polar-pattern"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-transform-oracle.json", "ids": ["polar-feature-list"] }] },
{ "id": "PartDesign::Hole", "operationTypes": ["hole"], "stageTypeIds": [], "roundtripIds": [], "browserOperations": [], "oracleSuccessSources": [{ "file": "config/freecad-partdesign-transform-oracle.json", "ids": ["iso-m6-tap-drill", "iso-m6-modeled-thread"] }] }
]
}

View File

@@ -0,0 +1,36 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"successFixtures": {
"manifest": "fixtures/freecad-golden/manifest.json",
"count": 100,
"replayCommand": "./npmw run test:golden:freecad -- --json",
"lastReplay": "passed"
},
"failureFixtures": {
"manifest": "fixtures/freecad-golden/failures/manifest.json",
"count": 51,
"replayCommand": "./npmw run test:golden:freecad:failures",
"lastReplay": "passed",
"acceptedOutcomes": ["exception", "invalid-shape"]
},
"supplementalFixtures": {
"successManifest": "fixtures/freecad-golden/feature-families/manifest.json",
"successCount": 5,
"failureManifest": "fixtures/freecad-golden/feature-families/failures/manifest.json",
"failureCount": 5,
"replayCommands": [
"./npmw run test:golden:freecad:families -- --json",
"./npmw run test:golden:freecad:family-failures"
],
"lastReplay": "passed"
},
"semanticComparator": {
"module": "scripts/freecad-semantic-comparator.mjs",
"reportSchemaVersion": 1,
"unknownDifferencesFail": true,
"domains": ["identity", "shape", "topology", "objectTree", "properties"]
},
"status": "verified"
}

File diff suppressed because it is too large Load Diff

View File

@@ -30,7 +30,7 @@
},
"verification": {
"goldenManifest": "fixtures/freecad-golden/manifest.json",
"scenarioCount": 5,
"scenarioCount": 100,
"result": "passed"
}
}

View File

@@ -0,0 +1,21 @@
{
"schemaVersion": 1,
"baselineId": "freecad-1.1.1",
"sourceCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"coveragePlan": "config/freecad-golden-coverage-plan.json",
"dimensions": [
"nominal-parameter-set",
"invalid-boundary",
"parameter-variant",
"edit-recompute-recovery",
"fcstd-roundtrip"
],
"completionRule": "A family is complete only when every dimension has native or browser evidence tied to an explicit parameter snapshot and the edited/recovered Shape is valid.",
"evidenceRules": {
"fixture": "A success/failure fixture proves only the corresponding nominal or invalid boundary state.",
"parameterVariant": "Two or more distinct native/browser parameter snapshots are required; outcome-only records do not count.",
"editRecomputeRecovery": "The report must contain before, edited, recomputed and restored/recovered states from a real runtime transaction.",
"fcstdRoundtrip": "Every family round-trip id listed by the coverage plan must pass with zero differences."
},
"failClosed": true
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,267 @@
{
"baselineId": "freecad-1.1.1-part-builders-oracle",
"failureCases": [
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-extrusion-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Touched",
"Invalid"
],
"statusString": "No object linked",
"typeId": "Part::Extrusion",
"vertices": 0,
"volume": 0
},
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-revolution-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Touched",
"Invalid"
],
"statusString": "No object linked",
"typeId": "Part::Revolution",
"vertices": 0,
"volume": 0
},
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-loft-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Invalid"
],
"statusString": "No sections linked.",
"typeId": "Part::Loft",
"vertices": 0,
"volume": 0
},
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-sweep-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Invalid"
],
"statusString": "No sections linked.",
"typeId": "Part::Sweep",
"vertices": 0,
"volume": 0
},
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-fillet-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Invalid"
],
"statusString": "No object linked",
"typeId": "Part::Fillet",
"vertices": 0,
"volume": 0
},
{
"area": 0,
"edges": 0,
"expected": "rejected",
"faces": 0,
"id": "part-chamfer-missing-input",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"shapeNull": true,
"shapeType": "Null",
"shapeValid": false,
"solids": 0,
"state": [
"Invalid"
],
"statusString": "No object linked",
"typeId": "Part::Chamfer",
"vertices": 0,
"volume": 0
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"successCases": [
{
"area": 62,
"edges": 12,
"expected": "success",
"faces": 6,
"id": "part-extrusion-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Solid",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Extrusion",
"vertices": 8,
"volume": 30
},
{
"area": 150.79644737231007,
"edges": 6,
"expected": "success",
"faces": 4,
"id": "part-revolution-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Solid",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Revolution",
"vertices": 4,
"volume": 75.398223686155
},
{
"area": 81.18823416311344,
"edges": 12,
"expected": "success",
"faces": 6,
"id": "part-loft-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Solid",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Loft",
"vertices": 8,
"volume": 46.666666666666664
},
{
"area": 56,
"edges": 12,
"expected": "success",
"faces": 6,
"id": "part-sweep-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Solid",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Sweep",
"vertices": 8,
"volume": 23.999999999999996
},
{
"area": 372.99557428756424,
"edges": 15,
"expected": "success",
"faces": 7,
"id": "part-fillet-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Compound",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Fillet",
"vertices": 10,
"volume": 478.7123889803846
},
{
"area": 371.4852813742385,
"edges": 15,
"expected": "success",
"faces": 7,
"id": "part-chamfer-success",
"observed": "success",
"passed": true,
"shapeNull": false,
"shapeType": "Compound",
"shapeValid": true,
"solids": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "Part::Chamfer",
"vertices": 10,
"volume": 476.9999999999999
}
],
"summary": {
"acceptedEmpty": 0,
"failureCases": 6,
"failurePassed": 6,
"rejected": 6,
"successCases": 6,
"successPassed": 6
}
}

View File

@@ -0,0 +1,115 @@
{
"baselineId": "freecad-1.1.1-partdesign-base-oracle",
"cases": [
{
"bounds": {
"max": [
2.43744331762962,
2.43744331762962,
5
],
"min": [
-2.43744331762962,
-2.43744331762962,
0
]
},
"faces": 6,
"id": "pad-tapered",
"passed": true,
"solids": 1,
"status": "Valid",
"volume": 98.77344374611019
},
{
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"faces": 10,
"id": "pocket-tapered",
"passed": true,
"solids": 1,
"status": "Valid",
"volume": 810.4374375507407
},
{
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"faces": 10,
"id": "pocket-through-all",
"passed": true,
"solids": 1,
"status": "Valid",
"volume": 960
},
{
"bounds": {
"max": [
5,
5,
5
],
"min": [
-5,
-5,
-5
]
},
"faces": 10,
"id": "pocket-up-to-face",
"passed": true,
"solids": 1,
"status": "Valid",
"targetFace": 5,
"volume": 960
},
{
"bounds": {
"max": [
2,
2,
3
],
"min": [
-2,
-2,
-3
]
},
"faces": 6,
"id": "pad-midplane",
"passed": true,
"solids": 1,
"status": "Valid",
"volume": 95.99999999999999
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"cases": 5,
"passed": 5
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,69 @@
{
"baselineId": "freecad-1.1.1-partdesign-dressup-oracle",
"cases": [
{
"edges": 15,
"faces": 7,
"id": "fillet-selected-edge",
"passed": true,
"selection": [
"Edge1"
],
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Fillet",
"volume": 997.8539816339743
},
{
"edges": 15,
"faces": 7,
"id": "chamfer-selected-edge",
"passed": true,
"selection": [
"Edge1"
],
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Chamfer",
"volume": 994.9999999999998
},
{
"edges": 12,
"faces": 6,
"id": "draft-selected-face",
"passed": true,
"reversed": true,
"selection": [
"Face6"
],
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Draft",
"volume": 1499.9999999999998
},
{
"edges": 24,
"elementMapSize": 51,
"faces": 11,
"id": "thickness-selected-face",
"passed": true,
"reversed": true,
"selection": [
"Face1"
],
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Thickness",
"volume": 423.99999999999983
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"cases": 4,
"passed": 4
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,267 @@
{
"baselineId": "freecad-1.1.1-partdesign-failure-oracle",
"cases": [
{
"expected": "rejected",
"id": "missing-input-pad",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No object linked",
"typeId": "PartDesign::Pad"
},
{
"expected": "rejected",
"id": "missing-input-pocket",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No object linked",
"typeId": "PartDesign::Pocket"
},
{
"expected": "rejected",
"id": "missing-input-revolution",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No profile linked",
"typeId": "PartDesign::Revolution"
},
{
"expected": "rejected",
"id": "missing-input-groove",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No profile linked",
"typeId": "PartDesign::Groove"
},
{
"expected": "rejected",
"id": "missing-input-additiveloft",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "Failed to get shape of Profile",
"typeId": "PartDesign::AdditiveLoft"
},
{
"expected": "rejected",
"id": "missing-input-subtractiveloft",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "Failed to get shape of Profile",
"typeId": "PartDesign::SubtractiveLoft"
},
{
"expected": "rejected",
"id": "missing-input-additivepipe",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "A fatal error occurred when making the pipe",
"typeId": "PartDesign::AdditivePipe"
},
{
"expected": "rejected",
"id": "missing-input-subtractivepipe",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "A fatal error occurred when making the pipe",
"typeId": "PartDesign::SubtractivePipe"
},
{
"expected": "rejected",
"id": "missing-input-fillet",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No Base object linked",
"typeId": "PartDesign::Fillet"
},
{
"expected": "rejected",
"id": "missing-input-chamfer",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No Base object linked",
"typeId": "PartDesign::Chamfer"
},
{
"expected": "rejected",
"id": "missing-input-draft",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No Base object linked",
"typeId": "PartDesign::Draft"
},
{
"expected": "rejected",
"id": "missing-input-thickness",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "No Base object linked",
"typeId": "PartDesign::Thickness"
},
{
"expected": "accepted-empty",
"id": "missing-input-mirrored",
"inputClass": "missing-required-input",
"observed": "accepted-empty",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "PartDesign::Mirrored"
},
{
"expected": "accepted-empty",
"id": "missing-input-multitransform",
"inputClass": "missing-required-input",
"observed": "accepted-empty",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "PartDesign::MultiTransform"
},
{
"expected": "accepted-empty",
"id": "missing-input-linearpattern",
"inputClass": "missing-required-input",
"observed": "accepted-empty",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "PartDesign::LinearPattern"
},
{
"expected": "accepted-empty",
"id": "missing-input-polarpattern",
"inputClass": "missing-required-input",
"observed": "accepted-empty",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"typeId": "PartDesign::PolarPattern"
},
{
"expected": "rejected",
"id": "missing-input-hole",
"inputClass": "missing-required-input",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"state": [
"Touched",
"Invalid"
],
"statusString": "Linked shape object is empty",
"typeId": "PartDesign::Hole"
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"accepted": 0,
"acceptedEmpty": 4,
"cases": 17,
"passed": 17,
"rejected": 13
}
}

View File

@@ -0,0 +1,52 @@
{
"baselineId": "freecad-1.1.1-partdesign-loft-oracle",
"cases": [
{
"faces": 6,
"id": "additive-loft",
"passed": true,
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::AdditiveLoft",
"volume": 1
},
{
"faces": 5,
"id": "subtractive-loft",
"passed": true,
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::SubtractiveLoft",
"volume": 0.9999999999999994
},
{
"faces": 3,
"id": "additive-pipe",
"passed": true,
"solids": 1,
"status": "Valid",
"transition": "Transformed",
"typeId": "PartDesign::AdditivePipe",
"volume": 3.1415926535897927
},
{
"faces": 7,
"id": "subtractive-pipe",
"passed": true,
"solids": 1,
"status": "Valid",
"transition": "Transformed",
"typeId": "PartDesign::SubtractivePipe",
"volume": 96.8584073464102
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"cases": 4,
"passed": 4
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,88 @@
{
"baselineId": "freecad-1.1.1-partdesign-profile-oracle",
"cases": [
{
"expected": "accepted",
"id": "closed",
"observed": "accepted",
"passed": true,
"recomputeResult": true,
"shapeNull": false,
"solidCount": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"volume": 360
},
{
"expected": "accepted",
"id": "multi-ring",
"observed": "accepted",
"passed": true,
"recomputeResult": true,
"shapeNull": false,
"solidCount": 1,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"volume": 320
},
{
"expected": "rejected",
"id": "open",
"observed": "rejected",
"passed": true,
"recomputeResult": true,
"shapeNull": true,
"solidCount": 0,
"state": [
"Touched",
"Invalid"
],
"statusString": "Wire is not closed.",
"volume": 0
},
{
"expected": "accepted",
"id": "self-intersecting",
"observed": "accepted",
"passed": true,
"recomputeResult": true,
"shapeNull": false,
"solidCount": 2,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"volume": 80
},
{
"expected": "accepted",
"id": "invalid-nesting",
"observed": "accepted",
"passed": true,
"recomputeResult": true,
"shapeNull": false,
"solidCount": 2,
"state": [
"Up-to-date"
],
"statusString": "Valid",
"volume": 370
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"length": 10,
"schemaVersion": 1,
"status": "pass",
"summary": {
"accepted": 4,
"cases": 5,
"passed": 5,
"rejected": 1
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,37 @@
{
"baselineId": "freecad-1.1.1-partdesign-revolution-groove-oracle",
"cases": [
{
"faces": 4,
"id": "partdesign-revolution",
"operation": "revolution",
"passed": true,
"shapeNull": false,
"shapeValid": true,
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Revolution",
"volume": 75.39822368615502
},
{
"faces": 10,
"id": "partdesign-groove",
"operation": "groove",
"passed": true,
"shapeNull": false,
"shapeValid": true,
"solids": 1,
"status": "Valid",
"typeId": "PartDesign::Groove",
"volume": 995.2876110196153
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"cases": 2,
"passed": 2
}
}

View File

@@ -0,0 +1,312 @@
{
"baselineId": "freecad-1.1.1-partdesign-transform-oracle",
"cases": [
{
"direction": "X_Axis",
"edges": 48,
"faces": 21,
"id": "linear-feature-list",
"length": 12,
"occurrences": 3,
"originals": [
"Boss"
],
"passed": true,
"solids": 1,
"status": "Valid",
"transformMode": "Features",
"typeId": "PartDesign::LinearPattern",
"volume": 423.99999999999994
},
{
"edges": 28,
"faces": 12,
"id": "mirrored-feature-list",
"originals": [
"Boss"
],
"passed": true,
"plane": "YZ_Plane",
"solids": 1,
"status": "Valid",
"transformMode": "Features",
"typeId": "PartDesign::Mirrored",
"volume": 416.00000000000006
},
{
"angle": 360,
"axis": "X_Axis",
"edges": 12,
"faces": 6,
"id": "polar-feature-list",
"occurrences": 4,
"originals": [
"Box"
],
"passed": true,
"solids": 1,
"status": "Valid",
"transformMode": "Features",
"typeId": "PartDesign::PolarPattern",
"volume": 3999.999999999999
},
{
"edges": 36,
"faces": 14,
"id": "multi-transform-feature-list",
"originals": [
"Pad"
],
"passed": true,
"solids": 1,
"status": "Valid",
"transformMode": "Features",
"transformations": [
"PartDesign::Mirrored",
"PartDesign::LinearPattern",
"PartDesign::PolarPattern"
],
"typeId": "PartDesign::MultiTransform",
"volume": 19999.999999999996
},
{
"diameter": 5,
"edges": 15,
"faces": 8,
"id": "iso-m6-tap-drill",
"modeled": false,
"passed": true,
"properties": [
"AddSubShape",
"AllowMultiFace",
"BaseFeature",
"BaseProfileType",
"CustomThreadClearance",
"Depth",
"DepthType",
"Diameter",
"DrillForDepth",
"DrillPoint",
"DrillPointAngle",
"ExpressionEngine",
"HoleCutCountersinkAngle",
"HoleCutCustomValues",
"HoleCutDepth",
"HoleCutDiameter",
"HoleCutType",
"Label",
"Label2",
"Midplane",
"ModelThread",
"Placement",
"PreviewShape",
"Profile",
"Refine",
"Reversed",
"Shape",
"ShapeMaterial",
"Suppressed",
"SuppressedShape",
"Tapered",
"TaperedAngle",
"ThreadClass",
"ThreadDepth",
"ThreadDepthType",
"ThreadDiameter",
"ThreadDirection",
"ThreadFit",
"ThreadSize",
"ThreadType",
"Threaded",
"UpToFace",
"UpToFace2",
"UpToShape",
"UpToShape2",
"UseCustomThreadClearance",
"Visibility",
"_Body",
"_ElementMapVersion"
],
"solids": 1,
"status": "Valid",
"threadClass": "4G",
"threadDepth": 6,
"threadDepthType": "Dimension",
"threadDiameter": 6,
"threadDirection": "Right",
"threadFit": "Medium",
"threadPitch": 1,
"threadSize": "M6x1.0",
"threadType": "ISOMetricProfile",
"threaded": true,
"typeId": "PartDesign::Hole",
"volume": 3842.92036732051
},
{
"diameter": 5.026,
"edges": 75,
"faces": 36,
"id": "iso-m6-modeled-thread",
"modeled": true,
"passed": true,
"properties": [
"AddSubShape",
"AllowMultiFace",
"BaseFeature",
"BaseProfileType",
"CustomThreadClearance",
"Depth",
"DepthType",
"Diameter",
"DrillForDepth",
"DrillPoint",
"DrillPointAngle",
"ExpressionEngine",
"HoleCutCountersinkAngle",
"HoleCutCustomValues",
"HoleCutDepth",
"HoleCutDiameter",
"HoleCutType",
"Label",
"Label2",
"Midplane",
"ModelThread",
"Placement",
"PreviewShape",
"Profile",
"Refine",
"Reversed",
"Shape",
"ShapeMaterial",
"Suppressed",
"SuppressedShape",
"Tapered",
"TaperedAngle",
"ThreadClass",
"ThreadDepth",
"ThreadDepthType",
"ThreadDiameter",
"ThreadDirection",
"ThreadFit",
"ThreadSize",
"ThreadType",
"Threaded",
"UpToFace",
"UpToFace2",
"UpToShape",
"UpToShape2",
"UseCustomThreadClearance",
"Visibility",
"_Body",
"_ElementMapVersion"
],
"solids": 1,
"status": "Valid",
"threadClass": "4G",
"threadDepth": 6,
"threadDepthType": "Dimension",
"threadDiameter": 6,
"threadDirection": "Left",
"threadFit": "Medium",
"threadPitch": 1,
"threadSize": "M6x1.0",
"threadType": "ISOMetricProfile",
"threaded": true,
"typeId": "PartDesign::Hole",
"volume": 3820.1907618181585
},
{
"expected": "rejected",
"id": "mirrored-missing-reference",
"inputClass": "valid-original-missing-transform-reference",
"observed": "rejected",
"originals": [
"Boss"
],
"passed": true,
"shapeNull": true,
"staleShapePreserved": false,
"state": [
"Touched",
"Invalid"
],
"status": "No mirror plane reference specified",
"transformations": [],
"typeId": "PartDesign::Mirrored"
},
{
"expected": "rejected",
"id": "multitransform-missing-reference",
"inputClass": "valid-original-missing-transform-reference",
"observed": "rejected",
"originals": [
"Boss"
],
"passed": true,
"shapeNull": false,
"staleShapePreserved": true,
"state": [
"Touched",
"Invalid"
],
"status": "Shape index 999 out of bound 12",
"transformations": [
"PartDesign::LinearPattern"
],
"typeId": "PartDesign::MultiTransform"
},
{
"expected": "rejected",
"id": "linearpattern-missing-reference",
"inputClass": "valid-original-missing-transform-reference",
"observed": "rejected",
"originals": [
"Boss"
],
"passed": true,
"shapeNull": true,
"staleShapePreserved": false,
"state": [
"Touched",
"Invalid"
],
"status": "Shape index 999 out of bound 12",
"transformations": [],
"typeId": "PartDesign::LinearPattern"
},
{
"expected": "rejected",
"id": "polarpattern-missing-reference",
"inputClass": "valid-original-missing-transform-reference",
"observed": "rejected",
"originals": [
"Boss"
],
"passed": true,
"shapeNull": true,
"staleShapePreserved": false,
"state": [
"Touched",
"Invalid"
],
"status": "No axis reference specified",
"transformations": [],
"typeId": "PartDesign::PolarPattern"
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"acceptedEmpty": 0,
"cases": 10,
"failureCases": 4,
"failurePassed": 4,
"passed": 10,
"rejected": 4,
"successCases": 6,
"successPassed": 6
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,594 @@
{
"baselineId": "freecad-1.1.1-sketcher-constraint-oracle",
"classificationCases": [
{
"conflicting": [],
"constraintTypes": [
"Horizontal",
"Distance"
],
"degreesOfFreedom": 3,
"driving": false,
"expected": "reference",
"fullyConstrained": false,
"id": "reference-dimension",
"inputValue": 99,
"malformed": [],
"measuredValue": 77.98445020149762,
"observed": "reference",
"partiallyRedundant": [],
"redundant": [],
"solveStatus": 0
},
{
"conflicting": [],
"constraintTypes": [
"Distance",
"Distance"
],
"degreesOfFreedom": 3,
"expected": "redundant",
"fullyConstrained": false,
"id": "redundant-dimension",
"malformed": [],
"observed": "redundant",
"partiallyRedundant": [],
"redundant": [
2
],
"solveStatus": -2,
"values": [
5,
5
]
},
{
"conflicting": [
1,
2
],
"constraintTypes": [
"Distance",
"Distance"
],
"degreesOfFreedom": 3,
"expected": "conflicting",
"fullyConstrained": false,
"id": "conflicting-dimension",
"malformed": [],
"observed": "conflicting",
"partiallyRedundant": [],
"redundant": [],
"solveStatus": -3,
"values": [
5,
8
]
}
],
"failureCases": [
{
"addResult": null,
"constraintType": "Coincident",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "coincident-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Horizontal",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "horizontal-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Vertical",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "vertical-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Parallel",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "parallel-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Tangent",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "tangent-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Distance",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "distance-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "DistanceX",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "distance-x-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "DistanceY",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "distance-y-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Angle",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "angle-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Perpendicular",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "perpendicular-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Radius",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "radius-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Equal",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "equal-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "PointOnObject",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "point-on-object-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Symmetric",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "symmetric-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "InternalAlignment",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "internal-alignment-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "SnellsLaw",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "snells-law-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Block",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "block-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Diameter",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "diameter-invalid-reference",
"observed": "failure"
},
{
"addResult": null,
"constraintType": "Weight",
"error": "Constraint has invalid indexes",
"errorType": "IndexError",
"expected": "failure",
"id": "weight-invalid-reference",
"observed": "failure"
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"revision": "14556 (Git)",
"schemaVersion": 1,
"status": "pass",
"successCases": [
{
"conflicting": [],
"constraintType": "Coincident",
"constraintTypes": [
"Coincident"
],
"degreesOfFreedom": 6,
"expected": "success",
"fullyConstrained": false,
"id": "coincident-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Horizontal",
"constraintTypes": [
"Horizontal"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "horizontal-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Vertical",
"constraintTypes": [
"Vertical"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "vertical-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Parallel",
"constraintTypes": [
"Parallel"
],
"degreesOfFreedom": 7,
"expected": "success",
"fullyConstrained": false,
"id": "parallel-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Tangent",
"constraintTypes": [
"Tangent"
],
"degreesOfFreedom": 5,
"expected": "success",
"fullyConstrained": false,
"id": "tangent-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": -2.220446049250313e-16,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Distance",
"constraintTypes": [
"Distance"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "distance-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "DistanceX",
"constraintTypes": [
"DistanceX"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "distance-x-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "DistanceY",
"constraintTypes": [
"DistanceY"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "distance-y-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Angle",
"constraintTypes": [
"Angle"
],
"degreesOfFreedom": 3,
"expected": "success",
"fullyConstrained": false,
"id": "angle-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Perpendicular",
"constraintTypes": [
"Perpendicular"
],
"degreesOfFreedom": 7,
"expected": "success",
"fullyConstrained": false,
"id": "perpendicular-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Radius",
"constraintTypes": [
"Radius"
],
"degreesOfFreedom": 2,
"expected": "success",
"fullyConstrained": false,
"id": "radius-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Equal",
"constraintTypes": [
"Equal"
],
"degreesOfFreedom": 7,
"expected": "success",
"fullyConstrained": false,
"id": "equal-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "PointOnObject",
"constraintTypes": [
"PointOnObject"
],
"degreesOfFreedom": 5,
"expected": "success",
"fullyConstrained": false,
"id": "point-on-object-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": -1.1102230246251565e-16,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Symmetric",
"constraintTypes": [
"Symmetric"
],
"degreesOfFreedom": 4,
"expected": "success",
"fullyConstrained": false,
"id": "symmetric-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 1.1102230246251565e-16,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "InternalAlignment",
"constraintTypes": [
"InternalAlignment",
"InternalAlignment",
"InternalAlignment",
"InternalAlignment"
],
"degreesOfFreedom": 5,
"expected": "success",
"fullyConstrained": false,
"id": "internal-alignment-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "SnellsLaw",
"constraintTypes": [
"Coincident",
"PointOnObject",
"SnellsLaw"
],
"degreesOfFreedom": 8,
"expected": "success",
"fullyConstrained": false,
"id": "snells-law-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Block",
"constraintTypes": [
"Block"
],
"degreesOfFreedom": 0,
"expected": "success",
"fullyConstrained": true,
"id": "block-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Diameter",
"constraintTypes": [
"Diameter"
],
"degreesOfFreedom": 2,
"expected": "success",
"fullyConstrained": false,
"id": "diameter-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
},
{
"conflicting": [],
"constraintType": "Weight",
"constraintTypes": [
"InternalAlignment",
"Weight",
"InternalAlignment",
"InternalAlignment",
"InternalAlignment",
"Equal",
"InternalAlignment",
"InternalAlignment"
],
"degreesOfFreedom": 10,
"expected": "success",
"fullyConstrained": false,
"id": "weight-success",
"malformed": [],
"observed": "success",
"partiallyRedundant": [],
"redundant": [],
"residual": 0,
"solveStatus": 0
}
],
"summary": {
"classificationCases": 3,
"classificationPassed": 3,
"constraintTypes": 19,
"failureCases": 19,
"failurePassed": 19,
"successCases": 19,
"successPassed": 19
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,260 @@
{
"baselineId": "freecad-1.1.1-sketcher-editor-oracle",
"cases": [
{
"before": {
"constraintTypes": [
"Horizontal"
],
"construction": [
false
],
"degreesOfFreedom": 3,
"fullyConstrained": false,
"geometry": [
{
"end": [
5,
0
],
"start": [
0,
0
]
}
]
},
"final": {
"constraintTypes": [
"Horizontal"
],
"construction": [
false
],
"degreesOfFreedom": 3,
"fullyConstrained": false,
"geometry": [
{
"end": [
8,
2
],
"start": [
0,
2
]
}
]
},
"id": "drag-horizontal",
"passed": true,
"solveStatus": 0
},
{
"final": {
"constraintTypes": [
"Coincident"
],
"construction": [
true,
true
],
"degreesOfFreedom": 6,
"fullyConstrained": false,
"geometry": [
{
"end": [
4,
0
],
"start": [
0,
0
]
},
{
"end": [
10,
0
],
"start": [
4,
0
]
}
]
},
"id": "split-line",
"passed": true
},
{
"final": {
"constraintTypes": [],
"construction": [
false
],
"degreesOfFreedom": 4,
"fullyConstrained": false,
"geometry": [
{
"end": [
15,
0
],
"start": [
0,
0
]
}
]
},
"id": "extend-line",
"passed": true
},
{
"final": {
"constraintTypes": [
"PointOnObject"
],
"construction": [
false,
false
],
"degreesOfFreedom": 7,
"fullyConstrained": false,
"geometry": [
{
"end": [
7,
0
],
"start": [
0,
0
]
},
{
"end": [
7,
2
],
"start": [
7,
-2
]
}
]
},
"id": "trim-at-intersection",
"passed": true
},
{
"final": {
"constraintTypes": [],
"construction": [
true
],
"degreesOfFreedom": 4,
"fullyConstrained": false,
"geometry": [
{
"end": [
1,
0
],
"start": [
0,
0
]
}
]
},
"id": "toggle-construction",
"passed": true
},
{
"committedEnd": [
8,
0
],
"final": {
"constraintTypes": [],
"construction": [
false
],
"degreesOfFreedom": 4,
"fullyConstrained": false,
"geometry": [
{
"end": [
8,
0
],
"start": [
0,
0
]
}
]
},
"id": "transaction-undo-redo",
"passed": true,
"redoneEnd": [
8,
0
],
"undoneEnd": [
5,
0
]
},
{
"final": {
"constraintTypes": [
"Coincident",
"Horizontal"
],
"construction": [
false,
false
],
"degreesOfFreedom": 5,
"fullyConstrained": false,
"geometry": [
{
"end": [
5,
0
],
"start": [
0,
0
]
},
{
"end": [
5,
4
],
"start": [
5,
0
]
}
]
},
"id": "auto-constraint",
"passed": true,
"solveStatus": 0
}
],
"freecadVersion": "1.1.1",
"gitCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"schemaVersion": 1,
"status": "pass",
"summary": {
"cases": 7,
"passed": 7
},
"tolerance": 1e-7
}

View File

@@ -0,0 +1,839 @@
{
"schemaVersion": 1,
"baseline": {
"freecadVersion": "1.1.1",
"commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
"sourcePath": ".cache/freecad/FreeCAD"
},
"generatedBy": "scripts/generate-freecad-source-inventory.mjs",
"moduleCount": 34,
"modules": [
{
"name": "AddonManager",
"sourcePath": "src/Mod/AddonManager",
"cmakeOption": "BUILD_ADDONMGR",
"cmakeDefault": true,
"hasCMake": false,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 0,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Assembly",
"sourcePath": "src/Mod/Assembly",
"cmakeOption": "BUILD_ASSEMBLY",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 24,
"commandIds": [
"Assembly_ActivateAssembly",
"Assembly_CreateAssembly",
"Assembly_CreateBom",
"Assembly_CreateJointAngle",
"Assembly_CreateJointBall",
"Assembly_CreateJointBelt",
"Assembly_CreateJointCylindrical",
"Assembly_CreateJointDistance",
"Assembly_CreateJointFixed",
"Assembly_CreateJointGearBelt",
"Assembly_CreateJointGears",
"Assembly_CreateJointParallel",
"Assembly_CreateJointPerpendicular",
"Assembly_CreateJointRackPinion",
"Assembly_CreateJointRevolute",
"Assembly_CreateJointScrew",
"Assembly_CreateJointSlider",
"Assembly_CreateSimulation",
"Assembly_CreateView",
"Assembly_ExportASMT",
"Assembly_Insert",
"Assembly_InsertLink",
"Assembly_InsertNewPart",
"Assembly_SolveAssembly",
"Assembly_ToggleGrounded"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "BIM",
"sourcePath": "src/Mod/BIM",
"cmakeOption": "BUILD_BIM",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 206,
"commandIds": [
"Arch_Add",
"Arch_Axis",
"Arch_AxisSystem",
"Arch_AxisTools",
"Arch_Building",
"Arch_Check",
"Arch_CloneComponent",
"Arch_CloseHoles",
"Arch_Component",
"Arch_CurtainWall",
"Arch_CutPlane",
"Arch_Equipment",
"Arch_Fence",
"Arch_Floor",
"Arch_Frame",
"Arch_Grid",
"Arch_IfcSpreadsheet",
"Arch_Level",
"Arch_Material",
"Arch_MaterialTools",
"Arch_MergeWalls",
"Arch_MeshToShape",
"Arch_MultiMaterial",
"Arch_Nest",
"Arch_Panel",
"Arch_PanelTools",
"Arch_Panel_Cut",
"Arch_Panel_Sheet",
"Arch_Pipe",
"Arch_PipeConnector",
"Arch_PipeTools",
"Arch_Profile",
"Arch_Rebar",
"Arch_RebarTools",
"Arch_Reference",
"Arch_Remove",
"Arch_RemoveShape",
"Arch_Roof",
"Arch_Schedule",
"Arch_SectionPlane",
"Arch_SelectNonSolidMeshes",
"Arch_Site",
"Arch_Space",
"Arch_SplitMesh",
"Arch_Stairs",
"Arch_StructuralSystem",
"Arch_Structure",
"Arch_StructureTools",
"Arch_StructuresFromSelection",
"Arch_Survey",
"Arch_ToggleIfcBrepFlag",
"Arch_ToggleSubs",
"Arch_Truss",
"Arch_Wall",
"Arch_Window",
"BIM_Background",
"BIM_Beam",
"BIM_Box",
"BIM_Builder",
"BIM_Classification",
"BIM_Clone",
"BIM_Column",
"BIM_Common",
"BIM_Compound",
"BIM_Convert",
"BIM_Copy",
"BIM_Create2DViews",
"BIM_Cut",
"BIM_Diff",
"BIM_DimensionAligned",
"BIM_DimensionHorizontal",
"BIM_DimensionVertical",
"BIM_Door",
"BIM_DrawingView",
"BIM_EmptyTrash",
"BIM_Examples",
"BIM_Extrude",
"BIM_Fuse",
"BIM_GenericTools",
"BIM_Glue",
"BIM_Help",
"BIM_IfcElements",
"BIM_IfcExplorer",
"BIM_IfcProperties",
"BIM_IfcQuantities",
"BIM_ImagePlane",
"BIM_Layers",
"BIM_Leader",
"BIM_Library",
"BIM_Material",
"BIM_MoveView",
"BIM_Nudge_Down",
"BIM_Nudge_Extend",
"BIM_Nudge_Left",
"BIM_Nudge_Right",
"BIM_Nudge_RotateLeft",
"BIM_Nudge_RotateRight",
"BIM_Nudge_Shrink",
"BIM_Nudge_Switch",
"BIM_Nudge_Up",
"BIM_Offset2D",
"BIM_Preflight",
"BIM_Project",
"BIM_ProjectManager",
"BIM_Reextrude",
"BIM_Reorder",
"BIM_ResetCloneColors",
"BIM_Rewire",
"BIM_SetWPFront",
"BIM_SetWPSide",
"BIM_SetWPTop",
"BIM_Setup",
"BIM_Shape2DCut",
"BIM_Shape2DView",
"BIM_SimpleCopy",
"BIM_Sketch",
"BIM_Slab",
"BIM_TDPage",
"BIM_TDView",
"BIM_Text",
"BIM_TogglePanels",
"BIM_Trash",
"BIM_Tutorial",
"BIM_Unclone",
"BIM_Ungroup",
"BIM_Views",
"BIM_WPView",
"BIM_Welcome",
"BIM_Windows",
"IFC_ConvertDocument",
"IFC_Diff",
"IFC_Expand",
"IFC_MakeProject",
"IFC_Save",
"IFC_SaveAs",
"IFC_UpdateIOS"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "CAM",
"sourcePath": "src/Mod/CAM",
"cmakeOption": "BUILD_CAM",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 363,
"commandIds": [
"CAM_%s",
"CAM_3dTools",
"CAM_Array",
"CAM_Camotics",
"CAM_Comment",
"CAM_Copy",
"CAM_DressupArray",
"CAM_DressupAxisMap",
"CAM_DressupDogbone",
"CAM_DressupDragKnife",
"CAM_DressupLeadInOut",
"CAM_DressupPathBoundary",
"CAM_DressupRampEntry",
"CAM_DressupTag",
"CAM_DressupTools",
"CAM_DressupZCorrect",
"CAM_DrillingTools",
"CAM_EngraveTools",
"CAM_ExportTemplate",
"CAM_Fixture",
"CAM_Inspect",
"CAM_Job",
"CAM_OpActiveToggle",
"CAM_OperationCopy",
"CAM_PathShapeTC",
"CAM_Post",
"CAM_PropertyBag",
"CAM_Sanity",
"CAM_SelectLoop",
"CAM_SetStartPoint",
"CAM_SimTools",
"CAM_SimpleCopy",
"CAM_Simulator",
"CAM_SimulatorGL",
"CAM_Stop",
"CAM_ToolBitCreate",
"CAM_ToolBitDock",
"CAM_ToolBitLibraryOpen",
"CAM_ToolBitLoad",
"CAM_ToolBitSave",
"CAM_ToolBitSaveAs",
"CAM_ToolController"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Cloud",
"sourcePath": "src/Mod/Cloud",
"cmakeOption": "BUILD_CLOUD",
"cmakeDefault": false,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Draft",
"sourcePath": "src/Mod/Draft",
"cmakeOption": "BUILD_DRAFT",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": false,
"pythonFileCount": 238,
"commandIds": [
"Draft_AddConstruction",
"Draft_AddNamedGroup",
"Draft_AddToGroup",
"Draft_AddToLayer",
"Draft_AnnotationStyleEditor",
"Draft_ApplyStyle",
"Draft_Arc",
"Draft_ArcTools",
"Draft_Arc_3Points",
"Draft_ArrayTools",
"Draft_AutoGroup",
"Draft_BSpline",
"Draft_BezCurve",
"Draft_BezierTools",
"Draft_Circle",
"Draft_CircularArray",
"Draft_Clone",
"Draft_CubicBezCurve",
"Draft_Dimension",
"Draft_Downgrade",
"Draft_Draft2Sketch",
"Draft_Edit",
"Draft_Ellipse",
"Draft_Facebinder",
"Draft_Fillet",
"Draft_FlipDimension",
"Draft_Hatch",
"Draft_Heal",
"Draft_Hyperlink",
"Draft_Join",
"Draft_Label",
"Draft_Layer",
"Draft_LayerManager",
"Draft_Line",
"Draft_Mirror",
"Draft_Move",
"Draft_Offset",
"Draft_OrthoArray",
"Draft_PathArray",
"Draft_PathLinkArray",
"Draft_PathTwistedArray",
"Draft_PathTwistedLinkArray",
"Draft_Point",
"Draft_PointArray",
"Draft_PointLinkArray",
"Draft_PolarArray",
"Draft_Polygon",
"Draft_Rectangle",
"Draft_Rotate",
"Draft_Scale",
"Draft_SelectGroup",
"Draft_SelectPlane",
"Draft_SetStyle",
"Draft_Shape2DView",
"Draft_ShapeString",
"Draft_ShowSnapBar",
"Draft_Slope",
"Draft_Snap_Angle",
"Draft_Snap_Center",
"Draft_Snap_Dimensions",
"Draft_Snap_Endpoint",
"Draft_Snap_Extension",
"Draft_Snap_Grid",
"Draft_Snap_Intersection",
"Draft_Snap_Lock",
"Draft_Snap_Midpoint",
"Draft_Snap_Near",
"Draft_Snap_Ortho",
"Draft_Snap_Parallel",
"Draft_Snap_Perpendicular",
"Draft_Snap_Special",
"Draft_Snap_WorkingPlane",
"Draft_Split",
"Draft_Stretch",
"Draft_SubelementHighlight",
"Draft_Text",
"Draft_ToggleConstructionMode",
"Draft_ToggleDisplayMode",
"Draft_ToggleGrid",
"Draft_Trimex",
"Draft_Upgrade",
"Draft_Wire",
"Draft_WireToBSpline",
"Draft_WorkingPlaneProxy"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Fem",
"sourcePath": "src/Mod/Fem",
"cmakeOption": "BUILD_FEM",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 390,
"commandIds": [
"FEM_Analysis",
"FEM_ClippingPlaneAdd",
"FEM_ClippingPlaneRemoveAll",
"FEM_ConstantVacuumPermittivity",
"FEM_ConstraintBodyHeatSource",
"FEM_ConstraintCentrif",
"FEM_ConstraintCurrentDensity",
"FEM_ConstraintElectricChargeDensity",
"FEM_ConstraintElectrostaticPotential",
"FEM_ConstraintFlowVelocity",
"FEM_ConstraintInitialFlowVelocity",
"FEM_ConstraintInitialPressure",
"FEM_ConstraintMagnetization",
"FEM_ConstraintSectionPrint",
"FEM_ConstraintSelfWeight",
"FEM_ConstraintTie",
"FEM_ElementFluid1D",
"FEM_ElementGeometry1D",
"FEM_ElementGeometry2D",
"FEM_ElementRotation1D",
"FEM_EquationDeformation",
"FEM_EquationElasticity",
"FEM_EquationElectricforce",
"FEM_EquationElectrostatic",
"FEM_EquationFlow",
"FEM_EquationFlux",
"FEM_EquationHeat",
"FEM_EquationMagnetodynamic",
"FEM_EquationMagnetodynamic2D",
"FEM_EquationStaticCurrent",
"FEM_Examples",
"FEM_FEMMesh2Mesh",
"FEM_MaterialEditor",
"FEM_MaterialFluid",
"FEM_MaterialMechanicalNonlinear",
"FEM_MaterialReinforced",
"FEM_MaterialSolid",
"FEM_MeshBoundaryLayer",
"FEM_MeshClear",
"FEM_MeshDisplayInfo",
"FEM_MeshGmshFromShape",
"FEM_MeshGroup",
"FEM_MeshNetgenFromShape",
"FEM_MeshRegion",
"FEM_PostFilterGlyph",
"FEM_PostVisualization",
"FEM_ResultShow",
"FEM_ResultsPurge",
"FEM_SolverCalculiX",
"FEM_SolverCalculiXCcxTools",
"FEM_SolverControl",
"FEM_SolverElmer",
"FEM_SolverMystran",
"FEM_SolverRun",
"FEM_SolverZ88"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Help",
"sourcePath": "src/Mod/Help",
"cmakeOption": "BUILD_HELP",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Idf",
"sourcePath": "src/Mod/Idf",
"cmakeOption": "BUILD_IDF",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Import",
"sourcePath": "src/Mod/Import",
"cmakeOption": "BUILD_IMPORT",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 24,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Inspection",
"sourcePath": "src/Mod/Inspection",
"cmakeOption": "BUILD_INSPECTION",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "JtReader",
"sourcePath": "src/Mod/JtReader",
"cmakeOption": "BUILD_JTREADER",
"cmakeDefault": false,
"hasCMake": true,
"hasApp": true,
"hasGui": false,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Material",
"sourcePath": "src/Mod/Material",
"cmakeOption": "BUILD_MATERIAL",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 18,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Measure",
"sourcePath": "src/Mod/Measure",
"cmakeOption": "BUILD_MEASURE",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 4,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Mesh",
"sourcePath": "src/Mod/Mesh",
"cmakeOption": "BUILD_MESH",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 5,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "MeshPart",
"sourcePath": "src/Mod/MeshPart",
"cmakeOption": "BUILD_MESH_PART",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 3,
"commandIds": [
"MeshPart_CreateFlatFace",
"MeshPart_CreateFlatMesh"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "OpenSCAD",
"sourcePath": "src/Mod/OpenSCAD",
"cmakeOption": "BUILD_OPENSCAD",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 21,
"commandIds": [
"OpenSCAD_AddOpenSCADElement",
"OpenSCAD_ColorCodeShape",
"OpenSCAD_Edgestofaces",
"OpenSCAD_ExpandPlacements",
"OpenSCAD_ExplodeGroup",
"OpenSCAD_Hull",
"OpenSCAD_IncreaseToleranceFeature",
"OpenSCAD_MeshBoolean",
"OpenSCAD_Minkowski",
"OpenSCAD_MirrorMeshFeature",
"OpenSCAD_RefineShapeFeature",
"OpenSCAD_RemoveSubtree",
"OpenSCAD_ReplaceObject",
"OpenSCAD_ResizeMeshFeature",
"OpenSCAD_ScaleMeshFeature"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Part",
"sourcePath": "src/Mod/Part",
"cmakeOption": "BUILD_PART",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 42,
"commandIds": [
"Part_BooleanFragments",
"Part_CompoundFilter",
"Part_EditAttachment",
"Part_ExplodeCompound",
"Part_JoinConnect",
"Part_JoinCutout",
"Part_JoinEmbed",
"Part_Slice",
"Part_SliceApart",
"Part_ToleranceSet",
"Part_Tube",
"Part_XOR"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "PartDesign",
"sourcePath": "src/Mod/PartDesign",
"cmakeOption": "BUILD_PART_DESIGN",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 55,
"commandIds": [
"PartDesign_InvoluteGear",
"PartDesign_Sprocket",
"PartDesign_WizardShaft",
"PartDesign_WizardShaftCallBack"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Plot",
"sourcePath": "src/Mod/Plot",
"cmakeOption": "BUILD_PLOT",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 1,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Points",
"sourcePath": "src/Mod/Points",
"cmakeOption": "BUILD_POINTS",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 4,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "ReverseEngineering",
"sourcePath": "src/Mod/ReverseEngineering",
"cmakeOption": "BUILD_REVERSEENGINEERING",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 2,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Robot",
"sourcePath": "src/Mod/Robot",
"cmakeOption": "BUILD_ROBOT",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 6,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Sandbox",
"sourcePath": "src/Mod/Sandbox",
"cmakeOption": "BUILD_SANDBOX",
"cmakeDefault": false,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 3,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Show",
"sourcePath": "src/Mod/Show",
"cmakeOption": "BUILD_SHOW",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 15,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Sketcher",
"sourcePath": "src/Mod/Sketcher",
"cmakeOption": "BUILD_SKETCHER",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 15,
"commandIds": [
"Sketcher_ProfilesHexagon1"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Spreadsheet",
"sourcePath": "src/Mod/Spreadsheet",
"cmakeOption": "BUILD_SPREADSHEET",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 6,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Start",
"sourcePath": "src/Mod/Start",
"cmakeOption": "BUILD_START",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 3,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Surface",
"sourcePath": "src/Mod/Surface",
"cmakeOption": "BUILD_SURFACE",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 5,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "TechDraw",
"sourcePath": "src/Mod/TechDraw",
"cmakeOption": "BUILD_TECHDRAW",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": true,
"pythonFileCount": 36,
"commandIds": [
"TechDraw_AxoLengthDimension",
"TechDraw_CommandAddOffsetVertex",
"TechDraw_CommandVertexCreationGroup",
"TechDraw_ExtensionPositionSectionView",
"TechDraw_FillTemplateFields",
"TechDraw_HoleShaftFit",
"TechDraw_MoveView",
"TechDraw_ShareView"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "TemplatePyMod",
"sourcePath": "src/Mod/TemplatePyMod",
"cmakeOption": "BUILD_TEMPLATEPYMOD",
"cmakeDefault": null,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 13,
"commandIds": [
"TemplatePyCheckable",
"TemplatePyGroup",
"TemplatePyGrp_1",
"TemplatePyGrp_2",
"TemplatePyGrp_3",
"TemplatePyMod_Cmd1",
"TemplatePyMod_Cmd2",
"TemplatePyMod_Cmd3",
"TemplatePyMod_Cmd4",
"TemplatePyMod_Cmd5",
"TemplatePyMod_Cmd6"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Test",
"sourcePath": "src/Mod/Test",
"cmakeOption": "BUILD_TEST",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": true,
"pythonFileCount": 22,
"commandIds": [
"Test_InsertFeature",
"Test_Test",
"Test_TestAll",
"Test_TestAllText",
"Test_TestBase",
"Test_TestBaseText",
"Test_TestCreateMenu",
"Test_TestDeleteMenu",
"Test_TestDoc",
"Test_TestDocText",
"Test_TestWork"
],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Tux",
"sourcePath": "src/Mod/Tux",
"cmakeOption": "BUILD_TUX",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": false,
"hasGui": false,
"pythonFileCount": 4,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
},
{
"name": "Web",
"sourcePath": "src/Mod/Web",
"cmakeOption": "BUILD_WEB",
"cmakeDefault": true,
"hasCMake": true,
"hasApp": true,
"hasGui": false,
"pythonFileCount": 1,
"commandIds": [],
"runtimeStatus": "requires-freecad-reference-probe"
}
]
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More