프로젝트 소개

Storyloom은 실시간으로 내러티브를 생성하는 AI 기반 비주얼 노벨 엔진입니다. 버퍼링 없이 LLM 출력을 줄 단위로 파싱하는 스트리밍 XML 파이프라인(StreamParser → StateManager → EventDispatcher)과, 읽는 시간 동안 지연을 숨기기 위해 문단 중간에서 다음 API 호출을 트리거하는 브리지 프리페치 메커니즘을 사용합니다. 주요 기능: - 텍스트 모드와 그래프 모드 두 가지 게임 모드, 씬 내 선택 및 체크포인트에서의 아웃라인 수준 라인 포크 - O(1) 카탈로그 매칭, LLM 폴백, 비동기 AI 생성을 수행하는 에셋 파이프라인을 통한 캐릭터 스프라이트와 씬 배경 - LLM이 쓰기를 제안하고 엔진이 적용 전에 타입 검사를 수행하는 상태 검증; 거부된 쓰기는 모델에 피드백됨 - 슬라이딩 윈도우, 영구 시스템 프롬프트 앵커, 체크포인트 압축(~50K 토큰)을 통한 컨텍스트 관리 - 세계, 캐릭터, 플롯을 생성하기 전에 AI가 사용자와 아이디어를 인터뷰하는 공동 창작 흐름 - 모드에 구애받지 않는 원자적 JSON 저장, 언제든지 텍스트 모드와 그래프 모드 간 전환 가능 - gettext를 통한 영어, 간체 중국어, 번체 중국어 i18n 지원 - FastAPI + SSE + 바닐라 JS SPA로 구축된 웹 UI, pywebview를 통한 선택적 네이티브 데스크톱 창 설치 옵션으로는 파이썬이 필요 없는 독립 실행형 바이너리, Python ≥ 3.10용 PyPI 휠, 소스에서 빌드가 포함됩니다. 선택적 엑스트라로는 onnxruntime을 사용한 생성 이미지의 배경 제거 및 네이티브 데스크톱 창 지원이 추가됩니다. 프로젝트는 MIT 라이선스를 따르며, Conventional Commits와 함께 stdlib-first Python 관행을 따릅니다.