Skip to content

Repository files navigation

SpatialLume logo

SpatialLume

Standalone spatial RGB & LCD controller powered by Rust.

SignalRGB와 L-Connect 없이, 실제 PC의 조명·LCD·펌프를 하나의 3D 공간에서 제어합니다.

Rust Windows 20 FPS No open ports

SpatialLume desktop console

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"]
Loading

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에 정리되어 있습니다. 이 저장소 자체는 개인 하드웨어용 비공개 프로젝트이며 별도의 오픈 소스 라이선스를 부여하지 않습니다.

About

Standalone Rust/Tauri controller for spatial RGB, LCDs, pumps, and PC hardware.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages