패턴플로우 30일
엉킨 전선에서 오픈소스까지.

숨고르며 방향잡기
LED패널과 ESP32, 엉킬대로 엉킨 전선들이 그럴싸한 모양으로 빚어졌다. 계획은 전혀 없었다. 모든게 가벼운 실수와 실험 하나에서 시작되었고 30일이 지난 지금은 올해를 걸어볼 프로젝트가 되었다.
실은 금방 또 그만두고 다른 것을 찾아 헤멜지도 모른다. 아니다, 이번에는 다를 것 같다. 외부에서 긍적적인 신호들을 받았다. 패턴플로우의 개념이 담긴 초기 프로토타입 릴스 하나가 이틀만에 1만 조회수를 넘겼다. 이후 올린 레딧 글에는 수많은 극찬과 구매의사가 담긴 댓글이 달렸다. 가능성이 보였다. 한 번 모든 걸 쏟아보기로 했다. 오픈소스로 전환하기 위하여 하루도 쉬지 않고 작업했다.
시작한 지 약 30일이 된 지금, 드디어 공개할 수 있을 만큼의 결과가 나왔다. 디테일은 앞으로 한참 채워야 한다. 쉬지 않고 달린 탓에 조금 지쳤다. 그래서 지금까지의 여정을 돌아보고 앞으로의 방향을 확고히 하고자 했다. 그 과정에서 돌아보니 30일짜리 프로젝트가 아니었다. 그보다 훨씬 전부터 태동하고 있었다. 이건 이 모든것을 훑어보는 글이다.


뉴미디어 작가가 될래요
26년이 되었다. 올해는 나만의 작품을 꼭 만들어 뉴미디어 작가가 되고 싶었다. 아무런 의미도 없는 기술 뽐내기와 타인의 전시 아이디어를 개발해주는 일은 그만하고 싶었다. 오랜만에 블렌더3D의 지오메트리 노드와 쉐이더 노드를 만지고 놀았다. 실수로 파라미터를 극단적으로 올려버렸다. 거기서 생성된 시각적 패턴에 매료되고 말았다. 여기서 패턴플로우:오리진이 탄생했다.

이걸로 작가가 되고자 했다. 여느 때처럼 인터랙티브 웹사이트를 만들었다. 내가 매료된 이유를 고민하며 예술적 의미를 찾아 보았다. 어려웠다. 교수님들께 검토를 요청했다. 작가보다는 디자인적이라 하셨다. 그리고 3D프린팅으로 확장시켰다. 애초에 이를 염두에 두고 만들었다. 세상에 존재하지않던 형태의 오브제들을 만들었다. 꽤 멋지고 재밌다. 이 내용들을 종합하여 아트코리아 랩에서 주관하는 전시 지원사업에 신청했다.
아주아주 번거롭고 짜증나는 문서작업과 지원절차를 거쳐 발표심의까지 갔다. 크리에이티브 코딩이라는 공모 주제에 적합했기에 기대가 컸다. 하지만 선정받지 못했다. 결정문을 보았을 때 기존에 활동하던 작가들 중에서 뽑았다는 느낌을 지울 수 없었다. 억울했다. 많이 울었다. 화가 났다. 허탈했다. 이 지원사업 하나만을 위해 노력한 게 아니었기에 곧바로 마음을 다잡았다. 올리던 콘텐츠를 다시 꾸준히 올렸다. 당시 의식처럼 매일 행하던 미션이었고, 스레드 계정에서 확인 가능하다. 요즘은 리뉴얼된 패턴플로우에 집중하느라 소홀해졌다.
3월 말, 전기전자 쪽을 공부하는 동생인 도윤이가 스쳐가듯 말했다. “패턴플로우를 LED매트릭스에 넣으면 멋지겠다”. 실제 인터랙션이 있는 전시까지 계획하고 있었기에 인터페이스의 필요성은 느끼고 있었다. 다만, 프로젝션 혹은 고해상도 모니터를 바랬다. LED매트릭스로 하면 해상도가 낮아 3D 느낌을 구현할 수 없기 때문에 내키진 않았다. 그래도 알리에서 찾아보니 가격이 부담스럽지 않아 테스트로 한 번 사보았다. 이게 전환점의 발단이다.
1주차 — 모니터 밖으로
3월 29일 부품이 도착했다. 본가에서 다시 홍대로 오자마자 만들기 시작했다. 부품들을 들고 여러 전기관련 도구가 있는 동아리방으로 직행했다. 처음에는 납땜을 할 줄 몰랐다. 그저 빨리 작동하는 모습을 두 눈으로 보고 싶었다. 전선을 어설프게 연결하고 글루건으로 고정했다. 그리곤 ESP32에 패턴플로우 오리진을 LED매트릭스용으로 수정하고 업로드하고 켜보았다.
기대 이상이었다. 저해상도라 별로일 줄 알았다. 하지만 오히려 레트로한 느낌이 나더라. 작은 LED 하나하나에서 뿜어져 나오는 빛의 범짐도 꽤 아름다워 보였다. 빛에 매료되었다. 함께 연결해 둔 가변저항을 돌리며 그 빛을 변화시키는 경험도 재밌었다. 웹사이트에서 만들어진 UI를 마우스로 조작하는 것과는 완전히 새로운 느낌이었다. 손으로 돌리는 맛이 좋았다.
자연에 패턴플로우를 두면 이질감 덕분에 신비한 느낌이 들 것 같았다. 동아리 사람들과 한강에서 재밌게 놀고 집에 돌아오니 밤 9시였다. 곧바로 패턴플로우와 보조배터리를 들고 집앞 마포새빛문화숲에 달려갔다. 공원 이곳저곳에서 영상을 찍었다. 풀을, 돌을, 한강너머 풍경을 배경으로 삼기도 했다. 다만 사람들의 반응은 내 예상과는 달랐다. 릴스를 올렸는데 반응이 거의 없었다. 이유를 고민했고 더 예쁘게 제품처럼 만들어야겠다 생각했다. 케이스가 필요했다.


