.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-CWWigNuG.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-CsvToT2G.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-B4pSwZUY.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-BNEbZjdc.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-Nq43ZTAC.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-XOKqV93Q.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-BAa9GdEq.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-C0mhzlyB.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-COLxe99z.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DXnlGMon.js
src/python_cad_tools/_viewer_static/assets/dds-CCgS8zmq.js
src/python_cad_tools/_viewer_static/assets/dds.pure-DsmFpXWx.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-ynDyPYwv.js
src/python_cad_tools/_viewer_static/assets/default.fragment-DFPZARfL.js
src/python_cad_tools/_viewer_static/assets/default.vertex-BIKeKseF.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-dOVy1F77.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-j6ZKsMN1.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-CpNeUuFk.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-C-QARfm1.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-Bxls4CGO.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-Bo_GPN6J.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-BQeJ2IuV.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-BREmjMOC.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-WMggEd5Y.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-C2mkL6qz.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-Dwov_bJk.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-DFSN-doo.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-CP2N09On.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-CLrJ-Vwb.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CA84SIpf.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-COwmdNXC.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-C-jubjQe.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-D7-0KriE.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-D1OUOtLe.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-7KeNCx0F.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-BIYKnK2M.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-DvXGudwD.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-BoNCkPPR.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-DDX0f-ID.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-CxKib2hj.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-DxHS-xsX.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BsHPZVx7.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-fX6rKi20.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-C2d1P3Ke.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-Djyyk4Ue.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-DPVK6Ujc.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-YPqug4Xx.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-CeDkEfjT.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-WMFo9Zat.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-C6Ha2IFy.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DwNwh1ED.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-CSQ69GkS.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-CF2NlYOP.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-TJfb-c5V.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-972Gp70f.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-DjsMLzCW.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-DnoOtgUp.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-C0meI6XA.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-AZ0Dut5B.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-Bdu7X63m.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-nDUTaQiW.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-Bo98FGgI.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-NyOx2_Qc.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-DXlZSDMq.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-BTb6qtvS.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-CwVzvl6F.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-BlXDMdKv.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BwL2w-bR.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-DuZwtRGA.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-BsbFKC2I.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-47HueEIY.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-Vlp1Pfhh.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Bv3z_n-M.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BkrpebZ7.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-CT8DxToU.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-Dhl83MB1.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-CfzMuCd3.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-FhUaMqby.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-CcCCluEk.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-SfshlY8X.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-CFrveNvP.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-C4cU_J1C.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-Bq13otbq.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-BBlrlF5u.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-a5WQ1hKl.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-B_Bbaeo0.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-2oBclun6.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BLTPbLE_.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-BeGhvF7X.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-D9lcLeo5.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CR02VJKy.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-CfFpngcb.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-Dx360Ra9.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-QgsZDLPG.js
src/python_cad_tools/_viewer_static/assets/fogFragment-Cg93oslV.js
src/python_cad_tools/_viewer_static/assets/fxaa.fragment-BE3AwpNA.js
src/python_cad_tools/_viewer_static/assets/fxaa.vertex-CMqfyiIi.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-BRq9XV9F.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DxqPxc0v.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-B00n0JiL.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-D7uJ-MYw.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-CroG-Ltw.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DsyMsJOl.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-CbuHwwYM.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-tTz36e4f.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CVxpiWyd.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-bkXN2Njn.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-CCiCITg1.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-Cgat0MCG.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-Cq04f5Ln.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-DXSVIB_2.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-Bt1JV2fJ.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-BjhP89KP.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-Faq0QVfW.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-CKyVe1CV.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-aH_PMq3S.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-DDZAS2wb.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-D3Ga2k6-.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-BrYONFqP.js
src/python_cad_tools/_viewer_static/assets/index-BZ1jSBLc.css
src/python_cad_tools/_viewer_static/assets/index-DMstpx40.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-C5b4KAEg.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-Derkbx9w.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CBMvYDT-.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CbO1lW2k.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-Dm6ylZqq.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-Dzmp-9kW.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-CGLuJ3CM.js
src/python_cad_tools/_viewer_static/assets/lightFragment-DwljOAKX.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-D5H1pvXu.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-DCHHmUjz.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-C2r7x4SJ.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-D66Dj1ce.js
src/python_cad_tools/_viewer_static/assets/oitFragment-BblgJLs2.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-ApisHGwV.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-DDzCgLmz.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-B3hJbmMD.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-BwG88QJq.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-DmktGnAB.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-CrmmCGBW.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-DEhGQe9C.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-KAR6124f.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Bk1M96bB.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-CpsHcz7i.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-Cf2bYblu.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-DWpZhjFr.js
src/python_cad_tools/_viewer_static/assets/pass.fragment--5PJYvG_.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-POHCEXUn.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-TFZnmLc2.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-DrJnd3FG.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-DrrEPvVg.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-CAvUMvGl.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-Fyywxry3.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-In3pd2QO.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-CN4dqlHo.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-DZHtYHqD.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-C4rekOuR.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-Dyu7cQ3W.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-B-SrhRe7.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-BhJ051Av.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-BjE54o2G.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-B6W4l6bx.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Chbio0ZH.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-DpZ6_aaU.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BCUaVlqI.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CHELw20N.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-DsZ-321q.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-M2WvT-v9.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-BjZfaTmT.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/custom_view.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/renders.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