PNGine은 웹GPU(WebGPU) API를 S-표현식(S-expressions)이라는 독특한 형태로 선언적으로 사용할 수 있게 해주는 새로운 도구입니다. 개발자들은 이 방식을 통해 복잡한 웹GPU 코드를 훨씬 간결하고 직관적으로 작성할 수 있으며, 이는 웹 기반 그래픽 애플리케이션 개발의 진입 장벽을 낮추는 데 기여할 것으로 보입니다.
PNGine은 웹GPU의 모든 리소스(버퍼, 텍스처, 파이프라인, 패스, 컴퓨트 등)를 S-표현식 형태의 '폼(form)'으로 정의하며, 이는 웹GPU 명세(spec)와 1:1로 매칭됩니다. 이렇게 작성된 코드는 몇백 바이트 수준의 경량 바이트코드(bytecode)로 컴파일되며, 이 바이트코드와 런타임을 PNG 파일 하나에 담아 웹GPU가 실행되는 어떤 환경에서든 구동할 수 있습니다. 예를 들어, 간단한 삼각형 하나는 631바이트의 바이트코드로 컴파일되며, 런타임과 함께 PNG 파일에 저장하면 약 4.6KB에 불과합니다. 또한, PNGine은 컴파일, 렌더링, 검사 등 다양한 기능을 제공하는 CLI(명령줄 인터페이스)와 3KB에서 17KB(압축 시)의 경량 브라우저 API, 그리고 의존성 없는 약 1KB 크기의 독립형 HTML 파일도 지원합니다.
이러한 접근 방식은 웹 기반 3D 그래픽 개발에 있어 중요한 변화를 가져올 수 있습니다. 기존 웹GPU는 강력하지만, 로우레벨(low-level) API의 복잡성 때문에 학습 곡선이 높다는 단점이 있었습니다. PNGine은 이를 선언형 S-표현식으로 추상화하여 개발자가 그래픽 파이프라인의 세부 구현보다는 결과물에 집중할 수 있도록 돕습니다. 이는 웹 기반 게임, 데이터 시각화, 인터랙티브 아트 등 다양한 분야에서 웹GPU 활용을 촉진하고, 개발자들이 더 빠르고 효율적으로 고성능 웹 그래픽 애플리케이션을 만들 수 있는 기반을 마련할 것입니다.