GSR Application Note ― v1.4

홍진훤
홍진훤은 사진과 이미지를 둘러싼 권력관계를 관찰하고 개입하는 일을 즐긴다. 사진, 영화, 웹프로그래밍 등의 매체를 주로 다루며 《melting icecream》(d/p, 2021), 《랜덤 포레스트》 (Art Space Pool, 2018) 등의 개인전을 열었다. 제11회 서울미디어시티비엔날레 《하루하루 탈출한다》(서울시립미술관, 2021) 등 다수의 단체전에 참여했고 〈공간 지금여기〉, 〈더 스크랩〉, 〈docs〉 등 여러 프로젝트를 동료들과 함께 운영하고 기획했다.

0. OVERVIEW

GSR1은 Game-Sandbox-Residency의 약자로 동시대 이미지 생산-유통 패턴을 레지던시라는 미술 제도 안에서 실험하는 기획이지만 기술적인 측면에서만 보자면 온라인 자동 영상 제작 프로그램과 닮아있다. 이 프로그램의 원형은 MS 오피스(특히 파워포인트) 등의 프로그램에서 제공하던 시각 템플릿 기능에서 찾을 수 있다. 이는 사용자가 템플릿을 선택하고 정해진 위치에 정보를 입력하기만 하면 디자인의 수고로움 없이 프로그램이 그럴듯한 시각물을 제공해 주는 기능이다. 뒤를 이어 각종 자동화 프로그램이 등장했고 더욱 손쉽게 프레젠테이션 파일을 만들 수 있게 되었다. 유튜브의 등장 이후 이 기술은 자동 영상 제작 프로그램으로 옮겨갔고 현재는 광고 영상을 자동으로 만들어주는 서비스까지 등장했다. 이 서비스와 GSR의 가장 큰 기술적인 차이라면 최종 결과를 인코딩 서버를 통해 영상 파일로 출력하는 것이 아니라 HTML5의 캔버스와 WebGL을 이용해 웹브라우저에 출력한다는 것이다. 하지만 GSR 시스템을 이해하기 위해선 이런 기술적인 부분의 검토만으로는 충분치 않다. 이 문서는 GSR 시스템의 설계-구현-운용에 관해 작성한 일종의 기술문서, 그중 엔지니어들을 대상으로 작성하는 어플리케이션 노트에 가깝다. 하지만 여기서 더 집중하고자 하는 것은 기술에 관한 서술만으로는 포착되지 않는 GSR의 분절점이다. 이를 위해 프로그램 설명에 더해 개인적인 의견, 짐작, 의심, 비약 등을 함께 기술했다. 크게 5개의 모듈로 구분해 작성했으며 글의 마지막에 시스템 개발환경을 밝혀두었다.

이 영상은 《그리드 아일랜드》(2022)를 위해 만들어진 온라인 레지던시 GSR(g-s-r.net)의 실행 화면을 1시간 가량 담았다.

1. 로그인 LOG-IN

로그인 모듈을 개발하기 위해선 우선 회원 관리 모듈을 먼저 개발해야 한다. 사용자에게는 회원 가입, 본인 인증, 정보 수정, 회원 탈퇴, 아이디/비밀번호 찾기 등의 기본적인 기능이 제공되어야 하고 관리자에게는 이를 모니터링하고 관리할 수 있는 더 많은 기능이 필요하다. 하지만 GSR은 이 전통적 프로세스와 맞지 않는 몇 가지 요소가 있었다. 우선 레지던시라는 형식을 차용하고 있기 때문에 이 시스템을 사용할 작가들이 정해져 있다는 것이다. 이는 회원가입에 필요한 정보를 이미 갖고 있다는 의미이고 앞서 말한 모든 기능이 작가들의 이중 노동을 생산한다는 것을 의미했다. 또한 작가들이 사용하는 공개되지 않는 URL이 따로 존재한다는 측면에서 그 필요성은 더욱 줄어들었다. 더 중요한 부분은 이 시스템은 참여한 작가들의 선택과 알고리즘의 선택으로만 이루어지는 자동기계의 일종이기 때문에 관리자라는 역할이 아예 존재하지 않는 것이 더 자연스러워 보였다.

그럼 남는 것은 작가마다 로그인 비밀번호를 어떻게 설정할 것인가였다. 이런 경우는 보통 작가에게 원하는 비밀번호를 받아 미리 설정해 두거나 첫 접속 시 비밀번호 설정 링크를 이메일로 보내 직접 비밀번호를 설정하게 하곤 한다. 하지만 GSR이 선택한 정책은 데이터베이스 생성 때부터 참여자들의 기본 정보를 기입해 두고 작가는 본인의 이메일 주소만 넣으면 로그인이 되는 방식이었다. 처음엔 비밀번호도 체크하지 않는 이것을 로그인이라고 부를 수 있는지 혼란스러웠다. 하지만 이메일 주소만 알면 다른 작가의 작업을 언제든 볼 수 있는 이 비정상의 상황을 더 적극적으로 활용해 보기로 했다. 모두가 모두의 업로드 상황을 실시간으로 알 수 있는 기능을 개발해 다른 작가의 페이지에 들어갈 필요가 없도록 시스템을 설계했다. 정보를 차단하기보다는 모든 것을 공개하는 방식으로 문제를 해결하는 것이 여러모로 유의미해 보였다. GSR은 기본적으로 작가들의 작업이 중첩되며 최종 결과물을 생산하는 일종의 협업 시스템이다. 그렇다면 다른 작가들의 작업을 지속적으로 검토하며 자신의 작업물을 생산하는 것이 목적에 더 맞는 방향일 것이라 생각했다. 또한 비밀번호를 이런저런 방식으로 설정하고 관리해야 하는 작가들의 노동을 줄일 수 있다는 점도 주요한 고려지점이었다.

2. 업로드 UPLOAD

업로드는 한 번에 하나의 작업파일과 해당 작업의 썸네일, 작업 설명글, 그리고 다섯 개의 레퍼런스 링크와 레퍼런스 설명글을 등록할 수 있다. 작업파일의 형식은 이미지(JPEG, GIF, PNG, SVG), 오디오(MP3, WAV), 비디오(MP4), 3D 오브젝트(OBJ) 등을 허용한다. 업로드 한 데이터는 썸네일, 프리뷰, 정보 3개의 컬럽으로 구분되어 한 화면에서 볼 수 있게 구성했다. 개발 초기에는 여러 작업파일을 한 번에 등록할 수 있도록 개발했지만 추후 한 번에 한 개의 작업파일만 등록할 수 있도록 변경했다. 이렇게 불편을 발생시킨 이유는 작가들이 작업의 레퍼런스 정보를 보다 더 적극적으로 입력할 수 있도록 유도하기 위해서였다. 일괄 업로드 후 레퍼런스 정보를 업데이트할 경우 같은 정보를 복-붙하는 경우가 많고 이미 주요 데이터(이 경우에는 작업파일)가 업로드된 상황에서는 부가 정보를 입력하는 노동에 대한 일종의 심리적 압박이 감소하기 때문이다.

이렇게까지 레퍼런스 정보에 집착한 이유는 이것이 GSR이라는 시스템이 성립할 수 있는 주요한 철학적 배경을 제공해 주기 때문이다. GSR을 일종의 함수(Function)라고 생각하면 작가들의 작업은 이 함수에서 선언한 매개변수(Parameter)에 인자(Argument)로 입력되고 함수의 알고리즘에 따라 분류-선택-정렬-변형-중첩되어 예측할 수 없는 형태로 출력된다. 이처럼 작가의 작업물을 이용해 작가의 통제를 벗어난 공동의 결과물을 도출해 낼 수 있는 것은 작업물이라는 것이 오로지 작가 개인의 상상-노동-창작의 결과물이 아니라는 것에 동의할 때 가능하다. 작업의 레퍼런스를 적극적으로 밝히는 것은 이 작업물이 사회적으로 퇴적된 감각-지식체계와 연결되어 있음을 고백하는 것이고 내가 생산한 이 작업물 역시 기꺼이 누군가의 레퍼런스로 작동할 수 있음을 밝히는 일이다. 앞서 기술했듯이 GSR이 영상이라는 출력형식을 선택하지 않고 웹페이지를 선택한 것은 이 프로세스의 결과가 월드에서 상영되는 시청각물임과 동시에 스킬트리라고 불리는 정보체계이기 때문이다. 이는 레퍼런스 링크라는 장치를 통해 GSR과 다른 정보(웹페이지)와의 연결 가능성을 확보하는 것이 시청각물을 상영하는 것만큼이나 시스템의 주요 기능임을 의미한다.

3. 제너레이터 GENERATOR

제너레이터는 알고리즘이 생성할 월드라는 최종 결과물을 작가가 시뮬레이션해 보고 시각적 방향성을 제어하는 기능을 한다. 우선 3D 오브젝트를 두 그룹으로 나누고 각 그룹마다 3D 오브젝트의 개수, 거리, 크기, 투명도, 이미지 텍스쳐 매핑 여부 등을 선택한다. 또한 전체적인 조명을 설정하고 재생될 오디오의 개수도 설정한다. 마지막으로 배경 이미지 혹은 배경 영상을 사용할 것인지와 그리드를 출력할 것인지를 결정한다. 여기서 중요한 것은 모든 값은 범위로만 선택할 수 있다는 것이다. 예를 들어 오브젝트 개수를 5-10으로 설정해 놓으면 알고리즘은 5와 10 사이의 난수를 생성하여 오브젝트를 로드하는 식이다. 이 값들을 이용해 결과물을 시뮬레이션하며 그 값을 저장한다. 다만 모든 작가는 설정값 모음(프리셋)을 세 개씩만 저장할 수 있다. 프리셋 개수의 제한이 필요한 이유는 이 개수가 많아질수록 작가마다 구별되는 월드의 방향성이 흐려질 수 있기 때문이다.

이 제너레이터의 가장 큰 특징은 작가가 결과물을 명확히 예상할 수 없다는 것이다. 특정 작업을 선택하지 못하고 개수와 거리, 크기 등 몇 가지의 설정 범위만 결정할 수 있기 때문에 이 설정값들에 의해 어떤 결과물이 생성될지 짐작할 뿐이다. 또한 다른 작가들이 동시에 작업을 업로드하고 다른 설정값들을 저장하고 있기 때문에 나의 설정값이 기대하는 결괏값은 언제나 유동적이다. 이 제한 장치는 작가와 작가, 작가와 알고리즘이 지속적으로 서로에 개입하며 결과물을 도출해야 하는 일종의 강제 협업 관계를 만든다. 결국 이 제너레이터는 결과물을 시뮬레이션하는 것이 아니라 서로의 개입 상태와 각 생산 주체의 위치, 그리고 힘의 벡터를 시뮬레이션한다. 이런 선택적 불능의 구조는 결과물(작품)의 소유를 둘러싼 전통적인 배타적 권리형태를 극복하고 역설적으로 동시대적 협업의 가능성을 생산한다.

4. 월드 WORLD

앞의 단계를 모두 거치면 GSR의 시청각적 결과물인 월드를 생성할 수 있다. 월드가 생성되는 순서는 대략 다음과 같다. 웹브라우저의 크기를 계산해 캔버스를 생성하고 화각 45도의 정면 카메라가 설정된 WebGL Renderer를 캔버스에 추가한다. 임의의 프리셋을 데이터베이스에서 불러와 해당 값을 참조해 3D 오브젝트를 설정 개수만큼 로딩하고 각 오브젝트마다 원점으로부터의 거리와 크기를 조정해 설정값이 의미 있을 정도로 평준화 작업을 진행한다. 그 후 프리셋의 설정값 범위 안에서 난수를 발생해 거리(x,y,z), 크기, 투명도, 텍스쳐 등을 다시 설정한다. 오브젝트 로딩과 설정이 완료되면 앰비언트라이트, 스팟라이트, 백라이트 등의 조명을 설정하고 설정값에 따라 그리드를 추가한다. 동시에 백그라운드 이미지 혹은 비디오를 추가하고 마지막으로 사운드를 로딩한다. 이 모든 과정이 종료되면 7초와 15초 사이 임의의 시간 동안 카메라가 일정 궤적을 돌며 원점을 향해 이동한다. 카메라가 원점에 도착하면 모든 오브젝트의 메모리를 해제하고 새로운 프리셋을 로딩해 이 과정을 반복한다.

월드가 실행되는 화면 하단에는 로딩된 전체 파일의 정보가 텍스트로 나타나며 화면의 양쪽에 하나씩 팝업 레이어가 나타난다. 왼쪽에는 로딩된 작업물들의 창작자 정보가 나타나며 오른쪽에는 현재 월드의 진행 상황을 표시하는 콘솔 창이 위치한다. 이렇게 생성된 월드는 고정된 하나의 형태로 규정되거나 저장되지 않고 해당 월드에 로딩된 데이터들의 인덱스만 데이터베이스에 기록된다. 생성된 후 15초 안에 휘발되는 과정이 무한히 반복되는 이 작업물은 사실 영상이라기보다는 작가와 알고리즘이 함께 생산한 데이터로 구성되는 퍼포먼스 이벤트에 가깝다. 하지만 이 이벤트는 접속자마다 모두 다른 형태로 존재하며 불특정한 장소와 시간에서 무한히 생산되고 또 휘발된다. 그리고 그 흔적만이 숫자의 형태로 남는다. 하지만 그 숫자들을 알고 있다고 해서 그 결과물을 다시 재연할 방법은 없다. 이런 특징들은 서두에 언급한 GSR의 분절점을 생산하고 관성적인 작가, 작품, 매체, 제도 등에 대한 이해와 불협을 만든다. 동시에 데이터의 배타적 소유를 통한 정보의 고립을 가속하는 플랫폼, NFT 등의 기술에 대한 다른 비평지점을 드러낸다.

5. 스킬트리 SKILL-TREE

스킬트리는 하나의 결과물이 생성되기까지 어떤 정보들이 관계하고 연결되어 있는지를 확인하는 기능이다. 스킬트리는 정해진 시각물이 있는 것이 아니라 월드 생성-휘발 후 저장된 인덱스를 이용해 작품정보, 작가 정보, 레퍼런스 정보 등을 추적하는 일련의 과정을 지칭하며 추적된 정보들을 어떻게 구조화하고 시각화하는지에 따라 그 형태가 달라진다. 예를 들어 하나의 월드에 대해 작품들의 관계망을 구현해 보거나, 각 작업물에 관한 레퍼런스를 정리해 보거나, 작가별 작품목록과 레퍼런스를 연결해 보거나 하는 식이다. GSR의 공식 사이트g-s-r.net이 대표적인 스킬트리 시각화의 예인데 월드가 생성될 때마다 생성된 월드의 작품-작가-레퍼런스 정보를 실시간으로 확인할 수 있는 모바일 웹사이트이다.

여기서 스킬트리를 월드의 부가 정보 정도로 이해하면 곤란하다. GSR은 작가와 알고리즘의 협업으로 생성된 데이터셋을 기반으로 월드라는 결과물과 스킬트리라는 결과물을 동시에 생산한다. 결국 하나의 데이터를 어떤 구조와 형태로 시각화하는지에 따라 그 형태가 달라질 뿐 결국은 동일한 결과물이다. 이를 통해 물리적 시청각물에만 집중해오던 미술적 관성을 벗어나 하나의 결과물이 생산되는 모든 과정이 동등한 위상으로 재편된다. 그리고 이런 접근을 통해 작업물은 고립되어 유일하게 존재하는 무엇이 아닌 사회적 의미망 안에서 다른 수많은 무엇과 연결된 상태가 된다. 만약 GSR 데이터베이스에 접근할 수 있는 Public API 같은 것을 만들 수 있다고 상상해 본다면 GSR이 생산한 작업 결과물이 어느 장소에서 어떤 형태로 확장될 수 있을지 알 수 없으며 또 어디까지가 GSR로부터 생산되었다고 할 수 있을지 모호해지는 지경까지 다다를지도 모를 일이다.

6. 개발 상세 SCPECIFICATION

System: Linux Ubuntu 20.04
Build System: Linux LST 3.16.0-11-amd64 #1 SMP Debian 3.16.84-1 (2020-06-09) x86_64 x86_64 x86_64 GNU/Linux
Server API: LiteSpeed V8.0.1

PHP Version: 8.0.17
MariaDB Version: 10.3.34
jQuery Version: 3.6.0
Three.js Release Number: r144

Disk Usage: 3,492 (MB)
Bandwidth Usage: 9,194,268 (MB)

Database Record Count
tbl_gsr_members: 13
tbl_gsr_files: 268
tbl_gsr_preset: 59
tbl_gsr_world: 1,106,881

*이 글은 미술관의 ‘제작’ 활동에 주목하는 전시 《그리드 아일랜드》(2022)와 맞물려 기획되었으며, 서울시립미술관의 기관의제와 전시의제의 소주제를 발굴하는 2022 SeMA 의제연구 프로젝트의 일환으로 수록되었습니다.


  1. (편집자 주) GSR은 《그리드 아일랜드》(2022)를 위해 만들어진 온라인 레지던시로 웹주소 g-s-r.net에서 2021년 난지미술창작스튜디오의 홈페이지 기능을 수렴해 운영을 시작했고 전시를 계기로 발전된 형태로 재공개되었으며 전시 폐막 이후 몇 개월 간 유지되었다. 약 1시간 가량의 GSR 실행 영상이 youtu.be/HxgSzKd-teI에 남아있다. 

© 2024 작가, 저자, 서울시립미술관. 서울시립미술관 모두의 연구실 ‘코랄’(세마 코랄 | SeMA Coral)에 수록된 콘텐츠에 대한 저작권은 해당 작가, 저자, 그리고 서울시립미술관에 있으며, 저작자와 서울시립미술관의 서면 동의 없이 무단으로 사용할 수 없습니다. 각 저작물에 담긴 의견은 미술관이나 세마 코랄과 다를 수 있으며, 관련 사실에 대한 책임은 저자와 작가에게 있습니다.