2주차 — 대박이야
곧바로 블렌더3D를 켜 케이스를 모델링 했다. 4월이다. 어떤 모습으로 모델링 할 지 많이 고민했다. 실용성을 최우선으로 고려했다. 낭비되는 공간이나 장식이 없어야 했다. 너무 두꺼우면 뒤에 컴퓨터나 장치가 들어간 것처럼 보일까봐 되도록 얇게 만드려 했다. 선이 보이지 않았으면 했기에 보조배터리를 거치할 공간도 필요했다. 그 결과 지금과 같은 미니멀한 디자인이 탄생하였다.
3D프린팅을 시작했다. 케이스를 바닥에 눕혀 넓게 뽑으니 한쪽 모서리가 자꾸만 올라온다. 처음에는 문제가 없다가 10층 11층 쌓여감에 따라 뱃머리처럼 말려 올라온다. 결국 망가지고 말았다. 도대체 무엇이 문제인지 알 수 없었다. 접착력이 문젠가 싶어 배드를 세재로 씻어보기도 했다. 브림이라는 기능을 켜보기도, 옥스 팬이라는 보조 기능을 꺼보기도 했다. 그 무엇도 도움이 되지 않았고 3일간 그 문제로 골머리를 썩혔다. 미칠 지경이었다. 모델링을 조금 손보고 세로로 새워 뽑았다. 그러니 잘 뽑히더라. 약간은 허탈했다.

