Standalone spatial RGB & LCD controller powered by Rust.
SignalRGB와 L-Connect 없이, 실제 PC의 조명·LCD·펌프를 하나의 3D 공간에서 제어합니다.
SpatialLume는 이 PC의 실제 XYZ LED 좌표를 바탕으로 효과를 계산하고, Rust 코어가 USB/HID 장치와 두 LCD에 직접 출력하는 Tauri 데스크톱 앱입니다. SignalRGB에서 한 번 옮겨 온 레이아웃은 로컬 데이터로 보존되며, 실행 중 SignalRGB나 L-Connect의 설치 파일·프로세스·API에 의존하지 않습니다.
- 실제 3D 공간 엔진 — 케이스, 팬, 스트립, 키보드와 마우스를 하나의 좌표계에서 샘플링합니다.
- 13개 공간 효과 — Prism Rainbow, Cube Rain, Random Storm, Plasma Orbs, Meteor Shower, Aurora, Black Hole, Voxel Wave, Nova Vortex, Perlin Blend, Plane Wave, Radial Pulse, Double Helix.
- 20 FPS 직접 출력 — RGB와 TL-M10 / HydroShift LCD 렌더링을 일정한 프레임 속도로 운용합니다.
- LCD 스튜디오 — 센서, 시계, 펌프 RPM과 현재 효과를 다양한 원형·와이드 스타일로 조합합니다.
- 하드웨어 센서 연동 — Rust에서 CPU·메모리·NVIDIA GPU 상태를 읽어 LCD에 반영합니다.
- 포트 없는 데스크톱 앱 — React UI와 Rust 코어가 Tauri IPC로 통신하며
3000/8765서버를 열지 않습니다. - 트레이 상주 — 창을 닫아도 제어는 계속되고 트레이에서 열기·일시정지·재개·종료할 수 있습니다.
- Windows 자동 시작 — 로그인 시 창을 띄우지 않고 트레이와 하드웨어 엔진만 시작합니다.
| 영역 | 장치 | 제어 범위 |
|---|---|---|
| RGB 허브 | Nollie16v3 | JONSBO 팬·스트립 채널 직접 출력 |
| 메인보드 | ASUS TUF GAMING B850M-PLUS WIFI | Aura 및 온보드/헤더 조명 |
| 입력 장치 | Logitech G715 / G502 X PLUS | 키별·영역별 HID 조명 |
| 케이스 LCD | Thermalright TL-M10 VISION | 1920 × 462 와이드 LCD, 20 FPS |
| 수냉 | Lian Li HydroShift II LCD-C 360N | 480 × 480 원형 LCD, 24 LED 펌프 링, 펌프 제어 |
| 팬·RAM 영역 | JONSBO ZB-120 / ZB-240 / ZB-360 / NF-2 | 실제 설치 방향, 미러·플립, 공유 LED 매핑 |
flowchart LR
UI["Tauri WebView2 · React"] --> IPC["In-process IPC · no TCP port"]
IPC --> SPACE["Rust 3D spatial engine · 20 FPS"]
IPC --> LCD["Rust LCD compositor · 20 FPS"]
SENSOR["CPU · RAM · NVIDIA sensors"] --> LCD
SPACE --> HUB["Nollie16v3"]
SPACE --> AURA["ASUS Aura"]
SPACE --> HID["Logitech HID++"]
SPACE --> RING["HydroShift pump ring"]
LCD --> TLM10["TL-M10 VISION"]
LCD --> HYDRO["HydroShift round LCD"]
Tauri WebView는 레이아웃과 효과를 편집하고, 같은 프로세스 안의 Rust 코어는 저장된 3D 좌표에서 각 LED의 색을 계산해 장치별 프로토콜로 변환합니다. 기존 Axum 라우팅 로직은 메모리 내부 서비스로 재사용되며 네트워크 소켓은 만들지 않습니다.
- Windows 11
- Microsoft Edge WebView2 Runtime
- 지원 장치가 USB에 연결된 상태
소스에서 빌드할 때는 Rust stable, Node.js 22 이상과 pnpm이 추가로 필요합니다.
pnpm install
pnpm tauri:build
powershell -ExecutionPolicy Bypass -File .\start.ps1생성된 앱은 src-tauri/target/release/SpatialLume.exe입니다. 첫 실행 시 현재 data/ 설정을 사용자 앱 데이터 폴더로 복사하고 Windows 자동 시작을 등록합니다. UI를 닫아도 트레이에서 20 FPS 제어가 계속됩니다.
cargo test --manifest-path native/Cargo.toml
cargo test --manifest-path src-tauri/Cargo.toml
pnpm test| 파일 | 내용 |
|---|---|
%APPDATA%/com.andyjusa.spatiallume/data/layout.json |
3D 좌표, 크기, 회전, 미러/플립과 LED 순서 |
%APPDATA%/com.andyjusa.spatiallume/data/hardware.json |
실제 장치와 채널 매핑 |
%APPDATA%/com.andyjusa.spatiallume/data/effect.json |
현재 공간 효과와 색상·속도 파라미터 |
%APPDATA%/com.andyjusa.spatiallume/data/lcd-profiles.json |
두 LCD의 스타일, 정보 항목과 강조색 |
Caution
이 저장소의 레이아웃과 장치 매핑은 특정 PC를 기준으로 만들어졌습니다. 다른 시스템에서 앱을 실행하기 전 VID/PID, 채널, LED 수와 LCD 해상도를 반드시 확인하세요. 동일 장치를 잡고 있는 다른 RGB/LCD 프로그램과 동시에 실행하지 마세요.
SignalRGB 레이아웃 가져오기는 최초 마이그레이션용 도구일 뿐입니다. 정상 운용 시 SpatialLume는 저장된 JSON 레이아웃과 자체 Rust 장치 드라이버만 사용합니다. L-Connect 역시 런타임 요구 사항이 아닙니다.
HydroShift LCD 전송에는 프로젝트에 고정된 TinyUZ 실행 파일을 사용합니다. 관련 라이선스와 고지는 THIRD_PARTY_NOTICES.md에 정리되어 있습니다. 이 저장소 자체는 개인 하드웨어용 비공개 프로젝트이며 별도의 오픈 소스 라이선스를 부여하지 않습니다.
