처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.15 45

손으로 그린 도형을 북소리로: 유한요소로 푸는 '드럼의 고유진동'

Hacker News 원문 보기

화면에 아무 도형이나 그리면 그것이 북이 되어 소리를 낸다. Eigendrum이라는 웹 도구가 하는 일은 언뜻 음악 장난감처럼 보이지만, 그 밑에는 편미분방정식의 고유값 문제를 실시간으로 수치 해석하는 계산 엔진이 돌아간다. 가장자리가 고정된 북 가죽은 아무 모양으로나 진동하지 못하고 특정한 형태와 특정한 진동수에서만 정상파를 이룬다. 이 형태와 진동수는 도형 내부에서 −∇²u = λu를 만족하고 경계에서 u = 0인 해, 즉 라플라시안의 고유모드와 고유값이다. 각 λ의 제곱근에 진동수가 비례한다. 문제는 원이나 사각형 같은 극소수의 도형을 빼면 이 해를 적어 내려갈 수 있는 공식이 존재하지 않는다는 점이다.

공식이 없으면 격자로 푼다

그래서 이 도구는 사용자가 그린 윤곽을 삼각형 메시로 덮고, 유한요소법의 강성행렬 K와 질량행렬 M을 만든 뒤 일반화 고유값 문제 Kφ = λMφ의 가장 작은 고유값들을 구한다. 실무자 입장에서 흥미로운 대목은 검증 방식이다. 원의 진동수는 베셀 함수의 영점이고 사각형은 π²(m²/a² + n²/b²)로 정확히 알려져 있는데, 솔버는 코드가 바뀔 때마다 이 두 해석해와 대조되며 오차 0.1% 이내를 유지한다. 게다가 적합(conforming) 유한요소법이 제한된 함수 공간 위에서 에너지를 최소화하는 방식이기 때문에, 계산값은 항상 참값을 약간 웃도는 과대추정이지 결코 과소추정이 아니라는 성질이 보장된다. 수치해석에서 오차의 방향을 통제할 수 있다는 것은 신뢰성 측면에서 중요한 자산이다.

타점 물리도 별도로 프로그래밍한 것이 아니라 수학에서 자연히 따라 나온다. 어느 지점을 때리면 각 모드는 그 지점에서 얼마나 움직이는지에 비례해 여기된다. 모드가 멈춰 있는 마디선을 때리면 그 모드는 전혀 소리 나지 않는다. 이는 말렛(채)을 모드에 사영(projection)한 결과일 뿐이다. 따라서 한 번의 타격은 결코 단일 모드가 아니라, 타점이 정한 혼합비로 모든 모드가 동시에 울리는 사건이다. 반대로 모드 목록에서 특정 행을 직접 누르면 그 하나의 진동수만 따로 들을 수 있는데, 이는 어떤 채로도 불가능한, 한 도형의 순수한 한 주파수를 듣는 유일한 방법이다.

그리는 대신 쓰는 도형

도형은 손으로 그리는 것 외에 수식으로 적을 수도 있다. r(t)로 반지름을 t의 함수로 주면 1 + 0.3cos(5t)는 다섯 잎 꽃이 되고, x(t)·y(t) 매개변수 쌍을 쓰면 극좌표로는 닿을 수 없는 신장형(nephroid)이나 달걀 같은 닫힌 곡선까지 만든다. 손으로는 정확히 그릴 수 없는 열한 개의 짝수 잎이나, 원과 사각형 중간의 초타원(superellipse)도 이렇게 도달한다. 숫자 하나를 바꿔 무엇이 달라졌는지 귀로 확인할 수 있다는 점에서, 도형이 정적인 그림이 아니라 변주 가능한 대상이 된다. 수식으로 쓴 도형은 링크에 수식 자체가 담겨 사람이 읽고 다시 입력할 수 있으며, 주소창에서 직접 편집도 된다. 메시로 정직하게 나눌 수 없을 만큼 얇은 도형은 틀린 숫자를 내놓느니 아예 거부한다.

이 도구가 담고 있는 가장 유명한 사례는 1966년 마크 캐츠가 던진 질문, '북의 모양을 소리로 알아낼 수 있는가'에 대한 답이다. 1992년 캐롤린 고든, 데이비드 웹, 스콧 볼퍼트는 스펙트럼이 완전히 동일하지만 서로 다른 두 도형을 만들어 '아니오'를 증명했다. 두 도형은 같은 일곱 개의 삼각형을 다르게 재배열한 것으로, 넓이도 둘레도 같고 모든 진동수가 일치한다. 목록의 Kac drum I·II를 번갈아 들으면 윤곽은 분명히 다른데 소리는 구별되지 않는다.

무엇이 물리이고 무엇이 설정인가

실무적으로 눈여겨볼 부분은 어디까지가 도형이 결정하는 물리이고 어디부터가 사용자 설정인지 명확히 구분해 둔 설계다. 진동수의 비율과 모드 형태는 오로지 윤곽이 정하는 물리이고, 절대 음높이는 크기와 장력에, 각 배음이 사라지는 속도는 재료와 공기에 달려 있어 이들은 침묵하는 가정이 아니라 슬라이더로 노출된다. 모든 도형은 풀기 전에 같은 넓이로 정규화되므로 들리는 것은 크기가 아니라 순수한 형태다. 감쇠는 레일리 감쇠로, 손실이 진동수의 제곱으로 커져 높은 배음이 먼저 죽는다. 북이 울리며 어두워지는 이유가 여기서 나온다. 말렛의 폭도 슬라이더지만 접촉 시간은 수 밀리초로 고정되는데, 순간적인 채란 존재할 수 없고 그런 채라면 모든 모드를 똑같이 세게 때려 버리기 때문이다.

엔지니어링 관점에서 이 프로젝트는 빌드 단계도 백엔드도 없이 메시 생성, 고유값 풀이, 오디오 합성을 모두 사용자 브라우저에서 실행한다는 점이 눈길을 끈다. 그린 도형은 URL의 # 뒤에 살아 있어 브라우저가 서버로 보내지 않으며, 분석 도구도 이를 기록하지 않도록 설정돼 있다. 도메인 유지 비용은 배너 광고와 애널리틱스로 충당한다. 솔버와, 해석해에 맞춰 검증하는 테스트를 포함한 전체 소스는 공개돼 있어, 수치해석과 유한요소법을 학습하거나 브라우저 상의 실시간 물리 시뮬레이션을 설계하려는 개발자에게 실물 참고 자료가 된다. 다만 이 도구는 어디까지나 라플라시안 고유값 문제의 시연이지, 실제 악기의 비선형성이나 3차원 공명통까지 담는 음향 시뮬레이터는 아니라는 점은 분명히 해 둘 필요가 있다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.