프로젝트 소개
flybrain-sdk는 소규모 커넥톰 시뮬레이션을 실행하고 이를 게임, 오디오 데모 및 실험에 연결하기 위한 알파 단계(0.4)의 Python SDK입니다. 이 SDK는 의도적으로 CPU 우선으로 설계되었습니다. 참조 백엔드는 float64 엣지 리스트 기반의 NumPy leaky integrate-and-fire (LIF) 런타임이므로 GPU나 CUDA 설정이 필요하지 않습니다. Python 3.9+와 NumPy가 유일한 런타임 요구 사항이며, 패키지를 임포트하거나 번들로 제공되는 토이 모델을 로드하는 작업은 오프라인에서 가능합니다.
핵심 API. 세션은 FlyBrain.load("toy", backend="cpu")로 시작하며, 여기에는 번들 데이터, 로컬 모델 JSON 경로 또는 Connectome 객체를 사용할 수 있습니다. stimulate(name, strength, duration_ms)는 다음 틱에 대해 유한한 전류 펄스를 예약하고, step(n)은 n개의 고정 시뮬레이션 틱을 진행한 후 불변의 최종 상태를 반환하며, action()은 시간을 진행시키지 않고 독립적인 모터 강도를 읽습니다. save()/restore()는 모델, 설정, 다이내믹스 및 대기 중인 자극이 포함된 체크포인트를 쓰고 다시 로드합니다. advance(duration_ms=...)는 기간 기반의 변형 기능을 제공합니다. 토이 감각 채널은 food, looming_left, looming_right, touch이며, 모터 채널은 walk, turn_left, turn_right, jump로 각각 0에서 1 사이의 값이며 확률이나 측정된 속도가 아닌 휴리스틱 제어 값으로 설명됩니다. 게임 이동 및 렌더링은 호스트 애플리케이션의 몫입니다.
백엔드. 현재 cpu만 구현되어 있습니다. wasm과 cuda라는 이름은 BackendUnavailableError를 발생시키는 예약 인터페이스로 존재하며, 프로젝트는 CUDA 및 WASM이 구현된 런타임이 아니라고 명시하고 있습니다.
모델. 번들로 제공되는 오프라인 데모는 수작업으로 작성된 12개 뉴런 회로입니다. 별도의 약 3.8MB MaleCNS 모델(male-cns-escape-v1)은 313개의 실제 소스 뉴런과 20,607개의 해부학적 엣지를 실행하며, 재현 가능한 레시피가 포함된 모델 카드로 문서화된 명시적 LIF 파라미터를 가정합니다. 오프라인 카탈로그는 list_models() 및 model_info()를 통해 확인할 수 있으며, fetch_model()은 명시적인 네트워크 요청을 수행하고 에셋을 로컬에 캐싱한 후 파일 경로를 반환합니다. CLI 대응 명령어로는 "python -m flybrain models list|info|download"가 있습니다. 생물학적 모델은 명시적인 download=True 플래그가 필요합니다. 휠(wheel) 패키지에는 대형 모델이 포함되어 있지 않으며, 원시 Feather/NPY 에셋은 아직 FlyBrain.load()에 직접 전달할 수 없습니다.
판독 및 개입. 사용자는 (예를 들어 cell_type별로) 뉴런 집단을 선택하고, rates_hz와 같은 필드를 관찰하며, 그룹에 사용자 정의 판독 이름을 바인딩할 수 있습니다. 또한 지정된 진폭, 기간 및 단위의 전류로 선택된 세포를 구동하거나, 해제 가능한 개입 레이어를 통해 그룹을 침묵시킬 수 있습니다. open_circuit 예제와 MaleCNS 재현 가이드에서 해당 워크플로우를 확인할 수 있습니다.
데모 키트 및 브라우저 도구. 세션 루프는 교체 가능한 피처 인코더, 레이트 판독 및 환경뿐만 아니라 체크포인트와 검증된 피드백 재생을 지원합니다. "python examples/demo_session.py dodge" 및 "... tones"는 녹음 파일, 체크포인트 및 독립 실행형 재생 HTML을 생성하며, tones 템플릿은 WAV 파일도 내보냅니다. 브라우저 회로 랩(circuit lab)은 라이브로 실행되어 방문자가 토이 또는 실제 세포를 자극하고, 출력을 침묵시키며, 레이트를 검사하고 편집 가능한 HTML 데모를 다운로드할 수 있게 합니다. 갤러리 뷰어는 기록된 Python 실행 내용을 재생합니다. 리포지토리에는 TypeScript CPU 런타임 패키지가 포함되어 있습니다.
설치 및 빌드. 이 패키지는 PyPI에 게시되지 않았으므로 GitHub(pip install "flybrain-sdk @ git+https://github.com/freeman-1984-coder/flybrain-sdk.git") 또는 클론 후 pip install -e . (선택적으로 pytest를 위한 dev extra 포함)를 통해 설치합니다. 배포 아티팩트는 python -m build로 생성하고 twine check로 확인합니다.
범위 및 정직성 참고 사항. 저자들은 이 SDK를 실험을 위한 배관(plumbing)으로 설명하며, 파리의 검증된 에뮬레이션이 아니라고 밝힙니다. 배선만으로는 생리학적 파라미터, 수용체 효과, 감각 인코딩, 모터 디코딩, 신체 또는 학습을 결정할 수 없으며, 데모에는 가소성, 형태학, 현실적인 시각 또는 추론된 생물학적 행동이 없습니다. 전체 뇌의 실시간 CPU 성능은 아직 확립되지 않았습니다. 코드와 원본 토이 데이터는 MIT 라이선스이며, 제3자 데이터셋은 자체 라이선스와 인용 요구 사항을 유지합니다. 본 프로젝트는 Janelia, FlyWire, Google 또는 데이터셋 저자와 무관하며 독립적임을 명시합니다. 기여 가능 분야로는 라이선스 및 무결성 메타데이터가 포함된 버전 관리 모델 소스, FlyWire 임포터, Godot/Unity 어댑터 및 참조 다이내믹스의 WASM 포트 등이 나열되어 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.