shape_the_sound
Kac's question in reverse: design a polygonal drumhead whose lowest tones play requested frequency ratios (a fifth, a triad, a pentatonic scale), each accepted within ±tolerance_cents. proven_impossible is returned only when proven theorems exclude every ratio combination inside those tolerance windows for a connected uniform membrane with a fixed edge: simple fundamental, f2/f1 ≤ j11/j01 ≈ 1.5933 with equality for the disk (Ashbaugh–Benguria 1992), and Yang's universal inequality minimized exactly over the window box; an exact-target exclusion is reported separately. Otherwise multi-start L-BFGS with exact finite-element shape derivatives designs a 5–16-vertex polygon, then reanalyses it on three refined meshes with the shared hear_the_shape solver: achieved ratios, errors in cents with estimated uncertainty (not rigorous bounds), resolution warnings, optional numerical tuning of the fundamental in Hz. not_achieved is a bounded-search result, never an impossibility proof. Ideal membrane only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Default 1. Same seed, same drum. | |
| vertices | No | Polygon vertices, default 10. | |
| wave_speed | No | m/s, √(tension/areal density). | |
| target_ratios | Yes | Frequency ratios f2/f1, f3/f1, … of the lowest modes, ascending (e.g. [1.25, 1.5] for a just major triad). | |
| fundamental_hz | No | With wave_speed: scale the drum so its fundamental sounds at this frequency. | |
| max_evaluations | No | Search budget in finite-element evaluations, default 300. | |
| tolerance_cents | No | Success when |error| + uncertainty ≤ tolerance for every ratio; default 5 cents. | |
| include_mode_shapes | No | Adds computed mode shapes from the shared forward solver (≤1024 triangles, full-precision coordinates) for visualization. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| notes | Yes | ||
| engine | Yes | ||
| method | Yes | ||
| search | Yes | ||
| matches | Yes | ||
| polygon | Yes | ||
| verdict | Yes | ||
| statement | Yes | ||
| elapsed_ms | Yes | ||
| provenance | Yes | ||
| assumptions | Yes | ||
| feasibility | Yes | ||
| verification | Yes | ||
| fundamental_hz | Yes | ||
| contract_version | Yes | ||
| fundamental_note | Yes | ||
| worst_cents_error | Yes | ||
| resolution_warning | Yes |