Augmented Vertex Block Descent의 WebGPU 구현
·2026.04.09 21:01
핵심 내용
WebGPU로 AVBD 기반 rigid-body/soft-body 물리 프로토타입을 구현했다.
자세히 보기
experimental WebGPU rigid-body / soft-body physics prototype다. 핵심은 AVBD(Augmented Vertex Block Descent) 스타일 solver를 WebGPU로 옮긴 구현이며, live demo와 함께 공개됐다.
설치와 실행은 간단하다.
npm installnpm run dev- production build:
npm run build
다만 아직은 plug-and-play 모듈이 아니고, 브라우저 지원도 Chrome only 수준인 초기 proof of concept다.
구현은 AVBD paper의 Algorithm 1 흐름을 꽤 직접적으로 따른다.
- collision detection: 시간 단계 시작 시 현재 위치
x^t에서 충돌 검출을 수행한다. - broad phase: LBVH를 만들고 순회해 후보 body pair를 찾는다.
- narrow phase: manifold를 만들고, warm-start와 friction 처리를 위한 per-contact state를 유지한다.
- per-body constraint list: contact, joint, spring을 바탕으로 각 body가 참조할 constraint를 모은다.
- coloring: greedy coloring으로 같은 색의 body를 병렬 처리할 수 있게 준비한다.
- primal init: inertial target
y를 만들고 primal state를 초기화한다. - colored primal solve: 반복 iteration에서 색 단위로 body solve를 수행하며 AVBD primal update를 적용한다.
- dual/stiffness update: primal sweep 뒤 dual 변수와 stiffness를 갱신한다.
- finalize velocities: 최종 상태에서 velocity를 재구성한다.
문서가 강조하는 점은, 현재 pipeline이 paper와 상당히 비슷하지만 rare same-color conflicts를 위한 double-buffered position updates는 아직 그대로 구현되지 않았고, 현재 경로는 본질적으로 in-place colored body solve라는 것이다.
즉, 완성형 라이브러리라기보다 AVBD를 WebGPU로 검증하는 실험적 구현에 가깝고, 물리 시뮬레이션/웹 그래픽스 쪽에 관심 있는 개발자에게 의미 있는 기술 데모다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.