.gitattributes
.gitignore
AGENTS.md
CHANGELOG.md
CLAUDE.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
.githooks/pre-push
.github/workflows/ci.yml
.github/workflows/downstream-compatibility.yml
.github/workflows/release-candidate.yml
.github/workflows/release.yml
.opencode/commands/autocommit.md
.opencode/tools/specrepo-autocommit.js
.opencode/tools/specrepo-autocommit.py
docs/build-semantics.md
docs/drawing-extensions.md
docs/manifests.md
docs/neutral-model.md
docs/project-configuration.md
docs/public-api.md
docs/toolchain.md
docs/two-tier-contract.md
docs/viewer-delivery.md
docs/spikes/curved-geometry-ifc-bounds.md
docs/spikes/format-feasibility.md
src/python_cad_tools/__init__.py
src/python_cad_tools/__main__.py
src/python_cad_tools/_locking.py
src/python_cad_tools/_project_loader.py
src/python_cad_tools/_project_state.py
src/python_cad_tools/_scaffold.py
src/python_cad_tools/_transaction.py
src/python_cad_tools/artifacts.py
src/python_cad_tools/build-info.json
src/python_cad_tools/build.py
src/python_cad_tools/cli.py
src/python_cad_tools/context.py
src/python_cad_tools/determinism.py
src/python_cad_tools/elements.py
src/python_cad_tools/exceptions.py
src/python_cad_tools/geometry.py
src/python_cad_tools/manifests.py
src/python_cad_tools/project_config.py
src/python_cad_tools/py.typed
src/python_cad_tools/recipes.py
src/python_cad_tools/runtime_sync.py
src/python_cad_tools/site.py
src/python_cad_tools/units.py
src/python_cad_tools/validation.py
src/python_cad_tools.egg-info/PKG-INFO
src/python_cad_tools.egg-info/SOURCES.txt
src/python_cad_tools.egg-info/dependency_links.txt
src/python_cad_tools.egg-info/entry_points.txt
src/python_cad_tools.egg-info/requires.txt
src/python_cad_tools.egg-info/scm_file_list.json
src/python_cad_tools.egg-info/scm_version.json
src/python_cad_tools.egg-info/top_level.txt
src/python_cad_tools/_viewer_static/app.webmanifest
src/python_cad_tools/_viewer_static/asset-manifest.json
src/python_cad_tools/_viewer_static/favicon.svg
src/python_cad_tools/_viewer_static/index.html
src/python_cad_tools/_viewer_static/sw.js
src/python_cad_tools/_viewer_static/assets/animationGroup-CMgMiFPo.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-BlpwZEna.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-pxgVvwE7.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-CL1Nnrm1.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-BNBjNOnF.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-BTawYPw8.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-B_fffQFY.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-D1ZAafqO.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-BC_wnvpq.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DeA9LJ87.js
src/python_cad_tools/_viewer_static/assets/dds-C5zm4fz8.js
src/python_cad_tools/_viewer_static/assets/dds.pure-B_7lJeYI.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-DsS5rL5j.js
src/python_cad_tools/_viewer_static/assets/default.fragment-BUHDudIn.js
src/python_cad_tools/_viewer_static/assets/default.vertex-B80Wq2Ab.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-DuGcl3VN.js
src/python_cad_tools/_viewer_static/assets/dumpTools-1F1Rx0a0.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-DqI1ceC5.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-DmNwF2B5.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-DmvfeucL.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-ChgIpPqh.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-_JwXSrlj.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-B-T0qVRw.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-TpZm5BfV.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-CNwAs8cP.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-DaEYpjja.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-Dc4RKYSf.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-DCxeE8wr.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-TckZ2SGl.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-B5e69wX5.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-3ktOI1lC.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-XTBtETD_.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-Pb64y9OD.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DsG4QDCF.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-B_XjPDoZ.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-CD6lTvpS.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-0NvER8W0.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-B6hapywt.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-D1uyBOpq.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-BYD81Gof.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-zABkEq-X.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-B0ofoVrD.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-DPTUNnTb.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-B8_99mSz.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-DFYXgPrA.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-DA6AqPR7.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-Bp4o9QmW.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-BAmdegmU.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-Cd8Y6leR.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-CGYxKZZY.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-CwjeWPr7.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-rNAEqrST.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-BTztAQ_0.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-DoLWKXUb.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-DPIi37WK.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-ZV1Tim4d.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-ClUSFYDa.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-BEiYY5fC.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-CVfFjT4m.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-B6l0dCDc.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-kdpuo1mU.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-n99NMOON.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-DXKPP4nK.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-e2k4W8Bc.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-ClgKwXfJ.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-BZj6MNgX.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-BnzlrpjK.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-CQiX1RZi.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-B_JzBfd9.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B-xKCRP6.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-DPC5GKft.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-hCR14WZY.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-EOc5SmbK.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-BAOJ-S5R.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BJla1nDw.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-CbJzCBSw.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-C0E5Vhwk.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Crx1sltA.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-t-D4JM8I.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-DKNa-lhN.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BIeMWJwi.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-CFERwfo5.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-B8fGBso9.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-D3NUXLsU.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-BsojQIIQ.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-Bhvi4mzM.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-BL-vDlPP.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-q5uox2Ll.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-ZvIobaF-.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DC7IZTrj.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-DsmLuQmd.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CeFOvM8N.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-O_o0PB3R.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-CS8S_sto.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-BogzY-TI.js
src/python_cad_tools/_viewer_static/assets/fogFragment-5iY5mDF9.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-CzELCfrg.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-Dm4qQcCl.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-Dl5Knagi.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-gV6NfBr2.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-BU7N8GWm.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-BYh0LKwp.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DGCqlu5B.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DPRpU6I6.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-D6831_Db.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-DVVqYQkj.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-CJ5P29rW.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-eMPAGW-C.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-Cfmd-eH1.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-D8aj2PHd.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BNUj6Ok4.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-BMfCbDSO.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-HFoIGtvW.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DcbXX8O5.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-C6kfp5Df.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-B_Rux4W4.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-DfEEUVrK.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-DRIv8q-c.js
src/python_cad_tools/_viewer_static/assets/index-Bi_hQlRi.css
src/python_cad_tools/_viewer_static/assets/index-QUv88KPb.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-AIxPvzg7.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B-fzpNXl.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BeCpz_iB.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-LF_ZsFNn.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-0MaBFn29.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CKf1P4fb.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-tKPsUacI.js
src/python_cad_tools/_viewer_static/assets/lightFragment-k2nRX45x.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-BGXXcOUJ.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-BC72KyzN.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BCMZuxRE.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-Cxk75_zo.js
src/python_cad_tools/_viewer_static/assets/oitFragment-BtwWIihL.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-8rnUKL54.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-C6yWZfQI.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DGh-kC4B.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DbnVIs8Y.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-CFHhabYh.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-BQGAj-f6.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BMK7l2Ba.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-DNsGu5u0.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Cd1JAAAL.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-rBzbf9n3.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-Dji1Rr-b.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-_goA4OEm.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-CgGToehX.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-CqqQ20XF.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-D93dlgjG.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-YSvcDJjz.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-BOhSAeHX.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-DTEwurLZ.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-B4IzJZHZ.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-gJ0KErMb.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BRIxFz02.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter--NRrZRBU.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-6dxbcrtA.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-ZxthID8t.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-BSVnGss-.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-DzIg_d-k.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-CgKY-0t6.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CAfeJDpQ.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-D7xEO0B-.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-DIzz0LC4.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-kGrRDglr.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CgQTw0M7.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-DnEEx4Gs.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-CwaQqeYn.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-C2cK_vck.js
src/python_cad_tools/drawings/__init__.py
src/python_cad_tools/drawings/_catalog.py
src/python_cad_tools/drawings/_validation.py
src/python_cad_tools/exporters/__init__.py
src/python_cad_tools/exporters/base.py
src/python_cad_tools/exporters/glb.py
src/python_cad_tools/exporters/ifc.py
src/python_cad_tools/exporters/quantities.py
src/python_cad_tools/exporters/step.py
src/python_cad_tools/exporters/drawings/__init__.py
src/python_cad_tools/exporters/drawings/annotations.py
src/python_cad_tools/exporters/drawings/dxf.py
src/python_cad_tools/exporters/drawings/model.py
src/python_cad_tools/exporters/drawings/pdf.py
src/python_cad_tools/exporters/drawings/primitives.py
src/python_cad_tools/exporters/drawings/projection.py
src/python_cad_tools/exporters/drawings/svg.py
src/python_cad_tools/schemas/build-manifest-1.json
src/python_cad_tools/schemas/design-manifest-1.json
src/python_cad_tools/schemas/download-manifest-2.json
src/python_cad_tools/schemas/drawing-annotations-1.json
src/python_cad_tools/schemas/glb-manifest-1.json
src/python_cad_tools/schemas/ifc-validation-1.json
src/python_cad_tools/schemas/quantities-1.json
src/python_cad_tools/schemas/run-metadata-1.json
src/python_cad_tools/schemas/site-metadata-1.json
src/python_cad_tools/schemas/step-validation-1.json
src/python_cad_tools/templates/project/.gitignore
src/python_cad_tools/templates/project/README.md
src/python_cad_tools/templates/project/config.py
src/python_cad_tools/templates/project/drawing_annotations.py
src/python_cad_tools/templates/project/model.py
src/python_cad_tools/templates/project/pyproject.toml
src/python_cad_tools/templates/project/generated/.gitkeep