# LinuxCNC kinematics source map This map tracks the LinuxCNC source/configuration basis for kinematics, switchkins, RTCP, and M428/M429/M430 remap coverage. It is intentionally a source-coverage document: the manifest entries here must not become browser or application behavior by themselves. It must not add CNC behavior and must not expand the temporary smoke parser. ## Manifest groups The kinematics manifest currently contains these LinuxCNC-root relative source groups: | Group | Count | Source coverage role | | --- | ---: | --- | | `core` | 30 | LinuxCNC kinematics and posemath C/C++ sources. | | `config` | 33 | LinuxCNC switchkins INI/HAL/POSTGUI sources used by M428/M429/M430 and RTCP coverage. | | `remap` | 31 | LinuxCNC M428/M429/M430 remap subroutines. | | `component` | 8 | LinuxCNC halcompile component sources referenced by kinematics configs. | | `generated` | 8 | LinuxCNC halcompile-generated C sources adjacent to component coverage. | | `header` | 13 | LinuxCNC kinematics and posemath declarations. | | `metadata` | 34 | LinuxCNC build/manpage metadata adjacent to covered kinematics sources. | | `asset` | 122 | LinuxCNC INI-adjacent HAL, README, GUI, demo, PYVCP, and other source assets. | | `tooldata` | 10 | LinuxCNC tool table files referenced by covered M428/M429/M430 INI files. | ## LinuxCNC Source Anchors - `src/emc/kinematics/Submakefile` defines the kinematics build source surface, including `GENSERKINSSRCS`. - `src/emc/kinematics/kinematics.h` declares `kinematicsInverse()` and `kinematicsSwitch()` for switchkins-capable modules. - `configs/sim/axis/vismach/5axis/bridgemill/5axis.ini` wires `motion.switchkins-type` and representative M428/M429/M430 switchkins configuration. - `configs/sim/axis/vismach/5axis/bridgemill/remap_subs/428remap.ngc` provides a representative `#` remap assignment. ## Boundaries - `asset`, `metadata`, `header`, and `tooldata` entries are source coverage, not browser API surface. - Browser-side file persistence remains OPFS-only and is not expanded by this manifest. - Switchkins/remap generation must continue to derive M428/M429/M430 cases from LinuxCNC INI/HAL/remap sources, not from hand-authored behavior. - RTCP and five-axis coverage must remain tied to LinuxCNC kinematics sources, remap files, and configuration files. - `test-native.sh`, `test-linuxcnc-source-link.sh`, and `build-wasm.sh` must run `./check-linuxcnc-kinematics-source-map.sh` before consuming generated config aliases, source-linked LinuxCNC objects, or browser artifacts. - The kinematics source-map guard validates LinuxCNC source/config ownership and manifest drift only; it does not interpret G-code. ## Checks Run: ```bash ./check-linuxcnc-kinematics-source-map.sh ./check-linuxcnc-inputs.sh linuxcnc-kinematics-source-files.txt --require-kinematics-complete ./check-linuxcnc-switchkins-remap-table.sh linuxcnc-kinematics-source-files.txt ./test-native.sh ./test-linuxcnc-source-link.sh ``` `check-linuxcnc-kinematics-source-map.sh` keeps this document's group counts in sync with `linuxcnc-kinematics-source-files.txt`; the input and table checkers validate LinuxCNC source existence, directory completeness, remap kinstype notes, and switchkins/remap table generation.