WebGL Runtime
병리 WSI 뷰어를 위한 최소 기능, 최대 성능
Open Plant WSI는 대용량 Whole Slide Image를 타일로 렌더링하고, ZST 기반 세포 포인트를 즉시 합성하며, ROI 드로잉으로 분석 영역을 제어하는 React 라이브러리입니다.
현재 제공 범위
Tile Renderer
WebGL2 기반 타일 파이프라인, 줌/팬 인터랙션, 캐시/인플라이트 제어, 타일 fallback 렌더링.
Point Renderer
파싱된 TypedArray 수신, term 팔레트 텍스처 렌더링, 줌 레벨 기반 링 크기 보간, ROI clip.
Draw Layer
`freehand`, `rectangle`, `circular`, `stamp-rectangle-4096px` 지원, 폴리곤 닫힘 처리, 드로잉 중 궤적, 라벨/오버레이 렌더.
React Surface
`WsiViewerCanvas`에서 타일 + 포인트 + 드로잉 + ROI 필터/통계, 월드 좌표 콜백, 회전 상태를 통합 제어.
핵심 설계 원칙
1. 화면 유지: 줌 전환 중에도 이전 타일을 먼저 유지해
검은 프레임 없이 연속적으로 렌더링.
2. 데이터 직결: 포인트는 배열 버퍼 기반으로 GPU 버퍼에
직접 업로드.
3. 인터랙션 분리: draw 활성 시 pan 이벤트를 잠그고,
draw 비활성 시 일반 네비게이션 복귀.
4. 확장 경로 확보: WebGPU는 연산 오프로딩(예:
point culling/aggregation) 경로로 단계적 확장.
오픈소스 우선순위
1. 안정 기본 경로: 운영 기본값은 worker 기반 ROI clip을 유지.
2. 실험 경로 분리: WebGPU 기능은 실데이터 벤치마크 이득이 확인될 때만 opt-in 적용.
3. 문서 우선: 기능 추가보다 동작/기본값/폴백 규약 문서화를 먼저 수행.
추천 문서 흐름
- 빠른 시작: 설치/초기 렌더 확인
- ROI 그리기: 도형 생성과 라벨 스타일
- API: props, 타입, 유틸 함수 상세
- 마이그레이션: API 수명주기와 브레이킹 변경 대응
- 기여 가이드: PR 흐름, 품질 규칙, 릴리스 게이트
- 아키텍처: 렌더 루프와 데이터 파이프라인
- 배포: GitHub Pages 고정 배포
API 엔드포인트 예시: `https://your-api.example.com/api/v4/images/:id/info`
결과를 `normalizeImageInfo`로 정규화해 뷰어 입력으로 사용합니다.