.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-CkBwZBaC.js
src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-BRwXBaR8.js
src/python_cad_tools/_viewer_static/assets/basisTextureLoader-BRWOHjz-.js
src/python_cad_tools/_viewer_static/assets/brdfTextureTools-_z9j6IDT.js
src/python_cad_tools/_viewer_static/assets/bumpFragment-D1ib6sWk.js
src/python_cad_tools/_viewer_static/assets/bumpVertex-rRJFggby.js
src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-DpYJme-Y.js
src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-8V4Sc9NG.js
src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-05ivX8eb.js
src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-BOak-Hxf.js
src/python_cad_tools/_viewer_static/assets/dds-Wp2qLmYy.js
src/python_cad_tools/_viewer_static/assets/dds.pure-Ce-RwcPa.js
src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-DmqLHZsO.js
src/python_cad_tools/_viewer_static/assets/default.fragment-skPC2PC5.js
src/python_cad_tools/_viewer_static/assets/default.vertex-Bf7EZhGi.js
src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-DveD0pj_.js
src/python_cad_tools/_viewer_static/assets/dumpTools-E15xCOlX.js
src/python_cad_tools/_viewer_static/assets/envTextureLoader-Bw7xWacU.js
src/python_cad_tools/_viewer_static/assets/exrTextureLoader-DdM34m4d.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-C2CCzJfK.js
src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-DaQNBsAi.js
src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-Bm_uAgA1.js
src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-BIRe7y9_.js
src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DMJBYgfr.js
src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-QxXghWCp.js
src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-I8EAYjjd.js
src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-BzNEnhY9.js
src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-B7ItpxKe.js
src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BhbDYfGS.js
src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-DXpJ7TNt.js
src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-DNvjca7m.js
src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-aSW2fQMB.js
src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-CQB87ocL.js
src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DuoW5gn_.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-CKgVrKHO.js
src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-DoCK3CbK.js
src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-BGQscpK_.js
src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-C8ByegaL.js
src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DZZ6IZdT.js
src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-jnLx7y5R.js
src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DVCyAPqf.js
src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-Co3We5bN.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-6xyNjSA6.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Cmz2b6ZC.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-DAEGIqYD.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-BjCZBRGe.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-1qAsVO8r.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-CjzseaZ_.js
src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-BIHX5QMz.js
src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-CiQsoigA.js
src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-Bw0KkJ0e.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DndaXIf-.js
src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-B6Qttnxj.js
src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-DNYimm79.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-C4bd_Uk_.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-BbiC-9yS.js
src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-8jNrKia4.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-Bp9VLo95.js
src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-RBcvT17x.js
src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-CDMmeteR.js
src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-BLD5qZLm.js
src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-Bp_x5hf9.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BJEgts2P.js
src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-mB4vOhyw.js
src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-DHywozhh.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-db7Y-Q7u.js
src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-CxsvloFb.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-CVZzeLa6.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-kgytqAo-.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-DIiGO9Sz.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-yJsL04S3.js
src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-oGalI3fw.js
src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-CGU30qtJ.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-CxumRn2U.js
src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-_hKXW4nX.js
src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BadQ6Fmt.js
src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-ZX23Dn7h.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-DaDY5MFY.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-ClLunIUZ.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Cdu7nMQr.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BXRAhWUV.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-BzUyWEvj.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D_eRVaRX.js
src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-C48wCF3K.js
src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-JilA8K68.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DVVhNH2l.js
src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-MkvXT-pz.js
src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-BA1OpeUq.js
src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-aR7ATriv.js
src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-_Z_XQ1KU.js
src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-CbmOuO1Y.js
src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-BMYbqqlw.js
src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-IvfUhMXD.js
src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-XXcp6Uu_.js
src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-CiCB0FD8.js
src/python_cad_tools/_viewer_static/assets/fogFragment-Dzpo6VdR.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DyyJ3SmK.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting-eKQ5MVB9.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BA9M7qMm.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BL60TTsE.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-Bo6VgkDg.js
src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-CKsJZAkY.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-BKNvofx9.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-CwwM4G1X.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CRzxSOuN.js
src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CzPcN15t.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-D6FSJnnh.js
src/python_cad_tools/_viewer_static/assets/geometry.fragment-D7dB1cPB.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-B30SEDfq.js
src/python_cad_tools/_viewer_static/assets/geometry.vertex-CEqGE1RP.js
src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-qbxgPsfh.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-pr52K7ES.js
src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-Bu7wD6_v.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DQIuOzG_.js
src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex--Gv__zWj.js
src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-KdJGOHc6.js
src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js
src/python_cad_tools/_viewer_static/assets/helperFunctions-DgEuNo6U.js
src/python_cad_tools/_viewer_static/assets/iesTextureLoader-CtVX46fM.js
src/python_cad_tools/_viewer_static/assets/index-BlqB2_Pr.js
src/python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BX7Lt7ea.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-DYsyjXaA.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-ClVvwFB7.js
src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-DPBXY9JC.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-BYwqlIXx.js
src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-Dug6rT1B.js
src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-BIXHU16K.js
src/python_cad_tools/_viewer_static/assets/lightFragment-DHmrE5GX.js
src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-DYQ6buM5.js
src/python_cad_tools/_viewer_static/assets/logDepthVertex-N8cjnWeq.js
src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-04-YeMcZ.js
src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js
src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-Cxie7MAJ.js
src/python_cad_tools/_viewer_static/assets/oitFragment-Yqa_2p-U.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-B-ILUybs.js
src/python_cad_tools/_viewer_static/assets/openpbr.fragment-CYJW19wI.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-6zrdkvEg.js
src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CZ4PwccK.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BsEUy5d2.js
src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-BqYCxfaV.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Bi8t7k_g.js
src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-DlDoA2Eg.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-Cq9kCjmQ.js
src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-SB6Z4wg9.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-BPDUaRnj.js
src/python_cad_tools/_viewer_static/assets/packingFunctions-BPvmjixW.js
src/python_cad_tools/_viewer_static/assets/pass.fragment-CGW86Knk.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-BXLbB-Q5.js
src/python_cad_tools/_viewer_static/assets/passCube.fragment-CagZgpfr.js
src/python_cad_tools/_viewer_static/assets/pbr.fragment-CMmf0u9q.js
src/python_cad_tools/_viewer_static/assets/pbr.vertex-SKsjk5Pj.js
src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-DNsUN6qQ.js
src/python_cad_tools/_viewer_static/assets/pbrDebug-Dw9FHwdO.js
src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-ynQ9EJMa.js
src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-DD-Qp64W.js
src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BbrOLlOF.js
src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-Bqvz9xQU.js
src/python_cad_tools/_viewer_static/assets/postprocess.vertex-BMFYhnff.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-BfaBXzj0.js
src/python_cad_tools/_viewer_static/assets/procedural.vertex-pqGGkP1-.js
src/python_cad_tools/_viewer_static/assets/reflectionFunction-BCniWKEL.js
src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-DCuzC7q7.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-BAhasmlV.js
src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-b49hhC5d.js
src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-DPddq9hQ.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C5g8djMT.js
src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CbjSik1W.js
src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-DqTGNNaJ.js
src/python_cad_tools/_viewer_static/assets/vertexColorMixing-Bp9_JGdC.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