Unity
내 머리속을 그림으로 그린다면? 뇌파를 이용하여 그림을 그려보자! - 뇌파로 그리는 세상
전*원··수정됨 2026.07.22

우리의 생각과 감정은 뇌파(EEG)라는 정교한 신호로 나타납니다. 만약 이 보이지 않는 신호를 시각적인 예술 작품으로 바꿀 수 있다면 어떨까요? 이번 포스팅에서는 Unity와 Stable Diffusion을 연동하여 사용자의 실시간 뇌파 신호를 분석하고, 이를 바탕으로 개인화된 추상화를 생성하는 'Draw World: The Brain Power' 프로젝트의 기술적인 구현 과정을 공유합니다.
1. 시스템 아키텍처 개요
본 프로젝트는 크게 세 가지 단계로 구성됩니다.
데이터 수집: 외부 EEG 장치로부터 실시간 뇌파 데이터를 수집 (Unity HTTP 서버)
데이터 처리: 수집된 데이터를 분석하여 현재 사용자의 지배적인 뇌파 상태를 판별
AI 생성: 판별된 상태에 최적화된 Prompt를 생성하여 Stable Diffusion API를 통해 이미지를 완성
이 모든 과정은 Unity를 메인 플랫폼으로 하여 실시간 피드백과 함께 사용자에게 제공됩니다.
2. 주요 기술적 구현
2.1 실시간 뇌파 데이터 수집 (EEGReceiver.cs)
뇌파 데이터는 외부 기기에서 HTTP POST 요청을 통해 Unity Loop로 들어옵니다. EEGReceiver.cs는 HttpListener를 사용하여 BackGround Thread에서 데이터를 수집하며, Thread 간 안전을 위해 큐(Queue)를 활용하여 메인 Thread인 MeasureManager로 데이터를 전달합니다.


2.2 뇌파 강도 분석 및 특징 추출 (MeasureManager.cs)
사용자가 약 60초 동안 집중하거나 이완하면, MeasureManager는 실시간으로 들어오는 각 파형의 평균값을 계산합니다. 측정 종료 시, 가장 우세한(평균값이 높은) 뇌파를 찾아 현재 사용자의 '심리적 컬러'를 결정합니다.

Alpha (이완): "Soft pastel green with radiating lotus curves"
Beta (활성): "Electric neon blue with geometric lightning lines"
Gamma (통찰): "Rainbow prism glow with exploding fractal spirals"
2.3 생성형 AI 연동 (AIManager.cs)
결정된 Prompt는 Local에 구축된 Stable Diffusion (Automatic1111/Forge) API로 전송됩니다.
생성되는 동안 Polling 방식을 통해 서버에서 실시간 진행률(Progress)을 가져와 화면에 부드러운 Progress bar를 그려냄으로써 사용자 경험(UX)을 극대화했습니다.

3. 사용자 경험(UX) 최적화
실시간 그래프 시각화 : LineRenderer를 활용해 측정 중인 뇌파를 시각적으로 보여줌으로써 조작감과 몰입감을 높였습니다.
결과 공유 시스템 : 생성된 이미지는 단순히 보여주는 것에 그치지 않고, QRCreator와 NaverUploader를 통해 스마트폰으로 즉시 소장할 수 있도록 구현했습니다.
모델 전환 자동화 : LoadModelWithFix 코루틴을 통해 앱 시작 시 필요한 SDXL 모델을 자동으로 Load하여 관리자의 개입을 최소화했습니다.
4. 마치며
이 프로젝트는 전통적인 인터랙티브 미디어에 생성형 AI라는 강력한 도구를 결합한 사례입니다. 뇌파라는 보이지 않는 '바이오 데이터'를 '디지털 아트'로 치환하는 과정은 기술적으로도 흥미롭지만, 사용자에게 자신의 내면을 들여다보는 특별한 경험을 제공한다는 점에서 큰 의미가 있었습니다.
향후에는 단순한 평균값 분석을 넘어, 머신러닝(ML) 기반의 감정 분류 모델을 도입하여 더욱 정교하고 섬세한 프롬프트 매핑을 시도해볼 예정입니다.
읽기 도구
약 4분 읽기
이 글이 도움이 되었나요?