시뮬레이션: 경로, 라디오맵, 빔포밍, 채널 분석
SEAM Studio의 모든 계산은 Results 모드에서 이뤄집니다: 레이 경로, 커버리지 라디오맵, MIMO 빔포밍, 링크별 채널 분석. 이 가이드는 각 솔버와 핵심 노브, 결과를 읽는 법을 차례로 안내합니다. Sionna RT가 설치되어 있지 않아도 전 과정이 Mock 백엔드로 동작하므로 GPU 없이 그대로 따라 할 수 있습니다.
1. Results 모드 화면 구성
툴바에서 Results 탭을 클릭하세요. 오른쪽 사이드바에 Global, Paths, Radio map 세 개의 접이식 섹션을 가진 Simulation 패널과, 경로 테이블·오버레이 토글이 있는 Results 패널이 놓입니다. Channel analysis, Metrics dashboard, UE trajectory, Scenario playback, ML dataset 패널은 도킹 가능합니다 — 어느 모드에서든 툴바의 Panels ▾ 메뉴에서 플로팅하거나 좌/우 사이드바로 옮길 수 있습니다.
Global 섹션은 모든 솔버(경로/라디오맵/빔포밍/채널)가 공유하는 설정입니다:
| 필드 | 하는 일 |
|---|---|
| Preset | 대표 시나리오 설정을 Paths와 Radio map에 한 번에 적용: 28 GHz Indoor Lab, 28 GHz Outdoor Campus, 3.5 GHz Urban Macro, 60 GHz Indoor, 28 GHz UAV A2G. 노브를 손으로 바꾸면 Custom으로 전환됩니다. 씬에 시뮬레이션 구성이 둘 이상 저장되어 있으면(Sample Demo의 Default 28 GHz와 Sensing demo (3.5 GHz)) 맨 위 Stored configs 묶음에 나옵니다. 하나를 고르면 그 구성이 그대로 Paths와 Radio map에 들어가고, 이후 모든 솔브의 결과 simulation_config_id에 그 id가 붙습니다(드롭다운 아래 Results tagged … 줄. 노브를 바꾸면 (edited)가 붙지만 id는 그대로). 프로젝트를 열면 첫 번째 저장 구성 위에 환경 프리셋의 솔버·격자 필드를 덮어 시작하므로, 첫 구성이 그 프리셋과 다른 프로젝트에서는 열자마자 (edited)가 붙습니다. 그 구성을 고르면 그대로 불러옵니다. 패널 아래 Save as project default는 Paths 구성을 그것을 불러온 저장 구성에 다시 씁니다. 두 번째 이후 저장 구성이 활성일 때는 버튼이 Save to stored config "…"로 바뀌고 그 구성의 id와 이름을 유지하며, 첫 번째 구성이 활성이면 예전처럼 프로젝트 기본 구성에 저장합니다. |
| Backend | auto / mock / sionna. auto는 Sionna RT가 설치되어 있고 Dr.Jit 백엔드가 동작하면(CUDA GPU, 또는 CPU의 LLVM. INSTALL 참고) 사용하고, 아니면 mock 솔버로 대체하며 그 이유를 결과 경고에 적습니다. |
| Engine | 등록된 Sionna RT 버전이 둘 이상일 때만 표시 — paths 솔브를 돌릴 버전을 고릅니다(예: Sionna RT 1.2.2). ../engines.ko.md 참고. |
| Frequency (GHz) | 반송파 주파수(기본 28 GHz). |
| Bandwidth (MHz) | 잡음·CFR·용량 계산에 쓰는 채널 대역폭. |
| Noise figure (dB) | SNR/SINR용 수신기 잡음지수. |
| Seed | 난수 시드 — 시드가 같으면 레이도 같습니다. |
Global 섹션에는 Beamforming array 설정(4절)과 Live sync 토글도 함께 있습니다.
디바이스 안테나. TX와 RX는 디바이스 인스펙터에서 저마다 안테나(패턴, 편파, 배열 크기)를 갖지만, Sionna RT에는 씬 단위 TX 배열과 RX 배열이 하나씩뿐입니다. 그래서 Sionna의 경로·센싱·시나리오 솔브는 처음 선택한 TX(RX)의 안테나를 모든 TX(RX)에 적용하고, v0.1.14부터는 안테나가 다른 디바이스 이름을 적어 경고합니다.
2. 경로 (Paths)

