Skip to main content
Glama

Design a drum for a chord

shape_the_sound
Read-onlyIdempotent

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

NameRequiredDescriptionDefault
seedNoDefault 1. Same seed, same drum.
verticesNoPolygon vertices, default 10.
wave_speedNom/s, √(tension/areal density).
target_ratiosYesFrequency ratios f2/f1, f3/f1, … of the lowest modes, ascending (e.g. [1.25, 1.5] for a just major triad).
fundamental_hzNoWith wave_speed: scale the drum so its fundamental sounds at this frequency.
max_evaluationsNoSearch budget in finite-element evaluations, default 300.
tolerance_centsNoSuccess when |error| + uncertainty ≤ tolerance for every ratio; default 5 cents.
include_mode_shapesNoAdds computed mode shapes from the shared forward solver (≤1024 triangles, full-precision coordinates) for visualization.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "$schema": "http://json-schema.org/draft-07/schema#",
      -  "additionalProperties": false,
      -  "properties": {
      -    "assumptions": {
      -      "items": {
      -        "maxLength": 512,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "maxItems": 16,
      -      "minItems": 1,
      -      "type": "array"
      -    },
      -    "contract_version": {
      -      "const": "0.3.0",
      -      "type": "string"
      -    },
      -    "elapsed_ms": {
      -      "maximum": 1000000000000,
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "engine": {
      -      "const": "rust-cpu",
      -      "type": "string"
      -    },
      -    "feasibility": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "checks": {
      -          "items": {
      -            "additionalProperties": false,
      -            "properties": {
      -              "exact_target_excluded": {
      -                "type": "boolean"
      -              },
      -              "reference": {
      -                "maxLength": 512,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "request_excluded": {
      -                "type": "boolean"
      -              },
      -              "statement": {
      -                "maxLength": 512,
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "theorem": {
      -                "anyOf": [
      -                  {
      -                    "const": "simple_fundamental",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "const": "ashbaugh_benguria",
      -                    "type": "string"
      -                  },
      -                  {
      -                    "const": "yang_first_inequality",
      -                    "type": "string"
      -                  }
      -                ]
      -              }
      -            },
      -            "required": [
      -              "exact_target_excluded",
      -              "reference",
      -              "request_excluded",
      -              "statement",
      -              "theorem"
      -            ],
      -            "type": "object"
      -          },
      -          "maxItems": 7,
      -          "minItems": 2,
      -          "type": "array"
      -        },
      -        "domain": {
      -          "maxLength": 512,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        "exact_target_excluded": {
      -          "type": "boolean"
      -        },
      -        "tolerance_cents": {
      -          "maximum": 100,
      -          "minimum": 0.5,
      -          "type": "number"
      -        },
      -        "verdict": {
      -          "anyOf": [
      -            {
      -              "const": "proven_impossible",
      -              "type": "string"
      -            },
      -            {
      -              "const": "not_excluded",
      -              "type": "string"
      -            }
      -          ]
      -        },
      -        "windows": {
      -          "description": "Admissible frequency-ratio window per target: [r·2^(−c/1200), r·2^(c/1200)].",
      -          "items": {
      -            "items": {
      -              "maximum": 10,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "maxItems": 2,
      -            "minItems": 2,
      -            "type": "array"
      -          },
      -          "maxItems": 5,
      -          "minItems": 1,
      -          "type": "array"
      -        }
      -      },
      -      "required": [
      -        "checks",
      -        "domain",
      -        "exact_target_excluded",
      -        "tolerance_cents",
      -        "verdict",
      -        "windows"
      -      ],
      -      "type": "object"
      -    },
      -    "fundamental_hz": {
      -      "anyOf": [
      -        {
      -          "maximum": 1e+300,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "fundamental_note": {
      -      "anyOf": [
      -        {
      -          "maxLength": 32,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "matches": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "achieved_ratio": {
      -            "maximum": 1e+300,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "cents_error": {
      -            "maximum": 1e+300,
      -            "minimum": -1e+300,
      -            "type": "number"
      -          },
      -          "mode": {
      -            "maximum": 6,
      -            "minimum": 2,
      -            "type": "integer"
      -          },
      -          "target_cents": {
      -            "maximum": 2400,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "target_ratio": {
      -            "maximum": 4,
      -            "minimum": 1,
      -            "type": "number"
      -          },
      -          "uncertainty_cents": {
      -            "maximum": 1e+300,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "within_tolerance": {
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "achieved_ratio",
      -          "cents_error",
      -          "mode",
      -          "target_cents",
      -          "target_ratio",
      -          "uncertainty_cents",
      -          "within_tolerance"
      -        ],
      -        "type": "object"
      -      },
      -      "maxItems": 5,
      -      "minItems": 0,
      -      "type": "array"
      -    },
      -    "method": {
      -      "maxLength": 1024,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "notes": {
      -      "items": {
      -        "maxLength": 1024,
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "maxItems": 8,
      -      "minItems": 0,
      -      "type": "array"
      -    },
      -    "polygon": {
      -      "anyOf": [
      -        {
      -          "items": {
      -            "items": {
      -              "maximum": 10000,
      -              "minimum": -10000,
      -              "type": "number"
      -            },
      -            "maxItems": 2,
      -            "minItems": 2,
      -            "type": "array"
      -          },
      -          "maxItems": 16,
      -          "minItems": 3,
      -          "type": "array"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "provenance": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "client": {
      -          "additionalProperties": {},
      -          "properties": {
      -            "name": {
      -              "type": "string"
      -            },
      -            "version": {
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "name",
      -            "version"
      -          ],
      -          "type": "object"
      -        },
      -        "identity_source": {
      -          "type": "string"
      -        },
      -        "model": {
      -          "type": "null"
      -        },
      -        "server": {
      -          "const": "scorecompute",
      -          "type": "string"
      -        },
      -        "tool": {
      -          "const": "shape_the_sound",
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "tool",
      -        "server",
      -        "client",
      -        "identity_source",
      -        "model"
      -      ],
      -      "type": "object"
      -    },
      -    "resolution_warning": {
      -      "anyOf": [
      -        {
      -          "maxLength": 512,
      -          "minLength": 1,
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "search": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": false,
      -          "properties": {
      -            "best_start": {
      -              "maximum": 15,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "configured_starts": {
      -              "maximum": 16,
      -              "minimum": 1,
      -              "type": "integer"
      -            },
      -            "continued_best_start": {
      -              "type": "boolean"
      -            },
      -            "evaluations": {
      -              "maximum": 1000,
      -              "minimum": 1,
      -              "type": "integer"
      -            },
      -            "objective": {
      -              "maximum": 1e+300,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "polish_evaluations": {
      -              "maximum": 100,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "polish_triangles": {
      -              "maximum": 100000,
      -              "minimum": 1,
      -              "type": "integer"
      -            },
      -            "search_triangles": {
      -              "maximum": 100000,
      -              "minimum": 1,
      -              "type": "integer"
      -            },
      -            "starts_tried": {
      -              "maximum": 16,
      -              "minimum": 1,
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "best_start",
      -            "configured_starts",
      -            "continued_best_start",
      -            "evaluations",
      -            "objective",
      -            "polish_evaluations",
      -            "polish_triangles",
      -            "search_triangles",
      -            "starts_tried"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "statement": {
      -      "maxLength": 2048,
      -      "minLength": 1,
      -      "type": "string"
      -    },
      -    "verdict": {
      -      "anyOf": [
      -        {
      -          "const": "proven_impossible",
      -          "type": "string"
      -        },
      -        {
      -          "const": "achieved",
      -          "type": "string"
      -        },
      -        {
      -          "const": "not_achieved",
      -          "type": "string"
      -        }
      -      ]
      -    },
      -    "verification": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": false,
      -          "properties": {
      -            "area": {
      -              "maximum": 1e+300,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "levels": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "first_eigenvalue": {
      -                    "maximum": 1e+300,
      -                    "minimum": -1e+300,
      -                    "type": "number"
      -                  },
      -                  "iterations": {
      -                    "maximum": 1000,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "triangles": {
      -                    "maximum": 1000000,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "unknowns": {
      -                    "maximum": 1000000,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  }
      -                },
      -                "required": [
      -                  "first_eigenvalue",
      -                  "iterations",
      -                  "triangles",
      -                  "unknowns"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 3,
      -              "minItems": 3,
      -              "type": "array"
      -            },
      -            "max_residual": {
      -              "maximum": 1e+300,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "mode_shapes": {
      -              "anyOf": [
      -                {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "points": {
      -                      "items": {
      -                        "items": {
      -                          "maximum": 10000,
      -                          "minimum": -10000,
      -                          "type": "number"
      -                        },
      -                        "maxItems": 2,
      -                        "minItems": 2,
      -                        "type": "array"
      -                      },
      -                      "maxItems": 4096,
      -                      "minItems": 3,
      -                      "type": "array"
      -                    },
      -                    "triangles": {
      -                      "items": {
      -                        "items": {
      -                          "maximum": 4096,
      -                          "minimum": 0,
      -                          "type": "integer"
      -                        },
      -                        "maxItems": 3,
      -                        "minItems": 3,
      -                        "type": "array"
      -                      },
      -                      "maxItems": 1024,
      -                      "minItems": 1,
      -                      "type": "array"
      -                    },
      -                    "values": {
      -                      "items": {
      -                        "items": {
      -                          "maximum": 1,
      -                          "minimum": -1,
      -                          "type": "number"
      -                        },
      -                        "maxItems": 4096,
      -                        "minItems": 3,
      -                        "type": "array"
      -                      },
      -                      "maxItems": 12,
      -                      "minItems": 1,
      -                      "type": "array"
      -                    }
      -                  },
      -                  "required": [
      -                    "points",
      -                    "triangles",
      -                    "values"
      -                  ],
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "modes": {
      -              "items": {
      -                "additionalProperties": false,
      -                "properties": {
      -                  "courant_bound": {
      -                    "maximum": 12,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "courant_respected": {
      -                    "type": "boolean"
      -                  },
      -                  "discretization_error_estimate": {
      -                    "maximum": 1e+300,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "eigenvalue": {
      -                    "maximum": 1e+300,
      -                    "minimum": -1e+300,
      -                    "type": "number"
      -                  },
      -                  "eigenvalue_upper_bound": {
      -                    "maximum": 1e+300,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "frequency_hz": {
      -                    "anyOf": [
      -                      {
      -                        "maximum": 1e+300,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "index": {
      -                    "maximum": 12,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "multiplicity": {
      -                    "maximum": 12,
      -                    "minimum": 1,
      -                    "type": "integer"
      -                  },
      -                  "nodal_domains": {
      -                    "maximum": 1000000,
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  "note": {
      -                    "anyOf": [
      -                      {
      -                        "maxLength": 32,
      -                        "minLength": 1,
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "observed_order": {
      -                    "anyOf": [
      -                      {
      -                        "maximum": 4,
      -                        "minimum": 0.5,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "ratio_to_fundamental": {
      -                    "anyOf": [
      -                      {
      -                        "maximum": 1e+300,
      -                        "minimum": 0,
      -                        "type": "number"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ]
      -                  },
      -                  "residual": {
      -                    "maximum": 1e+300,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  },
      -                  "wavenumber": {
      -                    "maximum": 1e+300,
      -                    "minimum": 0,
      -                    "type": "number"
      -                  }
      -                },
      -                "required": [
      -                  "courant_bound",
      -                  "courant_respected",
      -                  "discretization_error_estimate",
      -                  "eigenvalue",
      -                  "eigenvalue_upper_bound",
      -                  "frequency_hz",
      -                  "index",
      -                  "multiplicity",
      -                  "nodal_domains",
      -                  "note",
      -                  "observed_order",
      -                  "ratio_to_fundamental",
      -                  "residual",
      -                  "wavenumber"
      -                ],
      -                "type": "object"
      -              },
      -              "maxItems": 12,
      -              "minItems": 1,
      -              "type": "array"
      -            },
      -            "perimeter": {
      -              "maximum": 1e+300,
      -              "minimum": 0,
      -              "type": "number"
      -            },
      -            "resolution_warning": {
      -              "anyOf": [
      -                {
      -                  "maxLength": 512,
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ]
      -            },
      -            "vertices": {
      -              "maximum": 64,
      -              "minimum": 3,
      -              "type": "integer"
      -            },
      -            "well_resolved_modes": {
      -              "maximum": 12,
      -              "minimum": 0,
      -              "type": "integer"
      -            },
      -            "weyl": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "computed_count": {
      -                  "maximum": 12,
      -                  "minimum": 1,
      -                  "type": "integer"
      -                },
      -                "eigenvalue": {
      -                  "maximum": 1e+300,
      -                  "minimum": -1e+300,
      -                  "type": "number"
      -                },
      -                "predicted_count": {
      -                  "maximum": 1e+300,
      -                  "minimum": -1e+300,
      -                  "type": "number"
      -                }
      -              },
      -              "required": [
      -                "computed_count",
      -                "eigenvalue",
      -                "predicted_count"
      -              ],
      -              "type": "object"
      -            }
      -          },
      -          "required": [
      -            "area",
      -            "levels",
      -            "max_residual",
      -            "mode_shapes",
      -            "modes",
      -            "perimeter",
      -            "resolution_warning",
      -            "vertices",
      -            "well_resolved_modes",
      -            "weyl"
      -          ],
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "worst_cents_error": {
      -      "anyOf": [
      -        {
      -          "maximum": 1e+300,
      -          "minimum": 0,
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    }
      -  },
      -  "required": [
      -    "assumptions",
      -    "contract_version",
      -    "elapsed_ms",
      -    "engine",
      -    "feasibility",
      -    "fundamental_hz",
      -    "fundamental_note",
      -    "matches",
      -    "method",
      -    "notes",
      -    "polygon",
      -    "resolution_warning",
      -    "search",
      -    "statement",
      -    "verdict",
      -    "verification",
      -    "worst_cents_error",
      -    "provenance"
      -  ],
      -  "type": "object"
      -}New value: +null
  2. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources