@classytic/labs 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -22
- package/dist/_virtual/_rolldown/runtime.mjs +19 -1
- package/dist/algorithms/GraphAlgorithmLab.d.mts +1 -9
- package/dist/algorithms/GraphAlgorithmLab.mjs +2 -2
- package/dist/algorithms/GraphView.d.mts +1 -10
- package/dist/algorithms/GridPathLab.d.mts +1 -6
- package/dist/algorithms/GrowthLab.d.mts +1 -7
- package/dist/algorithms/GrowthLab.mjs +1 -1
- package/dist/algorithms/HashLab.d.mts +1 -9
- package/dist/algorithms/HashLab.mjs +3 -2
- package/dist/algorithms/HeapDualView.d.mts +1 -7
- package/dist/algorithms/HeapQuestLab.d.mts +1 -10
- package/dist/algorithms/HeapQuestLab.mjs +1 -1
- package/dist/algorithms/ListLab.d.mts +1 -9
- package/dist/algorithms/ListLab.mjs +1 -1
- package/dist/algorithms/SearchLab.d.mts +1 -7
- package/dist/algorithms/SearchLab.mjs +1 -1
- package/dist/algorithms/SortingLab.d.mts +1 -9
- package/dist/algorithms/SortingLab.mjs +1 -1
- package/dist/algorithms/TraceTransport.d.mts +1 -8
- package/dist/algorithms/TraceTransport.mjs +0 -1
- package/dist/algorithms/TreeQuestLab.d.mts +1 -12
- package/dist/algorithms/TreeQuestLab.mjs +3 -3
- package/dist/algorithms/TreeScene.d.mts +1 -7
- package/dist/algorithms/TreeScene.mjs +8 -4
- package/dist/algorithms/core/index.d.mts +6 -1
- package/dist/algorithms/core/index.mjs +9 -4
- package/dist/algorithms/cost-derivation/core.d.mts +1 -1
- package/dist/algorithms/cost-derivation/core.mjs +1 -1
- package/dist/algorithms/cost-derivation/index.d.mts +2 -1
- package/dist/algorithms/cost-derivation/preset.d.mts +1 -7
- package/dist/algorithms/cost-derivation/preset.mjs +1 -1
- package/dist/algorithms/dp.d.mts +0 -1
- package/dist/algorithms/graph.d.mts +0 -1
- package/dist/algorithms/graph.mjs +1 -1
- package/dist/algorithms/heap.d.mts +0 -1
- package/dist/algorithms/index.d.mts +6 -5
- package/dist/algorithms/index.mjs +12 -12
- package/dist/algorithms/normalize.d.mts +0 -1
- package/dist/algorithms/presets.d.mts +0 -1
- package/dist/algorithms/search.d.mts +0 -1
- package/dist/algorithms/sorting.d.mts +0 -1
- package/dist/algorithms/tree/index.mjs +1 -1
- package/dist/algorithms/tree-builder.d.mts +0 -1
- package/dist/algorithms/tree-layout.d.mts +0 -1
- package/dist/algorithms/tree-presets.d.mts +0 -1
- package/dist/algorithms/tree.d.mts +0 -1
- package/dist/authoring/evidence.mjs +68 -0
- package/dist/authoring/index.d.mts +2 -3
- package/dist/authoring/index.mjs +2 -2
- package/dist/authoring/quality.d.mts +4 -3
- package/dist/authoring/quality.mjs +28 -1
- package/dist/authoring/report.d.mts +9 -1
- package/dist/authoring/report.mjs +12 -1
- package/dist/biology/cell-division/activity.d.mts +1 -1
- package/dist/biology/cell-division/core.mjs +2 -1
- package/dist/biology/cell-division/index.d.mts +4 -1
- package/dist/biology/cell-division/meiosis-activity.d.mts +1 -1
- package/dist/biology/cell-division/meiosis-preset.d.mts +2 -12
- package/dist/biology/cell-division/meiosis-preset.mjs +1 -1
- package/dist/biology/cell-division/meiosis-scene.d.mts +1 -7
- package/dist/biology/cell-division/preset.d.mts +2 -13
- package/dist/biology/cell-division/preset.mjs +6 -4
- package/dist/biology/cell-energy/activity.d.mts +1 -1
- package/dist/biology/cell-energy/core.d.mts +1 -6
- package/dist/biology/cell-energy/index.d.mts +3 -1
- package/dist/biology/cell-energy/preset.d.mts +2 -15
- package/dist/biology/cell-sample-investigator/core.d.mts +18 -0
- package/dist/biology/cell-sample-investigator/core.mjs +56 -0
- package/dist/biology/cell-sample-investigator.d.mts +17 -0
- package/dist/biology/cell-sample-investigator.mjs +446 -0
- package/dist/biology/cell-system/activity.d.mts +1 -1
- package/dist/biology/cell-system/index.d.mts +3 -1
- package/dist/biology/cell-system/preset.d.mts +2 -13
- package/dist/biology/cell-system/preset.mjs +5 -5
- package/dist/biology/enzyme-rate/index.d.mts +2 -1
- package/dist/biology/enzyme-rate/preset.d.mts +1 -11
- package/dist/biology/enzyme-rate/preset.mjs +2 -1
- package/dist/biology/genetic-cross/core.mjs +1 -1
- package/dist/biology/genetic-cross/grid.mjs +3 -2
- package/dist/biology/genetic-cross/index.d.mts +2 -1
- package/dist/biology/genetic-cross/preset.d.mts +1 -12
- package/dist/biology/genetic-cross/sex-linked.d.mts +1 -12
- package/dist/biology/index.d.mts +13 -1
- package/dist/biology/index.mjs +3 -1
- package/dist/biology/membrane-transport/activity.d.mts +1 -1
- package/dist/biology/membrane-transport/core.d.mts +1 -7
- package/dist/biology/membrane-transport/index.d.mts +3 -1
- package/dist/biology/membrane-transport/preset.d.mts +2 -18
- package/dist/biology/photosynthesis-factors/index.d.mts +2 -1
- package/dist/biology/photosynthesis-factors/preset.d.mts +1 -11
- package/dist/biology/punnett-cross/index.d.mts +2 -1
- package/dist/biology/punnett-cross/preset.d.mts +1 -12
- package/dist/biology/respiration/index.d.mts +2 -1
- package/dist/biology/respiration/preset.d.mts +1 -7
- package/dist/biology/respiration/preset.mjs +2 -2
- package/dist/biology/sequence/central-dogma.d.mts +1 -7
- package/dist/biology/sequence/central-dogma.mjs +1 -1
- package/dist/biology/sequence/index.d.mts +2 -1
- package/dist/biology/sequence/preset.d.mts +1 -8
- package/dist/blocks/authoring.d.mts +0 -1
- package/dist/blocks/authoring.mjs +1 -1
- package/dist/blocks/catalog.d.mts +1 -1
- package/dist/blocks/domains.d.mts +2 -3
- package/dist/blocks/domains.mjs +3 -4
- package/dist/blocks/index.d.mts +0 -1
- package/dist/blocks/lab-block.mjs +14 -1
- package/dist/blocks/lab-config.d.mts +1 -8
- package/dist/blocks/lab-config.mjs +1 -1
- package/dist/blocks/lazy-resolve.d.mts +1 -5
- package/dist/blocks/lazy.d.mts +1 -3
- package/dist/blocks/lazy.mjs +1 -2
- package/dist/blocks/lesson.d.mts +1 -7
- package/dist/blocks/lesson.mjs +11 -10
- package/dist/blocks/resolve.d.mts +2 -0
- package/dist/blocks/resolve.mjs +5 -0
- package/dist/build/CircuitEditor.d.mts +1 -5
- package/dist/build/CircuitEditor.mjs +3 -2
- package/dist/build/CircuitPlayer.d.mts +1 -7
- package/dist/build/CircuitScene.d.mts +1 -11
- package/dist/build/contract.d.mts +1 -2
- package/dist/build/editor-ops.d.mts +0 -1
- package/dist/build/editor-ops.mjs +3 -2
- package/dist/build/flow.d.mts +0 -1
- package/dist/build/parts/ammeter.d.mts +1 -1
- package/dist/build/parts/bulb.d.mts +1 -1
- package/dist/build/parts/capacitor.d.mts +1 -1
- package/dist/build/parts/cell.d.mts +1 -1
- package/dist/build/parts/diode.d.mts +1 -1
- package/dist/build/parts/index.d.mts +10 -0
- package/dist/build/parts/index.mjs +1 -1
- package/dist/build/parts/mosfet.d.mts +1 -1
- package/dist/build/parts/mosfet.mjs +2 -1
- package/dist/build/parts/node.d.mts +1 -1
- package/dist/build/parts/resistor.d.mts +1 -1
- package/dist/build/parts/switch.d.mts +1 -1
- package/dist/build/registry.d.mts +0 -1
- package/dist/build/solve.d.mts +0 -1
- package/dist/build/solve.mjs +0 -0
- package/dist/build/viewport.mjs +3 -3
- package/dist/catalog/registry.d.mts +1 -2
- package/dist/chem/applied-chemistry-lab.d.mts +10 -0
- package/dist/chem/applied-chemistry-lab.mjs +341 -0
- package/dist/chem/battery.d.mts +1 -7
- package/dist/chem/battery.mjs +22 -17
- package/dist/chem/bohr-atom.d.mts +1 -7
- package/dist/chem/bohr-atom.mjs +2 -3
- package/dist/chem/crystal-lattice/activity.d.mts +0 -1
- package/dist/chem/crystal-lattice/index.d.mts +2 -1
- package/dist/chem/crystal-lattice/preset.d.mts +2 -18
- package/dist/chem/diffusion/index.d.mts +2 -1
- package/dist/chem/diffusion/preset.d.mts +1 -7
- package/dist/chem/diffusion/preset.mjs +2 -1
- package/dist/chem/electrochem/index.d.mts +3 -1
- package/dist/chem/electrochem/preset.d.mts +1 -11
- package/dist/chem/electrochem/preset.mjs +19 -327
- package/dist/chem/electrochem/scene.d.mts +2 -0
- package/dist/chem/electrochem/scene.mjs +370 -0
- package/dist/chem/equation-conservation-desk.d.mts +22 -0
- package/dist/chem/equation-conservation-desk.mjs +250 -0
- package/dist/chem/equilibrium/index.d.mts +2 -1
- package/dist/chem/equilibrium/preset.d.mts +1 -14
- package/dist/chem/equilibrium/preset.mjs +25 -16
- package/dist/chem/evidence-scenes.mjs +460 -0
- package/dist/chem/formula-forge.d.mts +11 -0
- package/dist/chem/formula-forge.mjs +347 -0
- package/dist/chem/gas-box/index.d.mts +2 -1
- package/dist/chem/gas-box/preset.d.mts +1 -13
- package/dist/chem/gas-box/preset.mjs +34 -25
- package/dist/chem/index.d.mts +33 -1
- package/dist/chem/index.mjs +17 -1
- package/dist/chem/industrial-process-lab.d.mts +10 -0
- package/dist/chem/industrial-process-lab.mjs +197 -0
- package/dist/chem/kinetics/index.d.mts +2 -1
- package/dist/chem/kinetics/preset.d.mts +1 -12
- package/dist/chem/kinetics/preset.mjs +27 -23
- package/dist/chem/mole-factory.d.mts +11 -0
- package/dist/chem/mole-factory.mjs +351 -0
- package/dist/chem/molecular-geometry/activity.d.mts +0 -1
- package/dist/chem/molecular-geometry/index.d.mts +2 -1
- package/dist/chem/molecular-geometry/preset.d.mts +1 -15
- package/dist/chem/molecular-geometry/preset.mjs +6 -5
- package/dist/chem/o-level-concepts.d.mts +32 -0
- package/dist/chem/o-level-concepts.mjs +700 -0
- package/dist/chem/orbital-overlap/activity.d.mts +0 -1
- package/dist/chem/orbital-overlap/index.d.mts +2 -1
- package/dist/chem/orbital-overlap/preset.d.mts +2 -16
- package/dist/chem/orbitals/activity.d.mts +0 -1
- package/dist/chem/orbitals/index.d.mts +2 -1
- package/dist/chem/orbitals/preset.d.mts +2 -20
- package/dist/chem/particle-theatre.d.mts +11 -0
- package/dist/chem/particle-theatre.mjs +362 -0
- package/dist/chem/periodic-trends/index.d.mts +2 -1
- package/dist/chem/periodic-trends/preset.d.mts +1 -9
- package/dist/chem/periodic-trends/preset.mjs +109 -593
- package/dist/chem/ratio-normalizer/core.d.mts +37 -0
- package/dist/chem/ratio-normalizer/core.mjs +84 -0
- package/dist/chem/ratio-normalizer/index.d.mts +3 -0
- package/dist/chem/ratio-normalizer/preset.d.mts +14 -0
- package/dist/chem/ratio-normalizer/preset.mjs +241 -0
- package/dist/chem/reaction-lab.d.mts +1 -8
- package/dist/chem/reaction-lab.mjs +133 -82
- package/dist/chem/reaction-profile.d.mts +1 -9
- package/dist/chem/solubility-kitchen.d.mts +11 -0
- package/dist/chem/solubility-kitchen.mjs +267 -0
- package/dist/chem/solution/dilution.d.mts +1 -13
- package/dist/chem/solution/dilution.mjs +6 -5
- package/dist/chem/solution/field.d.mts +1 -12
- package/dist/chem/solution/index.d.mts +2 -1
- package/dist/chem/solution/solution-box.d.mts +1 -13
- package/dist/chem/solution/solution-box.mjs +6 -5
- package/dist/chem/solution-mixer.d.mts +11 -0
- package/dist/chem/solution-mixer.mjs +268 -0
- package/dist/chem/species-workshop.d.mts +11 -0
- package/dist/chem/species-workshop.mjs +274 -0
- package/dist/chem/stereochemistry/activity.d.mts +0 -1
- package/dist/chem/stereochemistry/core.mjs +66 -67
- package/dist/chem/stereochemistry/index.d.mts +2 -1
- package/dist/chem/stereochemistry/preset.d.mts +1 -14
- package/dist/chem/stoichiometry/index.d.mts +2 -1
- package/dist/chem/stoichiometry/preset.d.mts +1 -11
- package/dist/chem/stoichiometry/preset.mjs +10 -6
- package/dist/chem/structure-detective.d.mts +12 -0
- package/dist/chem/structure-detective.mjs +496 -0
- package/dist/chem/titration/index.d.mts +2 -1
- package/dist/chem/titration/preset.d.mts +1 -13
- package/dist/chem/titration/preset.mjs +10 -8
- package/dist/circuits/ac-dc/index.d.mts +2 -1
- package/dist/circuits/ac-dc/preset.d.mts +3 -11
- package/dist/circuits/ac-dc/preset.mjs +214 -52
- package/dist/circuits/ac-response/activity.mjs +121 -0
- package/dist/circuits/ac-response/preset.mjs +474 -0
- package/dist/circuits/brownout/index.d.mts +2 -1
- package/dist/circuits/brownout/preset.d.mts +1 -9
- package/dist/circuits/brownout/preset.mjs +22 -21
- package/dist/circuits/capacitor-leak/index.d.mts +2 -1
- package/dist/circuits/capacitor-leak/preset.d.mts +4 -14
- package/dist/circuits/capacitor-leak/preset.mjs +396 -228
- package/dist/circuits/cell-combination/activity.mjs +119 -0
- package/dist/circuits/cell-combination/core.mjs +115 -0
- package/dist/circuits/cell-combination/preset.mjs +265 -0
- package/dist/circuits/circuit/activity-plan.mjs +6 -6
- package/dist/circuits/circuit/asset.d.mts +0 -1
- package/dist/circuits/circuit/asset.mjs +1 -2
- package/dist/circuits/circuit/index.d.mts +2 -1
- package/dist/circuits/circuit/preset.d.mts +1 -8
- package/dist/circuits/circuit/preset.mjs +25 -36
- package/dist/circuits/circuit-builder.d.mts +1 -10
- package/dist/circuits/circuit-lab.d.mts +1 -11
- package/dist/circuits/circuit-lab.mjs +82 -92
- package/dist/circuits/cmos-gate/index.d.mts +3 -1
- package/dist/circuits/cmos-gate/inverter.d.mts +1 -10
- package/dist/circuits/cmos-gate/inverter.mjs +23 -18
- package/dist/circuits/cmos-gate/nand.d.mts +1 -9
- package/dist/circuits/cmos-gate/nand.mjs +6 -5
- package/dist/circuits/cmos-gate/nor.d.mts +1 -9
- package/dist/circuits/cmos-gate/nor.mjs +7 -6
- package/dist/circuits/cmos-gate/preset.d.mts +2 -1
- package/dist/circuits/cmos-gate/rnmos-not.d.mts +1 -10
- package/dist/circuits/cmos-gate/rnmos-not.mjs +9 -8
- package/dist/circuits/diode/index.d.mts +2 -1
- package/dist/circuits/diode/preset.d.mts +2 -11
- package/dist/circuits/diode/preset.mjs +251 -77
- package/dist/circuits/energy-cost/activity.mjs +120 -0
- package/dist/circuits/energy-cost/core.mjs +93 -0
- package/dist/circuits/energy-cost/preset.mjs +278 -0
- package/dist/circuits/index.d.mts +16 -1
- package/dist/circuits/index.mjs +5 -1
- package/dist/circuits/kirchhoff/core.d.mts +70 -0
- package/dist/circuits/kirchhoff/core.mjs +187 -0
- package/dist/circuits/kirchhoff/index.d.mts +3 -0
- package/dist/circuits/kirchhoff/preset.d.mts +37 -0
- package/dist/circuits/kirchhoff/preset.mjs +929 -0
- package/dist/circuits/meter-conversion/activity.mjs +119 -0
- package/dist/circuits/meter-conversion/core.mjs +114 -0
- package/dist/circuits/meter-conversion/preset.mjs +311 -0
- package/dist/circuits/network-reduction/activity.mjs +140 -0
- package/dist/circuits/network-reduction/preset.mjs +424 -0
- package/dist/circuits/network-reduction/presets.mjs +239 -0
- package/dist/circuits/null-balance/activity.mjs +96 -0
- package/dist/circuits/null-balance/core.mjs +145 -0
- package/dist/circuits/null-balance/preset.mjs +375 -0
- package/dist/circuits/potential-divider/core.d.mts +42 -0
- package/dist/circuits/potential-divider/core.mjs +80 -0
- package/dist/circuits/potential-divider/index.d.mts +3 -0
- package/dist/circuits/potential-divider/preset.d.mts +35 -0
- package/dist/circuits/potential-divider/preset.mjs +686 -0
- package/dist/circuits/rc-charging/index.d.mts +2 -1
- package/dist/circuits/rc-charging/preset.d.mts +2 -12
- package/dist/circuits/rc-charging/preset.mjs +318 -101
- package/dist/circuits/semiconductor/bjt-inside.d.mts +1 -9
- package/dist/circuits/semiconductor/bjt-inside.mjs +13 -13
- package/dist/circuits/semiconductor/conduction.d.mts +1 -7
- package/dist/circuits/semiconductor/conduction.mjs +12 -14
- package/dist/circuits/semiconductor/hall-effect.d.mts +1 -7
- package/dist/circuits/semiconductor/hall-effect.mjs +13 -13
- package/dist/circuits/semiconductor/index.d.mts +3 -1
- package/dist/circuits/semiconductor/mosfet-inside.d.mts +1 -10
- package/dist/circuits/semiconductor/mosfet-inside.mjs +50 -43
- package/dist/circuits/semiconductor/pn-junction.d.mts +1 -9
- package/dist/circuits/semiconductor/pn-junction.mjs +26 -23
- package/dist/circuits/semiconductor/preset.d.mts +2 -1
- package/dist/circuits/semiconductor/silicon-lattice.d.mts +1 -11
- package/dist/circuits/semiconductor/silicon-lattice.mjs +12 -12
- package/dist/circuits/transistor/index.d.mts +2 -1
- package/dist/circuits/transistor/preset.d.mts +2 -12
- package/dist/circuits/transistor/preset.mjs +220 -68
- package/dist/commerce/accounting/core.d.mts +3 -18
- package/dist/commerce/accounting/core.mjs +4 -26
- package/dist/commerce/accounting/equation-balance.d.mts +1 -11
- package/dist/commerce/accounting/equation-balance.mjs +31 -27
- package/dist/commerce/accounting/index.d.mts +2 -1
- package/dist/commerce/accounting/journal-poster.d.mts +1 -9
- package/dist/commerce/accounting/journal-poster.mjs +103 -81
- package/dist/commerce/accounting/statement-sorter.d.mts +1 -9
- package/dist/commerce/accounting/statement-sorter.mjs +34 -33
- package/dist/commerce/activity.d.mts +5 -23
- package/dist/commerce/economics/demand-shift-vs-move.d.mts +1 -13
- package/dist/commerce/economics/elasticity-revenue.d.mts +1 -11
- package/dist/commerce/economics/index.d.mts +2 -1
- package/dist/commerce/economics/market-equilibrium.d.mts +1 -13
- package/dist/commerce/economics/market-equilibrium.mjs +1 -1
- package/dist/commerce/finance/apportion.d.mts +1 -14
- package/dist/commerce/finance/apportion.mjs +36 -34
- package/dist/commerce/finance/break-even.d.mts +1 -12
- package/dist/commerce/finance/break-even.mjs +37 -63
- package/dist/commerce/finance/business-lesson.d.mts +3 -11
- package/dist/commerce/finance/business-lesson.mjs +57 -55
- package/dist/commerce/finance/club-subscriptions/preset.mjs +420 -0
- package/dist/commerce/finance/compound-interest.d.mts +1 -13
- package/dist/commerce/finance/compound-interest.mjs +55 -61
- package/dist/commerce/finance/depreciation.d.mts +1 -13
- package/dist/commerce/finance/depreciation.mjs +112 -95
- package/dist/commerce/finance/eoq.d.mts +1 -12
- package/dist/commerce/finance/incomplete-records/core.mjs +69 -0
- package/dist/commerce/finance/incomplete-records/preset.mjs +212 -0
- package/dist/commerce/finance/index.d.mts +2 -1
- package/dist/commerce/finance/inventory-policy.d.mts +1 -8
- package/dist/commerce/finance/limited-company.d.mts +1 -11
- package/dist/commerce/finance/limited-company.mjs +141 -145
- package/dist/commerce/finance/manufacturing-flow/preset.mjs +134 -0
- package/dist/commerce/finance/manufacturing-flow/scene.mjs +257 -0
- package/dist/commerce/finance/partnership-split/preset.mjs +218 -0
- package/dist/commerce/finance/ratio-lab.d.mts +2 -17
- package/dist/commerce/finance/ratio-lab.mjs +142 -61
- package/dist/commerce/finance/statement-builder.d.mts +2 -17
- package/dist/commerce/finance/statement-builder.mjs +64 -54
- package/dist/commerce/finance/supply-chain.d.mts +1 -15
- package/dist/commerce/finance/supply-chain.mjs +12 -3
- package/dist/commerce/finance/warehouse-allocation.d.mts +1 -10
- package/dist/commerce/index.d.mts +3 -0
- package/dist/core/embedding.d.mts +14 -0
- package/dist/{domains/ml/embedding-space → core}/embedding.mjs +5 -19
- package/dist/core/index.d.mts +2 -2
- package/dist/core/index.mjs +2 -2
- package/dist/core/next-token.d.mts +9 -0
- package/dist/{domains/ml/next-token/model.mjs → core/next-token.mjs} +9 -33
- package/dist/core/numeric.d.mts +1 -8
- package/dist/core/numeric.mjs +1 -15
- package/dist/core/tex.d.mts +1 -6
- package/dist/core/timeline.d.mts +0 -1
- package/dist/core/timeline.mjs +13 -10
- package/dist/core/util.d.mts +0 -1
- package/dist/data/core/evaluation-leakage.d.mts +16 -0
- package/dist/data/core/evaluation-leakage.mjs +24 -0
- package/dist/data/core/record-model.d.mts +29 -0
- package/dist/data/core/record-model.mjs +39 -0
- package/dist/data/foundation/design-records.d.mts +8 -0
- package/dist/data/foundation/design-records.mjs +60 -0
- package/dist/data/foundation/dirty-data.d.mts +8 -0
- package/dist/data/foundation/dirty-data.mjs +119 -0
- package/dist/data/index.d.mts +7 -0
- package/dist/data/index.mjs +8 -0
- package/dist/data/visuals/leakage-board.d.mts +10 -0
- package/dist/data/visuals/leakage-board.mjs +87 -0
- package/dist/data/visuals/record-model-board.d.mts +11 -0
- package/dist/data/visuals/record-model-board.mjs +188 -0
- package/dist/databases/core/access-path.d.mts +21 -0
- package/dist/databases/core/access-path.mjs +72 -0
- package/dist/databases/core/b-plus-tree.d.mts +21 -0
- package/dist/databases/core/b-plus-tree.mjs +54 -0
- package/dist/databases/core/query-plan.d.mts +32 -0
- package/dist/databases/core/query-plan.mjs +54 -0
- package/dist/databases/foundation/b-plus-range.d.mts +8 -0
- package/dist/databases/foundation/b-plus-range.mjs +81 -0
- package/dist/databases/foundation/index-detective.d.mts +8 -0
- package/dist/databases/foundation/index-detective.mjs +113 -0
- package/dist/databases/foundation/query-plan.d.mts +8 -0
- package/dist/databases/foundation/query-plan.mjs +90 -0
- package/dist/databases/foundation/range-query.d.mts +8 -0
- package/dist/databases/foundation/range-query.mjs +113 -0
- package/dist/databases/index.d.mts +14 -0
- package/dist/databases/index.mjs +15 -0
- package/dist/databases/visuals/access-path-primitives.d.mts +43 -0
- package/dist/databases/visuals/access-path-primitives.mjs +151 -0
- package/dist/databases/visuals/b-plus-tree-board.d.mts +9 -0
- package/dist/databases/visuals/b-plus-tree-board.mjs +96 -0
- package/dist/databases/visuals/index-detective-board.d.mts +12 -0
- package/dist/databases/visuals/index-detective-board.mjs +187 -0
- package/dist/databases/visuals/query-plan-board.d.mts +11 -0
- package/dist/databases/visuals/query-plan-board.mjs +118 -0
- package/dist/databases/visuals/query-plan-primitives.d.mts +17 -0
- package/dist/databases/visuals/query-plan-primitives.mjs +92 -0
- package/dist/databases/visuals/range-query-board.d.mts +11 -0
- package/dist/databases/visuals/range-query-board.mjs +97 -0
- package/dist/deep-learning/core/attention.d.mts +24 -0
- package/dist/deep-learning/core/attention.mjs +123 -0
- package/dist/deep-learning/core/causal-mask.d.mts +18 -0
- package/dist/deep-learning/core/causal-mask.mjs +35 -0
- package/dist/deep-learning/core/context-window.d.mts +15 -0
- package/dist/deep-learning/core/context-window.mjs +31 -0
- package/dist/deep-learning/core/convolution.d.mts +22 -0
- package/dist/deep-learning/core/convolution.mjs +91 -0
- package/dist/deep-learning/core/dense-layer.d.mts +49 -0
- package/dist/deep-learning/core/dense-layer.mjs +108 -0
- package/dist/deep-learning/core/embedding-neighborhood.d.mts +10 -0
- package/dist/deep-learning/core/embedding-neighborhood.mjs +92 -0
- package/dist/deep-learning/core/encoder-decoder.d.mts +17 -0
- package/dist/deep-learning/core/encoder-decoder.mjs +39 -0
- package/dist/deep-learning/core/feed-forward-network.d.mts +13 -0
- package/dist/deep-learning/core/feed-forward-network.mjs +27 -0
- package/dist/deep-learning/core/gradient-run.d.mts +12 -0
- package/dist/deep-learning/core/gradient-run.mjs +20 -0
- package/dist/deep-learning/core/gradient-step.d.mts +24 -0
- package/dist/deep-learning/core/gradient-step.mjs +34 -0
- package/dist/deep-learning/core/layer-normalization.d.mts +16 -0
- package/dist/deep-learning/core/layer-normalization.mjs +28 -0
- package/dist/deep-learning/core/learning-loop.d.mts +20 -0
- package/dist/deep-learning/core/learning-loop.mjs +36 -0
- package/dist/deep-learning/core/linear-algebra.d.mts +10 -0
- package/dist/deep-learning/core/linear-algebra.mjs +16 -0
- package/dist/deep-learning/core/linear-fit.d.mts +20 -0
- package/dist/deep-learning/core/linear-fit.mjs +31 -0
- package/dist/deep-learning/core/loss.d.mts +11 -0
- package/dist/deep-learning/core/loss.mjs +15 -0
- package/dist/deep-learning/core/memory-relay.d.mts +15 -0
- package/dist/deep-learning/core/memory-relay.mjs +31 -0
- package/dist/deep-learning/core/multi-head-attention.d.mts +17 -0
- package/dist/deep-learning/core/multi-head-attention.mjs +103 -0
- package/dist/deep-learning/core/multimodal-alignment.d.mts +18 -0
- package/dist/deep-learning/core/multimodal-alignment.mjs +70 -0
- package/dist/deep-learning/core/neural-trace.d.mts +20 -0
- package/dist/deep-learning/core/neural-trace.mjs +29 -0
- package/dist/deep-learning/core/position.d.mts +17 -0
- package/dist/deep-learning/core/position.mjs +64 -0
- package/dist/deep-learning/core/query-key-value.d.mts +31 -0
- package/dist/deep-learning/core/query-key-value.mjs +37 -0
- package/dist/deep-learning/core/residual-stream.d.mts +12 -0
- package/dist/deep-learning/core/residual-stream.mjs +16 -0
- package/dist/deep-learning/core/scaled-dot-product-attention.d.mts +24 -0
- package/dist/deep-learning/core/scaled-dot-product-attention.mjs +41 -0
- package/dist/deep-learning/core/token-generation.d.mts +14 -0
- package/dist/deep-learning/core/token-generation.mjs +23 -0
- package/dist/deep-learning/core/transformer-block.d.mts +23 -0
- package/dist/deep-learning/core/transformer-block.mjs +25 -0
- package/dist/deep-learning/core/unembedding.d.mts +25 -0
- package/dist/deep-learning/core/unembedding.mjs +23 -0
- package/dist/deep-learning/foundation/activation-gates.d.mts +12 -0
- package/dist/deep-learning/foundation/activation-gates.mjs +63 -0
- package/dist/deep-learning/foundation/affine-neuron.d.mts +14 -0
- package/dist/deep-learning/foundation/affine-neuron.mjs +75 -0
- package/dist/deep-learning/foundation/anomaly-detector.d.mts +8 -0
- package/dist/deep-learning/foundation/anomaly-detector.mjs +79 -0
- package/dist/deep-learning/foundation/attention-routing.d.mts +8 -0
- package/dist/deep-learning/foundation/attention-routing.mjs +41 -0
- package/dist/deep-learning/foundation/autoencoder.d.mts +8 -0
- package/dist/deep-learning/foundation/autoencoder.mjs +74 -0
- package/dist/deep-learning/foundation/causal-mask.d.mts +8 -0
- package/dist/deep-learning/foundation/causal-mask.mjs +44 -0
- package/dist/deep-learning/foundation/context-window.d.mts +8 -0
- package/dist/deep-learning/foundation/context-window.mjs +39 -0
- package/dist/deep-learning/foundation/denoising.d.mts +8 -0
- package/dist/deep-learning/foundation/denoising.mjs +78 -0
- package/dist/deep-learning/foundation/embedding-neighborhood.d.mts +8 -0
- package/dist/deep-learning/foundation/embedding-neighborhood.mjs +41 -0
- package/dist/deep-learning/foundation/encoder-decoder.d.mts +8 -0
- package/dist/deep-learning/foundation/encoder-decoder.mjs +48 -0
- package/dist/deep-learning/foundation/feature-map.d.mts +10 -0
- package/dist/deep-learning/foundation/feature-map.mjs +105 -0
- package/dist/deep-learning/foundation/feed-forward-network.d.mts +12 -0
- package/dist/deep-learning/foundation/feed-forward-network.mjs +70 -0
- package/dist/deep-learning/foundation/fit-evidence.d.mts +14 -0
- package/dist/deep-learning/foundation/fit-evidence.mjs +96 -0
- package/dist/deep-learning/foundation/gradient-step.d.mts +14 -0
- package/dist/deep-learning/foundation/gradient-step.mjs +78 -0
- package/dist/deep-learning/foundation/latent-space.d.mts +8 -0
- package/dist/deep-learning/foundation/latent-space.mjs +41 -0
- package/dist/deep-learning/foundation/layer-normalization.d.mts +14 -0
- package/dist/deep-learning/foundation/layer-normalization.mjs +65 -0
- package/dist/deep-learning/foundation/learning-loop.d.mts +14 -0
- package/dist/deep-learning/foundation/learning-loop.mjs +55 -0
- package/dist/deep-learning/foundation/loss-error.d.mts +11 -0
- package/dist/deep-learning/foundation/loss-error.mjs +50 -0
- package/dist/deep-learning/foundation/matrix-vector.d.mts +11 -0
- package/dist/deep-learning/foundation/matrix-vector.mjs +61 -0
- package/dist/deep-learning/foundation/memory-relay.d.mts +8 -0
- package/dist/deep-learning/foundation/memory-relay.mjs +48 -0
- package/dist/deep-learning/foundation/multi-head-attention.d.mts +8 -0
- package/dist/deep-learning/foundation/multi-head-attention.mjs +59 -0
- package/dist/deep-learning/foundation/multimodal-alignment.d.mts +8 -0
- package/dist/deep-learning/foundation/multimodal-alignment.mjs +63 -0
- package/dist/deep-learning/foundation/pixel-filter.d.mts +8 -0
- package/dist/deep-learning/foundation/pixel-filter.mjs +52 -0
- package/dist/deep-learning/foundation/position.d.mts +8 -0
- package/dist/deep-learning/foundation/position.mjs +40 -0
- package/dist/deep-learning/foundation/query-key-value.d.mts +8 -0
- package/dist/deep-learning/foundation/query-key-value.mjs +51 -0
- package/dist/deep-learning/foundation/residual-stream.d.mts +13 -0
- package/dist/deep-learning/foundation/residual-stream.mjs +44 -0
- package/dist/deep-learning/foundation/scaled-dot-product-attention.d.mts +10 -0
- package/dist/deep-learning/foundation/scaled-dot-product-attention.mjs +122 -0
- package/dist/deep-learning/foundation/tiny-network.d.mts +9 -0
- package/dist/deep-learning/foundation/tiny-network.mjs +48 -0
- package/dist/deep-learning/foundation/token-generation.d.mts +8 -0
- package/dist/deep-learning/foundation/token-generation.mjs +45 -0
- package/dist/deep-learning/foundation/training-loop.d.mts +14 -0
- package/dist/deep-learning/foundation/training-loop.mjs +83 -0
- package/dist/deep-learning/foundation/transformer-block.d.mts +13 -0
- package/dist/deep-learning/foundation/transformer-block.mjs +74 -0
- package/dist/deep-learning/foundation/unembedding.d.mts +14 -0
- package/dist/deep-learning/foundation/unembedding.mjs +113 -0
- package/dist/deep-learning/index.d.mts +91 -0
- package/dist/deep-learning/index.mjs +92 -0
- package/dist/deep-learning/visuals/activation-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/activation-diagram.mjs +153 -0
- package/dist/deep-learning/visuals/anomaly-diagram.d.mts +11 -0
- package/dist/deep-learning/visuals/anomaly-diagram.mjs +175 -0
- package/dist/deep-learning/visuals/attention-routing-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/attention-routing-diagram.mjs +160 -0
- package/dist/deep-learning/visuals/autoencoder-diagram.d.mts +12 -0
- package/dist/deep-learning/visuals/autoencoder-diagram.mjs +161 -0
- package/dist/deep-learning/visuals/causal-mask-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/causal-mask-diagram.mjs +183 -0
- package/dist/deep-learning/visuals/context-window-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/context-window-diagram.mjs +200 -0
- package/dist/deep-learning/visuals/convolution-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/convolution-diagram.mjs +139 -0
- package/dist/deep-learning/visuals/denoising-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/denoising-diagram.mjs +103 -0
- package/dist/deep-learning/visuals/embedding-neighborhood-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/embedding-neighborhood-diagram.mjs +162 -0
- package/dist/deep-learning/visuals/encoder-decoder-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/encoder-decoder-diagram.mjs +229 -0
- package/dist/deep-learning/visuals/feature-map-diagram.d.mts +13 -0
- package/dist/deep-learning/visuals/feature-map-diagram.mjs +168 -0
- package/dist/deep-learning/visuals/feed-forward-workshop-diagram.d.mts +11 -0
- package/dist/deep-learning/visuals/feed-forward-workshop-diagram.mjs +131 -0
- package/dist/deep-learning/visuals/gradient-step-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/gradient-step-diagram.mjs +126 -0
- package/dist/deep-learning/visuals/latent-space-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/latent-space-diagram.mjs +140 -0
- package/dist/deep-learning/visuals/layer-normalization-diagram.d.mts +11 -0
- package/dist/deep-learning/visuals/layer-normalization-diagram.mjs +191 -0
- package/dist/deep-learning/visuals/learning-loop-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/learning-loop-diagram.mjs +148 -0
- package/dist/deep-learning/visuals/linear-fit-diagram.d.mts +11 -0
- package/dist/deep-learning/visuals/linear-fit-diagram.mjs +113 -0
- package/dist/deep-learning/visuals/loss-diagram.d.mts +8 -0
- package/dist/deep-learning/visuals/loss-diagram.mjs +173 -0
- package/dist/deep-learning/visuals/matrix-vector-diagram.d.mts +12 -0
- package/dist/deep-learning/visuals/matrix-vector-diagram.mjs +165 -0
- package/dist/deep-learning/visuals/memory-relay-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/memory-relay-diagram.mjs +242 -0
- package/dist/deep-learning/visuals/multi-head-attention-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/multi-head-attention-diagram.mjs +170 -0
- package/dist/deep-learning/visuals/multimodal-alignment-diagram.d.mts +13 -0
- package/dist/deep-learning/visuals/multimodal-alignment-diagram.mjs +138 -0
- package/dist/deep-learning/visuals/neuron-diagram.d.mts +12 -0
- package/dist/deep-learning/visuals/neuron-diagram.mjs +231 -0
- package/dist/deep-learning/visuals/position-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/position-diagram.mjs +157 -0
- package/dist/deep-learning/visuals/query-key-value-diagram.d.mts +12 -0
- package/dist/deep-learning/visuals/query-key-value-diagram.mjs +247 -0
- package/dist/deep-learning/visuals/residual-stream-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/residual-stream-diagram.mjs +221 -0
- package/dist/deep-learning/visuals/scaled-attention-mixer.d.mts +15 -0
- package/dist/deep-learning/visuals/scaled-attention-mixer.mjs +244 -0
- package/dist/deep-learning/visuals/tiny-network-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/tiny-network-diagram.mjs +136 -0
- package/dist/deep-learning/visuals/token-generation-diagram.d.mts +10 -0
- package/dist/deep-learning/visuals/token-generation-diagram.mjs +199 -0
- package/dist/deep-learning/visuals/training-trail-diagram.d.mts +9 -0
- package/dist/deep-learning/visuals/training-trail-diagram.mjs +109 -0
- package/dist/deep-learning/visuals/transformer-block-diagram.d.mts +11 -0
- package/dist/deep-learning/visuals/transformer-block-diagram.mjs +273 -0
- package/dist/deep-learning/visuals/unembedding-diagram.d.mts +12 -0
- package/dist/deep-learning/visuals/unembedding-diagram.mjs +195 -0
- package/dist/discrete/arrangements/preset.d.mts +1 -10
- package/dist/discrete/bayes/preset.d.mts +1 -15
- package/dist/discrete/binomial/preset.d.mts +1 -11
- package/dist/discrete/binomial/preset.mjs +9 -4
- package/dist/discrete/combination-studio/figure.d.mts +0 -1
- package/dist/discrete/combination-studio/index.d.mts +2 -1
- package/dist/discrete/combination-studio/preset.d.mts +1 -12
- package/dist/discrete/combination-studio/preset.mjs +4 -2
- package/dist/discrete/core/inclusionExclusion.d.mts +0 -1
- package/dist/discrete/counting-slots/preset.d.mts +1 -13
- package/dist/discrete/counting-tree/index.d.mts +2 -1
- package/dist/discrete/counting-tree/preset.d.mts +1 -15
- package/dist/discrete/counting-tree/preset.mjs +10 -8
- package/dist/discrete/expected-value/preset.d.mts +1 -10
- package/dist/discrete/hypergeometric/preset.d.mts +1 -11
- package/dist/discrete/hypergeometric/preset.mjs +13 -8
- package/dist/discrete/index.d.mts +16 -0
- package/dist/discrete/induction/index.d.mts +2 -1
- package/dist/discrete/induction/preset.d.mts +1 -7
- package/dist/discrete/invariant/index.d.mts +2 -1
- package/dist/discrete/invariant/preset.d.mts +1 -9
- package/dist/discrete/karnaugh/index.d.mts +2 -1
- package/dist/discrete/karnaugh/preset.d.mts +1 -13
- package/dist/discrete/karnaugh/preset.mjs +6 -4
- package/dist/discrete/lln/index.d.mts +2 -1
- package/dist/discrete/lln/preset.d.mts +1 -7
- package/dist/discrete/modular-clock/index.d.mts +2 -1
- package/dist/discrete/modular-clock/preset.d.mts +1 -9
- package/dist/discrete/monte-carlo/index.d.mts +2 -1
- package/dist/discrete/monte-carlo/preset.d.mts +1 -15
- package/dist/discrete/monte-carlo/preset.mjs +1 -1
- package/dist/discrete/monty-hall/index.d.mts +2 -1
- package/dist/discrete/monty-hall/preset.d.mts +1 -10
- package/dist/discrete/monty-hall/preset.mjs +5 -2
- package/dist/discrete/outcome-builder/preset.d.mts +1 -10
- package/dist/discrete/outcome-builder/preset.mjs +2 -1
- package/dist/discrete/pascal/preset.d.mts +1 -10
- package/dist/discrete/pascal/preset.mjs +12 -6
- package/dist/discrete/pigeonhole/index.d.mts +2 -1
- package/dist/discrete/pigeonhole/preset.d.mts +1 -8
- package/dist/discrete/proof/core.d.mts +1 -1
- package/dist/discrete/proof-builder/index.d.mts +2 -1
- package/dist/discrete/proof-builder/preset.d.mts +1 -7
- package/dist/discrete/proof-builder/preset.mjs +2 -1
- package/dist/discrete/recurrence/index.d.mts +2 -1
- package/dist/discrete/recurrence/preset.d.mts +1 -8
- package/dist/discrete/rules.d.mts +1 -2
- package/dist/discrete/rules.mjs +1 -1
- package/dist/discrete/sample-space/index.d.mts +2 -1
- package/dist/discrete/sample-space/preset.d.mts +1 -15
- package/dist/discrete/sample-space/preset.mjs +2 -1
- package/dist/discrete/selection/preset.d.mts +1 -12
- package/dist/discrete/statement-logic/index.d.mts +2 -1
- package/dist/discrete/statement-logic/preset.d.mts +1 -8
- package/dist/discrete/truth-table/index.d.mts +2 -1
- package/dist/discrete/truth-table/preset.d.mts +1 -12
- package/dist/discrete/truth-table/preset.mjs +4 -2
- package/dist/discrete/venn/index.d.mts +2 -1
- package/dist/discrete/venn/preset.d.mts +1 -11
- package/dist/discrete/venn/preset.mjs +2 -1
- package/dist/discrete/visuals/reasoning-scenes.mjs +1 -1
- package/dist/distributed-systems/core/sharding.d.mts +19 -0
- package/dist/distributed-systems/core/sharding.mjs +24 -0
- package/dist/distributed-systems/foundation/shard-key.d.mts +8 -0
- package/dist/distributed-systems/foundation/shard-key.mjs +103 -0
- package/dist/distributed-systems/index.d.mts +4 -0
- package/dist/distributed-systems/index.mjs +5 -0
- package/dist/distributed-systems/visuals/shard-key-board.d.mts +20 -0
- package/dist/distributed-systems/visuals/shard-key-board.mjs +126 -0
- package/dist/domains/accounting/bank-reconciliation/activity.mjs +96 -0
- package/dist/domains/accounting/bank-reconciliation/manifest.mjs +75 -0
- package/dist/domains/accounting/bank-reconciliation/runtime.mjs +171 -0
- package/dist/domains/accounting/bank-reconciliation/scene.mjs +251 -0
- package/dist/domains/accounting/business-day-mission/activity.mjs +114 -0
- package/dist/domains/accounting/business-day-mission/manifest.mjs +58 -0
- package/dist/domains/accounting/business-day-mission/runtime.mjs +191 -0
- package/dist/domains/accounting/business-day-mission/scene.mjs +184 -0
- package/dist/domains/accounting/business-lesson/schema.mjs +3 -6
- package/dist/domains/accounting/cash-budget-runway/activity.mjs +119 -0
- package/dist/domains/accounting/cash-budget-runway/manifest.mjs +74 -0
- package/dist/domains/accounting/cash-budget-runway/runtime.mjs +142 -0
- package/dist/domains/accounting/club-subscriptions/manifest.mjs +67 -0
- package/dist/domains/accounting/club-subscriptions/runtime.mjs +5 -0
- package/dist/domains/accounting/company-statement-builder/activity.mjs +114 -0
- package/dist/domains/accounting/company-statement-builder/manifest.mjs +68 -0
- package/dist/domains/accounting/company-statement-builder/runtime.mjs +110 -0
- package/dist/domains/accounting/control-account-builder/activity.mjs +96 -0
- package/dist/domains/accounting/control-account-builder/manifest.mjs +66 -0
- package/dist/domains/accounting/control-account-builder/runtime.mjs +151 -0
- package/dist/domains/accounting/control-account-builder/scene.mjs +119 -0
- package/dist/domains/accounting/costing-profit-bridge/activity.mjs +119 -0
- package/dist/domains/accounting/costing-profit-bridge/manifest.mjs +73 -0
- package/dist/domains/accounting/costing-profit-bridge/runtime.mjs +203 -0
- package/dist/domains/accounting/factory-expansion-case/activity.mjs +118 -0
- package/dist/domains/accounting/factory-expansion-case/manifest.mjs +59 -0
- package/dist/domains/accounting/factory-expansion-case/runtime.mjs +245 -0
- package/dist/domains/accounting/incomplete-records/manifest.mjs +71 -0
- package/dist/domains/accounting/incomplete-records/runtime.mjs +5 -0
- package/dist/domains/accounting/integrated-budget-mission/activity.mjs +115 -0
- package/dist/domains/accounting/integrated-budget-mission/manifest.mjs +76 -0
- package/dist/domains/accounting/integrated-budget-mission/runtime.mjs +169 -0
- package/dist/domains/accounting/integrated-budget-mission/scene.mjs +229 -0
- package/dist/domains/accounting/inventory-costing/activity.mjs +119 -0
- package/dist/domains/accounting/inventory-costing/manifest.mjs +73 -0
- package/dist/domains/accounting/inventory-costing/runtime.mjs +166 -0
- package/dist/domains/accounting/inventory-costing/scene.mjs +257 -0
- package/dist/domains/accounting/investment-appraisal/activity.mjs +119 -0
- package/dist/domains/accounting/investment-appraisal/manifest.mjs +72 -0
- package/dist/domains/accounting/investment-appraisal/runtime.mjs +177 -0
- package/dist/domains/accounting/limiting-factor-mix/activity.mjs +119 -0
- package/dist/domains/accounting/limiting-factor-mix/manifest.mjs +65 -0
- package/dist/domains/accounting/limiting-factor-mix/runtime.mjs +140 -0
- package/dist/domains/accounting/management-scenes.mjs +582 -0
- package/dist/domains/accounting/manufacturing-flow/manifest.mjs +75 -0
- package/dist/domains/accounting/manufacturing-flow/runtime.mjs +5 -0
- package/dist/domains/accounting/operating-budget-chain/activity.mjs +119 -0
- package/dist/domains/accounting/operating-budget-chain/manifest.mjs +75 -0
- package/dist/domains/accounting/operating-budget-chain/runtime.mjs +167 -0
- package/dist/domains/accounting/partnership-split/manifest.mjs +69 -0
- package/dist/domains/accounting/partnership-split/runtime.mjs +5 -0
- package/dist/domains/accounting/period-adjustment-workbench/activity.mjs +77 -0
- package/dist/domains/accounting/period-adjustment-workbench/manifest.mjs +120 -0
- package/dist/domains/accounting/period-adjustment-workbench/runtime.mjs +142 -0
- package/dist/domains/accounting/period-close-mission/activity.mjs +118 -0
- package/dist/domains/accounting/period-close-mission/manifest.mjs +63 -0
- package/dist/domains/accounting/period-close-mission/runtime.mjs +327 -0
- package/dist/domains/accounting/period-close-mission/scene.mjs +265 -0
- package/dist/domains/accounting/process-loss/activity.mjs +119 -0
- package/dist/domains/accounting/process-loss/manifest.mjs +60 -0
- package/dist/domains/accounting/process-loss/runtime.mjs +136 -0
- package/dist/domains/accounting/statement-builder/manifest.mjs +2 -1
- package/dist/domains/accounting/suspense-reconstruction/activity.mjs +84 -0
- package/dist/domains/accounting/suspense-reconstruction/manifest.mjs +75 -0
- package/dist/domains/accounting/suspense-reconstruction/runtime.mjs +138 -0
- package/dist/domains/accounting/suspense-reconstruction/scene.mjs +176 -0
- package/dist/domains/accounting/variance-detective/activity.mjs +119 -0
- package/dist/domains/accounting/variance-detective/manifest.mjs +57 -0
- package/dist/domains/accounting/variance-detective/runtime.mjs +144 -0
- package/dist/domains/activity-map.d.mts +0 -1
- package/dist/domains/activity-map.mjs +129 -0
- package/dist/domains/biology/cell-sample-investigator/activity.mjs +53 -0
- package/dist/domains/biology/cell-sample-investigator/manifest.mjs +72 -0
- package/dist/domains/biology/cell-sample-investigator/runtime.mjs +6 -0
- package/dist/domains/biology/genetic-cross/runtime.mjs +2 -1
- package/dist/domains/biology/punnett-cross/manifest.mjs +1 -1
- package/dist/domains/biology/sequence/runtime.mjs +2 -1
- package/dist/domains/biology/sex-linked-cross/manifest.mjs +1 -1
- package/dist/domains/block-loaders.mjs +3 -0
- package/dist/domains/block-sets/accounting.mjs +56 -14
- package/dist/domains/block-sets/biology.mjs +15 -13
- package/dist/domains/block-sets/chem.mjs +131 -19
- package/dist/domains/block-sets/circuits.mjs +38 -20
- package/dist/domains/block-sets/data.mjs +10 -0
- package/dist/domains/block-sets/databases.mjs +17 -0
- package/dist/domains/block-sets/distributed-systems.mjs +9 -0
- package/dist/domains/block-sets/math.mjs +71 -53
- package/dist/domains/block-sets/ml.mjs +72 -8
- package/dist/domains/block-sets/networking.mjs +109 -9
- package/dist/domains/block-sets/physics.mjs +137 -71
- package/dist/domains/blocks.mjs +1 -1
- package/dist/domains/catalog-map.mjs +9411 -2599
- package/dist/domains/chem/air-composition/manifest.mjs +45 -0
- package/dist/domains/chem/air-composition/runtime.mjs +5 -0
- package/dist/domains/chem/alkene-geometry/activity.mjs +73 -0
- package/dist/domains/chem/alkene-geometry/manifest.mjs +58 -0
- package/dist/domains/chem/alkene-geometry/model.mjs +204 -0
- package/dist/domains/chem/alkene-geometry/runtime.mjs +122 -0
- package/dist/domains/chem/alkene-geometry/scene.mjs +170 -0
- package/dist/domains/chem/apparatus-choice/manifest.mjs +51 -0
- package/dist/domains/chem/apparatus-choice/runtime.mjs +5 -0
- package/dist/domains/chem/applied-chemistry/manifest.mjs +62 -0
- package/dist/domains/chem/applied-chemistry/runtime.mjs +5 -0
- package/dist/domains/chem/arene-evidence/activity.mjs +86 -0
- package/dist/domains/chem/arene-evidence/manifest.mjs +51 -0
- package/dist/domains/chem/arene-evidence/model.d.mts +71 -0
- package/dist/domains/chem/arene-evidence/model.mjs +116 -0
- package/dist/domains/chem/arene-evidence/runtime.mjs +138 -0
- package/dist/domains/chem/arene-evidence/scene.d.mts +8 -0
- package/dist/domains/chem/arene-evidence/scene.mjs +208 -0
- package/dist/domains/chem/battery/manifest.mjs +1 -0
- package/dist/domains/chem/bohr-atom/manifest.mjs +1 -0
- package/dist/domains/chem/catalytic-cycle/activity.mjs +36 -0
- package/dist/domains/chem/catalytic-cycle/manifest.mjs +44 -0
- package/dist/domains/chem/catalytic-cycle/model.mjs +61 -0
- package/dist/domains/chem/catalytic-cycle/runtime.mjs +61 -0
- package/dist/domains/chem/catalytic-cycle/scene.mjs +27 -0
- package/dist/domains/chem/change-detective/activity.mjs +81 -0
- package/dist/domains/chem/change-detective/manifest.mjs +46 -0
- package/dist/domains/chem/change-detective/model.mjs +65 -0
- package/dist/domains/chem/change-detective/runtime.mjs +73 -0
- package/dist/domains/chem/change-detective/scene.mjs +415 -0
- package/dist/domains/chem/chem-qualitative-analysis/activity.mjs +95 -0
- package/dist/domains/chem/chem-qualitative-analysis/manifest.mjs +68 -0
- package/dist/domains/chem/chem-qualitative-analysis/runtime.mjs +303 -0
- package/dist/domains/chem/chromatography-plate/activity.mjs +87 -0
- package/dist/domains/chem/chromatography-plate/manifest.mjs +59 -0
- package/dist/domains/chem/chromatography-plate/model.mjs +180 -0
- package/dist/domains/chem/chromatography-plate/runtime.mjs +200 -0
- package/dist/domains/chem/chromatography-plate/scene.mjs +292 -0
- package/dist/domains/chem/complex-colour/activity.mjs +94 -0
- package/dist/domains/chem/complex-colour/manifest.mjs +53 -0
- package/dist/domains/chem/complex-colour/model.mjs +243 -0
- package/dist/domains/chem/complex-colour/runtime.mjs +168 -0
- package/dist/domains/chem/complex-colour/scene.mjs +283 -0
- package/dist/domains/chem/complex-shape/activity.mjs +86 -0
- package/dist/domains/chem/complex-shape/manifest.mjs +52 -0
- package/dist/domains/chem/complex-shape/model.mjs +182 -0
- package/dist/domains/chem/complex-shape/runtime.mjs +162 -0
- package/dist/domains/chem/complex-shape/scene.mjs +270 -0
- package/dist/domains/chem/composition-evidence/activity.mjs +94 -0
- package/dist/domains/chem/composition-evidence/manifest.mjs +71 -0
- package/dist/domains/chem/composition-evidence/model.mjs +60 -0
- package/dist/domains/chem/composition-evidence/runtime.mjs +127 -0
- package/dist/domains/chem/composition-evidence/scene.mjs +308 -0
- package/dist/domains/chem/conductivity-bench/activity.mjs +71 -0
- package/dist/domains/chem/conductivity-bench/manifest.mjs +58 -0
- package/dist/domains/chem/conductivity-bench/model.mjs +257 -0
- package/dist/domains/chem/conductivity-bench/runtime.mjs +136 -0
- package/dist/domains/chem/conductivity-bench/scene.mjs +305 -0
- package/dist/domains/chem/contact-process-control/activity.mjs +75 -0
- package/dist/domains/chem/contact-process-control/manifest.mjs +48 -0
- package/dist/domains/chem/contact-process-control/model.mjs +106 -0
- package/dist/domains/chem/contact-process-control/runtime.mjs +65 -0
- package/dist/domains/chem/contact-process-control/scene.mjs +694 -0
- package/dist/domains/chem/electrolysis-bench/activity.mjs +72 -0
- package/dist/domains/chem/electrolysis-bench/manifest.mjs +71 -0
- package/dist/domains/chem/electrolysis-bench/model.mjs +174 -0
- package/dist/domains/chem/electrolysis-bench/runtime.mjs +169 -0
- package/dist/domains/chem/electrolysis-bench/scene.mjs +291 -0
- package/dist/domains/chem/energy-cycle/activity.mjs +86 -0
- package/dist/domains/chem/energy-cycle/manifest.mjs +52 -0
- package/dist/domains/chem/energy-cycle/model.mjs +249 -0
- package/dist/domains/chem/energy-cycle/runtime.mjs +181 -0
- package/dist/domains/chem/energy-cycle/scene.mjs +277 -0
- package/dist/domains/chem/equation-conservation-desk/activity.mjs +55 -0
- package/dist/domains/chem/equation-conservation-desk/manifest.mjs +61 -0
- package/dist/domains/chem/equation-conservation-desk/runtime.mjs +6 -0
- package/dist/domains/chem/faraday-bench/activity.mjs +51 -0
- package/dist/domains/chem/faraday-bench/manifest.mjs +65 -0
- package/dist/domains/chem/faraday-bench/model.mjs +193 -0
- package/dist/domains/chem/faraday-bench/runtime.mjs +99 -0
- package/dist/domains/chem/faraday-bench/scene.mjs +254 -0
- package/dist/domains/chem/flame-test/activity.mjs +66 -0
- package/dist/domains/chem/flame-test/manifest.mjs +66 -0
- package/dist/domains/chem/flame-test/model.mjs +149 -0
- package/dist/domains/chem/flame-test/runtime.mjs +120 -0
- package/dist/domains/chem/flame-test/scene.mjs +172 -0
- package/dist/domains/chem/formula-forge/activity.mjs +55 -0
- package/dist/domains/chem/formula-forge/manifest.mjs +66 -0
- package/dist/domains/chem/formula-forge/runtime.mjs +6 -0
- package/dist/domains/chem/formula-workbench/activity.mjs +92 -0
- package/dist/domains/chem/formula-workbench/manifest.mjs +73 -0
- package/dist/domains/chem/formula-workbench/model.mjs +89 -0
- package/dist/domains/chem/formula-workbench/runtime.mjs +135 -0
- package/dist/domains/chem/formula-workbench/scene.mjs +275 -0
- package/dist/domains/chem/fuel-cell-flow/activity.mjs +81 -0
- package/dist/domains/chem/fuel-cell-flow/manifest.mjs +49 -0
- package/dist/domains/chem/fuel-cell-flow/model.mjs +63 -0
- package/dist/domains/chem/fuel-cell-flow/runtime.mjs +134 -0
- package/dist/domains/chem/fuel-cell-flow/scene.mjs +245 -0
- package/dist/domains/chem/functional-group-lens/activity.mjs +86 -0
- package/dist/domains/chem/functional-group-lens/manifest.mjs +54 -0
- package/dist/domains/chem/functional-group-lens/model.d.mts +128 -0
- package/dist/domains/chem/functional-group-lens/model.mjs +250 -0
- package/dist/domains/chem/functional-group-lens/runtime.d.mts +16 -0
- package/dist/domains/chem/functional-group-lens/runtime.mjs +135 -0
- package/dist/domains/chem/functional-group-lens/scene.d.mts +8 -0
- package/dist/domains/chem/functional-group-lens/scene.mjs +389 -0
- package/dist/domains/chem/gas-box/manifest.mjs +18 -3
- package/dist/domains/chem/hydrate-cycle/activity.mjs +78 -0
- package/dist/domains/chem/hydrate-cycle/manifest.mjs +47 -0
- package/dist/domains/chem/hydrate-cycle/model.mjs +66 -0
- package/dist/domains/chem/hydrate-cycle/runtime.mjs +72 -0
- package/dist/domains/chem/hydrate-cycle/scene.mjs +187 -0
- package/dist/domains/chem/industrial-process/manifest.mjs +51 -0
- package/dist/domains/chem/industrial-process/runtime.mjs +5 -0
- package/dist/domains/chem/ionic-bond-builder/manifest.mjs +47 -0
- package/dist/domains/chem/ionic-bond-builder/runtime.mjs +5 -0
- package/dist/domains/chem/isomer-builder/activity.mjs +86 -0
- package/dist/domains/chem/isomer-builder/manifest.mjs +52 -0
- package/dist/domains/chem/isomer-builder/model.mjs +345 -0
- package/dist/domains/chem/isomer-builder/runtime.mjs +174 -0
- package/dist/domains/chem/isomer-builder/scene.mjs +216 -0
- package/dist/domains/chem/mechanism-walk/activity.mjs +53 -0
- package/dist/domains/chem/mechanism-walk/manifest.mjs +53 -0
- package/dist/domains/chem/mechanism-walk/model.mjs +429 -0
- package/dist/domains/chem/mechanism-walk/runtime.mjs +76 -0
- package/dist/domains/chem/mechanism-walk/scene.mjs +36 -0
- package/dist/domains/chem/mole-factory/activity.mjs +55 -0
- package/dist/domains/chem/mole-factory/manifest.mjs +62 -0
- package/dist/domains/chem/mole-factory/runtime.mjs +6 -0
- package/dist/domains/chem/nmr-reader/activity.mjs +88 -0
- package/dist/domains/chem/nmr-reader/manifest.mjs +59 -0
- package/dist/domains/chem/nmr-reader/model.mjs +200 -0
- package/dist/domains/chem/nmr-reader/runtime.mjs +167 -0
- package/dist/domains/chem/nmr-reader/scene.mjs +30 -0
- package/dist/domains/chem/orbital-diagram/activity.mjs +74 -0
- package/dist/domains/chem/orbital-diagram/manifest.mjs +58 -0
- package/dist/domains/chem/orbital-diagram/model.mjs +182 -0
- package/dist/domains/chem/orbital-diagram/runtime.mjs +98 -0
- package/dist/domains/chem/orbital-diagram/scene.mjs +289 -0
- package/dist/domains/chem/organic-formula-studio/activity.mjs +128 -0
- package/dist/domains/chem/organic-formula-studio/manifest.mjs +67 -0
- package/dist/domains/chem/organic-formula-studio/model.mjs +47 -0
- package/dist/domains/chem/organic-formula-studio/pattern-scene.mjs +344 -0
- package/dist/domains/chem/organic-formula-studio/runtime.mjs +221 -0
- package/dist/domains/chem/organic-formula-studio/scene.mjs +354 -0
- package/dist/domains/chem/organic-formula-studio/topics.mjs +186 -0
- package/dist/domains/chem/organic-reaction-map/manifest.mjs +67 -0
- package/dist/domains/chem/organic-reaction-map/runtime.mjs +5 -0
- package/dist/domains/chem/particle-theatre/manifest.mjs +66 -0
- package/dist/domains/chem/particle-theatre/runtime.mjs +5 -0
- package/dist/domains/chem/percent-lens/activity.mjs +119 -0
- package/dist/domains/chem/percent-lens/manifest.mjs +65 -0
- package/dist/domains/chem/percent-lens/model.mjs +84 -0
- package/dist/domains/chem/percent-lens/runtime.mjs +114 -0
- package/dist/domains/chem/percent-lens/scene.mjs +278 -0
- package/dist/domains/chem/percentage-purity-lab/activity.mjs +85 -0
- package/dist/domains/chem/percentage-purity-lab/manifest.mjs +51 -0
- package/dist/domains/chem/percentage-purity-lab/model.mjs +101 -0
- package/dist/domains/chem/percentage-purity-lab/runtime.mjs +146 -0
- package/dist/domains/chem/percentage-purity-lab/scene.mjs +309 -0
- package/dist/domains/chem/percentage-yield-lab/activity.mjs +54 -0
- package/dist/domains/chem/percentage-yield-lab/manifest.mjs +60 -0
- package/dist/domains/chem/percentage-yield-lab/model.mjs +96 -0
- package/dist/domains/chem/percentage-yield-lab/runtime.mjs +124 -0
- package/dist/domains/chem/percentage-yield-lab/scene.mjs +152 -0
- package/dist/domains/chem/polymer-builder/activity.mjs +88 -0
- package/dist/domains/chem/polymer-builder/manifest.mjs +63 -0
- package/dist/domains/chem/polymer-builder/model.mjs +200 -0
- package/dist/domains/chem/polymer-builder/runtime.mjs +175 -0
- package/dist/domains/chem/polymer-builder/scene.mjs +170 -0
- package/dist/domains/chem/practical-observation/activity.mjs +66 -0
- package/dist/domains/chem/practical-observation/manifest.mjs +50 -0
- package/dist/domains/chem/practical-observation/model.mjs +487 -0
- package/dist/domains/chem/practical-observation/runtime.mjs +113 -0
- package/dist/domains/chem/practical-observation/scene.mjs +662 -0
- package/dist/domains/chem/precipitation-bench/activity.mjs +65 -0
- package/dist/domains/chem/precipitation-bench/manifest.mjs +61 -0
- package/dist/domains/chem/precipitation-bench/model.mjs +119 -0
- package/dist/domains/chem/precipitation-bench/runtime.mjs +90 -0
- package/dist/domains/chem/precipitation-bench/scene.mjs +215 -0
- package/dist/domains/chem/quantity-route/manifest.mjs +133 -0
- package/dist/domains/chem/quantity-route/runtime.mjs +5 -0
- package/dist/domains/chem/ratio-normalizer/manifest.mjs +61 -0
- package/dist/domains/chem/ratio-normalizer/runtime.mjs +5 -0
- package/dist/domains/chem/reaction-evidence/manifest.mjs +51 -0
- package/dist/domains/chem/reaction-evidence/runtime.mjs +5 -0
- package/dist/domains/chem/reaction-lab/manifest.mjs +2 -1
- package/dist/domains/chem/reaction-profile/manifest.mjs +1 -0
- package/dist/domains/chem/reagent-ladder/activity.mjs +85 -0
- package/dist/domains/chem/reagent-ladder/manifest.mjs +58 -0
- package/dist/domains/chem/reagent-ladder/model.mjs +120 -0
- package/dist/domains/chem/reagent-ladder/runtime.mjs +107 -0
- package/dist/domains/chem/reagent-ladder/scene.mjs +174 -0
- package/dist/domains/chem/redox-balancer/activity.mjs +86 -0
- package/dist/domains/chem/redox-balancer/manifest.mjs +52 -0
- package/dist/domains/chem/redox-balancer/model.mjs +191 -0
- package/dist/domains/chem/redox-balancer/runtime.mjs +175 -0
- package/dist/domains/chem/redox-balancer/scene.mjs +159 -0
- package/dist/domains/chem/relation-origin/activity.mjs +42 -0
- package/dist/domains/chem/relation-origin/manifest.mjs +61 -0
- package/dist/domains/chem/relation-origin/model.mjs +172 -0
- package/dist/domains/chem/relation-origin/runtime.mjs +114 -0
- package/dist/domains/chem/relation-origin/scene.mjs +195 -0
- package/dist/domains/chem/solubility-kitchen/activity.mjs +54 -0
- package/dist/domains/chem/solubility-kitchen/manifest.mjs +66 -0
- package/dist/domains/chem/solubility-kitchen/runtime.mjs +6 -0
- package/dist/domains/chem/soluble-salt-workshop/activity.mjs +115 -0
- package/dist/domains/chem/soluble-salt-workshop/manifest.mjs +50 -0
- package/dist/domains/chem/soluble-salt-workshop/model.mjs +187 -0
- package/dist/domains/chem/soluble-salt-workshop/runtime.mjs +118 -0
- package/dist/domains/chem/soluble-salt-workshop/scene.mjs +700 -0
- package/dist/domains/chem/solution-mixer/activity.mjs +54 -0
- package/dist/domains/chem/solution-mixer/manifest.mjs +58 -0
- package/dist/domains/chem/solution-mixer/runtime.mjs +6 -0
- package/dist/domains/chem/species-workshop/activity.mjs +55 -0
- package/dist/domains/chem/species-workshop/manifest.mjs +66 -0
- package/dist/domains/chem/species-workshop/runtime.mjs +6 -0
- package/dist/domains/chem/specimen-row/activity.mjs +70 -0
- package/dist/domains/chem/specimen-row/manifest.mjs +57 -0
- package/dist/domains/chem/specimen-row/model.mjs +122 -0
- package/dist/domains/chem/specimen-row/runtime.mjs +105 -0
- package/dist/domains/chem/specimen-row/scene.mjs +230 -0
- package/dist/domains/chem/spectrum-reader/activity.mjs +36 -0
- package/dist/domains/chem/spectrum-reader/manifest.mjs +47 -0
- package/dist/domains/chem/spectrum-reader/model.mjs +244 -0
- package/dist/domains/chem/spectrum-reader/runtime.mjs +62 -0
- package/dist/domains/chem/spectrum-reader/scene.mjs +37 -0
- package/dist/domains/chem/structure-detective/activity.mjs +67 -0
- package/dist/domains/chem/structure-detective/manifest.mjs +59 -0
- package/dist/domains/chem/structure-detective/runtime.mjs +6 -0
- package/dist/domains/chem/synthesis-route/activity.mjs +36 -0
- package/dist/domains/chem/synthesis-route/manifest.mjs +45 -0
- package/dist/domains/chem/synthesis-route/model.mjs +165 -0
- package/dist/domains/chem/synthesis-route/runtime.mjs +67 -0
- package/dist/domains/chem/synthesis-route/scene.mjs +152 -0
- package/dist/domains/chem/titration/manifest.mjs +2 -0
- package/dist/domains/chem/titration-run/activity.mjs +54 -0
- package/dist/domains/chem/titration-run/manifest.mjs +61 -0
- package/dist/domains/chem/titration-run/model.mjs +174 -0
- package/dist/domains/chem/titration-run/runtime.mjs +113 -0
- package/dist/domains/chem/titration-run/scene.mjs +166 -0
- package/dist/domains/chem/trend-axis/activity.mjs +52 -0
- package/dist/domains/chem/trend-axis/manifest.mjs +57 -0
- package/dist/domains/chem/trend-axis/model.mjs +487 -0
- package/dist/domains/chem/trend-axis/runtime.mjs +87 -0
- package/dist/domains/chem/trend-axis/scene.mjs +246 -0
- package/dist/domains/circuits/ac-dc/manifest.mjs +65 -0
- package/dist/domains/circuits/ac-dc/runtime.mjs +5 -0
- package/dist/domains/circuits/ac-response/activity.mjs +3 -0
- package/dist/domains/circuits/ac-response/manifest.mjs +70 -0
- package/dist/domains/circuits/ac-response/runtime.mjs +3 -0
- package/dist/domains/circuits/cell-combination/activity.mjs +3 -0
- package/dist/domains/circuits/cell-combination/manifest.mjs +69 -0
- package/dist/domains/circuits/cell-combination/runtime.mjs +3 -0
- package/dist/domains/circuits/circuit/runtime.mjs +11 -10
- package/dist/domains/circuits/circuit-scene/manifest.mjs +1 -0
- package/dist/domains/circuits/energy-cost/activity.mjs +3 -0
- package/dist/domains/circuits/energy-cost/manifest.mjs +79 -0
- package/dist/domains/circuits/energy-cost/runtime.mjs +3 -0
- package/dist/domains/circuits/kirchhoff-laws/manifest.mjs +64 -0
- package/dist/domains/circuits/kirchhoff-laws/runtime.mjs +5 -0
- package/dist/domains/circuits/meter-conversion/activity.mjs +3 -0
- package/dist/domains/circuits/meter-conversion/manifest.mjs +69 -0
- package/dist/domains/circuits/meter-conversion/runtime.mjs +3 -0
- package/dist/domains/circuits/network-reduction/activity.mjs +3 -0
- package/dist/domains/circuits/network-reduction/manifest.mjs +85 -0
- package/dist/domains/circuits/network-reduction/runtime.mjs +3 -0
- package/dist/domains/circuits/null-balance/activity.mjs +3 -0
- package/dist/domains/circuits/null-balance/manifest.mjs +69 -0
- package/dist/domains/circuits/null-balance/runtime.mjs +3 -0
- package/dist/domains/circuits/potential-divider/manifest.mjs +69 -0
- package/dist/domains/circuits/potential-divider/runtime.mjs +5 -0
- package/dist/domains/data/design-records/manifest.mjs +54 -0
- package/dist/domains/data/design-records/runtime.mjs +3 -0
- package/dist/domains/data/dirty-data/manifest.mjs +53 -0
- package/dist/domains/data/dirty-data/runtime.mjs +3 -0
- package/dist/domains/databases/b-plus-range/manifest.mjs +48 -0
- package/dist/domains/databases/b-plus-range/runtime.mjs +3 -0
- package/dist/domains/databases/index-detective/manifest.mjs +54 -0
- package/dist/domains/databases/index-detective/runtime.mjs +3 -0
- package/dist/domains/databases/query-plan/manifest.mjs +49 -0
- package/dist/domains/databases/query-plan/runtime.mjs +3 -0
- package/dist/domains/databases/range-query/manifest.mjs +53 -0
- package/dist/domains/databases/range-query/runtime.mjs +3 -0
- package/dist/domains/discrete/arrangements/manifest.mjs +2 -0
- package/dist/domains/discrete/combination-studio/manifest.mjs +2 -0
- package/dist/domains/discrete/counting-tree/manifest.mjs +2 -0
- package/dist/domains/discrete/rule-card/builtins.mjs +1 -1
- package/dist/domains/discrete/rule-card/manifest.mjs +2 -0
- package/dist/domains/discrete/rule-card/runtime.mjs +14 -12
- package/dist/domains/discrete/selection/manifest.mjs +2 -0
- package/dist/domains/distributed-systems/shard-key/manifest.mjs +50 -0
- package/dist/domains/distributed-systems/shard-key/runtime.mjs +3 -0
- package/dist/domains/domain-map.mjs +1008 -0
- package/dist/domains/exam/exam-question/manifest.mjs +3 -12
- package/dist/domains/geometry/geometry-board/scene.mjs +1 -1
- package/dist/domains/geometry/intersecting-circles/manifest.mjs +1 -0
- package/dist/domains/ict/binary-counter/runtime.mjs +5 -5
- package/dist/domains/ict/graph-algorithm/authoring.mjs +1 -1
- package/dist/domains/ict/logic-circuit/runtime.mjs +7 -6
- package/dist/domains/ict/sequence-detector/runtime.mjs +1 -1
- package/dist/domains/ict/tree-quest/authoring.mjs +1 -1
- package/dist/domains/language/agreement/authoring.mjs +2 -1
- package/dist/domains/language/article-lens/authoring.mjs +2 -1
- package/dist/domains/language/cloze/authoring.mjs +2 -1
- package/dist/domains/language/error-correct/authoring.mjs +2 -1
- package/dist/domains/language/preposition/authoring.mjs +2 -1
- package/dist/domains/manifests.mjs +719 -283
- package/dist/domains/math/area-model/manifest.mjs +2 -0
- package/dist/domains/math/balance-algebra/manifest.mjs +2 -0
- package/dist/domains/math/balance-algebra/runtime.mjs +2 -0
- package/dist/domains/math/bounds-window/manifest.mjs +64 -0
- package/dist/domains/math/bounds-window/runtime.mjs +29 -0
- package/dist/domains/math/cone-frustum/manifest.mjs +69 -0
- package/dist/domains/math/cone-frustum/runtime.mjs +20 -0
- package/dist/domains/math/custom-scene/manifest.mjs +2 -0
- package/dist/domains/math/derivation/manifest.mjs +1 -0
- package/dist/domains/math/derivative-explorer/manifest.mjs +1 -0
- package/dist/domains/math/derivative-explorer/runtime.mjs +4 -2
- package/dist/domains/math/differential-equation/manifest.mjs +1 -0
- package/dist/domains/math/differential-equation/runtime.mjs +2 -1
- package/dist/domains/math/exact-triangle/manifest.mjs +62 -0
- package/dist/domains/math/exact-triangle/runtime.mjs +19 -0
- package/dist/domains/math/function-machine/manifest.mjs +1 -0
- package/dist/domains/math/fundamental-theorem/manifest.mjs +1 -0
- package/dist/domains/math/fundamental-theorem/runtime.mjs +4 -2
- package/dist/domains/math/geometry-transform/runtime.mjs +25 -24
- package/dist/domains/math/gradient-descent/manifest.mjs +1 -0
- package/dist/domains/math/gradient-descent/runtime.mjs +4 -2
- package/dist/domains/math/graph/manifest.mjs +1 -0
- package/dist/domains/math/growing-pattern/manifest.mjs +2 -0
- package/dist/domains/math/growing-pattern/runtime.mjs +2 -0
- package/dist/domains/math/integral-explorer/manifest.mjs +1 -0
- package/dist/domains/math/integral-explorer/runtime.mjs +4 -2
- package/dist/domains/math/limit-explorer/manifest.mjs +1 -0
- package/dist/domains/math/limit-explorer/runtime.mjs +4 -2
- package/dist/domains/math/linear-system/manifest.mjs +2 -0
- package/dist/domains/math/linearisation/activity.mjs +94 -0
- package/dist/domains/math/linearisation/manifest.mjs +51 -0
- package/dist/domains/math/linearisation/runtime.mjs +110 -0
- package/dist/domains/math/log-law-workbench/activity.mjs +112 -0
- package/dist/domains/math/log-law-workbench/manifest.mjs +51 -0
- package/dist/domains/math/log-law-workbench/runtime.mjs +133 -0
- package/dist/domains/math/modulus-cases/activity.mjs +94 -0
- package/dist/domains/math/modulus-cases/manifest.mjs +52 -0
- package/dist/domains/math/modulus-cases/runtime.mjs +105 -0
- package/dist/domains/math/mystery-bucket/manifest.mjs +3 -1
- package/dist/domains/math/mystery-bucket/runtime.mjs +3 -1
- package/dist/domains/math/newton-method/manifest.mjs +1 -0
- package/dist/domains/math/newton-method/runtime.mjs +2 -1
- package/dist/domains/math/number-line/manifest.mjs +3 -1
- package/dist/domains/math/number-line/runtime.mjs +3 -1
- package/dist/domains/math/phase-portrait/manifest.mjs +1 -0
- package/dist/domains/math/solid-slice/manifest.mjs +67 -0
- package/dist/domains/math/solid-slice/runtime.mjs +24 -0
- package/dist/domains/math/tank-design/manifest.mjs +69 -0
- package/dist/domains/math/tank-design/runtime.mjs +20 -0
- package/dist/domains/math/taylor-series/manifest.mjs +1 -0
- package/dist/domains/math/taylor-series/runtime.mjs +2 -1
- package/dist/domains/math/trig-explorer/manifest.mjs +2 -0
- package/dist/domains/math/vector-geometry-two-d/activity.mjs +94 -0
- package/dist/domains/math/vector-geometry-two-d/manifest.mjs +52 -0
- package/dist/domains/math/vector-geometry-two-d/runtime.mjs +110 -0
- package/dist/domains/math/vertex-parabola/manifest.mjs +5 -1
- package/dist/domains/ml/activation-gates/manifest.mjs +60 -0
- package/dist/domains/ml/activation-gates/runtime.mjs +3 -0
- package/dist/domains/ml/activity.mjs +24 -20
- package/dist/domains/ml/affine-neuron/manifest.mjs +62 -0
- package/dist/domains/ml/affine-neuron/runtime.mjs +3 -0
- package/dist/domains/ml/anomaly-detector/manifest.mjs +52 -0
- package/dist/domains/ml/anomaly-detector/runtime.mjs +3 -0
- package/dist/domains/ml/attention-routing/manifest.mjs +52 -0
- package/dist/domains/ml/attention-routing/runtime.mjs +3 -0
- package/dist/domains/ml/autoencoder/manifest.mjs +52 -0
- package/dist/domains/ml/autoencoder/runtime.mjs +3 -0
- package/dist/domains/ml/causal-mask/manifest.mjs +52 -0
- package/dist/domains/ml/causal-mask/runtime.mjs +3 -0
- package/dist/domains/ml/classifier-threshold/runtime.d.mts +2 -12
- package/dist/domains/ml/context-window/manifest.mjs +53 -0
- package/dist/domains/ml/context-window/runtime.mjs +3 -0
- package/dist/domains/ml/decision-boundary/runtime.d.mts +2 -11
- package/dist/domains/ml/decision-boundary/runtime.mjs +2 -1
- package/dist/domains/ml/denoising/manifest.mjs +52 -0
- package/dist/domains/ml/denoising/runtime.mjs +3 -0
- package/dist/domains/ml/embedding-neighborhood/manifest.mjs +52 -0
- package/dist/domains/ml/embedding-neighborhood/runtime.mjs +3 -0
- package/dist/domains/ml/embedding-space/runtime.mjs +3 -4
- package/dist/domains/ml/encoder-decoder/manifest.mjs +53 -0
- package/dist/domains/ml/encoder-decoder/runtime.mjs +3 -0
- package/dist/domains/ml/feature-map/manifest.mjs +61 -0
- package/dist/domains/ml/feature-map/runtime.mjs +3 -0
- package/dist/domains/ml/feed-forward-network/manifest.mjs +61 -0
- package/dist/domains/ml/feed-forward-network/runtime.mjs +3 -0
- package/dist/domains/ml/fit-evidence/manifest.mjs +62 -0
- package/dist/domains/ml/fit-evidence/runtime.mjs +3 -0
- package/dist/domains/ml/gradient-step/manifest.mjs +58 -0
- package/dist/domains/ml/gradient-step/runtime.mjs +3 -0
- package/dist/domains/ml/kmeans/runtime.d.mts +2 -13
- package/dist/domains/ml/kmeans/runtime.mjs +2 -1
- package/dist/domains/ml/knn/runtime.d.mts +2 -13
- package/dist/domains/ml/knn/runtime.mjs +3 -1
- package/dist/domains/ml/latent-space/manifest.mjs +52 -0
- package/dist/domains/ml/latent-space/runtime.mjs +3 -0
- package/dist/domains/ml/layer-normalization/manifest.mjs +79 -0
- package/dist/domains/ml/layer-normalization/runtime.mjs +3 -0
- package/dist/domains/ml/learning-loop/manifest.mjs +55 -0
- package/dist/domains/ml/learning-loop/runtime.mjs +3 -0
- package/dist/domains/ml/loss-error/manifest.mjs +57 -0
- package/dist/domains/ml/loss-error/runtime.mjs +3 -0
- package/dist/domains/ml/matrix-vector/manifest.mjs +57 -0
- package/dist/domains/ml/matrix-vector/runtime.mjs +3 -0
- package/dist/domains/ml/memory-relay/manifest.mjs +53 -0
- package/dist/domains/ml/memory-relay/runtime.mjs +3 -0
- package/dist/domains/ml/multi-head-attention/manifest.mjs +52 -0
- package/dist/domains/ml/multi-head-attention/runtime.mjs +3 -0
- package/dist/domains/ml/multimodal-alignment/manifest.mjs +52 -0
- package/dist/domains/ml/multimodal-alignment/runtime.mjs +3 -0
- package/dist/domains/ml/next-token/runtime.mjs +1 -1
- package/dist/domains/ml/pixel-filter/manifest.mjs +48 -0
- package/dist/domains/ml/pixel-filter/runtime.mjs +3 -0
- package/dist/domains/ml/position-signals/manifest.mjs +52 -0
- package/dist/domains/ml/position-signals/runtime.mjs +3 -0
- package/dist/domains/ml/query-key-value/manifest.mjs +54 -0
- package/dist/domains/ml/query-key-value/runtime.mjs +3 -0
- package/dist/domains/ml/regression/runtime.d.mts +2 -14
- package/dist/domains/ml/residual-stream/manifest.mjs +59 -0
- package/dist/domains/ml/residual-stream/runtime.mjs +3 -0
- package/dist/domains/ml/scaled-dot-product-attention/manifest.mjs +60 -0
- package/dist/domains/ml/scaled-dot-product-attention/runtime.mjs +3 -0
- package/dist/domains/ml/tiny-network/manifest.mjs +56 -0
- package/dist/domains/ml/tiny-network/runtime.mjs +3 -0
- package/dist/domains/ml/token-generation/manifest.mjs +53 -0
- package/dist/domains/ml/token-generation/runtime.mjs +3 -0
- package/dist/domains/ml/training-loop/manifest.mjs +58 -0
- package/dist/domains/ml/training-loop/runtime.mjs +3 -0
- package/dist/domains/ml/transformer-block/manifest.mjs +67 -0
- package/dist/domains/ml/transformer-block/runtime.mjs +3 -0
- package/dist/domains/ml/unembedding/manifest.mjs +61 -0
- package/dist/domains/ml/unembedding/runtime.mjs +3 -0
- package/dist/domains/networking/_shared/decision-scene.mjs +91 -0
- package/dist/domains/networking/adaptive-video-call/activity.mjs +57 -0
- package/dist/domains/networking/adaptive-video-call/manifest.mjs +69 -0
- package/dist/domains/networking/adaptive-video-call/runtime.mjs +132 -0
- package/dist/domains/networking/adaptive-video-call/scene.mjs +194 -0
- package/dist/domains/networking/bottleneck-queue/activity.mjs +33 -0
- package/dist/domains/networking/bottleneck-queue/manifest.mjs +68 -0
- package/dist/domains/networking/bottleneck-queue/runtime.mjs +137 -0
- package/dist/domains/networking/bottleneck-queue/scene.mjs +162 -0
- package/dist/domains/networking/broadcast-delivery/activity.mjs +71 -0
- package/dist/domains/networking/broadcast-delivery/manifest.mjs +76 -0
- package/dist/domains/networking/broadcast-delivery/runtime.mjs +100 -0
- package/dist/domains/networking/broadcast-delivery/scene.mjs +99 -0
- package/dist/domains/networking/cafe-privacy/manifest.mjs +84 -0
- package/dist/domains/networking/cafe-privacy/runtime.mjs +259 -0
- package/dist/domains/networking/cell-size/manifest.mjs +78 -0
- package/dist/domains/networking/cell-size/runtime.mjs +166 -0
- package/dist/domains/networking/cloud-storage-design/activity.mjs +58 -0
- package/dist/domains/networking/cloud-storage-design/manifest.mjs +81 -0
- package/dist/domains/networking/cloud-storage-design/runtime.mjs +108 -0
- package/dist/domains/networking/cloud-storage-design/scene.mjs +134 -0
- package/dist/domains/networking/container-deployment/activity.mjs +58 -0
- package/dist/domains/networking/container-deployment/manifest.mjs +79 -0
- package/dist/domains/networking/container-deployment/runtime.mjs +124 -0
- package/dist/domains/networking/container-deployment/scene.mjs +243 -0
- package/dist/domains/networking/data-recovery-planner/activity.mjs +58 -0
- package/dist/domains/networking/data-recovery-planner/manifest.mjs +74 -0
- package/dist/domains/networking/data-recovery-planner/runtime.mjs +111 -0
- package/dist/domains/networking/data-recovery-planner/scene.mjs +139 -0
- package/dist/domains/networking/dhcp-lease/manifest.mjs +64 -0
- package/dist/domains/networking/dhcp-lease/runtime.mjs +108 -0
- package/dist/domains/networking/distributed-inference-topology/activity.mjs +58 -0
- package/dist/domains/networking/distributed-inference-topology/manifest.mjs +82 -0
- package/dist/domains/networking/distributed-inference-topology/runtime.mjs +142 -0
- package/dist/domains/networking/distributed-inference-topology/scene.mjs +179 -0
- package/dist/domains/networking/dns-resolution/activity.mjs +33 -0
- package/dist/domains/networking/dns-resolution/manifest.mjs +71 -0
- package/dist/domains/networking/dns-resolution/runtime.mjs +80 -0
- package/dist/domains/networking/dns-resolution/scene.mjs +129 -0
- package/dist/domains/networking/edge-cache-delivery/activity.mjs +58 -0
- package/dist/domains/networking/edge-cache-delivery/manifest.mjs +74 -0
- package/dist/domains/networking/edge-cache-delivery/runtime.mjs +111 -0
- package/dist/domains/networking/edge-cache-delivery/scene.mjs +130 -0
- package/dist/domains/networking/ethernet-pinout/runtime.mjs +1 -1
- package/dist/domains/networking/failure-domain-planner/activity.mjs +58 -0
- package/dist/domains/networking/failure-domain-planner/manifest.mjs +82 -0
- package/dist/domains/networking/failure-domain-planner/runtime.mjs +119 -0
- package/dist/domains/networking/failure-domain-planner/scene.mjs +120 -0
- package/dist/domains/networking/generation-capability/manifest.mjs +73 -0
- package/dist/domains/networking/generation-capability/runtime.mjs +156 -0
- package/dist/domains/networking/geo-market-routing/activity.mjs +58 -0
- package/dist/domains/networking/geo-market-routing/manifest.mjs +79 -0
- package/dist/domains/networking/geo-market-routing/runtime.mjs +122 -0
- package/dist/domains/networking/geo-market-routing/scene.mjs +129 -0
- package/dist/domains/networking/group-message-sync/activity.mjs +33 -0
- package/dist/domains/networking/group-message-sync/manifest.mjs +73 -0
- package/dist/domains/networking/group-message-sync/runtime.mjs +118 -0
- package/dist/domains/networking/group-message-sync/scene.mjs +132 -0
- package/dist/domains/networking/handover-margin/manifest.mjs +81 -0
- package/dist/domains/networking/handover-margin/runtime.mjs +224 -0
- package/dist/domains/networking/home-broadband-journey/activity.mjs +44 -0
- package/dist/domains/networking/home-broadband-journey/manifest.mjs +79 -0
- package/dist/domains/networking/home-broadband-journey/runtime.mjs +108 -0
- package/dist/domains/networking/home-broadband-journey/scene.mjs +133 -0
- package/dist/domains/networking/inference-capacity-planner/activity.mjs +58 -0
- package/dist/domains/networking/inference-capacity-planner/manifest.mjs +82 -0
- package/dist/domains/networking/inference-capacity-planner/runtime.mjs +163 -0
- package/dist/domains/networking/inference-capacity-planner/scene.mjs +138 -0
- package/dist/domains/networking/inference-degradation-planner/activity.mjs +58 -0
- package/dist/domains/networking/inference-degradation-planner/manifest.mjs +81 -0
- package/dist/domains/networking/inference-degradation-planner/runtime.mjs +143 -0
- package/dist/domains/networking/inference-degradation-planner/scene.mjs +130 -0
- package/dist/domains/networking/inference-request-pipeline/activity.mjs +58 -0
- package/dist/domains/networking/inference-request-pipeline/manifest.mjs +86 -0
- package/dist/domains/networking/inference-request-pipeline/runtime.mjs +141 -0
- package/dist/domains/networking/inference-request-pipeline/scene.mjs +137 -0
- package/dist/domains/networking/infrastructure-drift-planner/activity.mjs +58 -0
- package/dist/domains/networking/infrastructure-drift-planner/manifest.mjs +87 -0
- package/dist/domains/networking/infrastructure-drift-planner/runtime.mjs +141 -0
- package/dist/domains/networking/infrastructure-drift-planner/scene.mjs +36 -0
- package/dist/domains/networking/ipv6-neighbor/manifest.mjs +61 -0
- package/dist/domains/networking/ipv6-neighbor/runtime.mjs +124 -0
- package/dist/domains/networking/layer-encapsulation/runtime.mjs +1 -1
- package/dist/domains/networking/live-stream-pipeline/activity.mjs +72 -0
- package/dist/domains/networking/live-stream-pipeline/manifest.mjs +67 -0
- package/dist/domains/networking/live-stream-pipeline/runtime.mjs +98 -0
- package/dist/domains/networking/live-stream-pipeline/scene.mjs +122 -0
- package/dist/domains/networking/media-encoding/activity.mjs +33 -0
- package/dist/domains/networking/media-encoding/manifest.mjs +72 -0
- package/dist/domains/networking/media-encoding/runtime.mjs +111 -0
- package/dist/domains/networking/media-encoding/scene.mjs +155 -0
- package/dist/domains/networking/message-journey/activity.mjs +51 -0
- package/dist/domains/networking/message-journey/manifest.mjs +80 -0
- package/dist/domains/networking/message-journey/runtime.mjs +170 -0
- package/dist/domains/networking/message-journey/scene.mjs +388 -0
- package/dist/domains/networking/mobile-call-journey/activity.mjs +51 -0
- package/dist/domains/networking/mobile-call-journey/manifest.mjs +81 -0
- package/dist/domains/networking/mobile-call-journey/runtime.mjs +164 -0
- package/dist/domains/networking/mobile-call-journey/scene.mjs +390 -0
- package/dist/domains/networking/model-routing-economics/activity.mjs +58 -0
- package/dist/domains/networking/model-routing-economics/manifest.mjs +79 -0
- package/dist/domains/networking/model-routing-economics/runtime.mjs +124 -0
- package/dist/domains/networking/model-routing-economics/scene.mjs +165 -0
- package/dist/domains/networking/modem-modulation/activity.mjs +33 -0
- package/dist/domains/networking/modem-modulation/manifest.mjs +71 -0
- package/dist/domains/networking/modem-modulation/runtime.mjs +98 -0
- package/dist/domains/networking/modem-modulation/scene.mjs +150 -0
- package/dist/domains/networking/nat-traversal/manifest.mjs +70 -0
- package/dist/domains/networking/nat-traversal/runtime.mjs +115 -0
- package/dist/domains/networking/network-media/runtime.mjs +2 -2
- package/dist/domains/networking/orbit-latency/manifest.mjs +83 -0
- package/dist/domains/networking/orbit-latency/runtime.mjs +222 -0
- package/dist/domains/networking/orchestration-reconciler/activity.mjs +58 -0
- package/dist/domains/networking/orchestration-reconciler/manifest.mjs +76 -0
- package/dist/domains/networking/orchestration-reconciler/runtime.mjs +129 -0
- package/dist/domains/networking/orchestration-reconciler/scene.mjs +162 -0
- package/dist/domains/networking/packet-journey/runtime.d.mts +3 -12
- package/dist/domains/networking/packet-journey/runtime.mjs +1 -2
- package/dist/domains/networking/prefix-cache-planner/activity.mjs +58 -0
- package/dist/domains/networking/prefix-cache-planner/manifest.mjs +79 -0
- package/dist/domains/networking/prefix-cache-planner/runtime.mjs +145 -0
- package/dist/domains/networking/prefix-cache-planner/scene.mjs +120 -0
- package/dist/domains/networking/release-strategy-planner/activity.mjs +56 -0
- package/dist/domains/networking/release-strategy-planner/manifest.mjs +83 -0
- package/dist/domains/networking/release-strategy-planner/runtime.mjs +142 -0
- package/dist/domains/networking/release-strategy-planner/scene.mjs +68 -0
- package/dist/domains/networking/route-learning/manifest.mjs +57 -0
- package/dist/domains/networking/route-learning/runtime.mjs +130 -0
- package/dist/domains/networking/secret-rotation-planner/activity.mjs +57 -0
- package/dist/domains/networking/secret-rotation-planner/manifest.mjs +80 -0
- package/dist/domains/networking/secret-rotation-planner/runtime.mjs +136 -0
- package/dist/domains/networking/secret-rotation-planner/scene.mjs +70 -0
- package/dist/domains/networking/server-deployment/activity.mjs +58 -0
- package/dist/domains/networking/server-deployment/manifest.mjs +89 -0
- package/dist/domains/networking/server-deployment/runtime.mjs +150 -0
- package/dist/domains/networking/server-deployment/scene.mjs +231 -0
- package/dist/domains/networking/service-scaling/activity.mjs +58 -0
- package/dist/domains/networking/service-scaling/manifest.mjs +74 -0
- package/dist/domains/networking/service-scaling/runtime.mjs +120 -0
- package/dist/domains/networking/service-scaling/scene.mjs +134 -0
- package/dist/domains/networking/shared-airtime/manifest.mjs +80 -0
- package/dist/domains/networking/shared-airtime/runtime.mjs +238 -0
- package/dist/domains/networking/signal-through-walls/manifest.mjs +77 -0
- package/dist/domains/networking/signal-through-walls/runtime.mjs +160 -0
- package/dist/domains/networking/slo-incident-console/activity.mjs +58 -0
- package/dist/domains/networking/slo-incident-console/manifest.mjs +83 -0
- package/dist/domains/networking/slo-incident-console/runtime.mjs +128 -0
- package/dist/domains/networking/slo-incident-console/scene.mjs +143 -0
- package/dist/domains/networking/spectrum-map/manifest.mjs +64 -0
- package/dist/domains/networking/spectrum-map/runtime.mjs +149 -0
- package/dist/domains/networking/subnet-builder/runtime.mjs +1 -1
- package/dist/domains/networking/switch-learning/runtime.mjs +1 -1
- package/dist/domains/networking/tcp-handshake/manifest.mjs +81 -0
- package/dist/domains/networking/tcp-handshake/runtime.mjs +257 -0
- package/dist/domains/networking/tcp-sender/manifest.mjs +63 -0
- package/dist/domains/networking/tcp-sender/runtime.mjs +151 -0
- package/dist/domains/networking/tls-connection/activity.mjs +33 -0
- package/dist/domains/networking/tls-connection/manifest.mjs +70 -0
- package/dist/domains/networking/tls-connection/runtime.mjs +94 -0
- package/dist/domains/networking/tls-connection/scene.mjs +96 -0
- package/dist/domains/networking/vlan-designer/runtime.mjs +5 -3
- package/dist/domains/networking/vpc-route-planner/activity.mjs +58 -0
- package/dist/domains/networking/vpc-route-planner/manifest.mjs +80 -0
- package/dist/domains/networking/vpc-route-planner/runtime.mjs +107 -0
- package/dist/domains/networking/vpc-route-planner/scene.mjs +145 -0
- package/dist/domains/networking/vpn-tunnel/runtime.mjs +2 -2
- package/dist/domains/networking/wave-size/manifest.mjs +69 -0
- package/dist/domains/networking/wave-size/runtime.mjs +149 -0
- package/dist/domains/networking/wifi-contention/activity.mjs +33 -0
- package/dist/domains/networking/wifi-contention/manifest.mjs +62 -0
- package/dist/domains/networking/wifi-contention/runtime.mjs +93 -0
- package/dist/domains/networking/wifi-contention/scene.mjs +92 -0
- package/dist/domains/networking/wifi-coverage/manifest.mjs +82 -0
- package/dist/domains/networking/wifi-coverage/runtime.mjs +253 -0
- package/dist/domains/networking/workload-identity-planner/activity.mjs +58 -0
- package/dist/domains/networking/workload-identity-planner/manifest.mjs +82 -0
- package/dist/domains/networking/workload-identity-planner/runtime.mjs +120 -0
- package/dist/domains/networking/workload-identity-planner/scene.mjs +71 -0
- package/dist/domains/physics/ac-generator/manifest.mjs +64 -0
- package/dist/domains/physics/ac-generator/runtime.mjs +5 -0
- package/dist/domains/physics/car-suspension/manifest.mjs +59 -0
- package/dist/domains/physics/car-suspension/runtime.mjs +5 -0
- package/dist/domains/physics/circuit-fault-detective/activity.mjs +59 -0
- package/dist/domains/physics/circuit-fault-detective/manifest.mjs +59 -0
- package/dist/domains/physics/circuit-fault-detective/runtime.mjs +157 -0
- package/dist/domains/physics/circuit-iv-investigation/activity.mjs +127 -0
- package/dist/domains/physics/circuit-iv-investigation/manifest.mjs +78 -0
- package/dist/domains/physics/circuit-iv-investigation/runtime.mjs +329 -0
- package/dist/domains/physics/circular-motion/manifest.mjs +0 -2
- package/dist/domains/physics/coil-torque/activity.mjs +3 -0
- package/dist/domains/physics/coil-torque/manifest.mjs +69 -0
- package/dist/domains/physics/coil-torque/runtime.mjs +3 -0
- package/dist/domains/physics/collision-track/manifest.mjs +15 -5
- package/dist/domains/physics/cooling-insulation-investigation/activity.mjs +128 -0
- package/dist/domains/physics/cooling-insulation-investigation/manifest.mjs +78 -0
- package/dist/domains/physics/cooling-insulation-investigation/runtime.mjs +273 -0
- package/dist/domains/physics/coulomb-superposition/activity.mjs +3 -0
- package/dist/domains/physics/coulomb-superposition/manifest.mjs +75 -0
- package/dist/domains/physics/coulomb-superposition/runtime.mjs +3 -0
- package/dist/domains/physics/dc-motor/manifest.mjs +58 -0
- package/dist/domains/physics/dc-motor/runtime.mjs +5 -0
- package/dist/domains/physics/density-displacement/activity.mjs +128 -0
- package/dist/domains/physics/density-displacement/manifest.mjs +75 -0
- package/dist/domains/physics/density-displacement/runtime.mjs +197 -0
- package/dist/domains/physics/earth-field/activity.mjs +3 -0
- package/dist/domains/physics/earth-field/manifest.mjs +77 -0
- package/dist/domains/physics/earth-field/runtime.mjs +3 -0
- package/dist/domains/physics/energy-resource-grid/activity.mjs +169 -0
- package/dist/domains/physics/energy-resource-grid/manifest.mjs +89 -0
- package/dist/domains/physics/energy-resource-grid/palette.mjs +69 -0
- package/dist/domains/physics/energy-resource-grid/runtime.mjs +1483 -0
- package/dist/domains/physics/energy-skate/manifest.mjs +0 -2
- package/dist/domains/physics/generator-grid-mission/activity.mjs +153 -0
- package/dist/domains/physics/generator-grid-mission/manifest.mjs +81 -0
- package/dist/domains/physics/generator-grid-mission/palette.mjs +30 -0
- package/dist/domains/physics/generator-grid-mission/runtime.mjs +466 -0
- package/dist/domains/physics/glass-block-refraction/activity.mjs +128 -0
- package/dist/domains/physics/glass-block-refraction/manifest.mjs +77 -0
- package/dist/domains/physics/glass-block-refraction/runtime.mjs +327 -0
- package/dist/domains/physics/gravitation/manifest.mjs +8 -5
- package/dist/domains/physics/gravity-profile/manifest.mjs +62 -0
- package/dist/domains/physics/gravity-profile/runtime.mjs +5 -0
- package/dist/domains/physics/guitar-string/manifest.mjs +69 -0
- package/dist/domains/physics/guitar-string/runtime.mjs +5 -0
- package/dist/domains/physics/heat-transfer/manifest.mjs +0 -2
- package/dist/domains/physics/kepler/manifest.mjs +0 -2
- package/dist/domains/physics/lens-focal-investigation/activity.mjs +128 -0
- package/dist/domains/physics/lens-focal-investigation/manifest.mjs +78 -0
- package/dist/domains/physics/lens-focal-investigation/runtime.mjs +329 -0
- package/dist/domains/physics/lift-weight/manifest.mjs +55 -0
- package/dist/domains/physics/lift-weight/runtime.mjs +5 -0
- package/dist/domains/physics/lifting-work/manifest.mjs +62 -0
- package/dist/domains/physics/lifting-work/runtime.mjs +5 -0
- package/dist/domains/physics/magnetic-field/activity.mjs +3 -0
- package/dist/domains/physics/magnetic-field/manifest.mjs +80 -0
- package/dist/domains/physics/magnetic-field/runtime.mjs +3 -0
- package/dist/domains/physics/magnetic-field-mission/activity.mjs +120 -0
- package/dist/domains/physics/magnetic-field-mission/manifest.mjs +73 -0
- package/dist/domains/physics/magnetic-field-mission/palette.mjs +40 -0
- package/dist/domains/physics/magnetic-field-mission/runtime.mjs +547 -0
- package/dist/domains/physics/orbit-lab/manifest.mjs +0 -2
- package/dist/domains/physics/paper5-analysis-lab/activity.mjs +144 -0
- package/dist/domains/physics/paper5-analysis-lab/manifest.mjs +67 -0
- package/dist/domains/physics/paper5-analysis-lab/runtime.mjs +706 -0
- package/dist/domains/physics/pendulum-worlds/manifest.mjs +55 -0
- package/dist/domains/physics/pendulum-worlds/runtime.mjs +5 -0
- package/dist/domains/physics/pet-scan/activity.mjs +3 -0
- package/dist/domains/physics/pet-scan/manifest.mjs +73 -0
- package/dist/domains/physics/pet-scan/runtime.mjs +3 -0
- package/dist/domains/physics/physics-practical-studio/activity.mjs +96 -0
- package/dist/domains/physics/physics-practical-studio/core.mjs +75 -0
- package/dist/domains/physics/physics-practical-studio/manifest.mjs +53 -0
- package/dist/domains/physics/physics-practical-studio/runtime.mjs +207 -0
- package/dist/domains/physics/plug-safety-inspector/activity.mjs +97 -0
- package/dist/domains/physics/plug-safety-inspector/manifest.mjs +54 -0
- package/dist/domains/physics/plug-safety-inspector/palette.mjs +44 -0
- package/dist/domains/physics/plug-safety-inspector/runtime.mjs +414 -0
- package/dist/domains/physics/precision-measurement-lab/activity.mjs +148 -0
- package/dist/domains/physics/precision-measurement-lab/manifest.mjs +81 -0
- package/dist/domains/physics/precision-measurement-lab/palette.mjs +41 -0
- package/dist/domains/physics/precision-measurement-lab/runtime.mjs +641 -0
- package/dist/domains/physics/projectile-lab/core/formulas.mjs +1 -1
- package/dist/domains/physics/projectile-lab/manifest.mjs +2 -0
- package/dist/domains/physics/projectile-lab/runtime/index.mjs +4 -2
- package/dist/domains/physics/radiation-half-life-investigation/activity.mjs +154 -0
- package/dist/domains/physics/radiation-half-life-investigation/manifest.mjs +88 -0
- package/dist/domains/physics/radiation-half-life-investigation/palette.mjs +47 -0
- package/dist/domains/physics/radiation-half-life-investigation/runtime.mjs +1036 -0
- package/dist/domains/physics/shm/manifest.mjs +0 -2
- package/dist/domains/physics/shm-energy/manifest.mjs +58 -0
- package/dist/domains/physics/shm-energy/runtime.mjs +5 -0
- package/dist/domains/physics/shm-graphs/manifest.mjs +56 -0
- package/dist/domains/physics/shm-graphs/runtime.mjs +5 -0
- package/dist/domains/physics/space-evidence-mission/activity.mjs +148 -0
- package/dist/domains/physics/space-evidence-mission/manifest.mjs +88 -0
- package/dist/domains/physics/space-evidence-mission/runtime.mjs +624 -0
- package/dist/domains/physics/spin-studio/manifest.mjs +58 -0
- package/dist/domains/physics/spin-studio/runtime.mjs +5 -0
- package/dist/domains/physics/spring-combinations/manifest.mjs +52 -0
- package/dist/domains/physics/spring-combinations/runtime.mjs +5 -0
- package/dist/domains/physics/terminal-velocity/manifest.mjs +0 -2
- package/dist/domains/physics/thermal-expansion/manifest.mjs +0 -2
- package/dist/domains/physics/trolley-acceleration-investigation/activity.mjs +158 -0
- package/dist/domains/physics/trolley-acceleration-investigation/manifest.mjs +78 -0
- package/dist/domains/physics/trolley-acceleration-investigation/runtime.mjs +390 -0
- package/dist/domains/physics/vector-board/manifest.mjs +1 -0
- package/dist/domains/physics/vector-board/runtime.mjs +1 -0
- package/dist/domains/render-map.mjs +437 -1
- package/dist/domains/render.d.mts +0 -1
- package/dist/exam/exam-question/core.d.mts +11 -6
- package/dist/exam/exam-question/core.mjs +37 -4
- package/dist/exam/exam-question/default-question.d.mts +0 -1
- package/dist/exam/exam-question/index.d.mts +2 -1
- package/dist/exam/exam-question/preset.d.mts +3 -8
- package/dist/exam/exam-question/preset.mjs +61 -26
- package/dist/exam/index.d.mts +1 -0
- package/dist/geography/cycle-lab/index.d.mts +2 -1
- package/dist/geography/cycle-lab/preset.d.mts +1 -10
- package/dist/geography/cycle-lab/preset.mjs +3 -2
- package/dist/geography/cycles.d.mts +0 -1
- package/dist/geography/index.d.mts +1 -0
- package/dist/geometry/board/index.d.mts +2 -1
- package/dist/geometry/board/preset.d.mts +1 -8
- package/dist/geometry/builder.d.mts +2 -7
- package/dist/geometry/builder.mjs +1 -1
- package/dist/geometry/index.d.mts +1 -0
- package/dist/geometry/intersecting-circles.d.mts +1 -7
- package/dist/geometry/intersecting-circles.mjs +76 -75
- package/dist/ict/index.d.mts +1 -0
- package/dist/ict/number-systems/base-odometer.d.mts +1 -13
- package/dist/ict/number-systems/bit-grouper.d.mts +1 -11
- package/dist/ict/number-systems/index.d.mts +2 -1
- package/dist/ict/number-systems/place-value-dial.d.mts +1 -11
- package/dist/ict/number-systems/wheel.d.mts +4 -25
- package/dist/ict/number-systems/wheel.mjs +12 -11
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/kit/activity-authoring.d.mts +14 -3
- package/dist/kit/activity-authoring.mjs +8 -1
- package/dist/kit/activity.d.mts +69 -70
- package/dist/kit/activity.mjs +135 -12
- package/dist/kit/anim.d.mts +22 -0
- package/dist/kit/annotate.mjs +8 -4
- package/dist/kit/ask.d.mts +1 -2
- package/dist/kit/ask.mjs +1 -1
- package/dist/kit/assets.d.mts +30 -0
- package/dist/kit/assets.mjs +31 -0
- package/dist/kit/authored-activity-runtime.d.mts +9 -31
- package/dist/kit/authored-activity-runtime.mjs +78 -66
- package/dist/kit/authored-response.d.mts +1 -5
- package/dist/kit/authored-response.mjs +17 -2
- package/dist/kit/celebrate.d.mts +2 -7
- package/dist/kit/celebrate.mjs +3 -2
- package/dist/kit/chemistry/composition-evidence.d.mts +45 -0
- package/dist/kit/chemistry/composition-evidence.mjs +164 -0
- package/dist/kit/chemistry/cycle.mjs +147 -0
- package/dist/kit/chemistry/electrode.d.mts +103 -0
- package/dist/kit/chemistry/electrode.mjs +155 -0
- package/dist/kit/chemistry/equation-model.d.mts +35 -0
- package/dist/kit/chemistry/equation-model.mjs +84 -0
- package/dist/kit/chemistry/flame.d.mts +38 -0
- package/dist/kit/chemistry/flame.mjs +129 -0
- package/dist/kit/chemistry/formula-model.d.mts +38 -0
- package/dist/kit/chemistry/formula-model.mjs +221 -0
- package/dist/kit/chemistry/formula.d.mts +18 -0
- package/dist/kit/chemistry/formula.mjs +94 -0
- package/dist/kit/chemistry/glassware.d.mts +114 -0
- package/dist/kit/chemistry/glassware.mjs +697 -0
- package/dist/kit/chemistry/groups.d.mts +104 -0
- package/dist/kit/chemistry/groups.mjs +317 -0
- package/dist/kit/chemistry/index.d.mts +18 -0
- package/dist/kit/chemistry/mechanism.mjs +248 -0
- package/dist/kit/chemistry/molecule.d.mts +246 -0
- package/dist/kit/chemistry/molecule.mjs +441 -0
- package/dist/kit/chemistry/nmr-figure.d.mts +15 -0
- package/dist/kit/chemistry/nmr-figure.mjs +207 -0
- package/dist/kit/chemistry/observation.d.mts +68 -0
- package/dist/kit/chemistry/observation.mjs +86 -0
- package/dist/kit/chemistry/percent-lens.d.mts +35 -0
- package/dist/kit/chemistry/percent-lens.mjs +44 -0
- package/dist/kit/chemistry/process.d.mts +31 -0
- package/dist/kit/chemistry/process.mjs +234 -0
- package/dist/kit/chemistry/quantity-route-figure.d.mts +25 -0
- package/dist/kit/chemistry/quantity-route-figure.mjs +198 -0
- package/dist/kit/chemistry/quantity-route.d.mts +78 -0
- package/dist/kit/chemistry/quantity-route.mjs +117 -0
- package/dist/kit/chemistry/reaction.mjs +293 -0
- package/dist/kit/chemistry/safety.d.mts +25 -0
- package/dist/kit/chemistry/safety.mjs +77 -0
- package/dist/kit/chemistry/species.mjs +1078 -0
- package/dist/kit/chemistry/spectrum.mjs +252 -0
- package/dist/kit/chemistry/structure-figure.d.mts +38 -0
- package/dist/kit/chemistry/structure-figure.mjs +161 -0
- package/dist/kit/clue-scene.d.mts +7 -38
- package/dist/kit/clue-scene.mjs +15 -12
- package/dist/kit/cluster.d.mts +1 -11
- package/dist/kit/commerce/glyphs.d.mts +144 -0
- package/dist/kit/commerce/glyphs.mjs +569 -0
- package/dist/kit/commerce/index.d.mts +3 -0
- package/dist/kit/commerce/ledger.d.mts +64 -0
- package/dist/kit/commerce/ledger.mjs +224 -0
- package/dist/kit/controls.mjs +27 -13
- package/dist/kit/coords.d.mts +3 -21
- package/dist/kit/coords.mjs +1 -1
- package/dist/kit/cycle.d.mts +2 -12
- package/dist/kit/cycle.mjs +2 -3
- package/dist/kit/data-scene.d.mts +0 -1
- package/dist/kit/diagram/circuit-box.mjs +2 -1
- package/dist/kit/electronics/_shared.mjs +2 -1
- package/dist/kit/electronics/basics.mjs +274 -7
- package/dist/kit/electronics/meter.mjs +137 -2
- package/dist/kit/electronics/wire.mjs +1 -1
- package/dist/kit/embed.mjs +29 -6
- package/dist/kit/figure/action.d.mts +11 -0
- package/dist/kit/figure/action.mjs +27 -0
- package/dist/kit/figure/beam.d.mts +6 -42
- package/dist/kit/figure/beam.mjs +2 -1
- package/dist/kit/figure/body.d.mts +5 -33
- package/dist/kit/figure/body.mjs +3 -3
- package/dist/kit/figure/container.d.mts +3 -32
- package/dist/kit/figure/container.mjs +10 -0
- package/dist/kit/figure/digits.d.mts +39 -0
- package/dist/kit/figure/digits.mjs +30 -0
- package/dist/kit/figure/figure.d.mts +79 -13
- package/dist/kit/figure/figure.mjs +81 -5
- package/dist/kit/figure/gauge.d.mts +54 -0
- package/dist/kit/figure/gauge.mjs +54 -0
- package/dist/kit/figure/illustration.d.mts +1 -10
- package/dist/kit/figure/index.d.mts +9 -3
- package/dist/kit/figure/legend.d.mts +27 -0
- package/dist/kit/figure/legend.mjs +71 -0
- package/dist/kit/figure/plot.d.mts +7 -44
- package/dist/kit/figure/plot.mjs +52 -29
- package/dist/kit/figure/system.d.mts +59 -0
- package/dist/kit/figure/system.mjs +205 -0
- package/dist/kit/figure/text.d.mts +77 -25
- package/dist/kit/figure/text.mjs +65 -3
- package/dist/kit/finance-viz/apportion-bar.d.mts +1 -9
- package/dist/kit/finance-viz/apportion-bar.mjs +51 -42
- package/dist/kit/finance-viz/index.d.mts +2 -1
- package/dist/kit/finance-viz/plot-chart.d.mts +1 -13
- package/dist/kit/finance-viz/plot-chart.mjs +46 -115
- package/dist/kit/finance-viz/stock-timeline.d.mts +1 -10
- package/dist/kit/finance-viz/stock-timeline.mjs +61 -85
- package/dist/kit/finance-viz/tradeoff-curve.d.mts +1 -14
- package/dist/kit/finance-viz/tradeoff-curve.mjs +136 -189
- package/dist/kit/frame.d.mts +10 -24
- package/dist/kit/frame.mjs +25 -5
- package/dist/kit/freq-tree.mjs +2 -2
- package/dist/kit/gravitation/index.d.mts +2 -0
- package/dist/kit/gravitation/section.d.mts +60 -0
- package/dist/kit/gravitation/section.mjs +128 -0
- package/dist/kit/guide.d.mts +1 -4
- package/dist/kit/index.d.mts +54 -7
- package/dist/kit/index.mjs +48 -9
- package/dist/kit/instruments-palette.mjs +14 -0
- package/dist/kit/instruments.mjs +679 -0
- package/dist/kit/learning-sequence.d.mts +5 -5
- package/dist/kit/learning-sequence.mjs +7 -6
- package/dist/kit/logic-gates/display.mjs +1 -1
- package/dist/kit/logic-gates/gate.d.mts +0 -1
- package/dist/kit/logic-gates/gate.mjs +1 -1
- package/dist/kit/magnetism/glyphs.d.mts +179 -0
- package/dist/kit/magnetism/glyphs.mjs +445 -0
- package/dist/kit/magnetism/index.d.mts +2 -0
- package/dist/kit/mechanics/energy.d.mts +221 -0
- package/dist/kit/mechanics/energy.mjs +578 -0
- package/dist/kit/mechanics/index.d.mts +3 -0
- package/dist/kit/mechanics/palette.mjs +27 -0
- package/dist/kit/mechanics/primitives.d.mts +298 -0
- package/dist/kit/mechanics/primitives.mjs +887 -0
- package/dist/kit/networking/access-glyphs.d.mts +2 -0
- package/dist/kit/networking/access-glyphs.mjs +123 -0
- package/dist/kit/networking/glyphs.d.mts +13 -0
- package/dist/kit/networking/glyphs.mjs +1 -11
- package/dist/kit/networking/index.d.mts +7 -0
- package/dist/kit/networking/infrastructure-glyphs.d.mts +2 -0
- package/dist/kit/networking/infrastructure-glyphs.mjs +149 -0
- package/dist/kit/networking/layout.mjs +15 -0
- package/dist/kit/networking/primitives.d.mts +69 -0
- package/dist/kit/networking/primitives.mjs +798 -0
- package/dist/kit/networking/release-glyphs.d.mts +2 -0
- package/dist/kit/networking/release-glyphs.mjs +128 -0
- package/dist/kit/networking/secret-glyphs.d.mts +2 -0
- package/dist/kit/networking/secret-glyphs.mjs +148 -0
- package/dist/kit/palette.mjs +49 -1
- package/dist/kit/pedagogy.d.mts +15 -34
- package/dist/kit/pedagogy.mjs +1 -1
- package/dist/kit/play.d.mts +1 -5
- package/dist/kit/predict-gate.d.mts +1 -9
- package/dist/kit/predict.d.mts +1 -19
- package/dist/kit/probability.d.mts +3 -21
- package/dist/kit/proportion.mjs +1 -1
- package/dist/kit/receipt.d.mts +1 -9
- package/dist/kit/rich.d.mts +1 -4
- package/dist/kit/rich.mjs +41 -1
- package/dist/kit/rule.d.mts +7 -22
- package/dist/kit/scale.mjs +49 -20
- package/dist/kit/scene-library.d.mts +1 -4
- package/dist/kit/scene-studio.d.mts +1 -5
- package/dist/kit/scenes.d.mts +0 -1
- package/dist/kit/scenes.mjs +4 -4
- package/dist/kit/simulation/adapter.d.mts +9 -0
- package/dist/kit/simulation/adapter.mjs +11 -0
- package/dist/kit/simulation/behavior.d.mts +15 -0
- package/dist/kit/simulation/behavior.mjs +24 -0
- package/dist/kit/simulation/clock.d.mts +65 -0
- package/dist/kit/simulation/clock.mjs +155 -0
- package/dist/kit/simulation/model.d.mts +133 -0
- package/dist/kit/simulation/model.mjs +79 -0
- package/dist/kit/simulation/rig.d.mts +11 -0
- package/dist/kit/simulation/rig.mjs +11 -0
- package/dist/kit/simulation/use-simulation.d.mts +60 -0
- package/dist/kit/simulation/use-simulation.mjs +92 -0
- package/dist/kit/slot-fill.d.mts +3 -16
- package/dist/kit/space/backdrop.d.mts +39 -0
- package/dist/kit/space/backdrop.mjs +174 -0
- package/dist/kit/space/bodies.d.mts +66 -0
- package/dist/kit/space/bodies.mjs +464 -0
- package/dist/kit/space/index.d.mts +4 -0
- package/dist/kit/space/palette.d.mts +144 -0
- package/dist/kit/space/palette.mjs +165 -0
- package/dist/kit/space-glyphs.mjs +63 -0
- package/dist/kit/steps.d.mts +1 -6
- package/dist/kit/thermal-palette.mjs +38 -0
- package/dist/kit/thermal.mjs +140 -25
- package/dist/kit/vessel.d.mts +2 -27
- package/dist/lab-def/define-lab.d.mts +29 -3
- package/dist/lab-def/lab-runtime.mjs +21 -1
- package/dist/lab-def/to-block.mjs +3 -2
- package/dist/language/activity.d.mts +1 -12
- package/dist/language/agreement/index.d.mts +2 -1
- package/dist/language/agreement/preset.d.mts +1 -9
- package/dist/language/article-lens/index.d.mts +2 -1
- package/dist/language/article-lens/preset.d.mts +1 -9
- package/dist/language/cloze/index.d.mts +2 -1
- package/dist/language/cloze/preset.d.mts +1 -9
- package/dist/language/cloze/preset.mjs +4 -2
- package/dist/language/deck.d.mts +0 -1
- package/dist/language/dictation/index.d.mts +2 -1
- package/dist/language/dictation/preset.d.mts +1 -8
- package/dist/language/error-correct/index.d.mts +2 -1
- package/dist/language/error-correct/preset.d.mts +1 -8
- package/dist/language/icon.d.mts +2 -9
- package/dist/language/index.d.mts +11 -0
- package/dist/language/listening/index.d.mts +2 -1
- package/dist/language/listening/preset.d.mts +1 -9
- package/dist/language/listening/preset.mjs +2 -1
- package/dist/language/preposition-scene/index.d.mts +2 -1
- package/dist/language/preposition-scene/preset.d.mts +1 -9
- package/dist/language/preposition-scene/preset.mjs +2 -1
- package/dist/language/reading/index.d.mts +2 -1
- package/dist/language/reading/preset.d.mts +1 -10
- package/dist/language/reading/preset.mjs +2 -1
- package/dist/language/sentence-builder/index.d.mts +2 -1
- package/dist/language/sentence-builder/preset.d.mts +1 -12
- package/dist/language/sentence-builder/preset.mjs +2 -1
- package/dist/language/transform/index.d.mts +2 -1
- package/dist/language/transform/preset.d.mts +1 -12
- package/dist/language/transform/preset.mjs +2 -1
- package/dist/language/ui.d.mts +4 -26
- package/dist/language/ui.mjs +2 -1
- package/dist/language/word-match/index.d.mts +2 -1
- package/dist/language/word-match/preset.d.mts +1 -10
- package/dist/logic/ChipScene.d.mts +1 -11
- package/dist/logic/ChipScene.mjs +6 -5
- package/dist/logic/CounterScene.d.mts +1 -7
- package/dist/logic/CounterScene.mjs +1 -1
- package/dist/logic/DetectorScene.d.mts +1 -8
- package/dist/logic/DetectorScene.mjs +4 -5
- package/dist/logic/LatchScene.d.mts +1 -8
- package/dist/logic/LatchScene.mjs +7 -7
- package/dist/logic/LogicBuildLab.d.mts +1 -8
- package/dist/logic/LogicEditScene.d.mts +1 -13
- package/dist/logic/LogicEditScene.mjs +1 -1
- package/dist/logic/LogicEditor.d.mts +1 -8
- package/dist/logic/LogicScene.d.mts +1 -11
- package/dist/logic/LogicScene.mjs +13 -5
- package/dist/logic/SequentialLogicLab.d.mts +1 -9
- package/dist/logic/ShiftScene.d.mts +1 -6
- package/dist/logic/ShiftScene.mjs +9 -8
- package/dist/logic/TimingScene.d.mts +1 -12
- package/dist/logic/TimingScene.mjs +2 -3
- package/dist/logic/TwosScene.d.mts +1 -13
- package/dist/logic/TwosScene.mjs +16 -16
- package/dist/logic/WaveScene.d.mts +1 -10
- package/dist/logic/WaveScene.mjs +3 -4
- package/dist/logic/contract.d.mts +1 -2
- package/dist/logic/counter.d.mts +0 -1
- package/dist/logic/display.d.mts +1 -9
- package/dist/logic/display.mjs +2 -2
- package/dist/logic/edit-ops.d.mts +0 -1
- package/dist/logic/evaluate.d.mts +1 -2
- package/dist/logic/ic.d.mts +1 -1
- package/dist/logic/lab.d.mts +1 -12
- package/dist/logic/lab.mjs +2 -1
- package/dist/logic/latch.d.mts +2 -11
- package/dist/logic/netlist.d.mts +0 -1
- package/dist/logic/presets.d.mts +0 -1
- package/dist/logic/registry.d.mts +0 -1
- package/dist/logic/sequential-presets.d.mts +0 -1
- package/dist/logic/sequential.d.mts +0 -1
- package/dist/logic/sequential.mjs +8 -7
- package/dist/logic/timing.mjs +6 -4
- package/dist/logic/twos.d.mts +1 -1
- package/dist/logic/twos.mjs +7 -5
- package/dist/math/area-model/asset.d.mts +0 -1
- package/dist/math/area-model/index.d.mts +2 -1
- package/dist/math/area-model/preset.d.mts +2 -15
- package/dist/math/area-model/preset.mjs +8 -6
- package/dist/math/area-rearrange/index.d.mts +2 -1
- package/dist/math/area-rearrange/preset.d.mts +1 -12
- package/dist/math/area-rearrange/preset.mjs +4 -5
- package/dist/math/balance-algebra/asset.d.mts +0 -1
- package/dist/math/balance-algebra/index.d.mts +2 -1
- package/dist/math/balance-algebra/preset.d.mts +3 -9
- package/dist/math/balance-algebra/preset.mjs +10 -8
- package/dist/math/bearings/core.mjs +3 -2
- package/dist/math/bearings/index.d.mts +2 -1
- package/dist/math/bearings/preset.d.mts +1 -12
- package/dist/math/bearings/preset.mjs +15 -13
- package/dist/math/bounds-window/preset.mjs +239 -0
- package/dist/math/broken-tree/index.d.mts +2 -1
- package/dist/math/broken-tree/preset.d.mts +1 -10
- package/dist/math/circle/index.d.mts +2 -1
- package/dist/math/circle/preset.d.mts +1 -15
- package/dist/math/complex/index.d.mts +3 -2
- package/dist/math/complex/index.mjs +5 -0
- package/dist/math/complex/preset.d.mts +0 -1
- package/dist/math/complex/preset.mjs +18 -18
- package/dist/math/complex/rule-figures.mjs +3 -3
- package/dist/math/complex/rules.d.mts +1 -2
- package/dist/math/complex/rules.mjs +4 -4
- package/dist/math/cone-frustum/core.mjs +34 -0
- package/dist/math/cone-frustum/preset.mjs +342 -0
- package/dist/math/conic/index.d.mts +2 -1
- package/dist/math/conic/preset.d.mts +0 -1
- package/dist/math/conic/preset.mjs +2 -1
- package/dist/math/derivation.d.mts +2 -9
- package/dist/math/derivation.mjs +20 -27
- package/dist/math/derivative-explorer/preset.d.mts +1 -8
- package/dist/math/derivative-explorer/preset.mjs +2 -1
- package/dist/math/differential-equation/preset.d.mts +1 -11
- package/dist/math/differential-equation/preset.mjs +5 -3
- package/dist/math/division-workbench/index.d.mts +2 -1
- package/dist/math/division-workbench/preset.d.mts +1 -10
- package/dist/math/division-workbench/visuals.mjs +2 -1
- package/dist/math/domain-range/index.d.mts +2 -1
- package/dist/math/domain-range/preset.d.mts +1 -13
- package/dist/math/domain-range/preset.mjs +33 -3
- package/dist/math/exact-triangle/preset.mjs +409 -0
- package/dist/math/expression-order/core.d.mts +9 -0
- package/dist/math/expression-order/core.mjs +22 -11
- package/dist/math/expression-order/index.d.mts +2 -1
- package/dist/math/expression-order/preset.d.mts +3 -8
- package/dist/math/expression-order/preset.mjs +2 -1
- package/dist/math/fraction-bar/index.d.mts +2 -1
- package/dist/math/fraction-bar/preset.d.mts +0 -1
- package/dist/math/function-machine/index.d.mts +2 -1
- package/dist/math/function-machine/preset.d.mts +2 -9
- package/dist/math/function-machine/preset.mjs +2 -2
- package/dist/math/fundamental-theorem/preset.d.mts +1 -9
- package/dist/math/fundamental-theorem/preset.mjs +2 -1
- package/dist/math/geometry-foundations/activity.d.mts +1 -1
- package/dist/math/geometry-foundations/index.d.mts +3 -1
- package/dist/math/geometry-foundations/preset.d.mts +1 -12
- package/dist/math/geometry-foundations/preset.mjs +7 -6
- package/dist/math/gradient-descent.d.mts +1 -9
- package/dist/math/gradient-descent.mjs +2 -2
- package/dist/math/grapher/index.d.mts +2 -1
- package/dist/math/grapher/preset.d.mts +1 -12
- package/dist/math/grapher/preset.mjs +4 -2
- package/dist/math/harmonic-form/index.d.mts +2 -1
- package/dist/math/harmonic-form/preset.d.mts +1 -8
- package/dist/math/identity-proof/default-proof.d.mts +0 -1
- package/dist/math/identity-proof/index.d.mts +2 -1
- package/dist/math/identity-proof/preset.d.mts +1 -8
- package/dist/math/index.d.mts +55 -7
- package/dist/math/index.mjs +5 -7
- package/dist/math/integral-explorer/preset.d.mts +1 -10
- package/dist/math/integral-explorer/preset.mjs +4 -4
- package/dist/math/interactive/index.d.mts +2 -1
- package/dist/math/interactive/preset.d.mts +2 -14
- package/dist/math/interactive/preset.mjs +2 -3
- package/dist/math/iteration/index.d.mts +2 -1
- package/dist/math/iteration/preset.d.mts +1 -11
- package/dist/math/iteration/preset.mjs +2 -1
- package/dist/math/limit-explorer/preset.d.mts +1 -8
- package/dist/math/limit-explorer/preset.mjs +2 -1
- package/dist/math/linear-model/index.d.mts +2 -1
- package/dist/math/linear-model/preset.d.mts +0 -1
- package/dist/math/linear-model/preset.mjs +23 -22
- package/dist/math/linear-system/index.d.mts +2 -1
- package/dist/math/linear-system/preset.d.mts +1 -9
- package/dist/math/lines-in-space/core.mjs +1 -1
- package/dist/math/lines-in-space/index.d.mts +2 -1
- package/dist/math/lines-in-space/preset.d.mts +1 -17
- package/dist/math/lines-in-space/preset.mjs +4 -2
- package/dist/math/measurement/activity.d.mts +1 -1
- package/dist/math/measurement/index.d.mts +3 -1
- package/dist/math/measurement/preset.d.mts +1 -17
- package/dist/math/measurement/preset.mjs +4 -3
- package/dist/math/mystery-bucket/asset.d.mts +0 -1
- package/dist/math/mystery-bucket/asset.mjs +2 -1
- package/dist/math/mystery-bucket/index.d.mts +2 -1
- package/dist/math/mystery-bucket/preset.d.mts +2 -11
- package/dist/math/mystery-bucket/preset.mjs +1 -1
- package/dist/math/newton-method/preset.d.mts +1 -9
- package/dist/math/newton-method/preset.mjs +4 -2
- package/dist/math/number-line/index.d.mts +2 -1
- package/dist/math/number-line/preset.d.mts +1 -10
- package/dist/math/number-structure/core.mjs +1 -1
- package/dist/math/number-structure/index.d.mts +2 -1
- package/dist/math/number-structure/preset.d.mts +1 -12
- package/dist/math/number-structure/preset.mjs +1 -1
- package/dist/math/number-structure/visuals.mjs +2 -1
- package/dist/math/oblique-triangle/index.d.mts +2 -1
- package/dist/math/oblique-triangle/preset.d.mts +1 -8
- package/dist/math/ode/system.d.mts +0 -1
- package/dist/math/parabola/index.d.mts +2 -1
- package/dist/math/parabola/preset.d.mts +1 -5
- package/dist/math/partial-fractions/core.d.mts +1 -2
- package/dist/math/partial-fractions/core.mjs +3 -2
- package/dist/math/partial-fractions/index.d.mts +2 -1
- package/dist/math/partial-fractions/preset.d.mts +2 -11
- package/dist/math/partial-fractions/preset.mjs +1 -1
- package/dist/math/pattern/asset.d.mts +0 -1
- package/dist/math/pattern/asset.mjs +2 -1
- package/dist/math/pattern/index.d.mts +2 -1
- package/dist/math/pattern/preset.d.mts +3 -16
- package/dist/math/pattern/preset.mjs +9 -7
- package/dist/math/percent-bar/index.d.mts +2 -1
- package/dist/math/percent-bar/preset.d.mts +0 -1
- package/dist/math/percent-bar/preset.mjs +4 -4
- package/dist/math/phase-portrait/preset.d.mts +1 -12
- package/dist/math/phase-portrait/preset.mjs +3 -2
- package/dist/math/poly/index.d.mts +3 -2
- package/dist/math/poly/index.mjs +5 -0
- package/dist/math/poly/preset.d.mts +1 -8
- package/dist/math/poly/preset.mjs +6 -7
- package/dist/math/poly/steps.d.mts +2 -3
- package/dist/math/poly/steps.mjs +6 -6
- package/dist/math/radian-wrap/core.d.mts +1 -1
- package/dist/math/radian-wrap/index.d.mts +2 -1
- package/dist/math/radian-wrap/preset.d.mts +1 -7
- package/dist/math/rate-machine/index.d.mts +2 -1
- package/dist/math/rate-machine/preset.d.mts +0 -1
- package/dist/math/rate-machine/preset.mjs +21 -20
- package/dist/math/ratio-share/index.d.mts +2 -1
- package/dist/math/ratio-share/preset.d.mts +0 -1
- package/dist/math/receipt/index.d.mts +2 -1
- package/dist/math/receipt/preset.d.mts +0 -1
- package/dist/math/receipt/preset.mjs +7 -5
- package/dist/math/sequence-predict/index.d.mts +2 -1
- package/dist/math/sequence-predict/preset.d.mts +0 -1
- package/dist/math/sequence-predict/preset.mjs +3 -2
- package/dist/math/slide-rule/index.d.mts +2 -1
- package/dist/math/slide-rule/preset.d.mts +1 -9
- package/dist/math/slide-rule/preset.mjs +6 -7
- package/dist/math/solid-net/core.d.mts +1 -1
- package/dist/math/solid-net/index.d.mts +2 -1
- package/dist/math/solid-net/preset.d.mts +1 -12
- package/dist/math/solid-net/preset.mjs +15 -15
- package/dist/math/solid-slice/core.mjs +189 -0
- package/dist/math/solid-slice/preset.mjs +278 -0
- package/dist/math/straight-line/index.d.mts +2 -1
- package/dist/math/straight-line/preset.d.mts +0 -1
- package/dist/math/system-solve/index.d.mts +2 -1
- package/dist/math/system-solve/preset.d.mts +0 -1
- package/dist/math/tank-design/core.mjs +40 -0
- package/dist/math/tank-design/preset.mjs +465 -0
- package/dist/math/taylor-series/preset.d.mts +1 -10
- package/dist/math/taylor-series/preset.mjs +2 -1
- package/dist/math/transform/index.d.mts +2 -1
- package/dist/math/transform/preset.d.mts +5 -11
- package/dist/math/transform/preset.mjs +5 -4
- package/dist/math/triangle-trig/index.d.mts +2 -1
- package/dist/math/triangle-trig/preset.d.mts +2 -17
- package/dist/math/triangle-trig/preset.mjs +1 -1
- package/dist/math/trig/core.d.mts +1 -3
- package/dist/math/trig/core.mjs +3 -2
- package/dist/math/trig/diagrams.mjs +2 -2
- package/dist/math/trig/index.d.mts +3 -1
- package/dist/math/trig/preset.d.mts +1 -10
- package/dist/math/trig/rules.d.mts +1 -1
- package/dist/math/trig/rules.mjs +2 -2
- package/dist/math/trig-explorer.d.mts +1 -5
- package/dist/networking/AirtimeScene.d.mts +10 -0
- package/dist/networking/AirtimeScene.mjs +212 -0
- package/dist/networking/CellularScene.d.mts +36 -0
- package/dist/networking/CellularScene.mjs +406 -0
- package/dist/networking/EncapScene.mjs +22 -37
- package/dist/networking/HandoverScene.d.mts +15 -0
- package/dist/networking/HandoverScene.mjs +196 -0
- package/dist/networking/HandshakeScene.d.mts +11 -0
- package/dist/networking/HandshakeScene.mjs +270 -0
- package/dist/networking/MediaScene.mjs +2 -2
- package/dist/networking/NetworkScene.d.mts +2 -10
- package/dist/networking/NetworkScene.mjs +5 -1
- package/dist/networking/NetworkingPrimitiveScene.d.mts +8 -0
- package/dist/networking/NetworkingPrimitiveScene.mjs +183 -0
- package/dist/networking/PacketInspector.d.mts +2 -5
- package/dist/networking/PlugScene.mjs +5 -5
- package/dist/networking/PrivacyScene.d.mts +13 -0
- package/dist/networking/PrivacyScene.mjs +307 -0
- package/dist/networking/SatelliteScene.d.mts +10 -0
- package/dist/networking/SatelliteScene.mjs +240 -0
- package/dist/networking/SpectrumScene.d.mts +15 -0
- package/dist/networking/SpectrumScene.mjs +444 -0
- package/dist/networking/SubnetScene.mjs +4 -4
- package/dist/networking/SwitchScene.mjs +2 -2
- package/dist/networking/VlanScene.mjs +2 -2
- package/dist/networking/VpnScene.mjs +1 -1
- package/dist/networking/WifiScene.d.mts +19 -0
- package/dist/networking/WifiScene.mjs +702 -0
- package/dist/networking/index.d.mts +13 -5
- package/dist/networking/index.mjs +12 -4
- package/dist/pathways/biology.d.mts +0 -1
- package/dist/pathways/calculus.d.mts +0 -1
- package/dist/pathways/chemistry.d.mts +0 -1
- package/dist/pathways/cloud-infrastructure.d.mts +6 -0
- package/dist/pathways/cloud-infrastructure.mjs +211 -0
- package/dist/pathways/digital-logic.d.mts +0 -1
- package/dist/pathways/electronic-circuits.d.mts +0 -1
- package/dist/pathways/electronic-circuits.mjs +9 -3
- package/dist/pathways/electronic-devices.d.mts +0 -1
- package/dist/pathways/index.d.mts +4 -2
- package/dist/pathways/index.mjs +4 -2
- package/dist/pathways/network-communication.d.mts +6 -0
- package/dist/pathways/network-communication.mjs +172 -0
- package/dist/pathways/quantum.d.mts +0 -1
- package/dist/pathways/relativity.d.mts +0 -1
- package/dist/pathways/types.d.mts +3 -5
- package/dist/pathways/types.mjs +10 -5
- package/dist/physics/alternating-current/index.d.mts +3 -2
- package/dist/physics/alternating-current/index.mjs +4 -0
- package/dist/physics/alternating-current/preset.d.mts +4 -21
- package/dist/physics/alternating-current/preset.mjs +873 -684
- package/dist/physics/astronomy/core.d.mts +111 -0
- package/dist/physics/astronomy/core.mjs +147 -0
- package/dist/physics/attenuation/core.d.mts +106 -0
- package/dist/physics/attenuation/core.mjs +112 -0
- package/dist/physics/atwood/index.d.mts +2 -1
- package/dist/physics/atwood/preset.d.mts +2 -10
- package/dist/physics/atwood/preset.mjs +228 -283
- package/dist/physics/biot-savart/activity.mjs +61 -0
- package/dist/physics/biot-savart/preset.mjs +337 -0
- package/dist/physics/biot-savart/presets.mjs +149 -0
- package/dist/physics/biot-savart/torque-activity.mjs +57 -0
- package/dist/physics/biot-savart/torque-preset.mjs +334 -0
- package/dist/physics/bullet-walls/index.d.mts +2 -1
- package/dist/physics/bullet-walls/model.mjs +81 -0
- package/dist/physics/bullet-walls/preset.d.mts +1 -12
- package/dist/physics/bullet-walls/preset.mjs +27 -49
- package/dist/physics/carnot/index.d.mts +2 -1
- package/dist/physics/carnot/preset.d.mts +1 -11
- package/dist/physics/carnot/preset.mjs +25 -27
- package/dist/physics/circular-motion/index.d.mts +2 -1
- package/dist/physics/circular-motion/model.mjs +46 -0
- package/dist/physics/circular-motion/preset.d.mts +1 -11
- package/dist/physics/circular-motion/preset.mjs +30 -47
- package/dist/physics/collision-track/index.d.mts +2 -1
- package/dist/physics/collision-track/model.mjs +62 -0
- package/dist/physics/collision-track/preset.d.mts +1 -13
- package/dist/physics/collision-track/preset.mjs +87 -70
- package/dist/physics/constants.d.mts +125 -0
- package/dist/physics/constants.mjs +128 -0
- package/dist/physics/couple-torque/index.d.mts +2 -1
- package/dist/physics/couple-torque/preset.d.mts +1 -11
- package/dist/physics/couple-torque/preset.mjs +18 -7
- package/dist/physics/efficiency/index.d.mts +2 -1
- package/dist/physics/efficiency/preset.d.mts +1 -12
- package/dist/physics/efficiency/preset.mjs +22 -25
- package/dist/physics/electric-field/index.d.mts +2 -1
- package/dist/physics/electric-field/preset.d.mts +2 -8
- package/dist/physics/electric-field/preset.mjs +14 -15
- package/dist/physics/electric-flux/index.d.mts +2 -1
- package/dist/physics/electric-flux/preset.d.mts +1 -12
- package/dist/physics/electricity/engine.d.mts +54 -0
- package/dist/physics/electricity/engine.mjs +126 -0
- package/dist/physics/electricity/faults.d.mts +31 -0
- package/dist/physics/electricity/faults.mjs +65 -0
- package/dist/physics/electrostatics/coulomb-activity.mjs +119 -0
- package/dist/physics/electrostatics/coulomb-preset.mjs +331 -0
- package/dist/physics/electrostatics/coulomb-presets.mjs +60 -0
- package/dist/physics/energy/core.d.mts +199 -0
- package/dist/physics/energy/core.mjs +265 -0
- package/dist/physics/energy-skate/index.d.mts +2 -1
- package/dist/physics/energy-skate/model.mjs +92 -0
- package/dist/physics/energy-skate/preset.d.mts +1 -11
- package/dist/physics/energy-skate/preset.mjs +24 -49
- package/dist/physics/entropy/index.d.mts +2 -1
- package/dist/physics/entropy/preset.d.mts +1 -8
- package/dist/physics/entropy/preset.mjs +11 -6
- package/dist/physics/expansion/index.d.mts +2 -1
- package/dist/physics/expansion/preset.d.mts +1 -9
- package/dist/physics/expansion/preset.mjs +26 -19
- package/dist/physics/exponential/asset.mjs +2 -2
- package/dist/physics/exponential/index.d.mts +2 -1
- package/dist/physics/exponential/preset.d.mts +1 -7
- package/dist/physics/fields/activity.d.mts +23 -1
- package/dist/physics/fields/activity.mjs +29 -2
- package/dist/physics/fields/index.d.mts +9 -2
- package/dist/physics/fields/index.mjs +19 -0
- package/dist/physics/fields/spatial-activity.d.mts +0 -1
- package/dist/physics/fields/spatial-preset.d.mts +4 -15
- package/dist/physics/fields/spatial-preset.mjs +1 -3
- package/dist/physics/fluid-pressure/index.d.mts +2 -1
- package/dist/physics/fluid-pressure/preset.d.mts +1 -11
- package/dist/physics/fluid-pressure/preset.mjs +3 -3
- package/dist/physics/force-pairs/index.d.mts +2 -1
- package/dist/physics/force-pairs/preset.d.mts +1 -11
- package/dist/physics/force-pairs/preset.mjs +90 -87
- package/dist/physics/gas-process/index.d.mts +2 -1
- package/dist/physics/gas-process/preset.d.mts +1 -12
- package/dist/physics/gas-process/preset.mjs +15 -12
- package/dist/physics/gauss-law/index.d.mts +2 -1
- package/dist/physics/gauss-law/preset.d.mts +1 -9
- package/dist/physics/geomagnetism/activity.mjs +60 -0
- package/dist/physics/geomagnetism/preset.mjs +300 -0
- package/dist/physics/geomagnetism/presets.mjs +68 -0
- package/dist/physics/gravitation/index.d.mts +2 -1
- package/dist/physics/gravitation/preset.d.mts +8 -15
- package/dist/physics/gravitation/preset.mjs +94 -46
- package/dist/physics/gravity-drop.d.mts +1 -8
- package/dist/physics/gravity-drop.mjs +9 -7
- package/dist/physics/gravity-profile/index.d.mts +2 -0
- package/dist/physics/gravity-profile/preset.d.mts +39 -0
- package/dist/physics/gravity-profile/preset.mjs +508 -0
- package/dist/physics/heat-transfer/index.d.mts +2 -1
- package/dist/physics/heat-transfer/preset.d.mts +1 -9
- package/dist/physics/heat-transfer/preset.mjs +52 -43
- package/dist/physics/impulse/index.d.mts +2 -1
- package/dist/physics/impulse/preset.d.mts +1 -12
- package/dist/physics/impulse/preset.mjs +37 -35
- package/dist/physics/index.d.mts +90 -7
- package/dist/physics/index.mjs +38 -7
- package/dist/physics/intercept/index.d.mts +2 -1
- package/dist/physics/intercept/preset.d.mts +1 -14
- package/dist/physics/intercept/preset.mjs +2 -2
- package/dist/physics/investigation/circuit.d.mts +41 -0
- package/dist/physics/investigation/circuit.mjs +174 -0
- package/dist/physics/investigation/cooling.d.mts +44 -0
- package/dist/physics/investigation/cooling.mjs +195 -0
- package/dist/physics/investigation/density.d.mts +28 -0
- package/dist/physics/investigation/density.mjs +136 -0
- package/dist/physics/investigation/energy-resource.mjs +453 -0
- package/dist/physics/investigation/engine.d.mts +106 -0
- package/dist/physics/investigation/engine.mjs +126 -0
- package/dist/physics/investigation/measurement.mjs +182 -0
- package/dist/physics/investigation/optics.d.mts +38 -0
- package/dist/physics/investigation/optics.mjs +155 -0
- package/dist/physics/investigation/paper5.mjs +359 -0
- package/dist/physics/investigation/radiation.mjs +304 -0
- package/dist/physics/investigation/refraction.d.mts +40 -0
- package/dist/physics/investigation/refraction.mjs +161 -0
- package/dist/physics/investigation/space.mjs +191 -0
- package/dist/physics/investigation/trolley.d.mts +43 -0
- package/dist/physics/investigation/trolley.mjs +194 -0
- package/dist/physics/investigation-activity.d.mts +25 -0
- package/dist/physics/investigation-activity.mjs +86 -0
- package/dist/physics/kepler/index.d.mts +2 -1
- package/dist/physics/kepler/preset.d.mts +1 -11
- package/dist/physics/kepler/preset.mjs +20 -21
- package/dist/physics/lever/asset.d.mts +0 -1
- package/dist/physics/lever/index.d.mts +2 -1
- package/dist/physics/lever/preset.d.mts +2 -17
- package/dist/physics/lever/preset.mjs +7 -5
- package/dist/physics/lift-weight/index.d.mts +2 -0
- package/dist/physics/lift-weight/preset.d.mts +23 -0
- package/dist/physics/lift-weight/preset.mjs +362 -0
- package/dist/physics/lifting-work/preset.mjs +411 -0
- package/dist/physics/linear-pursuit/preset.d.mts +1 -12
- package/dist/physics/lorentz/index.d.mts +2 -1
- package/dist/physics/lorentz/model.mjs +16 -0
- package/dist/physics/lorentz/preset.d.mts +1 -14
- package/dist/physics/lorentz/preset.mjs +162 -93
- package/dist/physics/machines/ac-generator/core.d.mts +41 -0
- package/dist/physics/machines/ac-generator/core.mjs +63 -0
- package/dist/physics/machines/ac-generator/index.d.mts +3 -0
- package/dist/physics/machines/ac-generator/model.mjs +14 -0
- package/dist/physics/machines/ac-generator/preset.d.mts +30 -0
- package/dist/physics/machines/ac-generator/preset.mjs +684 -0
- package/dist/physics/machines/dc-motor/core.d.mts +28 -0
- package/dist/physics/machines/dc-motor/core.mjs +69 -0
- package/dist/physics/machines/dc-motor/index.d.mts +3 -0
- package/dist/physics/machines/dc-motor/preset.d.mts +30 -0
- package/dist/physics/machines/dc-motor/preset.mjs +689 -0
- package/dist/physics/magnetism/formula-core.d.mts +1 -0
- package/dist/physics/magnetism/formula-core.mjs +30 -0
- package/dist/physics/magnetism/index.d.mts +4 -1
- package/dist/physics/magnetism/preset.d.mts +2 -8
- package/dist/physics/magnetism/preset.mjs +73 -37
- package/dist/physics/mechanics/activity.mjs +8 -21
- package/dist/physics/mechanics/core.d.mts +59 -23
- package/dist/physics/mechanics/core.mjs +90 -55
- package/dist/physics/mechanics/presentation.mjs +3 -98
- package/dist/physics/modern/imaging/activity.d.mts +0 -1
- package/dist/physics/modern/imaging/index.d.mts +7 -2
- package/dist/physics/modern/imaging/pet-activity.d.mts +5 -0
- package/dist/physics/modern/imaging/pet-activity.mjs +115 -0
- package/dist/physics/modern/imaging/pet-core.d.mts +296 -0
- package/dist/physics/modern/imaging/pet-core.mjs +389 -0
- package/dist/physics/modern/imaging/pet-preset.d.mts +26 -0
- package/dist/physics/modern/imaging/pet-preset.mjs +167 -0
- package/dist/physics/modern/imaging/pet-scene.d.mts +21 -0
- package/dist/physics/modern/imaging/pet-scene.mjs +245 -0
- package/dist/physics/modern/imaging/preset.d.mts +1 -10
- package/dist/physics/modern/imaging/spectrum-activity.d.mts +0 -1
- package/dist/physics/modern/imaging/spectrum-preset.d.mts +1 -10
- package/dist/physics/modern/imaging/spectrum-preset.mjs +5 -4
- package/dist/physics/modern/imaging/spectrum-scene.d.mts +1 -5
- package/dist/physics/modern/imaging/spectrum-scene.mjs +3 -1
- package/dist/physics/modern/imaging/xray-core.d.mts +20 -1
- package/dist/physics/modern/imaging/xray-core.mjs +26 -1
- package/dist/physics/modern/imaging/xray-scene.mjs +2 -2
- package/dist/physics/modern/index.d.mts +14 -5
- package/dist/physics/modern/index.mjs +9 -5
- package/dist/physics/modern/nuclear/activity.d.mts +0 -1
- package/dist/physics/modern/nuclear/core.d.mts +2 -3
- package/dist/physics/modern/nuclear/core.mjs +2 -1
- package/dist/physics/modern/nuclear/fission-activity.d.mts +0 -1
- package/dist/physics/modern/nuclear/fission-core.d.mts +1 -9
- package/dist/physics/modern/nuclear/fission-preset.d.mts +1 -10
- package/dist/physics/modern/nuclear/fission-scene.mjs +4 -5
- package/dist/physics/modern/nuclear/index.d.mts +4 -2
- package/dist/physics/modern/nuclear/preset.d.mts +1 -8
- package/dist/physics/modern/quantum/activity.d.mts +0 -1
- package/dist/physics/modern/quantum/bloch-activity.d.mts +0 -1
- package/dist/physics/modern/quantum/bloch-preset.d.mts +2 -13
- package/dist/physics/modern/quantum/bloch-preset.mjs +9 -9
- package/dist/physics/modern/quantum/double-slit-activity.d.mts +0 -1
- package/dist/physics/modern/quantum/double-slit-core.d.mts +32 -1
- package/dist/physics/modern/quantum/double-slit-core.mjs +43 -5
- package/dist/physics/modern/quantum/double-slit-preset.d.mts +2 -11
- package/dist/physics/modern/quantum/double-slit-preset.mjs +187 -126
- package/dist/physics/modern/quantum/gates-activity.d.mts +0 -1
- package/dist/physics/modern/quantum/gates-core.d.mts +0 -1
- package/dist/physics/modern/quantum/gates-core.mjs +6 -3
- package/dist/physics/modern/quantum/gates-preset.d.mts +1 -8
- package/dist/physics/modern/quantum/index.d.mts +4 -2
- package/dist/physics/modern/quantum/photoelectric-core.d.mts +2 -2
- package/dist/physics/modern/quantum/photoelectric-core.mjs +3 -2
- package/dist/physics/modern/quantum/preset.d.mts +1 -10
- package/dist/physics/modern/quantum/preset.mjs +1 -1
- package/dist/physics/modern/quantum/uncertainty-activity.d.mts +0 -1
- package/dist/physics/modern/quantum/uncertainty-preset.d.mts +1 -8
- package/dist/physics/modern/relativity/activity.d.mts +0 -1
- package/dist/physics/modern/relativity/explorer-activity.d.mts +0 -1
- package/dist/physics/modern/relativity/explorer-core.d.mts +0 -1
- package/dist/physics/modern/relativity/explorer-preset.d.mts +1 -8
- package/dist/physics/modern/relativity/index.d.mts +2 -1
- package/dist/physics/modern/relativity/length-activity.d.mts +0 -1
- package/dist/physics/modern/relativity/length-core.d.mts +0 -1
- package/dist/physics/modern/relativity/length-core.mjs +1 -1
- package/dist/physics/modern/relativity/length-preset.d.mts +1 -8
- package/dist/physics/modern/relativity/length-preset.mjs +2 -2
- package/dist/physics/modern/relativity/light-clock.d.mts +1 -4
- package/dist/physics/modern/relativity/light-clock.mjs +3 -3
- package/dist/physics/modern/relativity/muon-activity.d.mts +0 -1
- package/dist/physics/modern/relativity/muon-core.mjs +1 -1
- package/dist/physics/modern/relativity/muon-preset.d.mts +1 -10
- package/dist/physics/modern/relativity/muon-scene.d.mts +1 -6
- package/dist/physics/modern/relativity/muon-scene.mjs +3 -3
- package/dist/physics/modern/relativity/preset.d.mts +1 -12
- package/dist/physics/modern/relativity/simultaneity-activity.d.mts +0 -1
- package/dist/physics/modern/relativity/simultaneity-core.d.mts +0 -1
- package/dist/physics/modern/relativity/simultaneity-core.mjs +1 -1
- package/dist/physics/modern/relativity/simultaneity-preset.d.mts +1 -8
- package/dist/physics/modern/relativity/simultaneity-preset.mjs +1 -1
- package/dist/physics/modern/relativity/spacetime.d.mts +1 -4
- package/dist/physics/modern/shared/experiment-transport.d.mts +2 -12
- package/dist/physics/modern/shared/experiment-transport.mjs +28 -23
- package/dist/physics/modern/shared/index.d.mts +2 -1
- package/dist/physics/optics/asset.d.mts +0 -1
- package/dist/physics/optics/index.d.mts +2 -2
- package/dist/physics/optics/lens.d.mts +1 -12
- package/dist/physics/optics/lens.mjs +235 -226
- package/dist/physics/optics/mirror.d.mts +1 -12
- package/dist/physics/optics/mirror.mjs +237 -227
- package/dist/physics/optics/preset.d.mts +1 -8
- package/dist/physics/optics/preset.mjs +1 -1
- package/dist/physics/optics/refraction.d.mts +1 -12
- package/dist/physics/optics/refraction.mjs +8 -5
- package/dist/physics/orbit-lab.d.mts +2 -10
- package/dist/physics/orbit-lab.mjs +153 -156
- package/dist/physics/orbital/core.d.mts +57 -14
- package/dist/physics/orbital/core.mjs +60 -38
- package/dist/physics/orbital/model.d.mts +50 -0
- package/dist/physics/orbital/model.mjs +66 -0
- package/dist/physics/power/index.d.mts +2 -1
- package/dist/physics/power/preset.d.mts +1 -13
- package/dist/physics/power/preset.mjs +12 -11
- package/dist/physics/projectiles/core.d.mts +1 -0
- package/dist/physics/projectiles/core.mjs +32 -4
- package/dist/physics/projectiles/falling-target.d.mts +1 -12
- package/dist/physics/projectiles/falling-target.mjs +4 -3
- package/dist/physics/projectiles/index.d.mts +3 -1
- package/dist/physics/projectiles/moving-launcher.d.mts +1 -15
- package/dist/physics/projectiles/moving-launcher.mjs +4 -4
- package/dist/physics/rain-relative/index.d.mts +2 -1
- package/dist/physics/rain-relative/model.mjs +14 -0
- package/dist/physics/rain-relative/preset.d.mts +1 -10
- package/dist/physics/rain-relative/preset.mjs +14 -10
- package/dist/physics/ramp-forces/index.d.mts +2 -1
- package/dist/physics/ramp-forces/preset.d.mts +1 -15
- package/dist/physics/ramp-forces/preset.mjs +63 -44
- package/dist/physics/river-boat.d.mts +1 -12
- package/dist/physics/river-crossing.mjs +1 -1
- package/dist/physics/shm/core.mjs +51 -17
- package/dist/physics/shm/energy.d.mts +24 -0
- package/dist/physics/shm/energy.mjs +654 -0
- package/dist/physics/shm/graphs.d.mts +20 -0
- package/dist/physics/shm/graphs.mjs +483 -0
- package/dist/physics/shm/index.d.mts +6 -1
- package/dist/physics/shm/pendulum-worlds.d.mts +18 -0
- package/dist/physics/shm/pendulum-worlds.mjs +356 -0
- package/dist/physics/shm/preset.d.mts +2 -14
- package/dist/physics/shm/preset.mjs +107 -33
- package/dist/physics/shm/springs.d.mts +23 -0
- package/dist/physics/shm/springs.mjs +404 -0
- package/dist/physics/spin-studio/index.d.mts +2 -0
- package/dist/physics/spin-studio/preset.d.mts +20 -0
- package/dist/physics/spin-studio/preset.mjs +395 -0
- package/dist/physics/stopping-distance/index.d.mts +2 -1
- package/dist/physics/stopping-distance/preset.d.mts +1 -14
- package/dist/physics/stopping-distance/preset.mjs +58 -52
- package/dist/physics/stress-strain/core.d.mts +1 -6
- package/dist/physics/stress-strain/core.mjs +1 -1
- package/dist/physics/stress-strain/index.d.mts +2 -1
- package/dist/physics/stress-strain/preset.d.mts +2 -15
- package/dist/physics/stress-strain/preset.mjs +285 -89
- package/dist/physics/suspension/index.d.mts +2 -0
- package/dist/physics/suspension/preset.d.mts +26 -0
- package/dist/physics/suspension/preset.mjs +887 -0
- package/dist/physics/temperature-scales/index.d.mts +2 -1
- package/dist/physics/temperature-scales/preset.d.mts +1 -9
- package/dist/physics/temperature-scales/preset.mjs +24 -17
- package/dist/physics/terminal-velocity/index.d.mts +2 -1
- package/dist/physics/terminal-velocity/model.mjs +54 -0
- package/dist/physics/terminal-velocity/preset.d.mts +1 -11
- package/dist/physics/terminal-velocity/preset.mjs +25 -59
- package/dist/physics/thermal/activity.d.mts +3 -39
- package/dist/physics/thermal/activity.mjs +8 -21
- package/dist/physics/thermal/index.d.mts +2 -1
- package/dist/physics/thermal/model.mjs +46 -0
- package/dist/physics/thermal/preset.d.mts +1 -17
- package/dist/physics/thermal/preset.mjs +45 -44
- package/dist/physics/ultrasound/core.d.mts +221 -0
- package/dist/physics/ultrasound/core.mjs +235 -0
- package/dist/physics/vector-board/index.d.mts +2 -1
- package/dist/physics/vector-board/preset.d.mts +1 -17
- package/dist/physics/vector-board/preset.mjs +93 -39
- package/dist/physics/vector-types/index.d.mts +2 -1
- package/dist/physics/vector-types/preset.d.mts +1 -8
- package/dist/physics/venturi/core.mjs +1 -1
- package/dist/physics/venturi/index.d.mts +2 -1
- package/dist/physics/venturi/preset.d.mts +1 -10
- package/dist/physics/venturi/preset.mjs +2 -1
- package/dist/physics/water-density/index.d.mts +2 -1
- package/dist/physics/water-density/preset.d.mts +1 -8
- package/dist/physics/water-density/preset.mjs +34 -38
- package/dist/physics/waves/doppler-core.d.mts +106 -0
- package/dist/physics/waves/doppler-core.mjs +157 -0
- package/dist/physics/waves/doppler-model.mjs +90 -0
- package/dist/physics/waves/doppler.d.mts +1 -11
- package/dist/physics/waves/doppler.mjs +32 -52
- package/dist/physics/waves/guitar.d.mts +22 -0
- package/dist/physics/waves/guitar.mjs +807 -0
- package/dist/physics/waves/index.d.mts +3 -1
- package/dist/physics/waves/interference-core.d.mts +157 -0
- package/dist/physics/waves/interference-core.mjs +207 -0
- package/dist/physics/waves/preset.d.mts +2 -15
- package/dist/physics/waves/preset.mjs +24 -20
- package/dist/physics/waves/ripple.d.mts +2 -13
- package/dist/physics/waves/ripple.mjs +25 -12
- package/dist/physics/waves/string.d.mts +2 -14
- package/dist/physics/waves/string.mjs +43 -19
- package/dist/physics/waves/wave-activity.mjs +53 -3
- package/dist/physics/work-energy/index.d.mts +2 -1
- package/dist/physics/work-energy/preset.d.mts +1 -8
- package/dist/physics/work-energy/preset.mjs +11 -10
- package/dist/physics/work-potential/index.d.mts +2 -1
- package/dist/physics/work-potential/preset.d.mts +1 -16
- package/dist/physics/work-potential/preset.mjs +18 -17
- package/dist/schemas/activity-authoring.d.mts +2 -3
- package/dist/schemas/index.d.mts +2 -3
- package/dist/shared/fields.mjs +1 -1
- package/dist/statistics/center-spread/preset.d.mts +1 -14
- package/dist/statistics/center-spread/preset.mjs +11 -8
- package/dist/statistics/frequency-density/index.d.mts +2 -1
- package/dist/statistics/frequency-density/preset.d.mts +1 -10
- package/dist/statistics/frequency-density/preset.mjs +1 -1
- package/dist/statistics/galton/preset.d.mts +1 -12
- package/dist/statistics/galton/preset.mjs +7 -6
- package/dist/statistics/histogram/preset.d.mts +1 -12
- package/dist/statistics/histogram/preset.mjs +12 -8
- package/dist/statistics/index.d.mts +2 -0
- package/dist/statistics/normal/preset.d.mts +1 -13
- package/dist/statistics/normal/preset.mjs +7 -3
- package/dist/statistics/ogive/index.d.mts +2 -1
- package/dist/statistics/ogive/preset.d.mts +1 -8
- package/dist/statistics/sampling/preset.d.mts +1 -14
- package/dist/statistics/sequence/preset.d.mts +1 -12
- package/dist/statistics/sequence/preset.mjs +8 -5
- package/dist/statistics/z-table/preset.d.mts +1 -12
- package/dist/statistics/z-table/preset.mjs +9 -7
- package/dist/tex/index.d.mts +2 -0
- package/dist/tex/index.mjs +3 -0
- package/dist/three/biology/cell-energy.d.mts +2 -8
- package/dist/three/biology/cell-system.d.mts +3 -10
- package/dist/three/biology/cell-world.d.mts +5 -33
- package/dist/three/biology/cell-world.mjs +173 -171
- package/dist/three/biology/meiosis-explorer.d.mts +2 -7
- package/dist/three/biology/membrane-transport.d.mts +2 -7
- package/dist/three/biology/membrane-transport.mjs +3 -2
- package/dist/three/biology/mitosis-explorer.d.mts +2 -8
- package/dist/three/biology/mitosis-explorer.mjs +11 -10
- package/dist/three/biology/organelles.d.mts +1 -11
- package/dist/three/chemistry/atomic-orbital.d.mts +1 -1
- package/dist/three/chemistry/atomic-orbital.mjs +4 -2
- package/dist/three/chemistry/crystal-lattice.d.mts +1 -1
- package/dist/three/chemistry/crystal-lattice.mjs +38 -37
- package/dist/three/chemistry/molecular-geometry.d.mts +1 -1
- package/dist/three/chemistry/molecular-geometry.mjs +12 -8
- package/dist/three/chemistry/orbital-overlap.d.mts +1 -1
- package/dist/three/chemistry/stereochemistry.d.mts +1 -1
- package/dist/three/index.d.mts +3 -0
- package/dist/three/model-asset.d.mts +1 -7
- package/dist/three/palette.d.mts +0 -1
- package/dist/three/palette.mjs +1 -1
- package/dist/three/physics/bloch-sphere.d.mts +0 -1
- package/dist/three/physics/spatial-lorentz.d.mts +1 -1
- package/dist/three/physics/spatial-lorentz.mjs +2 -2
- package/dist/three/primitives.d.mts +7 -48
- package/dist/three/primitives.mjs +3 -3
- package/dist/three/surface.d.mts +1 -14
- package/package.json +44 -8
- package/styles/core.css +753 -661
- package/styles/domains/algorithms.css +3 -3
- package/styles/domains/biology.css +2 -3
- package/styles/domains/chemistry.css +2 -3
- package/styles/domains/circuits.css +2 -3
- package/styles/domains/discrete.css +2 -3
- package/styles/domains/editor.css +2 -3
- package/styles/domains/ict.css +2 -3
- package/styles/domains/logic.css +2 -3
- package/styles/domains/math.css +2 -3
- package/styles/domains/ml.css +2 -3
- package/styles/domains/networking.css +4 -0
- package/styles/domains/parts/algorithms-0.css +441 -0
- package/styles/domains/parts/algorithms-3.css +1 -1
- package/styles/domains/parts/biology.css +91 -0
- package/styles/domains/parts/chemistry.css +1452 -28
- package/styles/domains/parts/circuits.css +1 -1
- package/styles/domains/parts/discrete-2.css +12 -3
- package/styles/domains/parts/discrete-6.css +38 -13
- package/styles/domains/parts/editor.css +23 -0
- package/styles/domains/parts/logic-2.css +1 -1
- package/styles/domains/parts/math-1.css +33 -3
- package/styles/domains/parts/math-2.css +9 -0
- package/styles/domains/parts/math-6.css +107 -20
- package/styles/domains/parts/networking.css +212 -0
- package/styles/domains/parts/physics-1.css +92 -10
- package/styles/domains/parts/physics-2.css +25 -3
- package/styles/domains/parts/physics-3.css +52 -11
- package/styles/domains/physics.css +2 -3
- package/styles/domains/probability.css +2 -3
- package/styles/domains/statistics.css +2 -3
- package/styles/domains.css +2 -2
- package/styles/figure.css +130 -4
- package/dist/kit/answer-check.d.mts +0 -38
- package/dist/kit/answer-check.mjs +0 -93
- package/dist/kit/calc.d.mts +0 -33
- package/dist/kit/calc.mjs +0 -27
- package/dist/kit/expr-analysis.d.mts +0 -49
- package/dist/kit/expr-analysis.mjs +0 -166
- package/dist/kit/solve.d.mts +0 -21
- package/dist/kit/solve.mjs +0 -75
- package/dist/kit/space.mjs +0 -326
- package/dist/math/complex/core.d.mts +0 -93
- package/dist/math/complex/core.mjs +0 -239
- package/dist/math/poly/core.d.mts +0 -50
- package/dist/math/poly/core.mjs +0 -268
- package/dist/networking/contract.d.mts +0 -136
- package/dist/networking/encapsulation.mjs +0 -130
- package/dist/networking/ip.d.mts +0 -12
- package/dist/networking/ip.mjs +0 -30
- package/dist/networking/media.mjs +0 -183
- package/dist/networking/presets.d.mts +0 -7
- package/dist/networking/presets.mjs +0 -302
- package/dist/networking/simulation.d.mts +0 -8
- package/dist/networking/simulation.mjs +0 -148
- package/dist/networking/subnet.mjs +0 -84
- package/dist/networking/switch.mjs +0 -155
- package/dist/networking/vlan.mjs +0 -100
- package/dist/networking/vpn.mjs +0 -118
- package/dist/physics/alternating-current/core.d.mts +0 -162
- package/dist/physics/alternating-current/core.mjs +0 -155
- package/dist/physics/fields/spatial-core.d.mts +0 -16
- package/dist/physics/fields/spatial-core.mjs +0 -72
- package/dist/physics/modern/constants.d.mts +0 -5
- package/dist/physics/modern/constants.mjs +0 -6
- package/dist/physics/optics/core.d.mts +0 -37
- package/dist/physics/optics/core.mjs +0 -67
- package/dist/physics/vector-scene.d.mts +0 -41
- package/dist/physics/vector-scene.mjs +0 -235
- package/dist/physics/waves/core.mjs +0 -33
- package/styles/domains/parts/shared-1.css +0 -142
- package/styles/domains/parts/shared-2.css +0 -60
- package/styles/domains/shared.css +0 -3
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import { ELECTRONVOLT, ELECTRON_REST_ENERGY_MEV, HC_EV_NM, SPEED_OF_LIGHT } from "../../constants.mjs";
|
|
2
|
+
import { decayConstant, remainingFraction } from "../../attenuation/core.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/physics/modern/imaging/pet-core.ts
|
|
5
|
+
/**
|
|
6
|
+
* Positron emission tomography: the tracer, the annihilation, and the line of response.
|
|
7
|
+
*
|
|
8
|
+
* Cambridge 9702 topic 24.3, which the A2 medical-and-astronomy course promised in its summary, in
|
|
9
|
+
* its coverage list and in an outcome ("describe electron-positron annihilation and 511 keV
|
|
10
|
+
* collinear photon coincidence detection in PET") and then taught in none of its twelve lessons.
|
|
11
|
+
* This is the engine that closes that gap, rather than the promise being quietly deleted.
|
|
12
|
+
*
|
|
13
|
+
* ── Why PET is a different KIND of imaging from everything else in topic 24 ─────────────────────
|
|
14
|
+
* X-ray radiography and CT are TRANSMISSION imaging: the source is outside the patient, and the
|
|
15
|
+
* image is what survived the journey through (`attenuation/core.ts`, `xray-core.ts`). Ultrasound is
|
|
16
|
+
* REFLECTION imaging: the source is outside, and the image is what came back off the boundaries
|
|
17
|
+
* (`ultrasound/core.ts`). PET is EMISSION imaging: the source is INSIDE the patient, it was
|
|
18
|
+
* injected, and it went where the body's own metabolism took it.
|
|
19
|
+
*
|
|
20
|
+
* That is the distinction worth teaching first, because it changes what the picture means. A
|
|
21
|
+
* radiograph shows anatomy: what is dense and where. A PET scan shows FUNCTION: what is consuming
|
|
22
|
+
* glucose fastest. A tumour and healthy tissue of the same density are one grey in a radiograph and
|
|
23
|
+
* two very different brightnesses here.
|
|
24
|
+
*
|
|
25
|
+
* ── Why the two photons come out back to back ──────────────────────────────────────────────────
|
|
26
|
+
* A positron meets an electron and both are annihilated. Two conservation laws fix what comes out:
|
|
27
|
+
*
|
|
28
|
+
* energy: the rest energy of both particles, 2 m_e c^2 = 1.022 MeV, has to go somewhere
|
|
29
|
+
* momentum: the pair was very nearly at rest, so the total momentum was very nearly zero
|
|
30
|
+
*
|
|
31
|
+
* One photon cannot satisfy both: a single photon carrying 1.022 MeV would carry momentum E/c in
|
|
32
|
+
* whatever direction it left, and nothing would balance it. Two photons can, and only if they are
|
|
33
|
+
* equal in energy and OPPOSITE in direction. So 511 keV each, back to back, is not a measured
|
|
34
|
+
* coincidence to be memorised: it is forced, and a student who can say why has the marks.
|
|
35
|
+
*
|
|
36
|
+
* ── The line of response, and the honest limit of the time difference ──────────────────────────
|
|
37
|
+
* Detect both photons within a few nanoseconds of each other and you know the annihilation happened
|
|
38
|
+
* somewhere on the straight line joining the two detectors. That line is the datum PET is built
|
|
39
|
+
* from, and one line localises nothing: the image comes from where millions of lines cross.
|
|
40
|
+
*
|
|
41
|
+
* The syllabus then asks for the time difference, `x = c dt / 2`, which does place the event along
|
|
42
|
+
* the line. It is worth being straight about what that buys, because textbooks imply it is where the
|
|
43
|
+
* resolution comes from and it is not. Light travels 30 cm in a nanosecond. The best clinical timing
|
|
44
|
+
* is around 200 ps, so the position along the line is known to about 3 cm, while a PET image
|
|
45
|
+
* resolves about 4 mm. The time difference sharpens the statistics; the crossing lines make the
|
|
46
|
+
* picture. `timingResolutionToPositionMm` computes the first number so a lesson can compare them
|
|
47
|
+
* instead of asserting.
|
|
48
|
+
*
|
|
49
|
+
* ── Why the resolution floor is physics, not engineering ───────────────────────────────────────
|
|
50
|
+
* Two effects a better detector cannot fix. The positron is emitted with kinetic energy and travels
|
|
51
|
+
* a short distance before it slows enough to annihilate, so the photons leave from somewhere near
|
|
52
|
+
* the decay, not at it. And the pair is never exactly at rest, so the photons are not exactly
|
|
53
|
+
* collinear. Both blur the line. This is also why fluorine-18 wins: the longest half-life in the
|
|
54
|
+
* table AND the lowest positron energy, so the best resolution.
|
|
55
|
+
*/
|
|
56
|
+
const finitePositive = (value, what) => {
|
|
57
|
+
if (!Number.isFinite(value) || value <= 0) throw new RangeError(`${what} must be positive and finite`);
|
|
58
|
+
return value;
|
|
59
|
+
};
|
|
60
|
+
const finite = (value, what) => {
|
|
61
|
+
if (!Number.isFinite(value)) throw new RangeError(`${what} must be finite`);
|
|
62
|
+
return value;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Energy of each annihilation photon, in MeV. The 511 keV the whole technique is named around.
|
|
66
|
+
*
|
|
67
|
+
* Derived from the electron rest energy rather than typed as 0.511, because the equality IS the
|
|
68
|
+
* physics: each photon carries away exactly one particle's worth of rest energy.
|
|
69
|
+
*/
|
|
70
|
+
const ANNIHILATION_PHOTON_MEV = ELECTRON_REST_ENERGY_MEV;
|
|
71
|
+
/** Total energy released, in MeV: both rest energies, 1.022 MeV. */
|
|
72
|
+
const ANNIHILATION_TOTAL_MEV = 2 * ELECTRON_REST_ENERGY_MEV;
|
|
73
|
+
/** Energy of one annihilation photon in joules, which is the unit an exam answer usually wants. */
|
|
74
|
+
const ANNIHILATION_PHOTON_J = ANNIHILATION_PHOTON_MEV * 1e6 * ELECTRONVOLT;
|
|
75
|
+
/**
|
|
76
|
+
* Wavelength of an annihilation photon, in metres: about 2.4 pm.
|
|
77
|
+
*
|
|
78
|
+
* Worth computing once in a lesson to place these photons on the spectrum. 2.4 pm is shorter than an
|
|
79
|
+
* atomic spacing, which is why they leave the body almost unimpeded and can be detected outside it
|
|
80
|
+
* at all. It is also the Compton wavelength of the electron, which is not a coincidence.
|
|
81
|
+
*/
|
|
82
|
+
const ANNIHILATION_PHOTON_WAVELENGTH_M = HC_EV_NM / (ANNIHILATION_PHOTON_MEV * 1e6) * 1e-9;
|
|
83
|
+
/** Momentum of one annihilation photon, `p = E / c`, in kg m/s. */
|
|
84
|
+
const ANNIHILATION_PHOTON_MOMENTUM = ANNIHILATION_PHOTON_J / SPEED_OF_LIGHT;
|
|
85
|
+
/**
|
|
86
|
+
* Photon energy for an annihilating pair with some kinetic energy left, in MeV.
|
|
87
|
+
*
|
|
88
|
+
* Almost always quoted as if the pair were at rest, and for the syllabus that is right. This exists
|
|
89
|
+
* so a lesson can show WHY the approximation is safe: a positron has to slow to a few eV before it
|
|
90
|
+
* annihilates, against a rest energy of 511 keV, so the shift is parts per hundred thousand.
|
|
91
|
+
*/
|
|
92
|
+
function photonEnergyFromPairMev(kineticTotalMev) {
|
|
93
|
+
return (ANNIHILATION_TOTAL_MEV + finite(kineticTotalMev, "kinetic energy")) / 2;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* The tracers a PET centre actually stocks.
|
|
97
|
+
*
|
|
98
|
+
* Every half-life here is in MINUTES, and that is the fact to notice before any of the others: a
|
|
99
|
+
* tracer cannot be ordered and shelved. Oxygen-15 has to be made in the room. Fluorine-18's
|
|
100
|
+
* 110 minutes is the longest in clinical use and it is still a courier run against the clock, which
|
|
101
|
+
* is why PET centres are built beside cyclotrons and why a missed delivery slot cancels the scan.
|
|
102
|
+
*
|
|
103
|
+
* The short half-life is not a nuisance to be engineered around: it is deliberate. The activity has
|
|
104
|
+
* to fall away quickly once the picture is taken, or the dose keeps accumulating for no benefit.
|
|
105
|
+
*/
|
|
106
|
+
const PET_TRACERS = {
|
|
107
|
+
fluorine18: {
|
|
108
|
+
label: "fluorine-18 (FDG)",
|
|
109
|
+
halfLifeMin: 109.77,
|
|
110
|
+
positronMaxMev: .633,
|
|
111
|
+
rangeMm: .6,
|
|
112
|
+
use: "glucose uptake, so tumours, brain metabolism and inflammation"
|
|
113
|
+
},
|
|
114
|
+
gallium68: {
|
|
115
|
+
label: "gallium-68",
|
|
116
|
+
halfLifeMin: 67.71,
|
|
117
|
+
positronMaxMev: 1.899,
|
|
118
|
+
rangeMm: 2.9,
|
|
119
|
+
use: "receptor imaging, from a generator rather than a cyclotron"
|
|
120
|
+
},
|
|
121
|
+
carbon11: {
|
|
122
|
+
label: "carbon-11",
|
|
123
|
+
halfLifeMin: 20.36,
|
|
124
|
+
positronMaxMev: .96,
|
|
125
|
+
rangeMm: 1.1,
|
|
126
|
+
use: "labelling almost any organic molecule, since carbon is already in it"
|
|
127
|
+
},
|
|
128
|
+
nitrogen13: {
|
|
129
|
+
label: "nitrogen-13",
|
|
130
|
+
halfLifeMin: 9.965,
|
|
131
|
+
positronMaxMev: 1.198,
|
|
132
|
+
rangeMm: 1.5,
|
|
133
|
+
use: "ammonia for blood flow in heart muscle"
|
|
134
|
+
},
|
|
135
|
+
oxygen15: {
|
|
136
|
+
label: "oxygen-15",
|
|
137
|
+
halfLifeMin: 2.037,
|
|
138
|
+
positronMaxMev: 1.732,
|
|
139
|
+
rangeMm: 2.5,
|
|
140
|
+
use: "labelled water for blood flow, made in the room it is used in"
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
const tracerOf = (id) => PET_TRACERS[id];
|
|
144
|
+
/**
|
|
145
|
+
* Fraction of a tracer dose still active after a delay, in minutes.
|
|
146
|
+
*
|
|
147
|
+
* The same exponential law as beam attenuation, over time rather than distance, so it comes from
|
|
148
|
+
* `attenuation/core.ts` rather than being written again here. A lesson can make the point directly:
|
|
149
|
+
* `N = N_0 e^(-kx)` does not care whether `x` is a thickness of lead or an hour of the afternoon.
|
|
150
|
+
*/
|
|
151
|
+
function tracerRemaining(id, minutes) {
|
|
152
|
+
finite(minutes, "delay");
|
|
153
|
+
return remainingFraction(decayConstant(PET_TRACERS[id].halfLifeMin), Math.max(0, minutes));
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Minutes until a dose falls to a usable fraction of what was made.
|
|
157
|
+
*
|
|
158
|
+
* The number a delivery schedule is built from. Answers "can this tracer survive the drive", which
|
|
159
|
+
* for oxygen-15 is no, at any distance.
|
|
160
|
+
*/
|
|
161
|
+
function tracerUsableMinutes(id, usableFraction) {
|
|
162
|
+
const f = finitePositive(usableFraction, "usable fraction");
|
|
163
|
+
if (f >= 1) return 0;
|
|
164
|
+
return PET_TRACERS[id].halfLifeMin * (Math.log(1 / f) / Math.LN2);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Where a pair of collinear photons leaves a detector ring, and when each one arrives.
|
|
168
|
+
*
|
|
169
|
+
* `emissionAngle` is the direction the first photon took, in radians; the second goes exactly
|
|
170
|
+
* opposite, which is the part conservation of momentum forces. The ring is centred on the origin.
|
|
171
|
+
* Both photons travel at `c` regardless of which way they went, so the arrival times differ only
|
|
172
|
+
* because the distances do, which is the entire basis of time-of-flight localisation.
|
|
173
|
+
*
|
|
174
|
+
* Throws if the annihilation is outside the ring, because there is no physical geometry to report.
|
|
175
|
+
*/
|
|
176
|
+
function lineOfResponse(annihilation, ringRadiusM, emissionAngle) {
|
|
177
|
+
const r = finitePositive(ringRadiusM, "ring radius");
|
|
178
|
+
finite(annihilation.x, "annihilation x");
|
|
179
|
+
finite(annihilation.y, "annihilation y");
|
|
180
|
+
finite(emissionAngle, "emission angle");
|
|
181
|
+
const fromCentre = Math.hypot(annihilation.x, annihilation.y);
|
|
182
|
+
if (fromCentre >= r) throw new RangeError("annihilation must lie inside the detector ring");
|
|
183
|
+
const ux = Math.cos(emissionAngle);
|
|
184
|
+
const uy = Math.sin(emissionAngle);
|
|
185
|
+
const alongToCentre = annihilation.x * ux + annihilation.y * uy;
|
|
186
|
+
const discriminant = Math.sqrt(alongToCentre * alongToCentre + (r * r - fromCentre * fromCentre));
|
|
187
|
+
const distanceAM = discriminant - alongToCentre;
|
|
188
|
+
const distanceBM = discriminant + alongToCentre;
|
|
189
|
+
return {
|
|
190
|
+
detectorA: {
|
|
191
|
+
x: annihilation.x + ux * distanceAM,
|
|
192
|
+
y: annihilation.y + uy * distanceAM
|
|
193
|
+
},
|
|
194
|
+
detectorB: {
|
|
195
|
+
x: annihilation.x - ux * distanceBM,
|
|
196
|
+
y: annihilation.y - uy * distanceBM
|
|
197
|
+
},
|
|
198
|
+
chordM: distanceAM + distanceBM,
|
|
199
|
+
distanceAM,
|
|
200
|
+
distanceBM,
|
|
201
|
+
timeDifferenceS: (distanceBM - distanceAM) / SPEED_OF_LIGHT,
|
|
202
|
+
offsetFromMidpointM: (distanceBM - distanceAM) / 2
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Position of the annihilation along the line, from the arrival time difference: `x = c dt / 2`.
|
|
207
|
+
*
|
|
208
|
+
* The 24.3 calculation, and the factor of two is where the marks go. If the event sits `x` nearer to
|
|
209
|
+
* A, A's photon has `x` less to travel and B's photon has `x` more, so the PATH difference is `2x`
|
|
210
|
+
* and not `x`. Returns metres from the midpoint of the line, positive towards the detector that
|
|
211
|
+
* fired first.
|
|
212
|
+
*/
|
|
213
|
+
function positionFromTimeDifference(timeDifferenceS) {
|
|
214
|
+
return SPEED_OF_LIGHT * finite(timeDifferenceS, "time difference") / 2;
|
|
215
|
+
}
|
|
216
|
+
/** The time difference an event at a given offset from the midpoint would produce, in seconds. */
|
|
217
|
+
function timeDifferenceForOffset(offsetM) {
|
|
218
|
+
return 2 * finite(offsetM, "offset") / SPEED_OF_LIGHT;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Position uncertainty along the line, in mm, implied by a detector's timing resolution in ps.
|
|
222
|
+
*
|
|
223
|
+
* The honesty function. A clinical scanner's 200 ps gives about 30 mm, against an image resolution
|
|
224
|
+
* of about 4 mm, so the time difference is nowhere near good enough to place the event by itself.
|
|
225
|
+
* A lesson that quotes `x = c dt / 2` without this leaves the learner believing PET works in a way
|
|
226
|
+
* it does not.
|
|
227
|
+
*/
|
|
228
|
+
function timingResolutionToPositionMm(timingPs) {
|
|
229
|
+
return positionFromTimeDifference(finitePositive(timingPs, "timing resolution") * 1e-12) * 1e3;
|
|
230
|
+
}
|
|
231
|
+
/** Timing precision in ps needed to place an event to a given number of mm. The inverse. */
|
|
232
|
+
function timingForPositionPs(positionMm) {
|
|
233
|
+
return timeDifferenceForOffset(finitePositive(positionMm, "position") / 1e3) * 0xe8d4a51000;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Largest time difference a genuine pair can produce in a ring of a given radius, in seconds.
|
|
237
|
+
*
|
|
238
|
+
* Reached when the line is a diameter and the event sits right against one detector. Anything longer
|
|
239
|
+
* than this cannot be one annihilation, which is how the coincidence window is chosen: wide enough
|
|
240
|
+
* to admit every true pair, narrow enough to reject most accidental ones.
|
|
241
|
+
*/
|
|
242
|
+
function maxTrueTimeDifferenceS(ringRadiusM) {
|
|
243
|
+
return 2 * finitePositive(ringRadiusM, "ring radius") / SPEED_OF_LIGHT;
|
|
244
|
+
}
|
|
245
|
+
/** Whether a measured time difference is inside the coincidence window, given in nanoseconds. */
|
|
246
|
+
function withinCoincidenceWindow(timeDifferenceS, windowNs) {
|
|
247
|
+
return Math.abs(finite(timeDifferenceS, "time difference")) <= finitePositive(windowNs, "window") * 1e-9;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Approximate image resolution, in mm, from the two floors and the detector size.
|
|
251
|
+
*
|
|
252
|
+
* Combined in quadrature, as independent blurs are. The point of returning the terms alongside the
|
|
253
|
+
* total is that it shows which one dominates: with fluorine-18 and 4 mm detectors the detector wins,
|
|
254
|
+
* so a better crystal helps. With oxygen-15 the positron range wins, and no detector helps at all.
|
|
255
|
+
* That is a conclusion a learner can reach by changing a control, which is worth more than the
|
|
256
|
+
* number.
|
|
257
|
+
*
|
|
258
|
+
* Deliberately omits the block-decoding term real scanners carry, which adds about 2 mm and would
|
|
259
|
+
* bring these numbers up to the 4 to 5 mm a clinical scanner quotes. It is an engineering artefact
|
|
260
|
+
* of how detector crystals are ganged together behind shared photomultipliers, and it is the one
|
|
261
|
+
* term here that is not physics.
|
|
262
|
+
*/
|
|
263
|
+
function imageResolutionMm(id, detectorWidthMm, ringRadiusM) {
|
|
264
|
+
const detector = finitePositive(detectorWidthMm, "detector width") / 2;
|
|
265
|
+
const range = PET_TRACERS[id].rangeMm;
|
|
266
|
+
const collinearity = .0022 * (2 * finitePositive(ringRadiusM, "ring radius") * 1e3);
|
|
267
|
+
return {
|
|
268
|
+
totalMm: Math.hypot(detector, range, collinearity),
|
|
269
|
+
detectorMm: detector,
|
|
270
|
+
rangeMm: range,
|
|
271
|
+
collinearityMm: collinearity
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Deterministic generator, so a scan renders the same on the server and in the browser.
|
|
276
|
+
*
|
|
277
|
+
* Every scene in this package has to survive hydration, and a scan built from `Math.random` would
|
|
278
|
+
* produce a different set of lines on each render. Mulberry32, seeded from a prop.
|
|
279
|
+
*/
|
|
280
|
+
function rng(seed) {
|
|
281
|
+
let a = seed >>> 0;
|
|
282
|
+
return () => {
|
|
283
|
+
a = a + 1831565813 >>> 0;
|
|
284
|
+
let t = a;
|
|
285
|
+
t = Math.imul(t ^ t >>> 15, t | 1);
|
|
286
|
+
t ^= t + Math.imul(t ^ t >>> 7, t | 61);
|
|
287
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Sample annihilations from a phantom and turn each into a line of response.
|
|
292
|
+
*
|
|
293
|
+
* The emission angle is uniform over a half turn and the two photons go opposite ways, which is the
|
|
294
|
+
* one piece of this that is not a modelling choice: an annihilation has no preferred direction, so
|
|
295
|
+
* every line through it is equally likely. That is exactly why the reconstruction works at all.
|
|
296
|
+
*
|
|
297
|
+
* Deliberately omits attenuation, scatter and random coincidences. Each of those degrades a real
|
|
298
|
+
* scan and none of them changes what a learner needs to see here, which is that a single line says
|
|
299
|
+
* almost nothing and ten thousand lines say where the tracer went.
|
|
300
|
+
*/
|
|
301
|
+
function simulatePetScan(phantom, ringRadiusM, count, seed = 1) {
|
|
302
|
+
const r = finitePositive(ringRadiusM, "ring radius");
|
|
303
|
+
finitePositive(phantom.bodyRadiusM, "body radius");
|
|
304
|
+
if (!Number.isInteger(count) || count < 0) throw new RangeError("event count must be a non-negative integer");
|
|
305
|
+
if (phantom.bodyRadiusM >= r) throw new RangeError("the body must fit inside the detector ring");
|
|
306
|
+
for (const source of phantom.sources) if (Math.hypot(source.x, source.y) + source.radiusM > phantom.bodyRadiusM) throw new RangeError(`source "${source.label}" does not fit inside the body`);
|
|
307
|
+
const next = rng(seed);
|
|
308
|
+
const bodyArea = Math.PI * phantom.bodyRadiusM ** 2;
|
|
309
|
+
const weights = phantom.sources.map((s) => s.uptake * Math.PI * s.radiusM ** 2);
|
|
310
|
+
const total = weights.reduce((sum, w) => sum + w, bodyArea);
|
|
311
|
+
const events = [];
|
|
312
|
+
for (let id = 0; id < count; id += 1) {
|
|
313
|
+
let pick = next() * total;
|
|
314
|
+
let sourceIndex = -1;
|
|
315
|
+
for (let i = 0; i < weights.length; i += 1) {
|
|
316
|
+
if (pick < weights[i]) {
|
|
317
|
+
sourceIndex = i;
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
pick -= weights[i];
|
|
321
|
+
}
|
|
322
|
+
const source = sourceIndex === -1 ? null : phantom.sources[sourceIndex];
|
|
323
|
+
const centreX = source?.x ?? 0;
|
|
324
|
+
const centreY = source?.y ?? 0;
|
|
325
|
+
const spread = source?.radiusM ?? phantom.bodyRadiusM;
|
|
326
|
+
const rho = Math.sqrt(next()) * spread;
|
|
327
|
+
const phi = next() * Math.PI * 2;
|
|
328
|
+
const origin = {
|
|
329
|
+
x: centreX + rho * Math.cos(phi),
|
|
330
|
+
y: centreY + rho * Math.sin(phi)
|
|
331
|
+
};
|
|
332
|
+
events.push({
|
|
333
|
+
id,
|
|
334
|
+
origin,
|
|
335
|
+
lor: lineOfResponse(origin, r, next() * Math.PI),
|
|
336
|
+
sourceIndex
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
return events;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Simple backprojection: lay every line of response back down and count the crossings.
|
|
343
|
+
*
|
|
344
|
+
* This is the whole idea of tomographic reconstruction in one function, and it is the same idea CT
|
|
345
|
+
* uses. Each line says "the event was somewhere along here", which on its own excludes almost
|
|
346
|
+
* nothing. Add them up and the places where many lines agree are the places the tracer actually
|
|
347
|
+
* was. A learner watching this grid fill in as the event count rises has seen the reconstruction
|
|
348
|
+
* happen rather than been told a scanner does it.
|
|
349
|
+
*
|
|
350
|
+
* Returns `[row][col]` with row 0 at the TOP of the image, matching how a scene draws, and the peak
|
|
351
|
+
* value so a caller can normalise. Real scanners filter before backprojecting, or iterate, both of
|
|
352
|
+
* which sharpen the result; plain backprojection blurs, and the blur is honest about what the data
|
|
353
|
+
* supports.
|
|
354
|
+
*
|
|
355
|
+
* Each cell accumulates the LENGTH of line that crossed it, not a count of marching steps. Counting
|
|
356
|
+
* steps was the first thing I wrote and it is subtly wrong: a diagonal chord takes more steps per
|
|
357
|
+
* cell than an axis-aligned one, so diagonal lines came out brighter and the image acquired a faint
|
|
358
|
+
* cross through the middle that no tracer put there. Weighting by path length is both the correct
|
|
359
|
+
* line integral and free of the artefact.
|
|
360
|
+
*/
|
|
361
|
+
function backproject(events, ringRadiusM, gridSize = 32) {
|
|
362
|
+
const r = finitePositive(ringRadiusM, "ring radius");
|
|
363
|
+
if (!Number.isInteger(gridSize) || gridSize < 2) throw new RangeError("grid size must be an integer >= 2");
|
|
364
|
+
const grid = Array.from({ length: gridSize }, () => Array.from({ length: gridSize }, () => 0));
|
|
365
|
+
const cell = 2 * r / gridSize;
|
|
366
|
+
let peak = 0;
|
|
367
|
+
for (const event of events) {
|
|
368
|
+
const { detectorA, detectorB } = event.lor;
|
|
369
|
+
const steps = Math.max(1, Math.ceil(event.lor.chordM / (cell / 4)));
|
|
370
|
+
const stepLength = event.lor.chordM / steps;
|
|
371
|
+
for (let i = 0; i < steps; i += 1) {
|
|
372
|
+
const t = (i + .5) / steps;
|
|
373
|
+
const x = detectorA.x + (detectorB.x - detectorA.x) * t;
|
|
374
|
+
const y = detectorA.y + (detectorB.y - detectorA.y) * t;
|
|
375
|
+
const col = Math.floor((x + r) / cell);
|
|
376
|
+
const row = Math.floor((r - y) / cell);
|
|
377
|
+
if (col < 0 || col >= gridSize || row < 0 || row >= gridSize) continue;
|
|
378
|
+
const value = grid[row][col] += stepLength;
|
|
379
|
+
if (value > peak) peak = value;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
return {
|
|
383
|
+
grid,
|
|
384
|
+
peak
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
//#endregion
|
|
389
|
+
export { ANNIHILATION_PHOTON_J, ANNIHILATION_PHOTON_MEV, ANNIHILATION_PHOTON_MOMENTUM, ANNIHILATION_PHOTON_WAVELENGTH_M, ANNIHILATION_TOTAL_MEV, PET_TRACERS, backproject, imageResolutionMm, lineOfResponse, maxTrueTimeDifferenceS, photonEnergyFromPairMev, positionFromTimeDifference, simulatePetScan, timeDifferenceForOffset, timingForPositionPs, timingResolutionToPositionMm, tracerOf, tracerRemaining, tracerUsableMinutes, withinCoincidenceWindow };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AuthoredActivity } from "../../../kit/activity-authoring.mjs";
|
|
2
|
+
import { PetTracerId } from "./pet-core.mjs";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
//#region src/physics/modern/imaging/pet-preset.d.ts
|
|
5
|
+
interface PetScanLabProps {
|
|
6
|
+
tracer?: PetTracerId;
|
|
7
|
+
/** Detector timing resolution in picoseconds. 200 ps is the best clinical hardware. */
|
|
8
|
+
timingPs?: number;
|
|
9
|
+
events?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Fraction of the scan already acquired when the lab loads, 0 to 1.
|
|
12
|
+
*
|
|
13
|
+
* Defaults to 0, so a learner watches the picture build from nothing. An author who wants the
|
|
14
|
+
* finished image visible at rest, in a lesson about what the reconstruction shows rather than
|
|
15
|
+
* how it arrives, can start it part way. This also makes the static gallery useful: a rasterised
|
|
16
|
+
* render never presses play, so without it every snapshot of this lab shows one coincidence.
|
|
17
|
+
*/
|
|
18
|
+
startAcquired?: number;
|
|
19
|
+
title?: string;
|
|
20
|
+
prompt?: string;
|
|
21
|
+
objectives?: string[];
|
|
22
|
+
activity?: AuthoredActivity;
|
|
23
|
+
}
|
|
24
|
+
declare function PetScanLab({ tracer: initialTracer, timingPs: initialTiming, events: totalEvents, startAcquired, title, prompt, objectives, activity }?: PetScanLabProps): ReactNode;
|
|
25
|
+
//#endregion
|
|
26
|
+
export { PetScanLab, PetScanLabProps };
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { ActivitySelect, Chip, Slider } from "../../../kit/controls.mjs";
|
|
4
|
+
import { Field, Readout } from "../../../kit/frame.mjs";
|
|
5
|
+
import { AuthoredActivityRuntime, AuthoredMetricGate } from "../../../kit/authored-activity-runtime.mjs";
|
|
6
|
+
import { ExperimentTransport, useExperimentTimeline } from "../shared/experiment-transport.mjs";
|
|
7
|
+
import { ANNIHILATION_PHOTON_MEV, ANNIHILATION_TOTAL_MEV, PET_TRACERS, backproject, imageResolutionMm, maxTrueTimeDifferenceS, positionFromTimeDifference, simulatePetScan, timingResolutionToPositionMm, tracerRemaining } from "./pet-core.mjs";
|
|
8
|
+
import { PetScanScene } from "./pet-scene.mjs";
|
|
9
|
+
import { petScanActivity } from "./pet-activity.mjs";
|
|
10
|
+
import { useMemo, useState } from "react";
|
|
11
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
|
|
13
|
+
//#region src/physics/modern/imaging/pet-preset.tsx
|
|
14
|
+
const TRACER_IDS = Object.keys(PET_TRACERS);
|
|
15
|
+
const RING_RADIUS_M = .4;
|
|
16
|
+
const GRID = 24;
|
|
17
|
+
/**
|
|
18
|
+
* A torso with raised glucose uptake in two places, which is what an FDG scan is looking for.
|
|
19
|
+
*
|
|
20
|
+
* Neither is drawn into the reconstruction. The right-hand panel is backprojected from the
|
|
21
|
+
* coincidences and nothing else, so the hot spots appear there only because the lines crossed.
|
|
22
|
+
*/
|
|
23
|
+
const PHANTOM = {
|
|
24
|
+
bodyRadiusM: .18,
|
|
25
|
+
sources: [{
|
|
26
|
+
label: "suspected tumour",
|
|
27
|
+
x: .07,
|
|
28
|
+
y: .06,
|
|
29
|
+
radiusM: .015,
|
|
30
|
+
uptake: 45
|
|
31
|
+
}, {
|
|
32
|
+
label: "bladder",
|
|
33
|
+
x: -.045,
|
|
34
|
+
y: -.105,
|
|
35
|
+
radiusM: .026,
|
|
36
|
+
uptake: 14
|
|
37
|
+
}]
|
|
38
|
+
};
|
|
39
|
+
const plural = (n, word) => `${n} ${word}${n === 1 ? "" : "s"}`;
|
|
40
|
+
function PetScanLab({ tracer: initialTracer = "fluorine18", timingPs: initialTiming = 400, events: totalEvents = 900, startAcquired = 0, title = "PET: locate the tracer from coincidences alone", prompt = "Each annihilation sends two 511 keV photons out back to back. Catch both and you have a line the event happened on. Collect enough lines and the tracer shows up where they cross.", objectives, activity } = {}) {
|
|
41
|
+
const [tracer, setTracer] = useState(initialTracer);
|
|
42
|
+
const [timingPs, setTimingPs] = useState(initialTiming);
|
|
43
|
+
const [truth, setTruth] = useState(false);
|
|
44
|
+
const timeline = useExperimentTimeline({
|
|
45
|
+
durationMs: 7200,
|
|
46
|
+
stops: [
|
|
47
|
+
0,
|
|
48
|
+
.1,
|
|
49
|
+
.35,
|
|
50
|
+
.65,
|
|
51
|
+
1
|
|
52
|
+
],
|
|
53
|
+
initialProgress: Math.max(0, Math.min(1, startAcquired))
|
|
54
|
+
});
|
|
55
|
+
const scan = useMemo(() => simulatePetScan(PHANTOM, RING_RADIUS_M, totalEvents, 20260918), [totalEvents]);
|
|
56
|
+
const collected = Math.max(1, Math.round(timeline.progress * totalEvents));
|
|
57
|
+
const events = useMemo(() => scan.slice(0, collected), [scan, collected]);
|
|
58
|
+
const { grid, peak } = useMemo(() => backproject(events, RING_RADIUS_M, GRID), [events]);
|
|
59
|
+
const live = events[events.length - 1];
|
|
60
|
+
const photonProgress = timeline.playing ? timeline.progress * totalEvents % 1 : 1;
|
|
61
|
+
const tofMm = timingResolutionToPositionMm(timingPs);
|
|
62
|
+
const resolution = imageResolutionMm(tracer, 4, RING_RADIUS_M);
|
|
63
|
+
const dtNs = live.lor.timeDifferenceS * 1e9;
|
|
64
|
+
const offsetMm = positionFromTimeDifference(live.lor.timeDifferenceS) * 1e3;
|
|
65
|
+
const controls = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
66
|
+
/* @__PURE__ */ jsx(ExperimentTransport, {
|
|
67
|
+
timeline,
|
|
68
|
+
label: "acquisition",
|
|
69
|
+
detail: `${collected} of ${plural(totalEvents, "coincidence")}`
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ jsx(Field, {
|
|
72
|
+
label: "tracer",
|
|
73
|
+
children: /* @__PURE__ */ jsx(ActivitySelect, {
|
|
74
|
+
ariaLabel: "tracer",
|
|
75
|
+
value: tracer,
|
|
76
|
+
onChange: setTracer,
|
|
77
|
+
options: TRACER_IDS.map((id) => ({
|
|
78
|
+
value: id,
|
|
79
|
+
label: PET_TRACERS[id].label
|
|
80
|
+
}))
|
|
81
|
+
})
|
|
82
|
+
}),
|
|
83
|
+
/* @__PURE__ */ jsx(Field, {
|
|
84
|
+
label: "detector timing",
|
|
85
|
+
value: `${timingPs} ps`,
|
|
86
|
+
children: /* @__PURE__ */ jsx(Slider, {
|
|
87
|
+
value: timingPs,
|
|
88
|
+
min: 100,
|
|
89
|
+
max: 3e3,
|
|
90
|
+
step: 50,
|
|
91
|
+
onChange: setTimingPs,
|
|
92
|
+
ariaLabel: "detector timing resolution"
|
|
93
|
+
})
|
|
94
|
+
}),
|
|
95
|
+
/* @__PURE__ */ jsx(Chip, {
|
|
96
|
+
selected: truth,
|
|
97
|
+
onClick: () => setTruth((on) => !on),
|
|
98
|
+
children: truth ? "Tracer shown" : "Reveal the tracer"
|
|
99
|
+
})
|
|
100
|
+
] });
|
|
101
|
+
const evidence = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
102
|
+
/* @__PURE__ */ jsx(Readout, {
|
|
103
|
+
value: `${dtNs >= 0 ? "+" : ""}${dtNs.toFixed(2)} ns`,
|
|
104
|
+
sub: `arrival time difference for the live coincidence, so ${offsetMm >= 0 ? "+" : ""}${offsetMm.toFixed(0)} mm along its line`
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ jsxs("div", {
|
|
107
|
+
className: "lab-metric-list",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "photon energy" }), /* @__PURE__ */ jsxs("strong", { children: [ANNIHILATION_PHOTON_MEV.toFixed(3), " MeV"] })] }),
|
|
110
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "released per annihilation" }), /* @__PURE__ */ jsxs("strong", { children: [ANNIHILATION_TOTAL_MEV.toFixed(3), " MeV"] })] }),
|
|
111
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "timing places it to" }), /* @__PURE__ */ jsxs("strong", { children: [
|
|
112
|
+
"±",
|
|
113
|
+
tofMm.toFixed(0),
|
|
114
|
+
" mm"
|
|
115
|
+
] })] }),
|
|
116
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "image resolves" }), /* @__PURE__ */ jsxs("strong", { children: [resolution.totalMm.toFixed(1), " mm"] })] }),
|
|
117
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "tracer half-life" }), /* @__PURE__ */ jsxs("strong", { children: [PET_TRACERS[tracer].halfLifeMin.toFixed(0), " min"] })] }),
|
|
118
|
+
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("span", { children: "left after an hour" }), /* @__PURE__ */ jsxs("strong", { children: [(tracerRemaining(tracer, 60) * 100).toFixed(1), "%"] })] })
|
|
119
|
+
]
|
|
120
|
+
}),
|
|
121
|
+
/* @__PURE__ */ jsxs("p", { children: [
|
|
122
|
+
PET_TRACERS[tracer].label,
|
|
123
|
+
" shows ",
|
|
124
|
+
PET_TRACERS[tracer].use,
|
|
125
|
+
". Its positrons travel about",
|
|
126
|
+
" ",
|
|
127
|
+
PET_TRACERS[tracer].rangeMm.toFixed(1),
|
|
128
|
+
" mm before annihilating, which is a limit on resolution that no better detector can lift. Coincidence window here is",
|
|
129
|
+
" ",
|
|
130
|
+
(maxTrueTimeDifferenceS(RING_RADIUS_M) * 1e9).toFixed(1),
|
|
131
|
+
" ns, the longest difference this ring can physically produce."
|
|
132
|
+
] })
|
|
133
|
+
] });
|
|
134
|
+
const runtime = activity ?? (objectives ? {
|
|
135
|
+
...petScanActivity.source,
|
|
136
|
+
objectives
|
|
137
|
+
} : petScanActivity);
|
|
138
|
+
return /* @__PURE__ */ jsx(AuthoredActivityRuntime, {
|
|
139
|
+
className: "physics-imaging",
|
|
140
|
+
focusLayout: "immersive",
|
|
141
|
+
activity: runtime,
|
|
142
|
+
activityId: "pet-scan",
|
|
143
|
+
eyebrow: "Modern physics · imaging",
|
|
144
|
+
title,
|
|
145
|
+
description: prompt,
|
|
146
|
+
controls,
|
|
147
|
+
evidence,
|
|
148
|
+
observation: `Each coincidence gives one line, and one line only says the annihilation happened somewhere along it. The picture on the right is built from ${collected} of them and from nothing else. The timing reaches ${tofMm.toFixed(0)} mm either side of the event, against a hot spot ${(PHANTOM.sources[0].radiusM * 2e3).toFixed(0)} mm across, which is why the crossings make the image and the clock does not.`,
|
|
149
|
+
children: ({ complete }) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(AuthoredMetricGate, {
|
|
150
|
+
conditionId: "scan-complete",
|
|
151
|
+
met: timeline.progress >= 1,
|
|
152
|
+
complete
|
|
153
|
+
}), /* @__PURE__ */ jsx(PetScanScene, {
|
|
154
|
+
ringRadiusM: RING_RADIUS_M,
|
|
155
|
+
phantom: PHANTOM,
|
|
156
|
+
events,
|
|
157
|
+
grid,
|
|
158
|
+
peak,
|
|
159
|
+
photonProgress,
|
|
160
|
+
tofMm,
|
|
161
|
+
showTruth: truth
|
|
162
|
+
})] })
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
//#endregion
|
|
167
|
+
export { PetScanLab };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PetEvent, PetPhantom } from "./pet-core.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
//#region src/physics/modern/imaging/pet-scene.d.ts
|
|
4
|
+
interface PetScanSceneProps {
|
|
5
|
+
ringRadiusM: number;
|
|
6
|
+
phantom: PetPhantom;
|
|
7
|
+
/** Events collected so far. The last one is drawn as the live event. */
|
|
8
|
+
events: readonly PetEvent[];
|
|
9
|
+
/** Backprojected density, `[row][col]`, and its peak. */
|
|
10
|
+
grid: readonly number[][];
|
|
11
|
+
peak: number;
|
|
12
|
+
/** 0 to 1, how far the live event's photons have flown from the annihilation. */
|
|
13
|
+
photonProgress: number;
|
|
14
|
+
/** Half-width of the time-of-flight band, in mm. Null when timing is not being used. */
|
|
15
|
+
tofMm: number | null;
|
|
16
|
+
/** Draw where the tracer really is, for comparison against the reconstruction. */
|
|
17
|
+
showTruth: boolean;
|
|
18
|
+
}
|
|
19
|
+
declare function PetScanScene({ ringRadiusM, phantom, events, grid, peak, photonProgress, tofMm, showTruth }: PetScanSceneProps): ReactNode;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { PetScanScene, PetScanSceneProps };
|