난생 처음 납땜을 해보았다. 방법을 알아보지도 않고 무작정 하였다. 인두에 납을 먼저 묻히고 부품에 가져다 댔다. 잘못된 순서다. 납이 많으면 많을수록 좋을 줄 알았다. 이런 무식함의 대가로 수많은 냉납과 접촉불량을 선물받았다. 하도 납 연기를 마셔서 조금 어지럽기도 했다. 여러분은 반드시! 미리 공부하고 해라. 신체와 정신건강에 좋다. 오래 살자 우리.
4월 5일 엉성한 모습의 프로토타입을 동아리방이 있는 복도에 걸고 릴스를 찍었다. 반응은 나쁘지도 좋지도 않았다. 곧이어 케이스를 더 깔끔하게 흰색으로 통일하였고, 집의 책상에 두고 다시 릴스를 찍었다. 대박이었다. 조회수와 좋아요가 올라가는 속도가 난생 처음 보는 정도였다. 2일만에 조회수 1만회를 달성했다. 신남과 동시에 겁도 났다. 단순히 운이 좋았던 거면 어쩌지? 하는 그런 걱정이었다.
3주차 — 대체 왜이래
릴스를 더 만들고 싶었다. 다른 패턴을 넣어서 영상을 찍고자 했다. 패턴플로우를 들고 다시 공원에 가기도 했다. 그런데 항상 영상을 찍으려 하면 고장이 나버렸다. 가변저항에서 자꾸만 노이즈가 나오고 아에 먹통이 되어버리는 경우도 있었다. LED매트릭스 자체가 꺼져버리는 경우도 있었다. 그 때문에 릴스를 찍는건 불가능했다. 진짜정말너무완전 짜증났다.
문제를 해결하기 위해 소프트웨어의 코드를 수정해보았다. 문제가 해결되길 진심으로 바랬지만 현실은 냉정했다. 하드웨어가 문제다. 나의 허접한 납땜을 의심했다. 그래서 매일매일 납땜을 수정해 보았다. 학교수업을 끝마치고 곧바로 납땜을 했다. 주말에도 학교의 동아리방에 갔다. 어느 날은 밤 11시까지 하느라 경비 아저씨가 나가라 해서 정리도 못하고 허탈하게 집에 돌아오곤 했다.

아무리 해봐도 나아질 기미가 보이지 않았다. ESP32가 고장이 난건가? LED매트릭스가 고장이 났나? 하며 온갖 의심을 하기 시작했다. 하드웨어는 도통 어디가 문제인지 알 수 없어 미칠 것 같았다. 계속해서 지래짐작하며 납땜을 할 순 없었다. 아에 처음부터 부품 하나하나의 생존여부를 확인해 보았다. 찾았다. 가변저항이 원인이었다. 시리얼 로그에 찍히는 숫자가 아주 제멋대로였다. 다른 가변저항으로 바꾸니 바로 해결되었다. 도윤이에게 이 얘기를 하니 신기하단 반응을 보인다. 가변저항 고장내기 쉽지 않다고 한다. 내가 납땜을 수없이 하며 너무 많이 지져버렸나 싶다.
다 해결된 줄로만 알았다. 촬영을 다시 하려고 카메라를 키고 노브를 돌렸다. 아… 안좋은 직감이 들었다. 또 고장났다. 노이즈가 많다. 간섭이 많다. 도무지 이유를 알 수 없었다. AI는 HUB75 연결선에서 강한 자기장이 발생하여 노이즈가 생긴다고 하였다. 그런가 싶다가도 뭔가 이상했다. 하지만 그때의 나로써는 정확한 원인을 알 방법이 없었다. 알아보기도 싫었다. 지칠대로 지쳤다.
4주차 —완전 대박이야
계속 고장이 나니 뭘 더 찍을수 없다. 예전 릴스 영상을 레딧에도 올려봤다. 누군가 해결법을 알려주면 좋겠다는 마음도 컸다. 글의 반응이 아주 좋았다. 금방 1천 업보트를 넘기고 수많은 댓글이 달렸다. 자신도 가변저항을 쓰며 골머리를 썩혔고 로터리 엔코더를 쓰니 훨씬 쾌적해졌다고 한다. 고민중이던 로터리 엔코더를 바로 주문했다. 댓글에서 추천해 준 PCB관련 채널과 자료를 확인해 보았다. 너무 어려워보였다.
사고 싶다는 사람들이 많았다. 반응이 좋으니 포기할 수 없었다. 멈춰버린 진행을 가속시키기 위해서는 하드웨어 문제가 우선 해결되어야 했다. 하지만 나는 잘 모르는 분야이기도 하고, 솔직히 하기 싫었다. 머릿속에서 수많은 그림을 그려본다. 이상적인 목적지로 가기 위해서 발전시켜야 하는 영역은 하드웨어 하나가 아니었다. 크게는 케이스, PCB, 패턴, 플랫폼 4가지로 나눠진다. 혼자 하기에는 너무 벅차보였고 오픈소스로 공개하기로 결정했다.


