.gitattributes
.gitignore
AGENTS.md
CHANGELOG.md
CLAUDE.md
LICENSE
MANIFEST.in
PYTHON_CAD_TOOLS_REPOSITORY_MIGRATION_PLAN.md
README.md
pyproject.toml
.github/workflows/ci.yml
.github/workflows/downstream-compatibility.yml
.github/workflows/release-candidate.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/project-configuration.md
docs/public-api.md
docs/viewer-delivery.md
docs/migration/02-package-identity-report.md
docs/migration/03-public-api-report.md
docs/migration/04-build-artifacts-report.md
docs/migration/05-drawings-report.md
docs/migration/06-viewer-report.md
docs/migration/07-cleanup-ci-report.md
docs/migration/08-local-rc-report.md
docs/migration/baseline-report.md
docs/migration-prompts/00-execution-profile.md
docs/migration-prompts/01-preserve-and-baseline.md
docs/migration-prompts/02-package-identity-and-skeleton.md
docs/migration-prompts/03-public-api-and-project-loading.md
docs/migration-prompts/04-build-artifacts-and-determinism.md
docs/migration-prompts/05-format-neutral-drawings.md
docs/migration-prompts/06-viewer-site-and-offline.md
docs/migration-prompts/07-legacy-removal-governance-and-ci.md
docs/migration-prompts/08-local-release-candidate.md
docs/migration-prompts/README.md
docs/spikes/format-feasibility.md
src/python_cad_tools/__init__.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/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-Sd34ntWg.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js
src/python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js
src/python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js
src/python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js
src/python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js
src/python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js
src/python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js
src/python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js
src/python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js
src/python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js
src/python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.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