.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-DHMjljmB.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-MGFbbw7F.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-BPZV974Q.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-B1t2XUsh.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-DCxLmG61.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-0oYjoQMQ.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-BGUPjxym.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-DD2JPAF1.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-DN96wmQc.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-CF0hkqTs.js
src/python_cad_tools/_viewer_static/assets/dds-B77UKtBn.js
src/python_cad_tools/_viewer_static/assets/dds.pure-B715oIs0.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-7G8Qcc0n.js
src/python_cad_tools/_viewer_static/assets/default.fragment-tZ0oStCg.js
src/python_cad_tools/_viewer_static/assets/default.vertex-C-PbmgtW.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-DA6nmrud.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-lsNPYPhe.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-SjwgJAc5.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-DTjrMcjl.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-DamPsUZI.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-rHV_9Jtd.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-B1Mzuvj7.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-BYSm-X9P.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-DLLGKTbV.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-DyT2_YKh.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CLlaui7O.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-ezmwTbI5.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BWCBa9B7.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-Tq8YSBFN.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-B56RKoF4.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-CjuSDwmc.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-Bmk4MxN7.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-Dvi9ZvsH.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-Bj7RTBgv.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-CGd8wpR5.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-BGZpjQAX.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-BzLE44T-.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-D8_88xUA.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CF8dXGIg.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-D_YGg8QR.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-B8SiMj9v.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-DzEtWSf5.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-CIhvXJWA.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-DqgIoJQv.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-CUHG6HMx.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CoS75-c_.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-1HiYij4X.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-Bzpa8R9d.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-ooox6LH_.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-Df2jq977.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-B6KLFUdL.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-CZe8gZ1b.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-gyM8wAf_.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-CD-zMI2Y.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-dmq771Ye.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-DcU45hIv.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-D3K59ZYx.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-B84bxb6q.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-DvWcRK48.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D1QtxJNf.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BCpUwYzV.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-DRNt_SDm.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Bg-E3ycn.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-DNyeMY32.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-nxquuNCT.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-Buah9Tkc.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-B9bwUWa1.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BM0TL_xE.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-CJgEh8yV.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-DTHG-KwO.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMGZmwMB.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-CSI8HkWd.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-BE_6AF0x.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-zQ9Lr3Qw.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-rOgY8mka.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-BY_DG0RM.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-BWkX9sU3.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-BiQhdbqp.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-6Stexwnu.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BhbU9SXg.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-BVIo1W8-.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-BmVOXY0c.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-BjKR1mgz.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-Dw-5bxJv.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DrLtPiEv.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock--MzW9jji.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-X2ZoX6tx.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BZ2PAian.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-BEBk8xav.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-DPY_kyih.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-D7h--Cdt.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-2EgD4-kQ.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-CmOzDK5N.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-CbejmuGP.js
src/python_cad_tools/_viewer_static/assets/fogFragment-BTBA7CTP.js
src/python_cad_tools/_viewer_static/assets/fxaa.fragment-C2eATj9H.js
src/python_cad_tools/_viewer_static/assets/fxaa.vertex-D0i6Mi6U.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DSSuHojJ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-z1QQSYr0.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BIkORghW.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-CPhYpx9O.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-Bb7V--au.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DlNYcW-d.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-3ZOEWhKY.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-C2JvL2AM.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-3lxrHk65.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CwZjSh-j.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-B7Bs1-FX.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-C9e-kv94.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-CxQUKoXe.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-DLLF9YL6.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-DJ7GA0Ms.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-IiyeP0wJ.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-D08z2Pqo.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-b_QAS0QR.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-CMSyDSpX.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-DT0Dhsff.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-Qma8-N-8.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-VePZ3QkV.js
src/python_cad_tools/_viewer_static/assets/index-C7PQDOQI.css
src/python_cad_tools/_viewer_static/assets/index-Dl0bWA0T.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-ChxVYEAV.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-DdUkyZYa.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CfFBINQK.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CsUEAlHp.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-BfbSJvpD.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YWfJbImG.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-DyPXrWbN.js
src/python_cad_tools/_viewer_static/assets/lightFragment-D1PDwXO3.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-DzsADhSm.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-CVDFVyev.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-DapA_gli.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-ZqbKD_Z-.js
src/python_cad_tools/_viewer_static/assets/oitFragment-C5HMolir.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-CIMBKpMg.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-SdCxmuNh.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CsVq8zRS.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-D6KDFxU7.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-crOU97Ej.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-BU5tmfb_.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-CSoLogLq.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Zc5U1uW1.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BHnTD3Hj.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-qTe8FOQM.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-BTo087et.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-DkOVZ6dP.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-Fvo7rkse.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-Bpo9R9Mm.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-Dx2u9rd3.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-CsJ83gJP.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-Bjk8gi5S.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-BIkS5CLc.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-DXECYWn5.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-D3D1vikc.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-D27tv6kx.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-B2QPSPXm.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CRUyhK8m.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-BVUTk21B.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-D4hY2WEA.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-WHGaOSkN.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-Qpn0UPP2.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CUYoCQBj.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Cg9wCk1i.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-NifDqc2S.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-D3Naneg4.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-BUFM97It.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-BbKV5o42.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-C_Gwe725.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-DXtapHBI.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