평면의 세계, 그 위에 그림을 그리고 싶었다.
제1화
발행일: 2025년 08월 03일
2007년, 모질라(Mozilla)의 사무실은 키보드 소리와 나지막한 대화로 채워져 있었다. 하지만 블라디미르 부키체비치(Vladimir Vukićević)의 세상은 고요했다. 그의 시선은 오직 눈앞의 모니터, 그 안에 떠 있는 파이어폭스 브라우저 창에 고정되어 있었다.
네모반듯한 창 안에 펼쳐진 웹페이지.
깔끔하게 정렬된 텍스트, 선명한 이미지, 그리고 다른 페이지로 연결되는 파란색 밑줄의 링크들.
정보를 전달하고 소비하는 데에는 더할 나위 없이 효율적인 구조였다. 하이퍼텍스트라는 개념 위에 세워진 이 거대한 정보의 성채는 인류의 지식을 손가락 끝으로 연결했다. 하지만 블라디미르의 눈에는 그 완벽함이 오히려 답답한 한계로 보였다.
‘평면이다.’
그의 머릿속을 맴도는 단 하나의 생각이었다. 모든 것이 2차원의 평면 위에 갇혀 있었다. 위, 아래, 왼쪽, 오른쪽. 그게 전부였다. 아무리 화려한 이미지를 가져다 놓아도, 그것은 깊이가 없는 그림일 뿐이었다.
그는 창밖의 현실 세계를 보았다. 책상 위의 컵, 복도를 걸어가는 동료, 창문 너머의 빌딩 숲. 모든 것이 입체적이었다. 앞과 뒤, 깊이와 공간감이 있었다. 그런데 어째서 인류 지성의 총아라 불리는 웹은 이토록 납작해야만 하는가.
물론, 웹에서 3D를 구현하려는 시도가 없었던 것은 아니다.
‘플러그인(Plug-in).’
블라디미르는 입안에서 그 단어를 굴려보았다. 어도비 플래시(Adobe Flash), 자바 애플릿(Java Applet) 같은 기술들. 그들은 브라우저라는 집에 잠시 머무는 손님과 같았다. 강력한 3D 그래픽을 보여줄 수는 있었지만, 그들은 어디까지나 외부인이었다.
사용자는 번거로운 설치 과정을 거쳐야 했고, 이 ‘손님’들은 종종 브라우저의 보안을 위협하는 통로가 되기도 했다. 무엇보다 그들은 브라우저와 완벽하게 융화되지 못했다. 웹페이지의 한구석에 자리 잡은 ‘별도의 프로그램’처럼 느껴질 뿐, 진정한 웹의 일부가 아니었다.
‘웹의 방식이 아니야.’
블라디미르는 고개를 저었다. 그가 꿈꾸는 것은 그런 이질적인 방식이 아니었다. 별도의 설치도, 보안 걱정도 없이, HTML, CSS, 자바스크립트처럼 웹의 언어만으로 자연스럽게 3D를 그려내는 것. 브라우저 자체가 입체적인 공간을 이해하고 표현하는 것. 그것이 그가 원하는 미래였다.
문제는 명확했다. 브라우저는 3D 그래픽을 처리하도록 설계되지 않았다. 웹페이지의 모든 것을 처리하는 CPU는 성실한 일꾼이었지만, 수백만 개의 점을 찍고 색을 칠하며 입체를 만들어내는 복잡한 연산에는 너무나도 느렸다.
하지만 컴퓨터 안에는 그 일을 전문적으로 처리하는 존재가 이미 있었다.
GPU(Graphics Processing Unit).
최신 게임 속에서 폭발 효과와 실감 나는 캐릭터를 그려내는 그래픽의 심장. 수많은 코어를 병렬로 움직여 오직 그래픽 연산만을 위해 태어난 괴물. 하지만 이 강력한 힘은 브라우저에게는 그림의 떡이었다. 브라우저라는 안전한 성벽 안에서는 감히 성벽 밖의 GPU에게 직접 말을 걸 방법이 없었다.
바로 그때였다.
그의 눈에 하나의 가능성이 들어왔다. 당시 막 논의가 활발해지던 차세대 웹 표준, HTML5의 명세서 한구석에 자리 잡은 작은 태그 하나.
<canvas>
문자 그대로 ‘캔버스’였다. 자바스크립트를 이용해 웹페이지의 특정 영역에 2D 도형이나 그림을 그릴 수 있게 해주는, 비어있는 사각형 도화지. 대부분의 개발자들은 이것을 간단한 차트나 미니 게임을 만드는 도구 정도로 생각했다.
하지만 블라디미르의 눈에는 그것이 전혀 다르게 보였다.
‘도화지….’
그는 마른침을 삼켰다. 만약 이 도화지에 2D 그림을 그리는 명령 대신, 3D 공간의 좌표와 색상 정보를 담은 명령을 내릴 수 있다면? 그리고 그 명령을 브라우저가 해석해서, 잠자고 있는 GPU에게 전달할 수만 있다면?
심장이 뛰기 시작했다.
이것은 단순히 멋진 기술 하나를 추가하는 문제가 아니었다. 웹의 근본적인 패러다임을 바꾸는 일이었다. 텍스트와 문서의 시대를 넘어, 공간과 경험의 시대로 나아가는 첫걸음이 될 수 있었다.
블라디미르는 새로운 파일을 열고 키보드 위에 손을 올렸다. 그의 머릿속에는 단 하나의 목표가 선명하게 떠올랐다.
‘다리를 놓자.’
웹의 언어인 자바스크립트와 그래픽의 언어인 OpenGL(GPU를 제어하는 표준 API) 사이에, 아무도 건너보지 못한 다리를 놓는 것.
그것은 웹의 근본적인 구조에 도전하는, 무모하고도 위대한 여정의 시작이었다.