feat: establish reproducible FreeCAD web compatibility baseline
This commit is contained in:
38
config/camotics-gui-tpl-artifact.json
Normal file
38
config/camotics-gui-tpl-artifact.json
Normal 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"
|
||||
}
|
||||
}
|
||||
124
config/camotics-native-artifact.json
Normal file
124
config/camotics-native-artifact.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
58
config/camotics-wasm-artifact.json
Normal file
58
config/camotics-wasm-artifact.json
Normal 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
|
||||
}
|
||||
}
|
||||
35
config/chrome-addon-verification.json
Normal file
35
config/chrome-addon-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
441
config/chrome-app-e2e-verification.json
Normal file
441
config/chrome-app-e2e-verification.json
Normal 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": []
|
||||
}
|
||||
64
config/chrome-assembly-verification.json
Normal file
64
config/chrome-assembly-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
44
config/chrome-bim-verification.json
Normal file
44
config/chrome-bim-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
46
config/chrome-cam-linuxcnc-machine-verification.json
Normal file
46
config/chrome-cam-linuxcnc-machine-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
134
config/chrome-cam-native-simulation-verification.json
Normal file
134
config/chrome-cam-native-simulation-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
100
config/chrome-cam-verification.json
Normal file
100
config/chrome-cam-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
27
config/chrome-camotics-wasm-verification.json
Normal file
27
config/chrome-camotics-wasm-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
78
config/chrome-data-verification.json
Normal file
78
config/chrome-data-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
59
config/chrome-draft-verification.json
Normal file
59
config/chrome-draft-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
65
config/chrome-engineering-verification.json
Normal file
65
config/chrome-engineering-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
35
config/chrome-fault-injection-verification.json
Normal file
35
config/chrome-fault-injection-verification.json
Normal 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
|
||||
}
|
||||
15030
config/chrome-fcstd-golden-verification.json
Normal file
15030
config/chrome-fcstd-golden-verification.json
Normal file
File diff suppressed because it is too large
Load Diff
57
config/chrome-fcstd-roundtrip-verification.json
Normal file
57
config/chrome-fcstd-roundtrip-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
56
config/chrome-fcstd-semantic-verification.json
Normal file
56
config/chrome-fcstd-semantic-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
45
config/chrome-fem-verification.json
Normal file
45
config/chrome-fem-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
270
config/chrome-geometry-features-verification.json
Normal file
270
config/chrome-geometry-features-verification.json
Normal 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": []
|
||||
}
|
||||
49
config/chrome-inspection-verification.json
Normal file
49
config/chrome-inspection-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
55
config/chrome-mesh-verification.json
Normal file
55
config/chrome-mesh-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
62
config/chrome-native-chamfer-history-verification.json
Normal file
62
config/chrome-native-chamfer-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
64
config/chrome-native-draft-history-verification.json
Normal file
64
config/chrome-native-draft-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
61
config/chrome-native-fillet-history-verification.json
Normal file
61
config/chrome-native-fillet-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
491
config/chrome-native-groove-history-verification.json
Normal file
491
config/chrome-native-groove-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
41
config/chrome-native-history-verification.json
Normal file
41
config/chrome-native-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
101
config/chrome-native-hole-history-verification.json
Normal file
101
config/chrome-native-hole-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
73
config/chrome-native-loft-history-verification.json
Normal file
73
config/chrome-native-loft-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
69
config/chrome-native-mirrored-history-verification.json
Normal file
69
config/chrome-native-mirrored-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
119
config/chrome-native-multi-transform-history-verification.json
Normal file
119
config/chrome-native-multi-transform-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
59
config/chrome-native-pad-history-verification.json
Normal file
59
config/chrome-native-pad-history-verification.json
Normal 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
|
||||
}
|
||||
74
config/chrome-native-pipe-history-verification.json
Normal file
74
config/chrome-native-pipe-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
147
config/chrome-native-pocket-history-verification.json
Normal file
147
config/chrome-native-pocket-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
68
config/chrome-native-polar-pattern-history-verification.json
Normal file
68
config/chrome-native-polar-pattern-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
132
config/chrome-native-revolution-history-verification.json
Normal file
132
config/chrome-native-revolution-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
68
config/chrome-native-thickness-history-verification.json
Normal file
68
config/chrome-native-thickness-history-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
34
config/chrome-offline-verification.json
Normal file
34
config/chrome-offline-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
36
config/chrome-opfs-migration-verification.json
Normal file
36
config/chrome-opfs-migration-verification.json
Normal 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"
|
||||
]
|
||||
}
|
||||
}
|
||||
54
config/chrome-part-primitives-verification.json
Normal file
54
config/chrome-part-primitives-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
93
config/chrome-partdesign-lifecycle-verification.json
Normal file
93
config/chrome-partdesign-lifecycle-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
118
config/chrome-partdesign-loft-verification.json
Normal file
118
config/chrome-partdesign-loft-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
337
config/chrome-partdesign-transform-verification.json
Normal file
337
config/chrome-partdesign-transform-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
35
config/chrome-performance-verification.json
Normal file
35
config/chrome-performance-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
22
config/chrome-persistence-verification.json
Normal file
22
config/chrome-persistence-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
757
config/chrome-planegcs-verification.json
Normal file
757
config/chrome-planegcs-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
87
config/chrome-plot-verification.json
Normal file
87
config/chrome-plot-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
64
config/chrome-production-document-verification.json
Normal file
64
config/chrome-production-document-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
122
config/chrome-profile-validation-verification.json
Normal file
122
config/chrome-profile-validation-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
42
config/chrome-qa08-verification.json
Normal file
42
config/chrome-qa08-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
43
config/chrome-robot-verification.json
Normal file
43
config/chrome-robot-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
42
config/chrome-script-verification.json
Normal file
42
config/chrome-script-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
120
config/chrome-secondary-formats-verification.json
Normal file
120
config/chrome-secondary-formats-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
33
config/chrome-security-verification.json
Normal file
33
config/chrome-security-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
65
config/chrome-sketcher-bspline-verification.json
Normal file
65
config/chrome-sketcher-bspline-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
37
config/chrome-sketcher-diagnostics-verification.json
Normal file
37
config/chrome-sketcher-diagnostics-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
115
config/chrome-sketcher-editor-verification.json
Normal file
115
config/chrome-sketcher-editor-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
37
config/chrome-sketcher-stress-verification.json
Normal file
37
config/chrome-sketcher-stress-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
87
config/chrome-spreadsheet-verification.json
Normal file
87
config/chrome-spreadsheet-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
36
config/chrome-surface-verification.json
Normal file
36
config/chrome-surface-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
70
config/chrome-techdraw-verification.json
Normal file
70
config/chrome-techdraw-verification.json
Normal 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"
|
||||
}
|
||||
}
|
||||
34
config/chrome-topology-verification.json
Normal file
34
config/chrome-topology-verification.json
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -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.",
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
2320
config/freecad-bitbybit-native-threeway.json
Normal file
2320
config/freecad-bitbybit-native-threeway.json
Normal file
File diff suppressed because it is too large
Load Diff
123
config/freecad-cam-parity.json
Normal file
123
config/freecad-cam-parity.json
Normal 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"
|
||||
]
|
||||
}
|
||||
2849
config/freecad-cam-path-oracle.json
Normal file
2849
config/freecad-cam-path-oracle.json
Normal file
File diff suppressed because it is too large
Load Diff
180067
config/freecad-composite-history-elementmap-oracle.json
Normal file
180067
config/freecad-composite-history-elementmap-oracle.json
Normal file
File diff suppressed because it is too large
Load Diff
46
config/freecad-desktop-oracle.json
Normal file
46
config/freecad-desktop-oracle.json
Normal 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"
|
||||
}
|
||||
577
config/freecad-entrypoint-inventory.json
Normal file
577
config/freecad-entrypoint-inventory.json
Normal 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"
|
||||
}
|
||||
}
|
||||
20
config/freecad-exact-history-elementmap-gate.json
Normal file
20
config/freecad-exact-history-elementmap-gate.json
Normal 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
|
||||
}
|
||||
}
|
||||
215
config/freecad-execution-plan.json
Normal file
215
config/freecad-execution-plan.json
Normal 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."
|
||||
]
|
||||
}
|
||||
868
config/freecad-fcstd-roundtrip-verification.json
Normal file
868
config/freecad-fcstd-roundtrip-verification.json
Normal 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"
|
||||
}
|
||||
65
config/freecad-golden-coverage-plan.json
Normal file
65
config/freecad-golden-coverage-plan.json
Normal 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"] }] }
|
||||
]
|
||||
}
|
||||
36
config/freecad-golden-verification.json
Normal file
36
config/freecad-golden-verification.json
Normal 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"
|
||||
}
|
||||
44953
config/freecad-gui-command-inventory.json
Normal file
44953
config/freecad-gui-command-inventory.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -30,7 +30,7 @@
|
||||
},
|
||||
"verification": {
|
||||
"goldenManifest": "fixtures/freecad-golden/manifest.json",
|
||||
"scenarioCount": 5,
|
||||
"scenarioCount": 100,
|
||||
"result": "passed"
|
||||
}
|
||||
}
|
||||
|
||||
21
config/freecad-parameter-mutation-plan.json
Normal file
21
config/freecad-parameter-mutation-plan.json
Normal 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
|
||||
}
|
||||
3158
config/freecad-parameter-mutation-report.json
Normal file
3158
config/freecad-parameter-mutation-report.json
Normal file
File diff suppressed because it is too large
Load Diff
267
config/freecad-part-builders-oracle.json
Normal file
267
config/freecad-part-builders-oracle.json
Normal 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
|
||||
}
|
||||
}
|
||||
115
config/freecad-partdesign-base-oracle.json
Normal file
115
config/freecad-partdesign-base-oracle.json
Normal 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
|
||||
}
|
||||
69
config/freecad-partdesign-dressup-oracle.json
Normal file
69
config/freecad-partdesign-dressup-oracle.json
Normal 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
|
||||
}
|
||||
267
config/freecad-partdesign-failure-oracle.json
Normal file
267
config/freecad-partdesign-failure-oracle.json
Normal 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
|
||||
}
|
||||
}
|
||||
52
config/freecad-partdesign-loft-oracle.json
Normal file
52
config/freecad-partdesign-loft-oracle.json
Normal 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
|
||||
}
|
||||
88
config/freecad-partdesign-profile-oracle.json
Normal file
88
config/freecad-partdesign-profile-oracle.json
Normal 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
|
||||
}
|
||||
37
config/freecad-partdesign-revolution-groove-oracle.json
Normal file
37
config/freecad-partdesign-revolution-groove-oracle.json
Normal 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
|
||||
}
|
||||
}
|
||||
312
config/freecad-partdesign-transform-oracle.json
Normal file
312
config/freecad-partdesign-transform-oracle.json
Normal 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
|
||||
}
|
||||
594
config/freecad-sketcher-constraint-oracle.json
Normal file
594
config/freecad-sketcher-constraint-oracle.json
Normal 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
|
||||
}
|
||||
260
config/freecad-sketcher-editor-oracle.json
Normal file
260
config/freecad-sketcher-editor-oracle.json
Normal 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
|
||||
}
|
||||
839
config/freecad-source-inventory.json
Normal file
839
config/freecad-source-inventory.json
Normal 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"
|
||||
}
|
||||
]
|
||||
}
|
||||
31395
config/freecad-type-property-inventory.json
Normal file
31395
config/freecad-type-property-inventory.json
Normal file
File diff suppressed because it is too large
Load Diff
149
config/freecad-web-exact-parity-plan.json
Normal file
149
config/freecad-web-exact-parity-plan.json
Normal file
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"baseline": {
|
||||
"freecadVersion": "1.1.1",
|
||||
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"browserBaseline": "Chrome/150"
|
||||
},
|
||||
"claim": {
|
||||
"exact": false,
|
||||
"scope": "All 34 locked FreeCAD modules, formats, entrypoints, GUI states and native document semantics",
|
||||
"reason": "Compatible browser subsets exist, but no module has completed the full native oracle, round-trip and zero-unknown-difference gate."
|
||||
},
|
||||
"hardBoundaries": [
|
||||
"Private FreeCAD MappedNameRef/StringHasher tokens require native evidence and cannot be inferred from final geometry.",
|
||||
"Intermediate Generated/Modified/Deleted relations require native builder-stage evidence.",
|
||||
"Isomorphic subshapes without one unique native source remain ambiguous with persisted candidates."
|
||||
],
|
||||
"programs": [
|
||||
{
|
||||
"id": "EX01",
|
||||
"title": "Exhaustive FreeCAD oracle and optional dependency baseline",
|
||||
"tasks": [
|
||||
{ "id": "EX-ORA-01", "title": "Capture exhaustive runtime objects, properties, commands and GUI states", "priority": "P0", "status": "in_progress", "dependencies": [], "deliverables": ["Runtime oracle for every registered TypeId and command", "Success, failure, disabled and cancel fixtures", "Source-to-runtime trace"], "acceptance": ["All inventory candidates are promoted or explicitly excluded", "No command or property has an unknown runtime state"], "evidence": ["check:freecad-inventory", "check:freecad-type-properties", "check:freecad-gui-commands", "check:freecad-oracle-coverage"], "exactBlockedBy": ["Static candidates and GUI-only states are not exhaustively runtime-probed"] },
|
||||
{ "id": "EX-ORA-02", "title": "Expand geometry, history and FCStd golden corpus to every feature family", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Parameterized success and failure corpus", "Native Shape, history, ElementMap2 and StringHasher evidence", "FreeCAD save-reopen-resave evidence"], "acceptance": ["Every editable feature family has boundary and mutation fixtures", "Unknown semantic differences are zero"], "evidence": ["check:freecad-golden-fixtures", "check:freecad-composite-history-elementmap", "check:freecad-golden-coverage", "check:freecad-parameter-mutations", "check:freecad-partdesign-failures", "check:freecad-partdesign-revolution-groove", "check:freecad-partdesign-transform", "check:freecad-part-builders"], "exactBlockedBy": ["Parameter mutation matrix is fail-closed until every family has explicit edit/recompute/recovery and round-trip evidence"] },
|
||||
{ "id": "EX-ORA-03", "title": "Lock all optional libraries, platform capabilities and license boundaries", "priority": "P1", "status": "pending", "dependencies": ["EX-ORA-01"], "deliverables": ["Optional dependency manifest", "Browser, sidecar or proxy decision per dependency", "Reproducible hashes and licenses"], "acceptance": ["Every optional FreeCAD capability has one executable strategy", "No undeclared host-only dependency affects a claim"], "evidence": ["check:baseline", "check:sbom"], "exactBlockedBy": ["Several desktop-only optional libraries remain proxy or sidecar capabilities"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX02",
|
||||
"title": "Kernel, topology history and persistent naming exactness",
|
||||
"tasks": [
|
||||
{ "id": "EX-KER-01", "title": "Match OCCT construction, validation, tolerances and failure diagnostics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-02"], "deliverables": ["Per-operation native differential", "Tolerance and placement contract", "Failure-code map"], "acceptance": ["Shape validity, topology, mass properties and diagnostics match locked FreeCAD fixtures", "Worker ownership returns to zero after every case"], "evidence": ["check:browser-occt", "check:chrome-geometry-features"], "exactBlockedBy": ["Not all FreeCAD builder flags and failure branches are represented"] },
|
||||
{ "id": "EX-TSN-00", "title": "Fail closed when native naming or builder evidence is absent", "priority": "P0", "status": "completed", "dependencies": [], "deliverables": ["Runtime naming evidence contract", "final-shape-only and ambiguous persistence", "ElementMap2 writer evidence guard"], "acceptance": ["Final geometry cannot mint a private FreeCAD token", "Unproven stage relations and isomorphic sources cannot become stable"], "evidence": ["check:freecad-native-naming-evidence", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": [] },
|
||||
{ "id": "EX-TSN-01", "title": "Capture native stage Shape and Generated/Modified/Deleted for every builder", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-00"], "deliverables": ["All builder-stage captures", "Multi-input and one-to-many lineage", "Local feature recompute history"], "acceptance": ["Every feature result relation has a producing native stage", "No final-result index is applied to an intermediate Shape"], "evidence": ["check:freecad-composite-history-elementmap", "check:chrome-native-history"], "exactBlockedBy": ["Some providers still return only a final Shape"] },
|
||||
{ "id": "EX-TSN-02", "title": "Expose native MappedNameRef and StringHasher decisions for every feature", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-01"], "deliverables": ["Native naming callback ABI", "Per-stage StringHasher evidence", "Lossless ElementMap2 token generation"], "acceptance": ["All new tokens originate in native evidence", "FreeCAD round-trip names remain byte and semantic stable"], "evidence": ["check:freecad-native-naming-evidence"], "exactBlockedBy": ["FreeCAD private naming callbacks are not exposed for every builder"] },
|
||||
{ "id": "EX-TSN-03", "title": "Resolve isomorphic topology only from unique native provenance", "priority": "P0", "status": "in_progress", "dependencies": ["EX-TSN-01", "EX-TSN-02"], "deliverables": ["Symmetric Boolean corpus", "Candidate provenance graph", "Ambiguity repair lifecycle"], "acceptance": ["Unique native sources resolve deterministically", "Non-unique sources remain ambiguous across save, undo and recompute"], "evidence": ["test:topology-replay", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Symmetric cases without unique native provenance remain intentionally ambiguous"] },
|
||||
{ "id": "EX-TSN-04", "title": "Close topology naming across all feature edits and FCStd round-trips", "priority": "P0", "status": "pending", "dependencies": ["EX-TSN-02", "EX-TSN-03"], "deliverables": ["Cross-feature mutation matrix", "ElementMap2 history migration", "Long-chain LinkSub stability report"], "acceptance": ["Wrong bindings, unexplained relations and name drift are zero for the exhaustive corpus"], "evidence": ["check:freecad-fcstd-roundtrip", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Exhaustive cross-feature naming corpus is incomplete"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX03",
|
||||
"title": "Application document, property and recompute semantics",
|
||||
"tasks": [
|
||||
{ "id": "EX-DOC-01", "title": "Implement every native property type, flag, editor and serialization rule", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Complete Property schema", "Status and editor metadata", "Binary and XML codecs"], "acceptance": ["Every runtime property fixture round-trips without type coercion or unknown loss"], "evidence": ["check:freecad-type-properties", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["The runtime property inventory has unpromoted static candidates"] },
|
||||
{ "id": "EX-DOC-02", "title": "Match transactions, DAG recompute, partial failure and document observers", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01", "EX-TSN-04"], "deliverables": ["Transaction and observer event oracle", "Partial recompute scheduler", "Failure recovery contract"], "acceptance": ["Undo, redo, abort, stale and cyclic dependency behavior matches FreeCAD"], "evidence": ["check:document-closure", "test:facade"], "exactBlockedBy": ["Observer ordering and every partial-recompute branch are not yet oracle-backed"] },
|
||||
{ "id": "EX-DOC-03", "title": "Complete expressions, links, extensions, groups and App object lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-01"], "deliverables": ["Expression dependency grammar", "Link and extension lifecycle", "Group and clone semantics"], "acceptance": ["Copy, clone, delete, relink and expression edits survive native round-trip"], "evidence": ["check:fcstd-closure", "check:chrome-production-document"], "exactBlockedBy": ["FeaturePython-backed extensions remain non-executable"] },
|
||||
{ "id": "EX-DOC-04", "title": "Complete multi-document, external link, merge and recovery workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-DOC-02", "EX-DOC-03"], "deliverables": ["Cross-document Link corpus", "Merge and conflict semantics", "Crash and autosave recovery"], "acceptance": ["Open, close, relink, merge and recovery match the native document graph"], "evidence": ["check:chrome-persistence", "check:project-migration"], "exactBlockedBy": ["Current application is project-first and does not implement every desktop multi-document workflow"] },
|
||||
{ "id": "EX-DOC-05", "title": "Match parameters, preferences, units, materials and view properties", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-01"], "deliverables": ["Namespaced parameter schema", "Unit and material catalogs", "View property migration"], "acceptance": ["Preference changes affect the same commands and document defaults as FreeCAD"], "evidence": ["check:chrome-app-e2e", "test:locale"], "exactBlockedBy": ["Only the declared browser preference subset is implemented"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX04",
|
||||
"title": "Sketcher, Part and PartDesign feature exactness",
|
||||
"tasks": [
|
||||
{ "id": "EX-SK-01", "title": "Cover every Sketcher geometry, constraint overload and solver classification", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-DOC-02"], "deliverables": ["Complete geometry and constraint matrix", "Planegcs result parity", "Reference, redundant and conflict oracle"], "acceptance": ["Geometry, DOF, diagnostics and solver results match every fixture"], "evidence": ["check:freecad-sketcher-constraints", "check:chrome-sketcher-diagnostics"], "exactBlockedBy": ["Arbitrary overload combinations and all failure messages are not exhaustive"] },
|
||||
{ "id": "EX-SK-02", "title": "Match Sketcher editing tools, autoconstraints, virtual space and UI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-SK-01", "EX-UI-03"], "deliverables": ["Pointer and keyboard editor oracle", "All editing tools", "Task and focus lifecycle"], "acceptance": ["Every tool supports success, failure, cancel, undo and redo with matching selection"], "evidence": ["check:freecad-sketcher-editor", "check:chrome-sketcher-bspline"], "exactBlockedBy": ["The full GUI tool and focus matrix is incomplete"] },
|
||||
{ "id": "EX-PART-01", "title": "Complete all Part primitives, builders, booleans, healing and inspection", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-04"], "deliverables": ["All Part commands and parameters", "Healing and tolerance tools", "Native history for local operations"], "acceptance": ["Success and failure outputs match native Shape, history and diagnostics"], "evidence": ["check:chrome-part-primitives", "check:freecad-golden-fixtures"], "exactBlockedBy": ["Current golden corpus does not enumerate every Part command and option"] },
|
||||
{ "id": "EX-PD-01", "title": "Complete all PartDesign features, parameters and additive/subtractive combinations", "priority": "P0", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-TSN-04"], "deliverables": ["Complete PartDesign feature matrix", "Body Tip and feature-list semantics", "Per-feature native history and naming"], "acceptance": ["Every feature edit, failure recovery and save-reopen matches FreeCAD"], "evidence": ["check:partdesign-closure", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["Feature coverage is broad but private naming and all parameter combinations are not exhaustive"] },
|
||||
{ "id": "EX-PD-02", "title": "Complete attachment, datum, ShapeBinder, SubShapeBinder and body workflows", "priority": "P0", "status": "pending", "dependencies": ["EX-PD-01", "EX-DOC-04"], "deliverables": ["All map modes and support rules", "Datum and binder lifecycle", "Multi-body and cross-document corpus"], "acceptance": ["Support migration, visibility, Tip and references remain exact through mutation"], "evidence": ["check:chrome-partdesign-lifecycle", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Complete datum/binder and multi-body oracle is absent"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX05",
|
||||
"title": "FCStd and all import/export entrypoints",
|
||||
"tasks": [
|
||||
{ "id": "EX-FC-01", "title": "Round-trip every native FCStd object, property, extension and resource", "priority": "P0", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["Complete native archive model", "Unknown object preservation", "FreeCAD-Web-FreeCAD mutation corpus"], "acceptance": ["No supported object, property, GUI state or resource drifts after mutation and resave"], "evidence": ["check:fcstd-closure", "check:chrome-fcstd-roundtrip"], "exactBlockedBy": ["FCStd currently supports a verified subset plus read-only proxies"] },
|
||||
{ "id": "EX-FMT-01", "title": "Close BREP, STEP and IGES import/export semantics", "priority": "P0", "status": "in_progress", "dependencies": ["EX-KER-01"], "deliverables": ["Assembly/color/name import", "Unit and tolerance handling", "Deterministic exports"], "acceptance": ["Native and Web topology, metadata and diagnostics match for each format"] , "evidence": ["check:chrome-secondary-formats", "check:browser-occt"], "exactBlockedBy": ["Advanced STEP/IGES metadata and assembly cases are incomplete"] },
|
||||
{ "id": "EX-FMT-02", "title": "Close STL, OBJ, PLY, DXF, SVG and PDF round-trips", "priority": "P1", "status": "in_progress", "dependencies": ["EX-MESH-01", "EX-DRAFT-01", "EX-TD-01"], "deliverables": ["Mesh and 2D format codecs", "Style/layer metadata", "Import-export failure corpus"], "acceptance": ["All supported entities and metadata round-trip or fail with a registered difference"] , "evidence": ["check:chrome-secondary-formats", "check:document-closure"], "exactBlockedBy": ["Several formats remain read-only or omit advanced entity metadata"] },
|
||||
{ "id": "EX-FMT-03", "title": "Close IFC, CSV and G-code native object semantics", "priority": "P1", "status": "in_progress", "dependencies": ["EX-BIM-01", "EX-SS-01", "EX-CAM-01"], "deliverables": ["IFC schema and property sets", "Spreadsheet CSV dialect parity", "Path/G-code object round-trip"], "acceptance": ["Import, edit, export and native reopen preserve the declared object graph"] , "evidence": ["check:chrome-bim", "check:document-closure", "check:cam-parity"], "exactBlockedBy": ["IFC and G-code entrypoint inventory still records unsupported desktop semantics"] },
|
||||
{ "id": "EX-FMT-04", "title": "Implement or explicitly isolate JT, IDF and OpenSCAD resources", "priority": "P2", "status": "pending", "dependencies": ["EX-ORA-03", "EX-PROXY-01"], "deliverables": ["Browser decoder or isolated service per format", "Security and license boundary", "Lossless proxy fallback"], "acceptance": ["Each format is executable with native differential evidence or remains outside the exact claim"] , "evidence": ["check:platform-closure", "check:security-baseline"], "exactBlockedBy": ["JT, IDF and OpenSCAD are proxy modules"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX06",
|
||||
"title": "FreeCAD GUI and interaction semantics",
|
||||
"tasks": [
|
||||
{ "id": "EX-UI-01", "title": "Complete automated FreeCAD GUI oracle for all application states", "priority": "P0", "status": "in_progress", "dependencies": ["EX-ORA-01"], "deliverables": ["Menu, toolbar, dialog and focus manifest", "Selection-state fixtures", "Desktop screenshots and accessibility trees"], "acceptance": ["Empty, document, selection, task, failure and recovery states have no unknown command state"] , "evidence": ["check:freecad-gui-commands", "check:chrome-app-e2e"], "exactBlockedBy": ["Current GUI oracle does not cover every dynamic state"] },
|
||||
{ "id": "EX-UI-02", "title": "Match application shell, workbench switching, tree, docks and MDI lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-01", "EX-DOC-04"], "deliverables": ["Dynamic workbench contributions", "Tree and dock lifecycle", "Multi-document tab behavior"], "acceptance": ["Visible, enabled, ordering and focus states match the GUI oracle"] , "evidence": ["check:chrome-app-e2e"], "exactBlockedBy": ["Dynamic command states and full MDI behavior are incomplete"] },
|
||||
{ "id": "EX-UI-03", "title": "Match Task panels, property editors, dialogs and validation lifecycle", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-DOC-01"], "deliverables": ["Generic native editor mapping", "Apply/OK/Cancel transactions", "Keyboard and focus traps"], "acceptance": ["All dialogs and tasks match validation, preview, commit, cancel and recovery behavior"] , "evidence": ["check:chrome-app-e2e", "check:chrome-partdesign-lifecycle"], "exactBlockedBy": ["Only representative tasks and dialogs have complete browser replay"] },
|
||||
{ "id": "EX-UI-04", "title": "Match 3D selection, context, shortcuts, status, report and long tasks", "priority": "P0", "status": "in_progress", "dependencies": ["EX-UI-02", "EX-TSN-04"], "deliverables": ["Object/subshape selection oracle", "Shortcut conflict map", "Progress, cancel and diagnostics lifecycle"], "acceptance": ["Pointer, keyboard, preselection and report states match for every command context"] , "evidence": ["check:chrome-topology", "check:chrome-app-e2e"], "exactBlockedBy": ["All workbench context combinations and browser-reserved shortcuts are not closed"] },
|
||||
{ "id": "EX-UI-05", "title": "Replay complete workflows for every workbench and close visual/accessibility diffs", "priority": "P1", "status": "pending", "dependencies": ["EX-UI-03", "EX-UI-04", "EX-PLATFORM-01"], "deliverables": ["Per-workbench recordings", "Desktop and mobile visual baselines", "Accessibility and localization matrix"], "acceptance": ["No unregistered UI difference, overlap, unnamed control or blocked core workflow"] , "evidence": ["check:chrome-app-e2e", "check:chrome-qa08"], "exactBlockedBy": ["Per-workbench exact workflow replay is incomplete"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX07",
|
||||
"title": "Draft, TechDraw, Spreadsheet and Plot workbenches",
|
||||
"tasks": [
|
||||
{ "id": "EX-DRAFT-01", "title": "Complete Draft objects, modifiers, snaps, working planes and BIM interoperability", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-03", "EX-UI-04"], "deliverables": ["All Draft command semantics", "Snap and working-plane oracle", "Native object round-trip"], "acceptance": ["Geometry, properties, selection and diagnostics match FreeCAD"] , "evidence": ["check:chrome-draft", "check:document-closure"], "exactBlockedBy": ["Current Draft implementation is a compatible command subset"] },
|
||||
{ "id": "EX-TD-01", "title": "Complete TechDraw pages, views, dimensions, annotations and export", "priority": "P1", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-UI-03"], "deliverables": ["All view and annotation objects", "Projection and cosmetic geometry", "SVG/PDF differential"], "acceptance": ["Page rendering, references and exports match native fixtures"] , "evidence": ["check:chrome-techdraw", "check:document-closure"], "exactBlockedBy": ["Advanced TechDraw view/annotation types are not exhaustive"] },
|
||||
{ "id": "EX-SS-01", "title": "Complete Spreadsheet formulas, aliases, styles, bindings and CSV behavior", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-03"], "deliverables": ["Formula grammar parity", "Style and merge semantics", "Cross-object binding lifecycle"], "acceptance": ["Calculation, errors, formatting and round-trip match native sheets"] , "evidence": ["check:chrome-spreadsheet", "check:document-closure"], "exactBlockedBy": ["Formula and formatting coverage is representative rather than exhaustive"] },
|
||||
{ "id": "EX-PLOT-01", "title": "Complete Plot data sources, axes, styles and export", "priority": "P2", "status": "in_progress", "dependencies": ["EX-SS-01", "EX-UI-03"], "deliverables": ["Plot object lifecycle", "Style and axis parity", "Image/vector export"], "acceptance": ["Data refresh, view state and exports match the native module"] , "evidence": ["check:chrome-plot", "check:document-closure"], "exactBlockedBy": ["Interactive Plot behaviors and all styles are incomplete"] },
|
||||
{ "id": "EX-DOCWB-01", "title": "Close document-workbench cross references and shared UI workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-DRAFT-01", "EX-TD-01", "EX-SS-01", "EX-PLOT-01", "EX-UI-05"], "deliverables": ["Cross-workbench mutation corpus", "Shared selection and expression links", "FCStd round-trip"], "acceptance": ["No cross-workbench reference, view or export drift"] , "evidence": ["check:document-closure"], "exactBlockedBy": ["Cross-workbench exhaustive corpus is missing"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX08",
|
||||
"title": "Assembly, BIM, Surface, Mesh and Material workbenches",
|
||||
"tasks": [
|
||||
{ "id": "EX-ASM-01", "title": "Complete Assembly objects, joints, solver, animation and interchange", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-TSN-04"], "deliverables": ["All joint and connector types", "Native solver classification", "Assembly FCStd lifecycle"], "acceptance": ["Placements, DOF, diagnostics and edits match native assemblies"] , "evidence": ["check:chrome-assembly", "check:engineering-closure"], "exactBlockedBy": ["Current solver covers a compatible joint subset"] },
|
||||
{ "id": "EX-BIM-01", "title": "Complete BIM/Arch objects, relationships, IFC and quantity semantics", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DRAFT-01", "EX-DOC-03"], "deliverables": ["All BIM object schemas", "IFC import/export", "Material and quantity sets"], "acceptance": ["Native object graph, properties and IFC round-trip match"] , "evidence": ["check:chrome-bim", "check:engineering-closure"], "exactBlockedBy": ["IFC and advanced BIM object semantics remain incomplete"] },
|
||||
{ "id": "EX-SURF-01", "title": "Complete Surface construction, trim, sew, offset and repair", "priority": "P1", "status": "in_progress", "dependencies": ["EX-KER-01", "EX-TSN-04"], "deliverables": ["All Surface commands", "Continuity and tolerance controls", "Native topology history"], "acceptance": ["Surface geometry, validity and diagnostics match FreeCAD"] , "evidence": ["check:chrome-surface", "check:engineering-closure"], "exactBlockedBy": ["Advanced curve networks and repair modes are incomplete"] },
|
||||
{ "id": "EX-MESH-01", "title": "Complete Mesh and MeshPart editing, analysis, repair and conversion", "priority": "P1", "status": "in_progress", "dependencies": ["EX-KER-01"], "deliverables": ["All mesh algorithms", "Repair and evaluation reports", "Shape-mesh conversion parity"], "acceptance": ["Topology, normals, quality metrics and failures match native fixtures"] , "evidence": ["check:chrome-mesh", "check:engineering-closure"], "exactBlockedBy": ["Mesh repair and analysis algorithms are not exhaustive"] },
|
||||
{ "id": "EX-MAT-01", "title": "Complete Material cards, inheritance, appearance and physical properties", "priority": "P2", "status": "pending", "dependencies": ["EX-DOC-05", "EX-BIM-01"], "deliverables": ["Material schema and catalogs", "Inheritance and overrides", "FCStd and IFC mapping"], "acceptance": ["Material values and appearances survive all native round-trips"] , "evidence": ["check:engineering-closure", "check:freecad-fcstd-roundtrip"], "exactBlockedBy": ["Material module is represented only by compatible shared properties"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX09",
|
||||
"title": "Analysis, manufacturing, data, scripting and proxy modules",
|
||||
"tasks": [
|
||||
{ "id": "EX-FEM-01", "title": "Complete FEM objects, meshers, solvers, materials and result post-processing", "priority": "P1", "status": "in_progress", "dependencies": ["EX-MESH-01", "EX-MAT-01"], "deliverables": ["Solver adapter matrix", "All FEM object schemas", "Result field and visualization parity"], "acceptance": ["Native benchmark decks and result fields match within declared tolerances"] , "evidence": ["check:chrome-fem", "check:platform-closure"], "exactBlockedBy": ["Current FEM solve is a local-reference compatible subset"] },
|
||||
{ "id": "EX-CAM-01", "title": "Complete CAM Path algorithms, objects, tasks, simulation and machine validation", "priority": "P0", "status": "in_progress", "dependencies": ["EX-PART-01", "EX-UI-03", "EX-FC-01"], "deliverables": ["All Path operations and dress-ups", "Native operation-object FCStd", "CAMotics/OCL differential and machine profiles"], "acceptance": ["Path geometry, tasks, posts and simulation match native fixtures", "Production authorization remains separate and fail-closed"] , "evidence": ["check:cam-parity", "check:cam-pipeline"], "exactBlockedBy": ["Full Path algorithms, FeaturePython objects and browser CAMotics remain incomplete"] },
|
||||
{ "id": "EX-ROBOT-01", "title": "Complete Robot models, kinematics, trajectories and controller export", "priority": "P2", "status": "in_progress", "dependencies": ["EX-ASM-01"], "deliverables": ["Robot model import", "Kinematics and collision oracle", "Controller program parity"], "acceptance": ["Reachability, placements, paths and exports match native Robot"] , "evidence": ["check:chrome-robot", "check:platform-closure"], "exactBlockedBy": ["Current Robot implementation is a planar compatible subset"] },
|
||||
{ "id": "EX-DATA-01", "title": "Complete Points and ReverseEngineering algorithms and formats", "priority": "P2", "status": "in_progress", "dependencies": ["EX-MESH-01"], "deliverables": ["Binary/E57 point clouds", "Poisson and region growing", "Curve and surface reconstruction"], "acceptance": ["Native datasets produce matching classifications and fitted geometry"] , "evidence": ["check:chrome-data", "check:platform-closure"], "exactBlockedBy": ["E57, Poisson, region growing and full B-spline reconstruction are missing"] },
|
||||
{ "id": "EX-INSPECT-01", "title": "Complete measurement, inspection and deviation workflows", "priority": "P2", "status": "in_progress", "dependencies": ["EX-TSN-04", "EX-DATA-01"], "deliverables": ["All measurement objects", "Section and deviation analysis", "Report and export parity"], "acceptance": ["References, values, tolerances and reports match native Inspection/Measure"] , "evidence": ["check:chrome-inspection", "check:platform-closure"], "exactBlockedBy": ["Advanced inspection and Measure commands are incomplete"] },
|
||||
{ "id": "EX-SCRIPT-01", "title": "Provide capability-secure Python API and macro compatibility", "priority": "P1", "status": "pending", "dependencies": ["EX-DOC-03", "EX-ORA-03"], "deliverables": ["Versioned App/Gui Python API", "Macro lifecycle", "Permission and deterministic execution sandbox"], "acceptance": ["Supported scripts match native effects without ambient file/network authority", "Unsupported native modules fail explicitly"] , "evidence": ["check:chrome-script", "check:security-baseline"], "exactBlockedBy": ["Current sandbox replays Facade commands and does not execute the FreeCAD Python API"] },
|
||||
{ "id": "EX-ADDON-01", "title": "Complete signed addon packaging, dependency isolation and rollback", "priority": "P2", "status": "in_progress", "dependencies": ["EX-SCRIPT-01", "EX-ORA-03"], "deliverables": ["Addon compatibility manifest", "Signed packages and permissions", "Install, upgrade and rollback lifecycle"], "acceptance": ["Compatible addons install deterministically and cannot escape declared capabilities"] , "evidence": ["check:chrome-addon", "check:platform-closure"], "exactBlockedBy": ["Arbitrary desktop FreeCAD addons cannot run unchanged in the browser"] },
|
||||
{ "id": "EX-PROXY-01", "title": "Implement or formally exclude Cloud, Help, IDF, JT and OpenSCAD native behavior", "priority": "P2", "status": "pending", "dependencies": ["EX-ORA-03", "EX-SCRIPT-01"], "deliverables": ["Per-module browser architecture", "Data and security contracts", "Native differential fixtures"], "acceptance": ["Each module becomes exact/compatible with evidence or is excluded from the final claim"] , "evidence": ["check:platform-closure"], "exactBlockedBy": ["Five modules remain explicit proxies"] },
|
||||
{ "id": "EX-PLATFORM-01", "title": "Close all analysis/platform workbench cross-workflows", "priority": "P1", "status": "pending", "dependencies": ["EX-FEM-01", "EX-CAM-01", "EX-ROBOT-01", "EX-DATA-01", "EX-INSPECT-01", "EX-ADDON-01", "EX-PROXY-01"], "deliverables": ["Per-workbench workflow corpus", "Cross-module resources and references", "Zero unexplained capability matrix"], "acceptance": ["All 34 modules have a completed exact task or an explicit claim exclusion"] , "evidence": ["check:platform-closure", "check:release-closure"], "exactBlockedBy": ["Analysis and proxy module exact tasks remain open"] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "EX10",
|
||||
"title": "Cross-platform quality and exact release gate",
|
||||
"tasks": [
|
||||
{ "id": "EX-QA-01", "title": "Run deterministic browser, OS, GPU and device-class matrix", "priority": "P1", "status": "pending", "dependencies": ["EX-UI-05", "EX-PLATFORM-01"], "deliverables": ["Chrome, Firefox and Safari evidence", "GPU fallback matrix", "Desktop, tablet and mobile workflows"], "acceptance": ["All supported platforms have zero unknown semantic or lifecycle difference"] , "evidence": ["check:quality-closure", "check:chrome-performance"], "exactBlockedBy": ["Current executable baseline is Chrome 150 only"] },
|
||||
{ "id": "EX-QA-02", "title": "Complete accessibility, localization, performance and security certification", "priority": "P1", "status": "in_progress", "dependencies": ["EX-UI-05"], "deliverables": ["Screen-reader and keyboard matrix", "All shipped locales", "Security and performance reports"], "acceptance": ["No unnamed control, inaccessible core workflow, critical vulnerability or budget regression"] , "evidence": ["check:chrome-qa08", "check:chrome-security", "check:chrome-performance"], "exactBlockedBy": ["Full accessibility certification and all locales are not covered"] },
|
||||
{ "id": "EX-QA-03", "title": "Complete fuzz, stress, migration, crash and long-session reliability gates", "priority": "P1", "status": "in_progress", "dependencies": ["EX-DOC-04", "EX-FC-01"], "deliverables": ["Format and protocol fuzzing", "Million-operation topology and solver replay", "Version migration and rollback matrix"], "acceptance": ["No wrong binding, corruption, leak, stale commit or unrecoverable migration"] , "evidence": ["test:fcstd-fuzz", "test:geometry-input-fuzz", "test:topology-replay", "check:project-migration"], "exactBlockedBy": ["Long-session and cross-version corpus is not exhaustive"] },
|
||||
{ "id": "EX-REL-01", "title": "Promote system to FreeCAD exact only after every exact gate closes", "priority": "P0", "status": "pending", "dependencies": ["EX-QA-01", "EX-QA-02", "EX-QA-03", "EX-DOCWB-01", "EX-PD-02", "EX-FMT-04"], "deliverables": ["All-task completion report", "Zero-difference capability matrix", "Signed exact release artifacts"], "acceptance": ["All tasks are completed", "Exact modules equal 34", "Wrong bindings, unexplained relations, name drift, unknown semantic differences and release blockers all equal zero"] , "evidence": ["check:release-closure", "check:freecad-exact-history-elementmap-gate"], "exactBlockedBy": ["Upstream exact tasks remain open"] }
|
||||
]
|
||||
}
|
||||
],
|
||||
"moduleCoverage": {
|
||||
"AddonManager": ["EX-ADDON-01"], "Assembly": ["EX-ASM-01"], "BIM": ["EX-BIM-01"], "CAM": ["EX-CAM-01"], "Cloud": ["EX-PROXY-01"], "Draft": ["EX-DRAFT-01"], "Fem": ["EX-FEM-01"], "Help": ["EX-PROXY-01"], "Idf": ["EX-PROXY-01", "EX-FMT-04"], "Import": ["EX-FMT-01", "EX-FMT-02", "EX-FMT-03"], "Inspection": ["EX-INSPECT-01"], "JtReader": ["EX-PROXY-01", "EX-FMT-04"], "Material": ["EX-MAT-01"], "Measure": ["EX-INSPECT-01"], "Mesh": ["EX-MESH-01"], "MeshPart": ["EX-MESH-01"], "OpenSCAD": ["EX-PROXY-01", "EX-FMT-04"], "Part": ["EX-PART-01"], "PartDesign": ["EX-PD-01", "EX-PD-02"], "Plot": ["EX-PLOT-01"], "Points": ["EX-DATA-01"], "ReverseEngineering": ["EX-DATA-01"], "Robot": ["EX-ROBOT-01"], "Sandbox": ["EX-SCRIPT-01"], "Show": ["EX-UI-04"], "Sketcher": ["EX-SK-01", "EX-SK-02"], "Spreadsheet": ["EX-SS-01"], "Start": ["EX-UI-02"], "Surface": ["EX-SURF-01"], "TechDraw": ["EX-TD-01"], "TemplatePyMod": ["EX-SCRIPT-01"], "Test": ["EX-QA-03"], "Tux": ["EX-QA-03"], "Web": ["EX-QA-01", "EX-UI-05"]
|
||||
},
|
||||
"entrypointCoverage": {
|
||||
"formats": {
|
||||
"FCStd": ["EX-FC-01"], "BREP": ["EX-FMT-01"], "STEP": ["EX-FMT-01"], "IGES": ["EX-FMT-01"], "STL": ["EX-FMT-02"], "OBJ": ["EX-FMT-02"], "PLY": ["EX-FMT-02"], "DXF": ["EX-FMT-02"], "SVG": ["EX-FMT-02"], "PDF": ["EX-FMT-02"], "IFC": ["EX-FMT-03"], "CSV": ["EX-FMT-03"], "GCODE": ["EX-FMT-03"], "JT": ["EX-FMT-04"], "IDF": ["EX-FMT-04"]
|
||||
},
|
||||
"entrypoints": {
|
||||
"python-api": ["EX-SCRIPT-01"], "macro-fcmacro": ["EX-SCRIPT-01"], "addon-package": ["EX-ADDON-01"], "preferences": ["EX-DOC-05"], "clipboard": ["EX-UI-03"], "print-job": ["EX-TD-01", "EX-UI-03"]
|
||||
}
|
||||
},
|
||||
"promotionGate": {
|
||||
"finalTask": "EX-REL-01",
|
||||
"requiredExactModules": 34,
|
||||
"requiredZeroMetrics": ["wrongBindings", "unexplainedRelations", "roundtripNameDrift", "unknownSemanticDifferences", "namingEvidenceMissing", "namingEvidenceBoundaryViolations", "unexplainedModules", "releaseBlockers"],
|
||||
"requiredEvidenceClasses": ["native-oracle", "browser-runtime", "save-reopen-roundtrip", "failure-cancel-recovery", "resource-release", "security", "accessibility", "signed-release"]
|
||||
}
|
||||
}
|
||||
35
config/freecad-web-exact-promotion-report.schema.json
Normal file
35
config/freecad-web-exact-promotion-report.schema.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://bitbybit.local/schema/freecad-web-exact-promotion-report.schema.json",
|
||||
"title": "FreeCAD Web exact promotion report",
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["schemaVersion", "taskId", "completedTasks", "exactModules", "metrics", "evidenceClasses"],
|
||||
"properties": {
|
||||
"schemaVersion": { "const": 1 },
|
||||
"taskId": { "const": "EX-REL-01" },
|
||||
"completedTasks": { "const": 52 },
|
||||
"exactModules": { "const": 34 },
|
||||
"metrics": {
|
||||
"type": "object",
|
||||
"required": ["wrongBindings", "unexplainedRelations", "roundtripNameDrift", "unknownSemanticDifferences", "namingEvidenceMissing", "namingEvidenceBoundaryViolations", "unexplainedModules", "releaseBlockers"],
|
||||
"properties": {
|
||||
"wrongBindings": { "const": 0 },
|
||||
"unexplainedRelations": { "const": 0 },
|
||||
"roundtripNameDrift": { "const": 0 },
|
||||
"unknownSemanticDifferences": { "const": 0 },
|
||||
"namingEvidenceMissing": { "const": 0 },
|
||||
"namingEvidenceBoundaryViolations": { "const": 0 },
|
||||
"unexplainedModules": { "const": 0 },
|
||||
"releaseBlockers": { "const": 0 }
|
||||
}
|
||||
},
|
||||
"evidenceClasses": {
|
||||
"type": "array",
|
||||
"uniqueItems": true,
|
||||
"contains": { "const": "native-oracle" },
|
||||
"minItems": 8,
|
||||
"items": { "enum": ["native-oracle", "browser-runtime", "save-reopen-roundtrip", "failure-cancel-recovery", "resource-release", "security", "accessibility", "signed-release"] }
|
||||
}
|
||||
}
|
||||
}
|
||||
26
config/npm-audit-critical.json
Normal file
26
config/npm-audit-critical.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"command": "npm audit --omit=dev --audit-level=critical --json",
|
||||
"lockfileSha256": "5ef4482b10ad8738577e391638ad986b942d95ba62ab8834a40a97a24c6af950",
|
||||
"auditReportVersion": 2,
|
||||
"metadata": {
|
||||
"vulnerabilities": {
|
||||
"info": 0,
|
||||
"low": 0,
|
||||
"moderate": 0,
|
||||
"high": 0,
|
||||
"critical": 0,
|
||||
"total": 0
|
||||
},
|
||||
"dependencies": {
|
||||
"prod": 23,
|
||||
"dev": 151,
|
||||
"optional": 79,
|
||||
"peer": 0,
|
||||
"peerOptional": 0,
|
||||
"total": 173
|
||||
}
|
||||
},
|
||||
"vulnerabilities": {}
|
||||
}
|
||||
75
config/occt-browser-verification.json
Normal file
75
config/occt-browser-verification.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"generatedAt": "2026-08-04T02:38:11.015Z",
|
||||
"headers": {
|
||||
"coop": "same-origin",
|
||||
"coep": "require-corp"
|
||||
},
|
||||
"browsers": [
|
||||
{
|
||||
"browserId": "chrome",
|
||||
"status": "pass",
|
||||
"report": {
|
||||
"schemaVersion": 1,
|
||||
"browserId": "chrome",
|
||||
"crossOriginIsolated": true,
|
||||
"browser": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/150.0.0.0 Safari/537.36",
|
||||
"opfs": {
|
||||
"status": "pass",
|
||||
"persistence": "opfs",
|
||||
"bytes": 11
|
||||
},
|
||||
"initialize": "8.0.0",
|
||||
"history": {
|
||||
"provider": "occt-native",
|
||||
"recordCount": 42
|
||||
},
|
||||
"memory": {
|
||||
"iterations": 1000,
|
||||
"budgets": {
|
||||
"wasmPeakBytes": 268435456,
|
||||
"wasmRetainedBytes": 16777216,
|
||||
"browserRetainedBytes": 67108864,
|
||||
"gpuLiveResources": 0
|
||||
},
|
||||
"wasm": {
|
||||
"heapBefore": 134217728,
|
||||
"heapAfter": 134217728,
|
||||
"peakHeapBytes": 134217728,
|
||||
"retainedBytes": 0
|
||||
},
|
||||
"browser": {
|
||||
"before": {
|
||||
"api": "measureUserAgentSpecificMemory",
|
||||
"bytes": 138633658
|
||||
},
|
||||
"after": {
|
||||
"api": "measureUserAgentSpecificMemory",
|
||||
"bytes": 139103318
|
||||
},
|
||||
"retainedBytes": 469660
|
||||
},
|
||||
"gpu": {
|
||||
"scope": "native-boolean-worker",
|
||||
"created": 0,
|
||||
"released": 0,
|
||||
"live": 0
|
||||
},
|
||||
"ownership": {
|
||||
"created": 3000,
|
||||
"released": 3000,
|
||||
"live": 0
|
||||
},
|
||||
"withinBudget": true
|
||||
},
|
||||
"abort": "recovered",
|
||||
"crashRecovery": "recovered"
|
||||
},
|
||||
"exitCode": null,
|
||||
"signal": null,
|
||||
"stdout": "",
|
||||
"stderr": "sm/8d599eaa6cf1e47b_1\": No such file or directory (2)\n[3723837:3723856:0803/223810.958720:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Code Cache/wasm/8d599eaa6cf1e47b_s\": No such file or directory (2)\n[3723881:3723899:0803/223810.959681:VERBOSE1:net/base/network_delegate.cc:38] NetworkDelegate::NotifyBeforeURLRequest: http://127.0.0.1:36085/native/occt-history/bitbybit-occt-history.js\n[3723881:3723898:0803/223810.959843:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Cache/Cache_Data/5e52789ec7e0792d_1\": No such file or directory (2)\n[3723881:3723898:0803/223810.959860:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Cache/Cache_Data/5e52789ec7e0792d_s\": No such file or directory (2)\n[3723837:3723856:0803/223810.963095:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Code Cache/js/ddd955dd468990b6_1\": No such file or directory (2)\n[3723837:3723856:0803/223810.963114:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Code Cache/js/ddd955dd468990b6_s\": No such file or directory (2)\n[3723881:3723899:0803/223810.969656:VERBOSE1:net/base/network_delegate.cc:38] NetworkDelegate::NotifyBeforeURLRequest: http://127.0.0.1:36085/native/occt-history/bitbybit-occt-history.wasm\n[3723881:3723898:0803/223810.970929:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Cache/Cache_Data/3901a7ebf89b4154_1\": No such file or directory (2)\n[3723881:3723898:0803/223810.970952:VERBOSE1:base/files/file_util_posix.cc:309] Cannot stat \"/tmp/bitbybit-occt-chrome-3723825/Default/Cache/Cache_Data/3901a7ebf89b4154_s\": No such file or directory (2)\n[3723881:3723899:0803/223811.011318:VERBOSE1:net/base/network_delegate.cc:38] NetworkDelegate::NotifyBeforeURLRequest: http://127.0.0.1:36085/__occt-report\n"
|
||||
}
|
||||
],
|
||||
"status": "pass"
|
||||
}
|
||||
30
config/occt-upstream-drift-baseline.json
Normal file
30
config/occt-upstream-drift-baseline.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"bitbybit": {
|
||||
"version": "1.1.1",
|
||||
"sourceCommit": "d3f52bd1fcf78148b60800d69ed6b42e53f4ad06",
|
||||
"wasmSha256": "1b6a8fc7b83d222854f73b66af8d0e45ad4fdee025904b447e885d4e18ae8656",
|
||||
"declarationPath": "node_modules/@bitbybit-dev/occt/bitbybit-dev-occt/bitbybit-dev-occt.d.ts",
|
||||
"surfaceInterfaces": [
|
||||
"BRepAlgoAPI_Fuse",
|
||||
"BRepAlgoAPI_Cut",
|
||||
"BRepAlgoAPI_Common",
|
||||
"BOPAlgo_Builder",
|
||||
"TopTools_ListOfShape"
|
||||
],
|
||||
"surfaceSha256": "6b45be08de6efd9f062cf97a21619eeb3ed2570dc96b8bc4bc808e1e93b349fc"
|
||||
},
|
||||
"nativeOcct": {
|
||||
"version": "8.0.0",
|
||||
"sourceCommit": "bb75017e915f6509a4bfa8b551f853352754c2da",
|
||||
"javascriptSha256": "78f1cdd17a6a7b61ff8435c0ff8c912a43c4517e6ef49f3f741521662a903557",
|
||||
"wasmSha256": "b6cb6307399b188cdf1377e9294b4af8e36b21783693101db8f985e41cff5fbe"
|
||||
},
|
||||
"golden": {
|
||||
"manifestScenarioCount": 100,
|
||||
"manifestSha256": "cc5896238f6165faba1561ee770812765119fc9b1a5dfcf841531a6131f2f980",
|
||||
"threeWayScenarioCount": 26,
|
||||
"threeWayReportSha256": "2ed24ff542aaf835d288218e2719b1710eb207cd2871e6c4ce42fc478044ec31",
|
||||
"operationCounts": { "cut": 10, "fuse": 8, "common": 8 }
|
||||
}
|
||||
}
|
||||
67
config/opencamlib-wasm-artifact.json
Normal file
67
config/opencamlib-wasm-artifact.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"status": "pass",
|
||||
"openCamLib": {
|
||||
"sourcePath": "OpenCAMLib",
|
||||
"sourceRevision": "95b036fe28ce6d77c97b98e5fbc337904ae49560",
|
||||
"bindingSource": "OpenCAMLib/src/emscriptenlib/emscriptenlib.cpp",
|
||||
"buildTarget": "ocl",
|
||||
"emscriptenVersion": "3.1.69",
|
||||
"boostVersion": "1.83.0",
|
||||
"artifact": "public/vendor/opencamlib/ocl.js",
|
||||
"artifactFormat": "emscripten-single-file-embedded-wasm",
|
||||
"byteLength": 504062,
|
||||
"sha256": "0379040910f7af277c6e1f6411efb549292db0b071422a83954d93631253bf89",
|
||||
"algorithms": [
|
||||
"path-drop-cutter",
|
||||
"adaptive-path-drop-cutter",
|
||||
"waterline",
|
||||
"adaptive-waterline"
|
||||
],
|
||||
"buildNote": "The upstream Closure minification flag is removed from generated link metadata because the host Emscripten package does not ship the closure-compiler executable; OCL sources, Embind bindings and WASM code generation are unchanged."
|
||||
},
|
||||
"solidRemoval": {
|
||||
"backend": "bitbybit-occt-wasm",
|
||||
"model": "sampled-flat-end-brep",
|
||||
"nativeSolid": true,
|
||||
"freeCadNativeEquivalent": false
|
||||
},
|
||||
"camotics": {
|
||||
"status": "native-host-available",
|
||||
"backend": "camotics-native-host-qt5-tpl",
|
||||
"sourcePath": "CAMotics",
|
||||
"sourceRevision": "e84665f2fa9d1151f03282ac7e01320bc65e015b",
|
||||
"cbangPath": ".cache/camotics-native/cbang",
|
||||
"cbangRevision": "9b6672a0e2b800a909d799ffa3ab46774cf171b8",
|
||||
"sourceFiles": [
|
||||
"CAMotics/src/gcode/machine/GCodeMachine.cpp",
|
||||
"CAMotics/src/tplang/GCodeModule.cpp",
|
||||
"CAMotics/src/camotics/sim/ToolSweep.cpp"
|
||||
],
|
||||
"nativeExecutable": true,
|
||||
"nativeBuildStatus": "verified-qt5-gui-tpl",
|
||||
"nativeGuiPath": "CAMotics/camotics",
|
||||
"nativeTplPath": "CAMotics/tplang",
|
||||
"nativeArtifactEvidence": "config/camotics-native-artifact.json",
|
||||
"browserExecutable": false,
|
||||
"browserWasmKernelExecutable": true,
|
||||
"browserWasmKernel": {
|
||||
"artifact": "public/vendor/camotics/camotics-sweep.wasm",
|
||||
"sha256": "889588d2dc9755f84f56b8ebe1acc9bc1f0ded7e676e162a5a001011f4ebec5b",
|
||||
"scope": ["conic-sweep", "spheroid-sweep", "sweep-bounding-boxes"],
|
||||
"fullCamoticsProgram": false,
|
||||
"gcodeParserIncluded": false
|
||||
},
|
||||
"generationAuthority": "camotics-source-stage",
|
||||
"parserAuthority": "linuxcnc-wasm",
|
||||
"camoticsParsesCanonicalGcode": false,
|
||||
"inspectedWorkspace": "/home/mes123456/working_Web_FreeCAD_Bitbybit",
|
||||
"reason": "CAMotics 1.3 native Qt5 GUI and TPL compiler are built from the pinned source with C! 1.7.2 and V8 pointer compression disabled to match the Debian V8 ABI. Browser code does not execute the ELF, Qt GUI, or TPL compiler; its source-stage motion contract emits G-code and LinuxCNC WASM remains the only canonical parser/controller authority.",
|
||||
"pipeline": {
|
||||
"order": ["cad", "opencamlib-wasm", "camotics-source-stage", "gcode", "linuxcnc-wasm-parse-execute"],
|
||||
"canonicalGcodeAuthority": "linuxcnc-wasm",
|
||||
"camoticsSemanticParser": false,
|
||||
"linuxcncWasmExecution": "handoff-required"
|
||||
}
|
||||
}
|
||||
}
|
||||
17
config/planegcs-wasm-artifact.json
Normal file
17
config/planegcs-wasm-artifact.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"freecadVersion": "1.1.1",
|
||||
"freecadCommit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d",
|
||||
"emscriptenVersion": "3.1.69",
|
||||
"pthreadPoolSize": 2,
|
||||
"javascript": {
|
||||
"path": "native/planegcs/dist/freecad-planegcs.js",
|
||||
"publicPath": "public/native/planegcs/freecad-planegcs.js",
|
||||
"sha256": "702d267b856b8a1c9d1a031fbbd9780419c3e359a99d7d6922b5df668ed79d2e"
|
||||
},
|
||||
"wasm": {
|
||||
"path": "native/planegcs/dist/freecad-planegcs.wasm",
|
||||
"publicPath": "public/native/planegcs/freecad-planegcs.wasm",
|
||||
"sha256": "6acf170b2cb87c4287c1b814d899612d89048d9b0eac244a84c4916f07ca27d7"
|
||||
}
|
||||
}
|
||||
40
config/platform-module-coverage.json
Normal file
40
config/platform-module-coverage.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"baseline": { "freecadVersion": "1.1.1", "commit": "0108fd4b4850cc46e625b60e53cea7a7bbe69f8d" },
|
||||
"modules": [
|
||||
{ "name": "AddonManager", "level": "compatible", "evidence": "check:chrome-addon", "boundary": "Signed Facade-only catalog; desktop Python execution is excluded." },
|
||||
{ "name": "Assembly", "level": "compatible", "evidence": "check:engineering-closure", "boundary": "Controlled joints, motion, Worker, tools and FCStd links." },
|
||||
{ "name": "BIM", "level": "compatible", "evidence": "check:engineering-closure", "boundary": "Controlled hierarchy, quantities and IFC2X3/IFC4 summaries." },
|
||||
{ "name": "CAM", "level": "compatible", "evidence": "check:chrome-cam", "boundary": "Job/Stock, SetupSheet, ToolBit/Controller, deterministic Profile/Pocket/Drilling and dress-up paths, collision diagnostics, and seven allowlisted posts; OpenCamLib/CAMotics and production machine certification remain explicit external boundaries." },
|
||||
{ "name": "Cloud", "level": "proxy", "evidence": "check:chrome-script", "boundary": "Network capability is denied; cloud payloads remain explicit resources." },
|
||||
{ "name": "Draft", "level": "compatible", "evidence": "check:document-closure", "boundary": "Working plane, core 2D objects, transforms, trim and arrays." },
|
||||
{ "name": "Fem", "level": "compatible", "evidence": "check:chrome-fem", "boundary": "Local axial reference solver with named sets and result fields." },
|
||||
{ "name": "Help", "level": "proxy", "evidence": "check:pwa", "boundary": "Static offline help resources; desktop Qt help engine is excluded." },
|
||||
{ "name": "Idf", "level": "proxy", "evidence": "check:chrome-data", "boundary": "Byte-preserving specialist adapter." },
|
||||
{ "name": "Import", "level": "compatible", "evidence": "check:fcstd-closure", "boundary": "FCStd and declared primary/secondary format adapters." },
|
||||
{ "name": "Inspection", "level": "compatible", "evidence": "check:chrome-inspection", "boundary": "Measurements, section, deviation and TopoRef reports." },
|
||||
{ "name": "JtReader", "level": "proxy", "evidence": "check:chrome-data", "boundary": "Byte-preserving JT inspection adapter." },
|
||||
{ "name": "Material", "level": "compatible", "evidence": "check:chrome-data", "boundary": "Material cards and assignment metadata." },
|
||||
{ "name": "Measure", "level": "compatible", "evidence": "check:chrome-inspection", "boundary": "Distance, angle, area, volume and deviation units." },
|
||||
{ "name": "Mesh", "level": "compatible", "evidence": "check:engineering-closure", "boundary": "Analysis, repair fixtures, OBJ/PLY/STL and Worker LOD." },
|
||||
{ "name": "MeshPart", "level": "compatible", "evidence": "check:engineering-closure", "boundary": "OCCT shape tessellation into the Mesh contract." },
|
||||
{ "name": "OpenSCAD", "level": "proxy", "evidence": "check:chrome-data", "boundary": "SCAD bytes and metadata preserved without executing OpenSCAD." },
|
||||
{ "name": "Part", "level": "compatible", "evidence": "check:chrome-fcstd-golden", "boundary": "Controlled Part operations and 100-model format goldens." },
|
||||
{ "name": "PartDesign", "level": "compatible", "evidence": "check:partdesign-closure", "boundary": "Parameterized feature lifecycle and native history gates." },
|
||||
{ "name": "Plot", "level": "compatible", "evidence": "check:document-closure", "boundary": "Bound series and PNG/SVG/CSV export." },
|
||||
{ "name": "Points", "level": "compatible", "evidence": "check:chrome-data", "boundary": "ASCII ASC/PTS/XYZ/CSV/PCD/PLY point clouds with import/export, merge, bounds/polygon crop, structure, voxel reduction and deterministic OPFS lifecycle; E57 and binary formats remain outside the browser subset." },
|
||||
{ "name": "ReverseEngineering", "level": "compatible", "evidence": "check:chrome-data", "boundary": "Deterministic plane, sphere, cylinder and polynomial surface fits plus radius-based point segmentation with RMS diagnostics; Poisson and full B-spline surface reconstruction remain outside the browser subset." },
|
||||
{ "name": "Robot", "level": "compatible", "evidence": "check:chrome-robot", "boundary": "Linear trajectories, planar kinematics, workspace and controller JSON." },
|
||||
{ "name": "Sandbox", "level": "compatible", "evidence": "check:chrome-script", "boundary": "Facade command replay with denied ambient capabilities." },
|
||||
{ "name": "Show", "level": "compatible", "evidence": "check:chrome-app-e2e", "boundary": "Browser scene and selection presentation." },
|
||||
{ "name": "Sketcher", "level": "compatible", "evidence": "check:chrome-sketcher-stress", "boundary": "Solver, diagnostics, editor, B-spline and stress gates." },
|
||||
{ "name": "Spreadsheet", "level": "compatible", "evidence": "check:document-closure", "boundary": "Formula DAG, styles, bindings, CSV and 10000-cell sheet." },
|
||||
{ "name": "Start", "level": "compatible", "evidence": "check:chrome-app-e2e", "boundary": "Project-first browser application start flow." },
|
||||
{ "name": "Surface", "level": "compatible", "evidence": "check:engineering-closure", "boundary": "Bezier/BSpline/Loft/Fill/Offset/Trim/Sew and TopoRefs." },
|
||||
{ "name": "TechDraw", "level": "compatible", "evidence": "check:document-closure", "boundary": "Views, section, dimensions, GD&T and SVG/PDF." },
|
||||
{ "name": "TemplatePyMod", "level": "development", "evidence": "test:facade", "boundary": "Development template is represented by tested Facade extension contracts." },
|
||||
{ "name": "Test", "level": "development", "evidence": "test:facade", "boundary": "FreeCAD test module maps to the repository executable test suites." },
|
||||
{ "name": "Tux", "level": "development", "evidence": "test:facade", "boundary": "Developer test commands map to deterministic harness fixtures." },
|
||||
{ "name": "Web", "level": "compatible", "evidence": "check:chrome-app-e2e", "boundary": "Browser-native application, Worker and OPFS integration." }
|
||||
]
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user