From 3714146df9fb87b09c95da1c9597be1be92cf952 Mon Sep 17 00:00:00 2001 From: MasterBabol Date: Fri, 28 Aug 2026 22:21:32 +0900 Subject: [PATCH] docs: connect the array builder workflow --- README.md | 38 ++++++-- apps/acoustic-camera/index.html | 2 +- apps/array-builder/README.md | 107 ++++++++++++++++++++++ apps/array-builder/styles.css | 2 +- docs/index.html | 46 ++++++++-- index.html | 18 +++- packages/ui/app-shell.css | 2 + tests/integration/builder-ui.test.js | 9 +- tests/integration/split-layout-ui.test.js | 17 ++++ 9 files changed, 214 insertions(+), 27 deletions(-) create mode 100644 apps/array-builder/README.md diff --git a/README.md b/README.md index f4648fd..2433879 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ 192채널 MEMS 마이크 배열의 배치와 자유음장·저비용 실내 근사에서 DAS·DAS-PHAT·GCC-PHAT 위치 추정을 비교하는 로컬 브라우저 -시뮬레이터입니다. Dataset Builder에서 녹음 파일·합성 신호와 이동 경로를 포함한 재현 가능한 -음향 장면을 만들고 Acoustic Camera에서 CPU 또는 WebGPU로 배열 응답, acoustic map과 위치 검출 -지표를 계산하거나 이동 장면을 시간축으로 재생합니다. +시뮬레이터입니다. Array Builder에서 마이크 배치를 설계하고, Dataset Builder에서 녹음 파일·합성 +신호와 이동 경로를 포함한 재현 가능한 음향 장면을 만든 뒤, Acoustic Camera에서 CPU 또는 +WebGPU로 배열 응답, acoustic map과 위치 검출 지표를 계산하거나 이동 장면을 시간축으로 재생합니다. 별도 프로그램이나 패키지를 설치하지 않습니다. 모든 앱과 계산은 이 저장소와 브라우저 안에서 실행됩니다. @@ -58,8 +58,8 @@ powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\scripts\serve. ### 화면 폭 조절 -데스크톱에서는 Dataset Builder의 오른쪽 설정 패널과 Acoustic Camera의 왼쪽 설정 패널 경계를 -드래그해 넓힐 수 있습니다. 경계선에 키보드 초점을 두면 `←`/`→`로 16px씩, +데스크톱에서는 Array Builder와 Acoustic Camera의 왼쪽 설정 패널, Dataset Builder의 오른쪽 설정 +패널 경계를 드래그해 넓힐 수 있습니다. 경계선에 키보드 초점을 두면 `←`/`→`로 16px씩, `Shift`와 함께 누르면 64px씩 조절됩니다. `Home`/`End`는 최소·최대 폭, `Enter` 또는 더블클릭은 기본 폭으로 되돌립니다. @@ -77,7 +77,25 @@ powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\scripts\serve. ## 내 장면으로 전체 흐름 실행하기 -### 1. Dataset Builder에서 Scene 만들기 +### 1. Array Builder에서 마이크 배열 만들기 (선택) + +1. 시작 화면에서 **Array Builder**를 엽니다. +2. aperture 너비·높이와 프리셋을 배치할 **생성 경계**(사각형 또는 타원)를 정합니다. +3. **격자**, **선형**, **원형**, **Fermat 나선**, **균일 랜덤** 중 하나로 배치합니다. 랜덤은 + seed로 같은 좌표를 재현하며, 최소 간격과 경계 여백도 지정할 수 있습니다. +4. **추가** 도구로 canvas에 마이크를 놓고, 선택한 점을 드래그하거나 x/y/z 입력으로 수정합니다. + 목록에서는 삭제와 채널 순서 변경도 할 수 있습니다. +5. 상태가 **Array JSON 저장 가능**이면 **Array JSON 저장**을 누릅니다. + +불러온 Array의 `sensitivityDb`, `phaseOffsetDeg`, `frequencyResponse` 보정 정보는 마이크 위치·ID나 +채널 순서를 편집해도 보존됩니다. 프리셋 생성은 마이크 목록 전체를 새로 만드는 작업이므로 기존 +채널별 보정값도 교체됩니다. + +생성 경계 형상, 프리셋 종류, random seed와 최소 간격은 편집을 돕는 설정이며 표준 Array JSON에 +저장되지 않습니다. 저장되는 것은 aperture 너비·높이와 최종 마이크 좌표·순서 및 채널별 보정값입니다. +자세한 사용법은 [`apps/array-builder/README.md`](apps/array-builder/README.md)를 참고하세요. + +### 2. Dataset Builder에서 Scene 만들기 1. 시작 화면에서 **Dataset Builder**를 엽니다. 2. 선택적으로 배경 이미지와 오디오를 추가합니다. @@ -90,12 +108,12 @@ powershell.exe -NoLogo -NoProfile -ExecutionPolicy Bypass -File .\scripts\serve. **Preview WAV 저장**은 source와 ambient를 공간 정보 없이 하나의 mono channel로 합친 청취 확인용 파일입니다. 192채널 마이크 신호나 beamforming 결과가 아닙니다. -### 2. Acoustic Camera에서 실행하기 +### 3. Acoustic Camera에서 실행하기 1. 홈으로 돌아가 **Acoustic Camera**를 엽니다. 2. 다음 순서로 입력합니다: **Scene → Array → Experiment → Assets**. 3. **Scene**에서 Builder가 저장한 `.scene.json`을 선택합니다. -4. 기본 배열을 사용하지 않을 때만 **Array**에서 `.array.json`을 선택합니다. +4. 기본 배열을 사용하지 않을 때는 **Array**에서 Array Builder가 저장한 `.array.json`을 선택합니다. 5. 별도 실험 문서를 사용할 때만 **Experiment**에서 `.experiment.json`을 선택합니다. 6. Scene에 이미지나 audio asset이 있다면 **Assets**에서 Builder에 사용했던 원본 파일을 다시 선택합니다. 여러 파일을 한 번에 선택할 수 있습니다. @@ -248,6 +266,7 @@ DAMAS와 CLEAN-SC는 구현하지 않습니다. Camera의 **배열 선택**에서 8개 fixture를 바로 불러와 같은 Scene/Experiment로 연속 실행할 수 있습니다. 저채널·대형 배열의 grating lobe나 compact 배열의 넓은 main lobe는 배치 trade-off를 관찰하기 위한 의도된 예제 특성입니다. +새 배치를 직접 만들려면 [Array Builder](apps/array-builder/README.md)를 사용하세요. 저장소 fixture의 상세한 생성법은 [`assets/array-geometries/README.md`](assets/array-geometries/README.md)를 참고하세요. ## 테스트와 benchmark @@ -273,6 +292,7 @@ test.cmd - [`docs/data-contracts.md`](docs/data-contracts.md): Array·Scene·Experiment·Result 계약 - [`docs/acoustic-model.md`](docs/acoustic-model.md): 마이크 응답과 자유음장·shoebox 희소 근사 - [`docs/realtime-porting.md`](docs/realtime-porting.md): 실측 다채널 위치추정 API 포팅 +- [`apps/array-builder/README.md`](apps/array-builder/README.md): 배열 생성·직접 편집과 Camera 전달 - [`schemas/README.md`](schemas/README.md): JSON Schema 구성 - [`docs/execution-plan.md`](docs/execution-plan.md): 구현 단계와 기술 결정 - [`goal.md`](goal.md): 프로젝트 목표 @@ -283,7 +303,7 @@ test.cmd ## 디렉터리 구조 ```text -apps/ Dataset Builder와 Acoustic Camera UI +apps/ Array Builder, Dataset Builder와 Acoustic Camera UI assets/ 마이크 배열과 synthetic Scene/Experiment fixture benchmarks/ 현재 브라우저에서 실행하는 WebGPU scaling 측정 docs/ 사용자 안내, 데이터 계약, 실행 계획과 기준 실측 diff --git a/apps/acoustic-camera/index.html b/apps/acoustic-camera/index.html index 17c71f1..05bd867 100644 --- a/apps/acoustic-camera/index.html +++ b/apps/acoustic-camera/index.html @@ -51,7 +51,7 @@
-
MIC ARRAY

배열

— ch
+