Page actions
instrument mechanism / verified-clean
Room Modes Calculator (Axial) mechanism
The inspectable method record for Room Modes Calculator (Axial), kept separate from implementation and qualification.
Model scope
The honest label correctly states that tangential and oblique modes are ignored, but the implementation must enforce exactly one nonzero mode-order component for every reported mode. Verdict is NEEDS_REVIEW because axial-mode input constraints and the mode-overlap warning criterion are not specified.
- The formula f=(c/2)*sqrt((nx/Lx)^2+(ny/Ly)^2+(nz/Lz)^2) is the standard rectangular-room modal formula, but it computes axial, tangential, and oblique modes depending on the mode-order vector. For axial-only output, exactly two of nx, ny, nz must be zero and the remaining order must be a positive integer.
- The specification does not define how mode orders are supplied or constrain them to nonnegative integers.
- The all-zero mode vector produces 0 Hz mathematically but is the DC/static mode, not a room resonance, and should be rejected or excluded.
- Mode-overlap warnings are underspecified: no frequency tolerance or definition of overlap is provided. Exact equality is insufficient for practical acoustic overlap warnings.
Units and conventions
- Lx, Ly, and Lz are positive room dimensions in metres.
- c is in metres per second; c=343 m/s corresponds approximately to air at 20 degrees C.
- nx, ny, and nz are dimensionless nonnegative integers.
- Frequencies are returned in hertz.
- For axial modes, each mode vector has exactly one positive order and two zero orders.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"room_length": 5,
"room_width": 4,
"room_height": 2.5,
"dimension_unit": "m",
"speed_of_sound": 343,
"axial_modes": {
"x": [
1,
2,
3
],
"y": [
1,
2,
3
],
"z": [
1,
2,
3
]
}
},
"expected_outputs": {
"frequencies_hz": [
{
"mode": [
1,
0,
0
],
"frequency": 34.3
},
{
"mode": [
2,
0,
0
],
"frequency": 68.6
},
{
"mode": [
3,
0,
0
],
"frequency": 102.9
},
{
"mode": [
0,
1,
0
],
"frequency": 42.875
},
{
"mode": [
0,
2,
0
],
"frequency": 85.75
},
{
"mode": [
0,
3,
0
],
"frequency": 128.625
},
{
"mode": [
0,
0,
1
],
"frequency": 68.6
},
{
"mode": [
0,
0,
2
],
"frequency": 137.2
},
{
"mode": [
0,
0,
3
],
"frequency": 205.8
}
],
"mode_overlap_warnings": [
{
"modes": [
[
2,
0,
0
],
[
0,
0,
1
]
],
"frequency_hz": 68.6,
"reason": "exact frequency match"
}
]
},
"working": "c/2 = 343/2 = 171.5. Length-axis base: 171.5/5 = 34.3 Hz, so orders 1,2,3 give 34.3, 2*34.3 = 68.6, and 3*34.3 = 102.9 Hz. Width-axis base: 171.5/4 = 42.875 Hz, so orders 1,2,3 give 42.875, 2*42.875 = 85.75, and 3*42.875 = 128.625 Hz. Height-axis base: 171.5/2.5 = 68.6 Hz, so orders 1,2,3 give 68.6, 2*68.6 = 137.2, and 3*68.6 = 205.8 Hz. The length-axis second mode and height-axis first mode both equal 68.6 Hz."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
The specification exposes an undefined result for a zero room dimension and ambiguity around zero-order, non-axial, and signed mode-order inputs. A robust implementation must validate positive dimensions, handle the all-zero mode explicitly, and enforce or clearly flag the axial-only selection rule.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche2/tranche2-results.jsonBOUNDARY_HAZARD_CATALOG.json