.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-D8JiTQ-4.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-BXUoW_dN.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-CVHGuBLP.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-D96Uxpg7.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-ZSaaIjlj.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-B77JU1YW.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-Ia7fxSn9.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-B6DPyYvd.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-BszU5pg9.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DtS_e4_4.js
src/python_cad_tools/_viewer_static/assets/dds-IzBU48fT.js
src/python_cad_tools/_viewer_static/assets/dds.pure-CMQrALY8.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-CdJp2uRL.js
src/python_cad_tools/_viewer_static/assets/default.fragment-Bd74LdsD.js
src/python_cad_tools/_viewer_static/assets/default.vertex-BbLzFbSI.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-CWmXZelY.js
src/python_cad_tools/_viewer_static/assets/dumpTools-C1GV3tke.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-D8Rc9mej.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-dLKMUCnE.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-BdJfphn5.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-BjNZz3lY.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BO3TRmH0.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-CvNkMyMS.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-C0zTSypA.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-ghEzHTJ0.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Befmlymg.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CZ4x2OHC.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-Bg7iuKLe.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-CgsD1XIc.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-CXGmEPz3.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-Cvo5vmPt.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-7js8GLy5.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-Dnhmin9r.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DNcKLFOn.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-CwMpsIku.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-CNETXCb0.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-VouTILkP.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-C6rQIu-I.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-C7KNITdq.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-C_Tl0qXF.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-ChzhGELd.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-BdE0stdX.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-Ct28X64C.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-D_HtxKVI.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-3udqCAK3.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-CmnYGepx.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-BO9H9c3L.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-CeKonax7.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-ugd43AvH.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-CeAOzH23.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DTh4fL6t.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-CE5OhwqS.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-D5gv9QIZ.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-Cy-XDvh9.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-B91rxqkv.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DPYtdWaj.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-BApSnOZE.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-D3CK-Hy2.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-B6nBNvbo.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-ofjzAxQF.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-BvF2vaZi.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-DpHnJiIf.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BrrymuG6.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-CHSeaOnB.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-syMr1OJN.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-BXnW30FY.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-CsSTQ880.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-Ct0SkI9l.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-3Oxamq4b.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B4SYh7i0.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CVt4drqm.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-Q5eFYPWa.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-S8K7qYF_.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dg_340c-.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-C_0s6vFz.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BXzvdSwL.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DTjRGM0i.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-CVc5809-.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-3NJrJ4Fn.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-D4V0HEJW.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-CIFAGZ4N.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-DW9lz25w.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-CBI-hqde.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-9g1tFmrf.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DOoVnrgC.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-CNxA_doq.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-Ds7-OqyY.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-C6WWFd5D.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-DJymGlzE.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-CGbRuDff.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-GrXGV2Lk.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-PD8fnplX.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-CDqG4e7V.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-BRbmMhsz.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-COJV6l5s.js
src/python_cad_tools/_viewer_static/assets/fogFragment-Choi4dwf.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-B2ibIxZi.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-O05Ige7q.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-CRSXtFZA.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-lp1mUJ81.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-C4vLDHOC.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-CtzXFKDF.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DOXOYFhX.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DwBcuLEK.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Da9modjG.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-kSk7jCdX.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-D5AHElrd.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-GHxvGIuO.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-BekW6jCs.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-m038PJYK.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BuYnbp24.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-C5l-Afa5.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BdNNoSRh.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DEm5Wwpu.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-D3FjaVt0.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-DVbiWL12.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-BMWamdZI.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-NWNyOmSO.js
src/python_cad_tools/_viewer_static/assets/index-BE2-nPmV.css
src/python_cad_tools/_viewer_static/assets/index-CxvyL8J4.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-DQG_CTu1.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-dEQEa5jL.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BbT8O5z2.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-I35OVoE5.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-Cqh5-5OF.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-b3uALS8k.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-Dx4kAPwU.js
src/python_cad_tools/_viewer_static/assets/lightFragment-CcjS-1Qr.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-ChnhQwTH.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-msVogzTr.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-pZFlArh_.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-CdWlDODa.js
src/python_cad_tools/_viewer_static/assets/oitFragment-szDk6UZR.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-BBn02yR9.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-D7RcvfXo.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CQy-TMKU.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-DwOLixI7.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-DPMfMSFE.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-CugNxYOx.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-B4uZGKm6.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-DMxPgLDn.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BLspgBan.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-CWOev382.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-B1rNimSD.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-ChisQShT.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-I6r_kdFj.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-Bl-fmIsm.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-C6HrkIks.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-uJU14vU_.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-DKhVew6J.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-m4lTGetO.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-7fIy0dbE.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-BPaegWsp.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BFEhyw--.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-DK-tM7hi.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-DAx5uXah.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-C5aIR2Ui.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-B3PgdJzj.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-CLdneMyi.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-CjSeFDi0.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-C9uqNnbi.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-VdvQq4-z.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-vn_uEJcl.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-ymh6-q5s.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-Cf1C-AMd.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-D1P19Mcp.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-DEFImEV4.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-Dd7cVESy.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