이 결정에는 다른 이유들이 더 있었다. 먼저, 돈보다는 명예가 좋다. 최대한 많은 사람들이 패턴플로우를 체험하게 하고싶다. 또 그들이 직접 만들고 개선하고 발전시켜주면 좋겠다. 하나의 상품이 아닌 장르이자 생태계를 만들고 싶었다. 아두이노 레딧에서도 반응이 나쁘지 않았으니 그들 중 몇명은 적극적으로 해줄 것 같았다. 만약 잘 된다면 훗날 MIT미디어랩 같은 재밌는 곳에 갈 때에도 좋은 포트폴리오가 될 수 있지 않을까 싶었다. 패턴플로우를 오픈소스로 만들어 다진 기반을 바탕으로 더 재밌는 프로젝트들을 할 수 있지 않을까 싶었다. 그래서 오픈소스로 바꾸기로 했다.
생애 첫 PCB
PCB가 필요했다. 더는 엉킨 전선을 보기도 납땜하기도 싫었다. 처음에는 도윤이에게 부탁해 보았다. 해주겠다고는 하지만 시험기간이 겹쳐 10일 뒤에나 가능하다고 하였다. 워낙 성급한 나로써는 너무나 멀게 느껴졌다. 다가온 주말에 그냥 내가 하기로 마음먹었다.
바이브 코딩처럼 AI가 잘 해주지 않을까 기대했다. 하지만 어림도 없었다. 결국에 내가 직접 해야했다. 전기회로도를 읽지도 못했다. 커패시터와 저항들이 어떤 역할로 쓰이는지도 몰랐다. AI와 대화하며 수없이 머리를 박았다. 키캐드 강좌도 찾아보며 하나하나 그려보았다. 전자 회로부터 그려보는데 오류가 도대체 왜이리 많이 나는지 정말 힘들었다. 그럼에도 포기하지 않았다. 작품을 좋아해 준 사람들이 있었기에 그만둘 수 없었다.

주말 2일을 온전히 바친 결과 생애 첫 PCB아트워크가 탄생했다. 뿌듯하면서도 한편으론 제대로 만들어진 것인가에 대한 의구심을 지울 수 없었다. 내가 제대로 이해한지도 몰랐다. 일단 주문하고 오면 운명에 맡기기로 했다. 다음날 20일 인스타그램으로 DM이 하나 왔다. PCBway의 serene입니다. 레딧 글을 감명깊게 보았고 스폰서쉽을 해주고 싶어요. 스팸인가 싶었다. 근데 진짜였다. 덕분에 생애 첫 PCB를 스폰서쉽을 받아 무료로 만드는 진귀한 경험을 하였다.
주문은 너무나 간단했다. 거버파일 그냥 올리면 알아서 설정이 되었다. 색상도 바꿀 수 있었다. 다른 PCB회사는 검정색으로 하려면 추가요금이 발생한다 들었는데 여긴 아니어서 좋았다. 배송 옵션도 정말 다양했다. 빠르지만 비싼 것부터 싸지만 느린 것까지 있었다. 지원받는 거라 싼걸로 했다. 오 그런데도 3일만에 배송되었다. 내 예상보다 훨씬 빨랐다. 도착한 PCB는 너무나 예뻤다! 모니터에서 본것보다 훨씬 좋았다. 너무 멋지고 실크스크린으로 적은 패턴플로우 문구를 보니 정말로 내 첫 PCB를 만들었음을 실감했다.

PCB의 작은 칩같은 부품들을 내가 납땜해야 한다는 걸 처음 알았다. 그것조차 대신 해주는 PCBA가 있다는데, 나중에 해보고 싶다. 전자상가에 처음 놀러가서 PCB에 붙일 부품들을 구매했다. 곧바로 부품들을 챙겨 동아리방으로 향했다. 2012 칩의 크기가 아주 작았기에 내가 납땜을 잘 할 수 있을까 걱정을 많이 했다. 하지만, 이전에 납땜으로 고생을 실컷 한 덕분에 수월했다. 엄마의 새치를 핀셋으로 뽑아주던 경험도 도움이 되었다. 납땜까지 무사히 마쳤다!

