Repository navigation
Geometry and acoustic simulation are implemented; fabrication and visualization are interface stubs, and no horn has been machined.
| Servers | geometry, acoustics, fabrication, visualization; each builds on Node 22 and answers the MCP handshake (5, 5, 7 and 4 tools) |
| Tests | tests/test_pipeline.py, 4 passing on Python 3.11 and 3.12; CI builds every server and runs the smoke test |
| Mouth load | Exact piston in an infinite baffle, R = 1 − J1(2ka)/ka and X = H1(2ka)/ka, within 3e-14 and 2e-7 of SciPy for ka from 0.01 to 35 |
Changes since 0.1.0
From an independent code review (#1 to #6):
- Build (#1): all four MCP servers compile and start; the settings no longer point at a measurement server that does not exist.
- Profile file (#2): the generator writes the horn profile the acoustics and analysis tools read, and falls back from
freecadcmdtopython3when FreeCAD is absent. - Units (#3): the transfer-matrix model normalizes both ends by ρc/S. Every horn had scored 0.26 with a reflection coefficient of 1.000 at every frequency.
- Tool names (#4): every skill lists the tools the servers expose, under the prefix Claude Code uses.
- Stubs (#5): fabrication and visualization results carry
simulated: trueand say their figures are placeholders; unused dependencies are removed. - Tests (#6): a pipeline smoke test and CI.
From the release (#7):
- Mouth radiation load. The load switched between two approximations at ka = 2, and the large-ka one was not the piston load. On an exponential horn (25.4 mm throat, 300 mm mouth, 400 mm long), normalized throat impedance jumped from 0.40 to 0.84 between 724 and 733 Hz; it now reads 0.862 and 0.864. The largest step in the reflection coefficient between adjacent points over 300 to 12,000 Hz falls from 0.224 to 0.016. Against an independent 4,000-segment reference the cascade agrees within 0.0022 up to ten times the cutoff.
- Ranking. Only
run_simulationruns the transfer-matrix model; thesfh-simskill now ranks with it, and the three simplified acoustics tools say what they compute. - Hilbert and Peano. The descriptions say these profiles are an S-curve and a power-law flare, and that
orderanditerationshave no effect yet. prepare_buildreportsbuild_file_generated: false, since it writes no file.analyze_fractalno longer draws random numbers; two identical profiles had scored 0.787 and 0.820.
Behaviour change: scores move with the exact load. In one three-way comparison the tractrix reference went from last to third.