feat: add varied microphone array presets
This commit is contained in:
@@ -113,8 +113,9 @@ curve는 합성 microphone channel에 항상 적용됩니다. **마이크 주파
|
||||
- **Ground truth**를 켜면 source 위치와 검출 peak를 비교할 수 있습니다.
|
||||
- **빔 분포**는 peak 주변 half-power lobe의 power 가중 공분산을 1× RMS 점선과 2× RMS 영역으로
|
||||
표시합니다. 위치 확률, Gaussian 신뢰구간 또는 측정 불확실성 보정값은 아닙니다.
|
||||
- rectangular와 Fermat spiral preset을 같은 Scene/Experiment에서 연속 실행하면 **배열 비교 기록**에
|
||||
backend, timing과 평가 요약이 남습니다.
|
||||
- **배열 선택**에는 채널 수(4·12·48·192·384), aperture 크기(0.12·0.45·1.20 m), rectangular와
|
||||
Fermat spiral 배치를 분리 비교하는 8개 preset이 있습니다. 같은 Scene/Experiment에서 연속 실행하면
|
||||
**배열 비교 기록**에 backend, timing과 평가 요약이 남습니다.
|
||||
- 입력을 바꾼 뒤 화면에 남은 결과는 이전 실행 snapshot이며 UI가 이전 설정 결과임을 표시합니다.
|
||||
- Camera에서 거리·음속·seed를 바꾼 Scene과 scan·STFT·band를 바꾼 Experiment는 우측의 각
|
||||
**JSON 저장** 버튼으로 보존할 수 있습니다.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="192채널 WebGPU acoustic camera simulator" />
|
||||
<meta name="description" content="다중 채널 CPU·WebGPU acoustic camera simulator" />
|
||||
<title>Acoustic Camera · micarrsim</title>
|
||||
<link rel="stylesheet" href="/packages/ui/app-shell.css" />
|
||||
<link rel="stylesheet" href="/apps/acoustic-camera/styles.css" />
|
||||
@@ -52,7 +52,28 @@
|
||||
|
||||
<div class="array-card">
|
||||
<div class="array-heading"><div><span class="compact-label">MIC ARRAY</span><h3 id="array-title">배열</h3></div><strong id="microphone-count">— ch</strong></div>
|
||||
<label class="field"><span>배열 선택</span><select id="array-preset"><option value="rectangular-16x12">16×12 rectangular · 기준</option><option value="fermat-spiral-192">Fermat spiral · 비교</option><option value="custom">불러온 Array JSON</option></select></label>
|
||||
<label class="field">
|
||||
<span>배열 선택</span>
|
||||
<select id="array-preset">
|
||||
<optgroup label="기준 배열">
|
||||
<option value="rectangular-16x12">16×12 rectangular · 192 ch / 0.45 m</option>
|
||||
<option value="fermat-spiral-192">Fermat spiral · 192 ch / Ø 0.45 m</option>
|
||||
</optgroup>
|
||||
<optgroup label="채널 수 비교 · 0.45 m">
|
||||
<option value="rectangular-2x2-450mm">2×2 sparse · 4 ch</option>
|
||||
<option value="rectangular-4x3-450mm">4×3 sparse · 12 ch</option>
|
||||
<option value="rectangular-8x6-450mm">8×6 · 48 ch</option>
|
||||
<option value="rectangular-24x16-450mm">24×16 dense · 384 ch</option>
|
||||
</optgroup>
|
||||
<optgroup label="물리 크기 비교 · 192 ch">
|
||||
<option value="rectangular-16x12-compact">16×12 compact · 0.12 m</option>
|
||||
<option value="rectangular-16x12-large">16×12 large · 1.20 m</option>
|
||||
</optgroup>
|
||||
<optgroup label="사용자 배열">
|
||||
<option value="custom">불러온 Array JSON</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</label>
|
||||
<details class="inline-details" id="array-details">
|
||||
<summary>배열 미리보기와 좌표 정보</summary>
|
||||
<canvas id="array-canvas" aria-label="마이크 배열 평면도"></canvas>
|
||||
|
||||
@@ -44,6 +44,12 @@ const MOVING_EXAMPLE_URLS = {
|
||||
const ARRAY_PRESET_URLS = new Map([
|
||||
["rectangular-16x12", "/assets/array-geometries/rectangular-16x12.array.json"],
|
||||
["fermat-spiral-192", "/assets/array-geometries/fermat-spiral-192.array.json"],
|
||||
["rectangular-2x2-450mm", "/assets/array-geometries/rectangular-2x2-450mm.array.json"],
|
||||
["rectangular-4x3-450mm", "/assets/array-geometries/rectangular-4x3-450mm.array.json"],
|
||||
["rectangular-8x6-450mm", "/assets/array-geometries/rectangular-8x6-450mm.array.json"],
|
||||
["rectangular-24x16-450mm", "/assets/array-geometries/rectangular-24x16-450mm.array.json"],
|
||||
["rectangular-16x12-compact", "/assets/array-geometries/rectangular-16x12-compact.array.json"],
|
||||
["rectangular-16x12-large", "/assets/array-geometries/rectangular-16x12-large.array.json"],
|
||||
]);
|
||||
const BAND_COLORS = ["#65f2bf", "#58c7ff", "#ff7f8f", "#ffc56e", "#b294ff", "#8fe388", "#ff9ee5", "#83a8ff"];
|
||||
const MAX_HISTORY_ITEMS = 24;
|
||||
|
||||
Reference in New Issue
Block a user