PCB와 로터리 엔코더에 맞추어 새롭게 모델링한 케이스에 모든 부품을 끼워보았다. 전선도 연결했다. 더이상 납땜을 하지 않아도 됨을 실감했다, 최고다! 두근거리는 마음을 품고 보조배터리의 전원을 연결해 보았다. 엥?… 안켜진다. 아 왜… 어째서요… 무엇이 문제인지 하나하나 검토해 보고 막 여러번 시도해 보았다. 그래도 안되길래 처음에는 LED매트릭스가 고장났나 싶었다. 도무지 어디가 문제인 지 알 수 없었다. ESP32의 리셋 버튼을 누르자 갑자기 불빛이 들어왔다. 로터리 엔코더가 연결된 노브를 돌려 보았다. 너무 잘된다! 다행이다. 작동해줘서 고마웠다…
그 문제는 파워업 때에만 발생했다. 자세한 원인은 잘 모르겠다. 하지만 리셋버튼 한 번 눌러주면 잘 작동해서 일단은 여기서 v1.0.0 으로 마무리하기로 했다. 일단 되니깐! 물론 해결해야 하는 치명적인 문제기에 깃허브 이슈에도 올리고 도윤이에게 부탁하였다. 모든 자료들을 정리했다. 다른 사람들이 쉽게 따라할 수 있도록 프로젝트 구조를 만들고 파일들을 넣었다.
1월의 어느 하루, 백남준
웹사이트의 첫 문구에 패턴플로우는 백남준이 만든 〈참여TV〉의 재해석 이라고 선언해 두었다. 사실은 온전히 나만의 오리지널 작품이라 하고 싶었다. 백남준의 아류에 그칠까 걱정되었다. 애초에 백남준을 염두하고 만든것도 아니었다. 아니 어쩌면 자연스럽게 백남준에 영향을 받았을지도 모른다.
백남준에 대해 잘 알지 못하였다. 학창시절에 미술 교과서에서나 다다익선과 같은 작품으로만 보았지 정확히 어떤 작가인지 몰랐다. 그저 TV를 활용했던 우리나라 예술인으로 알았다. 가끔 작업을 남들에게 보여주면 그의 이름이 몇번씩 들려올 뿐이었다. 그래서 언젠가 알아보고 싶다는 마음만을 간직하고 있었다. 그러다 1월 28일 백남준 아트센터에 놀러가는 일이 생겼다. 정확히는 백남준이 아닌, 그곳에서 진행되는 다른 작가의 전시를 보러 갔다. 작품은 기억나도 이름은 기억나지 않는다. 그리 큰 관심이 있진 않았고 친한 누나랑 놀러가고 싶었을 뿐이다. 너무너무 즐거웠고, 오랜만에 소풍을 나온 느낌이었다. 모든게 생생히 기억나 지금까지 적은 분량만큼의 글을 적을 수 있지만 여긴 일기장이 아니니 자제하겠다.

전시를 금방 보고 백남준의 작품들도 보았다. 그때 〈참여TV〉도 처음 보았다. 백남준이 그런 작업을 했다는 것도 처음 알았다. TV를 활용해서 아주 큰 설치작업만 한 줄 알았는데, 작은 체험형 작품들도 있더라. 재밌었다. 운명인지 우연인지 아무것도 모르고 간 그 날은 백남준 서거 20주년 행사 기간이었다. 원래는 센터 회원 중에서 예약자에 한해서만 관람하는 전시가 오후에 진행된다고 하였다. 혹시나 하는 마음에 자리가 비면 볼 수 있냐 여쭤보았고 옆의 박물관에 가서 놀다가 돌아왔다. 아싸! 들여 보내주었다. 그렇게 계획에 없던 공연까지 보게 되었다. 감상 소감은… 묘했다. 역시 예술은 어렵구나 싶었다.

