.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/project-configuration.md
docs/public-api.md
docs/viewer-delivery.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/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-MtgCw1Ux.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-DPfLOBgY.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-CQkbVCyi.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-B_dB1i4C.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-DxBsVbbJ.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-CV1emG_L.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-DzxERX3P.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-CjD8gpPC.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-DZUGsd7B.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-BhQWdVmq.js
src/python_cad_tools/_viewer_static/assets/dds-B6sw00br.js
src/python_cad_tools/_viewer_static/assets/dds.pure-CZef-OJb.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-Cwl5Tk51.js
src/python_cad_tools/_viewer_static/assets/default.fragment-DPKJ_PFB.js
src/python_cad_tools/_viewer_static/assets/default.vertex-17lbmlzJ.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BvhWk912.js
src/python_cad_tools/_viewer_static/assets/dumpTools-B-PLfPgJ.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-tC7ZtmO9.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-B6fAhUNr.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-BpkRmw9T.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-MJsW6AMf.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-5igly64c.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-CaMw7qsp.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-D2mSKvrf.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-CdIxWON4.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-D40es47N.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-_0POWdye.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-DVBaYtcE.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-Dios2MLD.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-BvZDPhvQ.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CJlKkWxB.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-COdd7yEj.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-FqkTLG6u.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-VM69575O.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-BPkQTnq_.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-_kociD8s.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-nkHI7vjn.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-ZaYUd1FD.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-CRiUquPi.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CaOSserm.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-D5OF3TDY.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-CKyILCdR.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BL3QKfRX.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-DBQM0FXx.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-H9qk0_r5.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-CBb8LuiQ.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-YRzLELvp.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-D8rt6eF5.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-U-JzHT7V.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-CL4wzgkU.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-BnPdrQ5A.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-OfFs-KHd.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-Cmuw4W8N.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-BZJDFlx1.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-WkxE7bHy.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DAT6hdma.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-BQwmmtAp.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-C9UCJ3ii.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-nWzlZ5MA.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-DfwK1LMK.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-Cgkx9fAn.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-CPzwE2dC.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BIGnwjEc.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Cey7wUDo.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-Yjoq2-FX.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-CIkfA2UV.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-Bo-Y-cL3.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DXyK461e.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BJKu2Hko.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-CdKH6PAt.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-w3ozcER8.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-5zL8Wv_K.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-CPVKsCJc.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-BsVj0n99.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-CO1mOvyH.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-CzPrNaBP.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-B6oV0mQL.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Dht085Jc.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-BGNzxteL.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-dUF_wRaA.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BMedN90q.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-Bi8j-KnD.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-DrNOPsaA.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-BA_GE0I5.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DvTTlHyF.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-BjSXi0Aw.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-B1CL7ZYz.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-DFoM309O.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-Dz6Q4SkH.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DHEIKJfT.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-B6Rf5Zso.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-STEcUbEY.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-6TLKXZ7L.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-_XDUgUNn.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-5N_9CXyv.js
src/python_cad_tools/_viewer_static/assets/fogFragment-BVPYrNWQ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-0ZJPRoCA.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-CAvCW4dJ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-Bpo2-VVK.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BytvDQTZ.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-C_CzOcGu.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DQQvZcfN.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-Dwmh6dUG.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-EZOuKxhj.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-B9R58gev.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CTfAv-os.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-B9EXPza4.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-BEisb7E3.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-5RgHefNy.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-CBam6fnI.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-D2z5hxYZ.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-BXgWTxQ0.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-CI7-gDkT.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-Br7TWwVl.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-CzL2lXJB.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-4NU_1Wwc.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-AlFLsZm8.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-CCfxwFiP.js
src/python_cad_tools/_viewer_static/assets/index-DJi1uzwD.js
src/python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-Cb79yBOq.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-D3sXwtNj.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BvP9j-65.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CsElhOOj.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-D7n1KuI1.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-jISkXte4.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-BU0-HIC_.js
src/python_cad_tools/_viewer_static/assets/lightFragment-D6vXKGYi.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-CIrCm0cJ.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-DY2gER-u.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-DHQsTuGl.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-DmQt4Xf2.js
src/python_cad_tools/_viewer_static/assets/oitFragment-BqQxk15P.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-CsU8SVNa.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-J4gxkLzx.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CYgkQAMW.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DCmEMLVY.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-Cy0ez9Jo.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-CXPkVcRl.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-CN1Ejk79.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-EbDdulRH.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Bg-RU45F.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-iYdoiEq9.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-CC08q3vE.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-psmvhANS.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-BIevPBuP.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-Chh0oHRS.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-DlGBukrp.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-B1AbYkxh.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-Bi_W_7Fy.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-BizLMcTU.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-BDEh5nFe.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-nlMkNuRi.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-CsXpC9_G.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BWrq7RWK.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-BznUO4BO.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-B9LCuKcC.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-Bg2mQJ0b.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-Q9V68_wY.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-Ccz03lRe.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-TLb1laHp.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-B7OJVdjV.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Cigj21Vm.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-CZUKQCTC.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-BXyhHZYv.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-PI15Wvu2.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-0n2EOT9z.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-Cs-7Dom3.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