같은 솔브를 실행하는 버튼이 두 개 있습니다:
- 툴바 오른쪽의 파란 Simulate paths 버튼(어느 모드에서든 원클릭),
- Simulation 패널 Paths 섹션 안의 Compute paths(노브를 먼저 조정하고 실행할 때).
- 둘 중 하나를 누르면 토스트가 결과를 알려줍니다(예:
Simulated 5 path(s) via sionna backend). - 3D 씬 위에 TX→RX 폴리라인이 오버레이됩니다. 상호작용별 색상: LOS 시안, 반사 마젠타, 회절 주황, 산란 초록. TX 마커는 빨강, RX 마커는 파랑입니다.
- Results 패널의 테이블에 경로가 나열됩니다(type / dBm / ns / #int 열). 행을 클릭하면 정점과 상호작용이 prim id·RF 재질로 매핑되어 표시되고, Delay vs power 산점도와 AoA / AoD 플롯이 함께 나타납니다.
정확도 프리셋 (Accuracy)
레이 수를 하나씩 만지는 대신 Paths 섹션의 Accuracy 세그먼트 버튼을 쓰세요:
| 프리셋 | Samples/it | Max depth |
|---|---|---|
| Preview | 10^5 | 2 |
| Balanced | 10^6 | 3 |
| High | 5×10^6 | 5 |
Max depth(0–12)나 Samples / it (log 10)(10^4–10^7) 슬라이더를 직접 움직이면 Custom으로 표시됩니다. 그 아래 메커니즘 체크박스 (Line of sight, Specular reflection, Diffuse reflection, Refraction, Diffraction, Edge diffraction, Lit-region diffraction)로 솔버가 추적할 상호작용을 고릅니다.
오버레이 토글과 필터
Results 패널의 Show: 줄에서 오버레이를 각각 켜고 끕니다 — Rays,
Radio map, Beamforming, Trajectory rays, Scenario.
뷰어 컨트롤로 그려지는 경로를 거를 수 있습니다: Strongest N(또는
All), Min power(dBm), Color by type/power/depth,
Line width by power. 레이 오버레이를 완전히 지우려면 Paths 섹션의
Remove를 누르세요. Auto update를 켜 두면 씬이 바뀔 때마다 경로가
자동으로 다시 계산됩니다.
3. 라디오맵 (Radio map)

라디오맵은 씬 위에 수신 격자를 깔고 수신 세기를 히트맵으로 칠합니다:
- Simulation 패널의 Radio map 섹션에서 Compute radio map을 누릅니다(Results 패널의 Simulate radio map도 동일).
- jet 컬러맵(파랑=약함, 빨강=강함) 히트맵이 나타나고, 뷰포트에 Path gain(dB) — 또는 RSS(dBm) — 라벨이 붙은 컬러바 범례가 값 범위를 보여줍니다.
- 옵션: Cell size(m), Height(m), Metric —
Path gain (dB),RSS (dBm),SINR (multi-TX). 섹션에는 별도의 Accuracy / Max depth / Samples / 메커니즘 노브도 있습니다. - Remove로 오버레이를 지웁니다. Auto update는 씬 편집 시 재계산하고, every 셀렉트(10 s / 30 s / 1 min / 5 min)는 라이브 센싱 씬을 위해 고정 주기로 다시 풉니다.
셀 맵 vs 메시 맵
위의 맵은 고정 높이의 수평 격자, 즉 평면 셀 맵입니다. 커버리지를
실제 표면(벽·바닥·도로)에 칠하려면 대상 프림을 선택한 뒤 Results
패널의 Mesh radio map 접이식 섹션을 열고 Run mesh radio map을
누르세요. 삼각형마다 탐침을 하나씩 풀어 색을 지오메트리 위에 입히고,
전용 Mesh map 체크박스로 오버레이를 토글하며, 값 범위는 예를 들어
Path gain range −95.2 … −61.4 dB (jet: low → high)처럼 표시됩니다.
4. 빔포밍 어레이 (Beamforming array)

- Global 섹션에서 Beamforming array를 설정합니다: TX rows × cols, RX rows × cols(각각 1/2/4/8, 예: 4 × 4).
- Mode를 고릅니다:
- codebook sweep — 양단의 빔 각도를 스윕합니다. Sweep start / Sweep stop / Sweep step(°) 필드가 나타납니다.
- TX-MRT — TX 측 최대비 전송.
- SVD — 양단 SVD 빔포밍.
- Beamforming 버튼을 누릅니다(Results 패널과 툴바 Actions ▾ → Beamforming에서도 실행 가능).
- 토스트가 실행 결과를 요약합니다(예:
Beamforming 4x4→4x4 (mock) · codebook 25.0 dB · best TX 0° / RX 0°). 결과 카드에는 단일 소자 기준값과 이득이, 코드북 스윕에서는 TX/RX 각도별 이득의 jet 히트맵이 함께 표시됩니다. 버튼 옆 Auto update 체크박스를 켜면 씬이 바뀔 때 자동으로 다시 실행됩니다.
5. 채널 분석 (Channel analysis)

Channel analysis 패널은 도킹 가능합니다 — Panels ▾에서 열고, 3D 뷰와 나란히 보고 싶으면 플로팅하세요.
- TX와 RX 디바이스를 고르고 CFR points(대역 내 주파수 표본 수, 기본 128)를 설정합니다.
- 필요하면 Live parameters를 조정합니다: Frequency (GHz), Bandwidth (MHz), TX power (dBm), Noise figure (dB), SCS (kHz)(15/30/60/120). SCS 옆에는 파생값 N_RB(자원블록 수 = ⌊BW/(12·SCS)⌋)가 실시간으로 갱신되고, Reset to config는 값을 현재 솔버 설정과 TX 디바이스 값으로 되돌립니다.
- Analyze를 누릅니다. 결과 줄에 TX→RX 쌍이 fixed link 배지와 함께 표시됩니다(현재 위치에서의 스냅샷 — 이동 수신기 스윕은 UE trajectory 패널 담당). 백엔드, 주파수, 3D 거리, 경로 수도 함께 나옵니다.
그 아래:
- Link budget — RSS, SNR, SINR, Interference(다중 TX 씬에서는 간섭 TX 수 포함), Shannon 용량, K-factor, RMS DS (지연확산), Coh. BW, 그리고 시변 채널이면 Doppler spread· Coh. time. TX나 RX에 속도가 있거나(움직이는 액터에 타고 있는 경우 포함), 씬에 t = 0에 움직이는 궤적을 가진 액터가 하나라도 있으면 시변 채널로 봅니다(Sionna 백엔드, sensing.ko.md 4절 참고). 움직이는 액터에 닿는 경로가 하나도 없어도 마찬가지이며, 이때 Doppler spread는 0 Hz로 나오고 Coh. time은 표시되지 않습니다.
- CIR (power delay profile) — 탭마다 경로 종류 색으로 그린 스템 플롯.
- CFR magnitude — 대역에 걸친 |H| (dB).
- Path-loss models vs RT — 3GPP 모델 예측과 레이 트레이싱 기준 대비 차이.
한 번 분석한 뒤 Live parameter를 바꾸면 같은 쌍이 자동으로 재분석됩니다 (디바운스). Auto update 체크박스는 씬이 바뀔 때마다 마지막 분석을 다시 실행합니다(먼저 수동 Analyze가 한 번 필요). Clear는 결과를 지웁니다.
접혀 있는 세 개의 확장 섹션도 있습니다: Channel sweep(설정 필드 하나를 스윕하며 링크 지표를 차트로 — Run sweep), Doppler-time spectrogram(Compute spectrogram — 시변 채널의 STFT 히트맵), Flight-log validation(Validate — 경로를 따라 실측 vs 예측 path gain 비교).
6. 백엔드, 결과 보존, stale 표시
- Sionna RT가 없으면 모든 솔버가 Mock 백엔드로 대체됩니다(툴바 칩이
Mock only로 표시). mock은 결정적이고 결과 형식이 동일하므로, 어느
노트북에서든 전체 워크플로를 만들어 시험한 뒤 실 장비에서 Backend를
sionna로 바꾸면 됩니다. - mock 레이는 물리적으로 정확하지 않습니다. UI 파이프라인 확인용으로 고정된 데모 경로(LOS + 지면 반사 + 벽 반사 1개)를 내보낼 뿐, 반사·굴절 지점을 씬 지오메트리에 대해 실제로 추적하지 않습니다. 레이의 물리적 타당성은 Sionna 백엔드에서만 판단하세요.
- 결과는 프로젝트별로 보존됩니다: 경로 결과는 프로젝트 폴더의
results/{backend}_paths_{NNN}.json에 쌓이고, 종류별 최신 결과는 프로젝트를 열 때 함께 로드됩니다. - Results 패널의 A/B compare (pin A → re-solve → B) 는 현재 경로 + 채널 결과를 기준선 A로 고정합니다. 파라미터를 바꾸고 다시 solve하면 경로 수, 최강 경로 파워·게인, 최초 도달, RSRP/RSRQ/RSSI/RSS/SINR, RMS 지연확산의 A / B / Δ 표와 출처 칩 두 개 — solver config(솔버 노브만)와 scene(디바이스·재질·지오메트리; 의도한 파라미터 편집이면 scene differs로 보이는 게 정상) — 가 표시됩니다. 핀은 클라이언트 전용이라 지우거나 프로젝트를 바꾸기 전까지 유지되며, 디스크에는 아무것도 추가로 쓰지 않습니다.
- Results 패널의 Run history 접이식 섹션이 결과 탐색기입니다: 지난 실행을 종류별로 묶어 보여주고, 클릭 한 번으로 다시 로드하며, 라벨을 붙이고, 정리할 수 있습니다(Keep latest N per kind → Prune old results; 라벨 붙은 실행은 보존).
- 계산 후 씬이 바뀌면 결과에 ⚠ stale 배지가 붙습니다 — 오래된 숫자를 조용히 보여주는 일은 없으니, 다시 실행해 갱신하세요.