〈로봇 K-456〉도 그때 처음 보았다. 당시에는 왜이리 허접하나 싶었다. 한창 CES에서 보스턴다이나믹스의 휴머노이드가 화제가 되었던 시기라 그에 비하면 너무 하찮아 보였다. 그 로봇이 1960년대 백남준이 만든 것이라는 사실은 한참 이후에나 그에 대해 조사하며 알게 되었다. 홍익대 시각디자인과 전공수업 중 “작가적 디자인 스튜디오1” 수업을 듣고 있다. 선배작가를 한 명 골라 분석하고 재해석하여 자신의 작업으로 풀어내고 전시까지 해보는 수업이다. 기회다 싶어 백남준을 골랐고, 그 과정에서 백남준에 대해 자세히 알게 되었다.
솔직히 아직 잘 모르겠다. 다큐도 보고 책을 읽어 보아도 어렵다. 놀기를 좋아하고 운이 좋은 어린아이같은 사람이란 느낌을 받았다. 동시에 되게 낙천적이고 평온해 보였다. 항상 미래를 그리고 불안해하는 나로써 그 태도만큼은 닮고 싶었다. 전공수업을 진행하며 선배작가의 작품을 재해석하는 실험 3개를 해야 했다. 사실 이미 해둔 것들을 연결시켰다. 패턴플로우를 〈참여TV〉와, 한밤중 공원에서 찍은 영상을 〈TV정원〉과, 따로 만들었던 흔들면 랜덤한 소리가 나는 기기와 〈랜덤액세스〉를 연결시켰다. 그리고 이어진 오픈소스로의 전환점에서 패턴플로우와 참여TV의 연결성을 결정했다.
패턴플로우가 온전히 〈참여TV〉에서 나왔다고 할 순 없다. 1월 28일 실제로 보았다 할지라도 그 이전부터 진행해온 패턴플로우:오리진의 현실로의 확장에 더 가깝다. 그럼에도 두개의 연결성이 짙게 드러났다. 둘 다 빛을 조작할 수 있는 기기이다. 다른점이 있다면 타인들이 체험을 넘어서서 직접 만들고 공유할 수 있냐는 점이다. 시대적 환경과 기술의 발전 덕분에 패턴플로우는 가능하다. 참여TV를 재해석함과 동시에 관객의 체험을 넘어서 창작의 장으로 초대한다는 점에서 나름 발전한 게 아닐까?
전략적인 이유도 있다. 백남준의 참여TV에 빗대어 표현하면 패턴플로우를 사람들이 더 쉽게 받아들일 것이라 생각한다. 백남준에 대해 잘 아는 사람들의 지도에 나를 쉽게 위치시킬 수 있다. 한마디로 패턴플로우를 쉽게 이해하도록 도와주는 장치이기도 하다. 전공 수업도 연결시켜 시간과 비용을 집중시킬 수 있다.
지금, 그리고 다음
4월 26일 그동안 미뤄두던 디자인권 출원과 함께 GitHub에 v1.0.0을 태그했다. 만드는 방법도 내 경험을 돌아보며 자세히 정리해 보았다. 사실 AI한테 전부 털어놓고 정리해달라 했다. 그래서 차차 수정할 필요가 있다. 텍스트 뿐 아니라 그림과 사진, 영상으로도 정리하고자 한다. 천천히 하려고 한다.
4월 27일에는 웹 기반 ESP32 업로더를 추가했다. 나야 아두이노 IDE의 설정을 이미 해 두었고 코드만 수정해서 업로드하면 되지만, 다른 사람들은 아니다. 그래서 미리 컴파일 해두고 사람들은 그걸 웹에서 바로 업로드 가능하게 만들었다. 플랫폼 영역의 첫걸음이다. 모드도 추가하고 공유도 가능하게 해야하고… 앞으로 구현할 기능이 너무 많다. 일단은 이정도로 충분하다 싶어서 v1.1.0으로 다시 올렸다.
웹사이트도 더 개선해야 한다. 할 게 너무나 많다. 그럼에도 맨 처음 적은바와 같이 잠시 멈추어 생각해본다. 지금의 내가 어디에 있는지, 앞으로 가야할 방향은 어느 곳인지를 다시 바라본다. 처음 매트릭스와 가변저항 4개를 달았을 때, 70%는 한 줄로만 알았다. 이제와 돌아보니 10%로 아니었다. 아직도 절반조차 가지 못했다. 잘 되면 좋겠다.
이 글을 전부 읽었다면 알겠지만 모든 자료가 깃허브에 올라가 있다. 피, 땀, 눈물이 담긴 자료들이니 도움이 된다면 반드시 스타를 달아주면 정말 좋겠다.