AMCA 2026 · 8/4 · 박성하

바이브 코딩으로
창작 파이프라인 만들기

개념과 사용 방법을 익히고, 실제 작품을 직접 열어 구조를 살펴본 뒤
인터랙티브 아트 작품을 만들어 본다

AMCA 2026 · 바이브 코딩

학습 목표

1
바이브 코딩의 가능성과 한계를 이해한다.
말로 만드는 방식이 어디에서 시작됐고, 왜 화면과 실행 결과를 직접 검증해야 하는지 살펴본다.
2
코딩 에이전트와 함께 작업하는 방법을 익힌다.
폴더를 열고, 파일을 만들고, 실행 화면을 확인하며 한 가지씩 수정하는 흐름을 배운다.
3
네 유형의 대표작을 보고 내 작품의 첫 장면을 시작한다.
거울·몸짓·시뮬레이션·가상세계의 구조를 살펴보고, 레퍼런스와 나의 이야기를 연결한다.

흐름 — 개념 바이브 코딩과 검증 → 도구 코딩 에이전트 → 사례 네 유형과 대표작 → 실습 프롬프트 실행 → 창작 레퍼런스에서 첫 화면으로

도입

바이브 코딩, 무엇인가?

2025년에 이름 붙은 뒤 몇 달 만에 널리 퍼진 신조어다. 

기원 · 2025년 2월 2일

Karpathy가 이 방식에 ‘vibe coding’이라는 이름을 붙였다

"There's a new kind of coding I call 'vibe coding', where you fully give in to the vibes, embrace exponentials, and forget that the code even exists."

"내가 '바이브 코딩'이라 부르는 새로운 코딩이 있다. 완전히 분위기에 몸을 맡기고, 기하급수적 발전을 받아들이고, 코드가 존재한다는 사실 자체를 잊어버리는 것이다."

— Andrej Karpathy (OpenAI 창립 멤버 · 전 Tesla AI 디렉터), X, 2025-02-02

그가 묘사한 방식은 간단했다. 화면을 보고, 원하는 것을 말하고, 실행하고, 오류가 나면 오류 문장을 다시 건넨다. 다만 코드를 읽지 않는 이런 방식은 “만들고 버릴 주말 프로젝트” 정도에 알맞다고 선을 그었다.

정의 · 좁은 뜻과 넓은 용법

널리 퍼졌지만, 뜻이 하나로 굳은 말은 아니다

원뜻은 코드를 거의 읽지 않고,
결과를 보며 계속 이어 가는 방식이다.

자연어로 AI에게 코드를 맡긴다는 넓은 뜻으로도 쓰인다. 강의에서는 두 용법을 구분한다.

Collins · 2025 올해의 단어자연어 프롬프트로 AI를 사용해 코드 작성을 돕는 방식이라고 설명했다. 빠른 확산을 보여 주는 기록이다.
Merriam-Webster · Slang원하는 것을 AI에게 말하고 만들게 하는 관행으로 소개하면서, 결과를 세심하게 살피지 않는 뉘앙스도 함께 짚는다.
강의에서의 구분‘AI로 코딩했다’와 ‘바이브 코딩했다’는 같은 말이 아니다. 사람이 얼마나 이해하고 검증했는지가 경계다.
확산 · 네 장면

바이브 코딩은 빠르게 확산되고 있다.

2024.10

Google · 1/4 이상

신규 코드의 4분의 1 이상이 AI 생성. 다만 엔지니어가 검토하고 승인한 코드였다.

2025.02

이름이 생기다

Karpathy가 코드를 거의 읽지 않고 결과를 보며 이어 가는 방식을 ‘vibe coding’이라 불렀다.

2025.03

YC · 25%

Jared Friedman은 W25 배치의 25%에서 코드베이스의 95%가 AI 생성이라고 밝혔다.

2025.11

Collins 올해의 단어

몇 달 사이 개발자 밖에서도 알아보는 신조어가 됐음을 보여 주는 신호였다.

같은 ‘AI 생성 코드’라도 사람이 이해하고 검토했는지에 따라 작업의 성격과 책임이 달라진다.

중요한 구분 · 그리고 대가

모든 AI 코딩이 바이브 코딩은 아니다

바이브 코딩

LLM이 쓴 코드를 자세히 읽지 않고, 결과가 보이면 계속 이어 가는 방식. 빠른 실험과 버릴 수 있는 프로토타입에는 유용하다.

소프트웨어 개발

AI가 썼더라도 사람이 실행 결과와 오류를 확인하고, 위험한 권한과 개인정보를 점검하고, 반복 테스트하면 검증된 제작에 가까워진다.

— Simon Willison(2025-03). 생성 속도와 결과의 신뢰성은 별개의 문제다. 오늘은 빠르게 만들되 브라우저 화면·오류·실행 결과를 근거로 확인한다.

만능은 아니다.

"금방 만든다"와 "내 것이 된다"는 다른 말이다

이미지 생성에서 이미 겪은 일

  • 그럴듯한 그림은 10초면 나온다 — 지난주 파인튜닝 시간에 다들 경험했다.
  • 그러나 내가 의도한 구도·질감·디테일에 정확히 닿으려면, 수백 장을 생성하고 고르고 다시 학습하는 며칠·몇 주가 든다.

바이브 코딩도 똑같다

  • 첫 화면은 몇 분이면 뜬다. 그러나 작가의 입맛에 닿기까지는 몇 주, 길게는 몇 달이 걸린다.
  • 오늘 볼 작품들 뒤에도 그 시간이 있다. Lichen은 일곱 번을 갈아엎었고, 수백만 원을 들이고 실패한 작업들도 있다.

업계 관찰도 같은 말을 한다. Addy Osmani의 “70% 문제”는 첫 70%보다 디테일·예외·완성도를 다루는 마지막 30%가 더 어렵다는 설명이다. METR의 무작위 대조 실험(2025)에서는 자신이 잘 아는 오픈소스 저장소를 다룬 숙련 개발자들이 당시 AI 도구를 쓸 때 평균 19% 느려졌다. 모든 작업의 결론이 아니라, 도구를 쓴다고 자동으로 빨라지는 것은 아니라는 경고다.

결과를 바꾸는 세 가지

강한 모델보다, 좋은 작업 방식까지 함께 필요하다

모델

복잡한 구조와 긴 작업일수록 더 강한 모델이 유리하다. 하지만 모델이 강해져도 애매한 목표까지 대신 정해 주지는 않는다.

맥락

참고 이미지·실행 화면·작업 폴더·원하는 느낌을 함께 주면, 같은 모델도 무엇을 만들어야 하는지 훨씬 정확하게 이해한다.

검증

실행 화면·콘솔 오류·전후 캡처를 확인하고 한 가지씩 고친다. 실패한 시도도 다음 지시의 구체적인 재료가 된다.

모델은 바뀌어도 충분한 맥락을 주고, 실행 결과를 근거로 판단하는 작업 방식은 남는다. 구체적인 반복 순서는 첫 작품 뒤에서 직접 적용한다.

도구 · 코딩 에이전트

말하면 파일을 만들고
실행까지 하는 작업자

일반 채팅은 “이렇게 해보세요”라고 방법을 설명한다. 코딩 에이전트는 내가 열어 준 작업 폴더에서 파일을 읽고·고치고·명령을 실행하고·브라우저 결과까지 확인한다.

도구 · 세 가지 선택

하는 일은 비슷하고, 작업 화면이 다르다

코딩 에이전트어디에서 쓰나이 수업에서 보는 차이
CodexChatGPT 데스크톱의 Codex · 터미널 · 코드 편집기 · 웹/클라우드폴더를 열어 HTML을 만들고, 실행하고, 브라우저 화면을 확인하는 흐름을 한 작업 안에서 이어 간다. 오늘 수업의 기준 도구다.
Claude CodeClaude Desktop의 Code · 터미널 · VS Code/JetBrains · 웹데스크톱에서는 변경 비교와 미리보기를 보며 작업하고, 웹에서는 컴퓨터를 꺼도 계속되는 원격 작업을 맡길 수 있다.
Antigravity 2.0독립형 데스크톱 앱 · 별도 CLI여러 프로젝트의 에이전트를 시작·모니터링·조율한다. 직접 편집할 때는 별도 Antigravity IDE나 다른 IDE를 함께 쓴다.

셋 다 핵심은 같다 — 설명만 하는 챗봇이 아니라, 파일과 실행 도구를 사용해 결과를 만드는 에이전트다. 핵심 의도는 재사용할 수 있지만 폴더 연결·권한 승인·미리보기 방식은 도구마다 다르다. OpenAI Codex 공식 안내(2026) · Anthropic Claude Code Platforms(2026) · Google Antigravity 공식 안내(2026)

코딩 에이전트 ① · Codex

폴더를 열고, 만들고, 실행하고, 화면까지 확인한다

개요

OpenAI의 코딩 에이전트. ChatGPT 데스크톱의 Codex, 터미널, 코드 편집기, 웹·클라우드에서 사용할 수 있다.

  • 작업 폴더의 파일을 읽고 직접 수정한다.
  • 명령을 실행하고 브라우저 결과를 보며 다시 고친다.
  • 오늘 수업은 이 흐름을 기준으로 진행한다.

에이전트가 일하는 방식과 도구의 묶음이라면, 모델은 그 안에서 판단하고 코드를 쓰는 두뇌다.

모델성격언제 고르나
GPT-5.6 Sol고성능형구조가 복잡하거나 여러 파일을 함께 다루는 작업, 어려운 오류와 긴 제작에 쓴다.
GPT-5.6 Terra균형형일상적인 제작과 수정. 속도와 완성도의 균형이 좋아 기본 작업에 알맞다.
GPT-5.6 Luna속도형문구·색·크기처럼 단순한 수정과 빠른 반복에 쓴다.

모델이 보이지 않으면 앱·CLI를 업데이트하고 계정의 제공 범위를 확인한다. 플랜과 배포 시점에 따라 선택지가 다를 수 있다. 출처: OpenAI · GPT-5.6 in ChatGPT / Codex 공식 문서(2026-08 확인)

코딩 에이전트 ② · Claude Code

대화하면서 코드의 변경과 실행 과정을 이어 간다

개요

Anthropic의 코딩 에이전트. Claude Desktop의 Code, 터미널, VS Code·JetBrains, 웹에서 사용할 수 있다.

  • 폴더를 읽고 파일을 고치며 명령과 테스트를 실행한다.
  • 변경 전후의 차이를 보며 수정 방향을 대화로 조정한다.
  • 터미널 중심 작업과 원격·장시간 작업을 함께 지원한다.

Claude Code에서는 Fable·Opus·Sonnet 같은 별칭으로 최신 권장 버전을 고를 수 있다. /model을 열면 현재 계정에서 실제로 쓸 수 있는 모델이 보인다.

모델성격언제 고르나
Fable 5최고 성능·장기 작업한 번에 끝나지 않는 조사·구현·검증처럼 가장 어렵고 긴 작업에 쓴다.
Opus 5.0복잡한 추론큰 구조 변경, 어려운 디버깅, 설계 판단처럼 깊게 생각해야 하는 작업에 쓴다.
Sonnet 5일상 작업기능 제작·오류 수정·테스트·문서처럼 대부분의 코딩에 쓰는 중심 모델이다.
Haiku 4.5빠르고 가벼움질문, 형식 정리, 반복적인 단순 수정처럼 속도가 중요한 일에 쓴다.

처음에는 기본값 또는 Sonnet으로 시작하고, 막히는 문제에서만 더 강한 모델로 바꾸면 된다. 모델과 제공 범위는 계정·실행 환경에 따라 달라질 수 있다. 출처: Anthropic · Claude model lineup / Claude Code model configuration(2026-08 확인)

코딩 에이전트 ③ · Antigravity 2.0

여러 프로젝트의 에이전트를 한 화면에서 관리한다

개요

Google의 독립형 에이전트 작업 관리 앱. IDE가 아니라, 여러 프로젝트에서 돌아가는 에이전트의 진행과 결과를 모아 보는 지휘 화면이다.

  • 여러 에이전트를 병렬로 실행하고 모니터링한다.
  • 파일·명령·Chrome을 사용한 작업 기록을 확인한다.
  • 직접 편집할 때는 Antigravity IDE나 다른 IDE를 함께 쓴다.

이미지 재료가 필요할 때는 에이전트가 별도의 Nano Banana 2 이미지 생성 모델을 사용하기도 한다.

모델성격언제 고르나
Claude Opus 4.6최고 추론형가장 복잡한 설계·디버깅처럼 깊은 판단이 필요한 작업에 쓴다.
Gemini 3.1 Pro깊은 추론형설계·분석이 복잡할 때 쓰며, 낮음·높음으로 생각의 깊이를 조절할 수 있다.
Claude Sonnet 4.6균형 추론형좋은 추론 성능과 작업 속도를 함께 원하거나 다른 모델과 비교할 때 쓴다.
Gemini 3.6 Flash빠른 주력형빠른 대화와 긴 에이전트 작업을 함께 돌리는 일상 제작에 쓴다.
GPT-OSS-120B공개 모델공개 가중치 계열 모델로 결과를 비교하거나 다른 선택지가 필요할 때 쓴다.

처음에는 가장 빠른 Gemini Flash로 시작하고, 복잡해지면 Pro나 다른 추론 모델을 시험한다. 모델 제공 범위는 플랜에 따라 달라진다. 출처: Google Antigravity · Models / Features 공식 문서(2026-08 확인)

작품

박성하 미디어아트 허브

오늘 볼 작업들은 바이브 코딩으로 시작해, 실행 확인과 반복 수정을 거쳐 완성되었고 브라우저에서 실행된다.

SEONGHA PARK MEDIA ART HUB 히어로
Live
미디어아트 허브 — 입구
허브의 첫 화면. 아래에서 차오르는 공들은 실습 시간에 소개할 ReactBits의 Ballpit을 작품에 맞게 바꾼 것이고, 스크롤을 내리면 작품이 한 화면씩 이어진다. 이 페이지도 코딩 에이전트와 대화하며 시작하고, 화면을 검증하며 반복 제작했다.
허브 사용법

두 개의 단축키 — F와 H

F — 전체화면

어느 작품에서든 F를 누르면 전체화면이 되고,
한 번 더 누르면 돌아온다.

H — 패널 보이기·숨기기

H를 누를 때마다 설정 패널이 사라지거나 다시 나타난다. 색·속도·개수·모드를 전시 중에 조절한다.

설정은 새로고침 뒤에도 유지되도록 브라우저 저장소나 설정 파일에 남길 수 있다. 전체화면·패널 숨김·설정 복원처럼 작품을 다시 켰을 때 같은 상태로 돌아오는 기능이 전시 운영에 중요하다.

작품보다 먼저 · 작가의 질문

사물 속에 남은 시간을 상상한다

보이지 않는 것들에 대한 질문

지구와 우주는 어떻게 생겨났을까. 우리는 어디에서 와서 어디로 가는가. 내가 보지 못한 것을 상상하고 느끼는 일은 막연하고 두렵지만, 그래서 더 궁금하다.

산의 돌탑을 보면 돌마다 누군가의 소원은 남고, 사람은 사라졌다는 생각을 한다. 선산의 이름 모를 조상 비석과 장군석·문신석, 그 위에 자란 지의류와 이끼를 보며 잊힌 사람과 시간, 보이지 않는 이야기를 상상한다.

돌에 쌓인 시간

퇴적암을 조각하며 지층의 결이나 화석을 만나면, 오래전 모래가 켜켜이 쌓여 돌이 되고 그 긴 시간이 지금 내 앞까지 왔다는 생각을 한다.

“오랜 시간이 나 때문에 이 멀리까지 왔구나. 잘해야겠다.”
VR 작품 Layers of Wishes의 소원돌과 관객
〈Layers of Wishes〉, VR, 2025 — 가상의 돌에 남은 서로의 소원을 만나는 공간

그래서 AI로 사물에 숨은 이야기를 표현하고, 하나의 사물이 품은 여러 시간과 모습을 보여주려 한다. 모든 것은 끊임없이 변하고 관계에 따라 달라진다. 그럼에도 무엇이 남는가 — 그 질문이 작업의 시작이다.

오늘의 지도 · 이 강의를 위한 관찰 틀

네 유형, 네 대표작 — 작품의 주된 작동 방식으로 나눈다

유형작동 방식 · 대표작주요 기술
① 변환적 거울실시간 이미지를 다른 시각 재료로 번역해 되돌린다 — 주사위 거울WebGL · 인스턴싱
② 체현적 상호작용손의 움직임과 몸짓이 작품의 형태를 바꾼다 — 점·선·면 Tri-MorphMediaPipe · 랜드마크
③ 규칙 기반 시뮬레이션상태와 변화 규칙이 시간 속에서 형태를 만든다 — Lichen 지의상태 전이 · 논문과 GitHub
④ 가상세계형태·물리·빛·행동이 이어지는 세계 안의 존재와 만난다 — 이머시브 베타3D 파이프라인 · Blender MCP

정립된 학술 장르표가 아니라 이 강의에서 작품을 읽기 위한 네 가지 렌즈다. 한 작품은 여러 성격을 함께 가질 수 있지만, 오늘은 가장 두드러지는 작동 방식 하나로 읽는다.

유형 ① · 변환적 거울

변환적 거울 —
실시간 이미지를 번역해 되비춘다

카메라가 받은 지금 이 순간의 상(像)을 글자·주사위 같은 다른 재료로 번역해 되돌려준다. 관객이 화면 속 변화의 재료가 되는 직관적인 상호작용이다.

주사위 거울 실행 화면
Work 28
주사위 거울 — Dice Mirror
내장 데모 패턴이 주사위 벽으로 번역된 실행 화면. 각 칸은 독립적으로 회전하는 3D 주사위 모델이다. 카메라를 켜면 관객의 얼굴이 주사위 눈의 격자로 다시 나타난다.
작품 ① · 구조와 만들기

명암을 주사위의 눈으로 번역한다

1
입력
카메라·영상·이미지를 작은 격자로 나누고, 각 칸의 밝기를 잰다.
2
변환 규칙
어두운 칸은 1, 밝은 칸은 6이 보이도록 밝기를 주사위 눈 수로 바꾼다.
3
출력
각 주사위가 해당 면으로 굴러가며 관객의 상을 새로운 재료로 되비춘다.
어두운 밝기에서 밝은 밝기까지 주사위 눈이 1에서 6으로 변하는 도식
밝기의 연속값을 여섯 단계의 주사위 면으로 치환한다.

핵심은 명암을 다른 시각 단위로 치환하는 규칙이다. 같은 구조에서 주사위를 단추·바둑돌·꽃잎으로 바꾸면 다른 연작이 시작된다.

작품 프롬프트 · 변환적 거울

주사위 거울의 전체 제작 브리프

웹캠을 활용한 브라우저 기반 인터랙티브 미디어아트 작품을 만들어줘.

화면을 작은 3D 주사위 그리드로 채우고, 웹캠 영상의 명암에 따라 가장 어두운 부분은 1, 가장 밝은 부분은 6이 정면에 보이게 해줘. 검은 배경에 어두운 주사위와 흰색 눈으로 표현하고, 명암이 변할 때 주사위가 해당 면으로 부드럽게 굴러가게 만들어줘.

오른쪽에는 주사위 개수, 크기, 그리드 간격, 회전 속도, 밝기, 대비 등을 실시간으로 조절할 수 있는 설정창을 만들어줘. 마우스로 시점을 움직이거나 확대할 수도 있게 해줘.

새 컴퓨터에서 바로 시작할 수 있도록 외부 라이브러리나 설치 과정 없이 하나의 HTML 파일로 만들어줘. H키를 누르면 설정창이 사라지고 나타나게 해주고, F키를 누르면 전체화면이 되게 해줘.

주사위 개수를 더 늘릴 수 있게 해주고, 주사위를 좀 더 사실적으로 만들어줘. 최적화를 위해 GPU도 사용할 수 있게 해줘.

생각나는 순서대로 쓴 이 요청을 Codex에 통째로 건넨다. 먼저 첫 버전을 열어 보고, 마음에 안 드는 곳을 하나씩 다시 말한다. 짧은 수업 실습은 실습 자료의 간소화 레시피를 사용한다. 카메라는 localhost·HTTPS에서 열고, 권한이 없을 때는 데모 패턴이 나오게 한다.

우리 수업의 규칙

말로 맡기되, 눈으로 확인한다

상상만들고 싶은 장면을 말로 잡는다.
지시생각나는 조건과 느낌을 말하듯 적는다.
실행AI가 만들고 실행해 보여준다.
확인화면으로 보고 아닌 지점을 고른다.
수정화면을 보며 아닌 점을 하나씩 말한다.
  • 원본을 보존하고 복사본에서 작업하며, 삭제·초기화 요청은 바로 승인하지 않는다.
  • 결과는 브라우저에서 직접 열어 화면으로 판단하고, 에러가 나면 에러 문장을 그대로 붙여넣는다.

프롬프트는 한 방의 주문이 아니라 대화의 시작이다 — 이 루프를 실습 내내 돌린다.

잠깐, 단어 하나 · WebGL

WebGL — 브라우저가 GPU로 3D를 그리는 통로

브라우저 내장

별도 프로그램이나 플러그인 없이 HTML에서 바로 3D 그래픽을 그린다.

GPU 가속

수천 개의 주사위와 조명·그림자를 그래픽카드가 병렬로 계산한다.

한 파일로 실행

외부 라이브러리 없이 WebGL 코드를 HTML 안에 넣으면 새 컴퓨터에서도 바로 열린다.

  • WebGL은 브라우저와 GPU를 잇는 바닥 기술이고, Three.js는 그 위에서 3D 작업을 쉽게 해주는 도구다.
  • 이번 프롬프트는 설치 없는 단일 파일이 목표이므로 WebGL을 직접 쓰고, 같은 주사위를 한꺼번에 그리는 인스턴싱으로 개수를 늘린다.
유형 ② · 체현적 상호작용

관객의 몸짓이
작품의 인터페이스가 된다

마우스 대신 존재·움직임·몸짓이 입력이 되는 유형 — 카메라와 MediaPipe가 몸을 작품의 신호로 바꾼다.

점선면 Tri-Morph 실행 화면
Work 12
점·선·면 Tri-Morph
9,000개의 점이 3D 모델의 표면을 다시 이루고, 가까운 점끼리 선과 삼각형으로 이어진다. 관객은 손짓으로 이 점 그물을 직접 변형한다.
실제 프롬프트 · 점·선·면

생각나는 대로 말해도 작품이 시작된다

인터넷 브라우저에서 실행되는 실시간 미디어아트 작품을 만들 거야.

화면에 3D 모델을 띄우고, 모델 표면을 파티클로 다시 계산해서 보여줘. 가까운 점은 선으로 연결하고, 면은 완전히 채우지 말고 삼각형이 듬성듬성 드러나게 해줘. 조각이 점·선·면으로 계속 다시 만들어지는 느낌이면 좋겠어.

GLB 모델을 여러 개 추가하거나 삭제할 수 있게 해줘. 크기와 중심이 달라도 화면에서는 비슷한 크기로 맞추고, 일정 시간이 지나면 다음 모델로 바뀌게 해줘. 바뀔 때는 점들이 튀지 않고 가까운 방향으로 물결처럼 이동하며 다음 형상을 만들었으면 좋겠어. 이전·다음 버튼도 넣어줘.

웹캠으로 손을 인식하고, 손가락으로 집으면 그 부분의 점을 잡아당겨 만질 수 있게 해줘. 손을 놓으면 천천히 원래 형상으로 돌아오고, 웹캠이 없으면 마우스로 대신하게 해줘.

설정창에서 점의 수와 크기, 선의 거리, 삼각형의 밀도와 투명도, 몰핑 속도와 모델 전환 시간을 조절하게 해줘. 화면 회전과 확대·축소도 가능해야 해. 브라우저에서 바로 실행하고, H키로 설정창을 숨기고 F키로 전체화면이 되게 해줘.
프롬프트에서 구현으로

이 긴 브리프의 핵심은 세 가지 문제다

1
형상 만들기
GLB 모델의 표면을 골고루 뽑아 점으로 바꾸고, 가까운 점을 선과 듬성듬성한 삼각형으로 연결한다.
2
형상 바꾸기
점 개수를 맞추고 모델의 크기·중심을 정규화한 뒤, 대응할 점을 정해 위치를 보간한다.
3
몸으로 만지기
웹캠에서 손의 위치와 몸짓을 읽어 점에 힘을 가하고, 손을 놓으면 원래 형상으로 천천히 돌아오게 한다.

표면 샘플링·점 대응·보간은 형상을 계산하는 일, WebGL은 그 결과를 빠르게 그리는 일이다. 세 번째 문제에는 카메라 영상을 몸의 측정값으로 바꾸는 도구가 필요하다. 이제 MediaPipe를 살펴본다.

MediaPipe ① · 영상에서 좌표로

웹캠은 영상을 보내고, MediaPipe는 몸의 점을 찾는다

손의 랜드마크 인식 예시
손 · 한 손당 21개 기준점
전신 포즈 랜드마크 인식 예시
전신 · 자세와 중심 이동
얼굴 랜드마크 인식 예시
얼굴 · 표정과 고개 방향
카메라색과 밝기의 픽셀
MediaPipe손·몸·얼굴의 위치를 추론
인식 결과랜드마크와 모델별 보조 출력
작품좌표를 힘·색·소리로 연결

카메라는 픽셀만 보내고, MediaPipe는 랜드마크와 모델별 보조 출력—손잡이 분류, 가시성·존재 점수, 마스크, 표정 계수 등—을 돌려준다. 아직 작품의 반응은 없다. 이미지·수치 출처: Google AI Edge · Hand/Pose/Face Landmarker 공식 문서(2026)

MediaPipe ② · 인식 범위

무엇을 읽을지에 따라 인식 모델을 고른다

인식 모델몸에서 찾는 것작품에 쓸 수 있는 신호
한 손당 21개 점 · 왼손/오른손 · 화면/공간 좌표손끝 거리, 손의 펼침, 방향, 이동 궤적
전신 포즈33개 점 · 화면/공간 좌표 · 선택적 인물 마스크팔 벌림, 앉기, 몸의 기울기와 중심 이동
얼굴478개 점 · 선택적 표정 계수와 얼굴 변환 행렬눈·입·눈썹의 변화, 고개 위치와 방향
통합형 파이프라인전신 + 얼굴 + 양손의 결과를 한 사람의 몸으로 연결손짓과 자세, 얼굴 변화를 함께 사용하는 장면

독립형 손·포즈·얼굴 모델과 통합형 파이프라인은 점 개수와 보조 출력이 다를 수 있다. 공통점은 측정 결과이지 감정이나 의도를 자동으로 확정한 답이 아니라는 것이다. 출처: Google AI Edge · MediaPipe Tasks 공식 문서(2026)

MediaPipe ③ · 인터랙션 설계

좌표를 몸짓으로, 몸짓을 작품의 변화로 번역한다

손 랜드마크와 파티클 형상의 상호작용 도식
손끝 좌표는 그대로 작품이 되지 않는다. 거리와 속도를 계산해 ‘잡아당기는 힘’으로 번역한다.
1
좌표
손·몸·얼굴 점의 위치를 받는다.
2
계산
점 사이 거리·각도·속도를 구한다.
3
몸짓
핀치·팔 벌림·눈 감기처럼 의미 있는 움직임으로 묶는다.
4
작품의 값
힘·크기·색·속도·소리에 연결한다.

MediaPipe는 몸에 관한 측정 결과를 준다. 그 값을 몸짓으로 해석하고, 어떤 작품 변화에 연결하며, 튀는 값을 부드럽게 만드는 일이 작가의 인터랙션 설계다. 카메라가 없거나 권한이 거절될 때를 위한 마우스 입력도 함께 둔다.

유형 ③ · 규칙 기반 시뮬레이션

모델의 상태가
시간 속에서 변한다

이 수업에서는 실제 또는 가상의 시스템을 상태와 변화 규칙으로 표현하고, 시간에 따른 상태 변화를 계산하는 작업을 다룬다. 화면은 미리 만든 장면이 아니라 그 순간의 상태를 시각화한 결과다.

Lichen 포자우림 배양실
Work 11
Lichen · 포자우림 배양실
점유 93%까지 자란 필드. 이 화면의 노랑·주황 대부분은 살아있는 조직이 아니라 조직이 지나가며 나이테처럼 쌓인 활동 흔적이다.
실제 프롬프트 · 지의류 생장 ①

먼저, 전시 동안 무엇이 어떻게 변할지 말한다

인터넷 브라우저에서 전시가 진행되는 동안 계속 자라고 변하는 미디어아트 작품을 만들 거야.

화면은 어두운 바위나 배양 접시 같은 공간이고, 처음에는 작은 포자 몇 개만 있다가 시간이 흐르면서 천천히 군락을 이루었으면 좋겠어. 미리 만든 영상을 반복하지 말고, 각 세포가 주변의 빈 곳으로 자라고 양분을 쓰고, 다른 종과 만나면 경쟁하고, 나이가 들면 죽는 규칙으로 매 순간 다음 상태를 계산해줘. 죽은 자리는 바로 없어지지 않고 지나간 흔적이나 나이테처럼 남게 해줘.

같은 코드에서도 성장률, 분지 성향, 수명, 경쟁성, 돌연변이, 흔적이 남는 시간을 바꾸면 균사·엽상·산호·포자우림처럼 서로 다른 군락이 생기게 해줘. 웹캠의 손길은 양분·제거·새 포자 같은 외부 입력으로 넣고, 손 인식이 안 되면 마우스로 대신하게 해줘.

빠른 게임 효과보다는 아주 천천히 살아 있는 것처럼 느껴졌으면 좋겠어. 많은 세포가 있어도 멈추지 않도록 필요하면 GPU를 사용하고, 전시가 재시작되어도 이어지도록 상태를 주기적으로 저장해줘. 설정창에서 주요 매개변수를 바꿀 수 있게 하고, H키로 설정창을 숨기고 F키로 전체화면이 되게 해줘.
실제 프롬프트 · 지의류 생장 ②

AI가 모르는 법칙은 논문과 GitHub에서 찾게 한다

이 작품이 실제 지의류의 성장을 정확히 예측하는 과학 모델이라고 주장하려는 것은 아니야. 지의류의 느린 생장과 군락에서 영감을 받은 가상의 생태계를 만들고 싶어.

그렇지만 규칙을 아무렇게나 발명하지 말고, 실제 지의류 생장 연구와 세포자동자·신경 세포자동자·L-system·반응–확산 모델을 먼저 조사해줘. 각 모델이 무엇을 상태로 저장하고 어떤 규칙으로 다음 상태를 만드는지, 무엇을 설명할 수 있고 무엇은 설명하지 못하는지 비교해줘.

브라우저에서 오래 실행할 수 있는 GitHub 구현도 논문과 짝지어 찾아줘. 선택한 모델의 상태변수·전이규칙·매개변수·수치적 한계, 참고한 논문과 저장소 주소, 라이선스를 프로젝트에 기록해줘.
이 작품이 택한 뼈대는
진화 세포자동자다.

격자 셀에 생존·나이·에너지·종의 값을 저장하고, 이웃 셀과 양분을 보고 다음 상태를 정한다. 실제 지의류를 예측하는 모델이 아니라 느린 생장·경쟁·흔적을 표현하기 위한 가상 생태계다.

작품에서 모델로

지금 모습을 보고, 다음 순간을 만든다

지금 모습어디에 세포가 있고, 얼마나 자랐고, 어디에 흔적이 남았는지 본다
규칙 적용빈 옆칸으로 자라고, 양분을 쓰고, 늙으면 죽는 규칙을 한 번 실행한다
다음 모습새 세포가 생기고, 오래된 세포는 사라지고, 지나간 자리는 흔적이 된다
다시 반복방금 만들어진 모습이 다음 순간의 출발점이 된다
한 셀의 상태 · 생존 여부 · 나이 · 에너지 · 종/유전자 · 지나간 흔적

미리 만든 영상을 재생하는 것이 아니다. 바로 전 순간의 상태와 주변 이웃이 다음 순간을 바꾼다. 이 작품은 그 계산을 반복해 화면을 갱신한다.

시뮬레이션 ① · 세 가지 움직임

움직인다고 모두 시뮬레이션은 아니다

애니메이션

시간에 따라 미리 정한 값이나 장면을 보여준다. 같은 조건에서는 같은 순서를 재생한다.

생성 작업

알고리즘이 형태나 소리를 만들어 낸다. 실제나 가상의 대상을 모델링하지 않아도 된다.

시뮬레이션

대상의 상태와 변화 규칙을 모델로 만들고, 시간에 따라 그 상태가 어떻게 달라지는지 계산한다.

세 범주는 완전히 배타적이지 않다. 생성 작업이 상태와 변화 규칙을 가진 가상의 생태계를 모델링하면 시뮬레이션이 될 수 있다. Lichen은 실제 지의류를 예측하는 과학 모형이 아니라, 성장·경쟁·노화·죽음을 규칙으로 만든 인공생명 시뮬레이션이다. Langton(1989) · Galanter(2003)

시뮬레이션 ② · 법칙 고르기

무엇을 만들지보다, 어떤 법칙으로 움직일지 정한다

자라고 무늬를 만드는 것

세포가 이웃을 보며 늘어나거나 가지가 갈라지고, 물질이 반응·확산하며 무늬가 생긴다.

흐르고 퍼지는 것

물·공기는 유체로 흐르고, 열·잉크·농도는 주변으로 확산되며 섞인다.

떨어지고 휘어지는 것

강체·입자에는 중력과 충돌을, 천·연체에는 변형과 제약 조건을 정한다.

무리 지어 움직이는 것

각 개체가 가까운 이웃을 보고 피하거나 따라간다. 새떼·물고기·군중에 어울린다.

검색을 시작할 때는 세포자동자·반응–확산·L-system / 안정 유체 / 입자·강체·연체·천 / Boids·에이전트 기반 모델 같은 이름을 함께 쓴다. 논문과 코드가 정확성을 자동으로 보증하지는 않으므로 가정·한계·라이선스를 확인한다. Turing(1952) · Lindenmayer(1968) · Reynolds(1987) · Stam(1999)

시뮬레이션 ③ · 논문과 GitHub

논문은 법칙을, GitHub는 구현을 보여준다

논문에서 확인할 것

무엇을 상태로 두었는지, 어떤 가정을 했는지, 무엇까지 설명하고 무엇은 설명하지 못하는지 읽는다.

저장소에서 확인할 것

그 모델을 어떤 알고리즘과 시간 간격으로 구현했는지, 실행 예시에서 어떤 움직임이 나오는지 확인한다.

Google Research self-organising-systems GitHub 저장소 화면
예시 · Growing Neural Cellular Automata 논문과 연결된 Google Research 저장소
README목적과 실행 방법
Demo동작 예시와 입력·출력
License수정·재사용 범위
Issues·Commits알려진 문제와 관리 상태

코드가 모델을 의도대로 구현했는지는 검증, 모델이 표현하려는 대상과 맞는지는 타당화의 문제다. GitHub의 별점은 둘 다 보증하지 않는다.

작품 ③ · 배양실

같은 코드라도 규칙값이 달라지면 다른 군락이 된다

화면에 보이는 네 배양실은 같은 코드에 성장 확률·수명·경쟁성 같은 값을 다르게 넣은 결과다. 매개변수 몇 개가 가지의 굵기, 군락의 밀도, 서로 밀어내는 방식과 남는 흔적을 크게 바꾼다.

작품 ③ · 인터랙션

마우스와 손짓을 서로 다른 입력으로 연결한다

마우스 · 세 가지 붓

양분·지우기·포자 중 하나를 고르고 화면을 쓸어 성장·손상·새 종을 만든다.

펼친 손

손바닥 궤적 아래의 살아 있는 조직이 밝아지고 손길을 따라 반응한다.

주먹

쥔 손의 위치에 포자가 떨어져 새로운 군락이 시작된다.

  • 카메라 영상은 들어오지만 랜드마크 인식이 실패하면 움직임 감지로, 카메라가 없거나 권한이 거절되면 마우스와 자율 생장으로 이어진다.
  • 브라우저 안에서 상태가 계속 계산되므로 전시 내내 같은 화면을 반복 재생하지 않는다.
작품 ③ · 이렇게 만들었다

일곱 차례 시도에서 방향을 바꾼 네 순간

버전시도작가의 반려 이유 (실제 기록)
2서버 배양 + 나이테 렌더링"변화가 전혀 안 느껴지고 흐름·퍼짐이 없다."
4실시간 점균 흐름(Physarum)"생명체 느낌이 없고 그냥 흐르는 느낌. 이건 아니다."
5진화 세포자동자 v0.4"너무 빠르다 · 더 우아하게 · 배양실별로 형태가 다르게."
7형태발생 + 계절 + 손 추적성장·흔적·관객 입력을 한 생태계 안에서 연결했다.

완성된 지시문이 처음부터 있었던 게 아니다. 제일 어려운 건 "살아있는 느낌이 아니다"를 말로 설명하는 일이었다. AI는 시도를 만들고 작가는 판정한다 — 원한 것은 그림이 아니라 살아있음이었고, 그 판정 기준이 작가의 몫이다.

준비된 예제 · 실시간 시뮬레이션

바위에 자라는 것 — 준비된 프롬프트를 통째로

  • 실습 자료의 주사위 예제가 어디까지 만들어졌는지 먼저 열어 보고, 이어서 ‘바위에 자라는 것’ 프롬프트를 통째로 붙여넣는다.
  • 목표는 포자 한 알이 가장자리에서 자라고, 안쪽은 삭아 자국이 되는 Lichen의 축소판이다. 카메라 없이도 돌아가는 자율 모드를 요구한다.
  • 완성되면 바꿔 볼 곳 — 색 계열(산호빛), 자랄 한계, 자국이 남는 시간.
바위에 자라는 것 결과 화면
완성 예시 — 같은 프롬프트라도 모델과 수정 과정에 따라 결과가 다르다. 화면을 열고 한 가지씩 고친다.
유형 ④ · 가상세계

화면 안에
하나의 세계를 세운다

3D 물체 하나를 띄우는 데서 끝나지 않는다. 공간·물리·빛·행동·관객 반응이 서로 모순 없이 이어질 때, 관객은 화면을 그림이 아니라 들어가 볼 수 있는 장소로 느낀다.

이머시브 베타 실행 화면
Work 29
이머시브 베타 — Immersive Betta
어항을 둘 수 없어서 만든 가상의 물속. 베타의 3D 몸체가 계속 유영하고, 지느러미는 실시간 천 시뮬레이션으로 갱신된다. 웹캠이 읽은 손의 거리와 속도에 따라 다가오거나 달아나며 관계를 만든다.
실제 프롬프트 · 이머시브 베타

최종 작품의 출발점 — “지느러미를 천처럼 계산해줘”

베타가 검은 물속을 헤엄치는 웹페이지를 만들어줘. 참고 사진 8장을 같이 줄게. 핵심은 지느러미야. 그냥 이미지가 흔들리는 것처럼 보이게 하지 말고, 진짜 천처럼 계산해줘. 지느러미 뿌리는 몸에 붙어 있고 끝으로 갈수록 부드럽게 흔들리고, 몸이 움직이면 그 힘이 천에 전달되게 해줘.

크고 우아하게 천천히 계속 헤엄쳤으면 좋겠고, 추진할 때는 타탁-타탁 움직인 다음 잠깐 활강하는 리듬이 있었으면 좋겠어. 손을 내밀면 호기심을 보이고, 급하게 다가가면 놀라 달아나고, 가까이 오래 있으면 따라오거나 먹이를 먹게 해줘.

색과 빛은 참고 사진처럼 비단결 광택이 살아나야 하고, 검은 물속에 떠 있는 느낌이 나야 해. 설치 없이 브라우저에서 바로 열리는 HTML 파일 하나로 만들고, 화면 아래에는 폴리곤 수, FPS, 지느러미가 얼마나 늘어나는지 보여주는 수치를 띄워줘. H키로 설정창을 숨기고 F키로 전체화면이 되게 해줘.
푸른 베타 참고 사진
청록 몸 · 붉고 흰 지느러미
금빛 베타 참고 사진
금빛 광택 · 어두운 가장자리
연보라 베타 참고 사진
연보라 비단결 · 투명한 끝
붉은 베타 참고 사진
불꽃 같은 냉·온색 대비

이것은 한 번에 완성한 주문이 아니라 첫 제작 방향이다. 참고 사진은 복제 대상이 아니라 형태·색·광택을 판정하는 기준이었고, 이후 모델과 화면을 보며 계속 다시 지시했다.

작품 ④ · 첫 실패

코드로만 만든 물고기는 물고기답지 않았다

1
프로시저럴 형태
몸통과 지느러미를 수식과 기본 메시로 바로 만들었다.
2
화면으로 판정
몸과 꼬리의 연결, 비례와 실루엣이 실제 베타의 느낌과 달랐다.
3
제작 방법을 바꿈
형태를 계속 손코딩하기보다 사진을 기준으로 3D 초안을 만들기로 했다.
프로시저럴 방식으로 만든 초기 베타 물고기의 어색한 형태
초기 프로시저럴 버전 · 몸과 지느러미의 연결이 어색해 반려

바이브 코딩은 틀린 첫 결과를 감추는 방법이 아니다. 왜 아닌지 화면에서 판단하고, 다음 제작 도구를 바꾸는 과정까지 작품 제작에 포함된다.

가상세계 ① · 경험의 목표

기술적 몰입은 환경의 조건, 현존감은 관객의 경험

기술적 몰입 · immersion

끊기지 않는 3D 공간, 자연스러운 시점과 크기, 즉각적인 반응, 일관된 소리와 빛처럼 시스템이 감각을 얼마나 둘러싸고 반응하는가의 문제다.

현존감 · presence

관객이 “내가 그곳에 있다” 혹은 “저 물고기가 정말 저곳에 있다”고 느끼는 주관적인 경험이다. 같은 화면을 보아도 사람마다 다를 수 있다.

한국어 ‘몰입감’은 심리적으로 빠져드는 경험도 뜻하지만, 여기서는 시스템이 감각과 행동을 얼마나 일관되게 둘러싸는지 말한다. 화면 기반 작품은 VR보다 범위가 작아도 공간의 연속성·빠른 반응·믿을 만한 행동으로 현존감을 만들 수 있다. Slater & Wilbur(1997) · Slater(2009)

가상세계 ② · 세계의 법칙

이 작품에서는 다섯 가지 일관성을 점검했다

공간크기·거리·카메라·빛·가림이 같은 깊이를 말한다
물리몸의 힘과 물의 저항이 지느러미 움직임으로 이어진다
행동배회·추진·활강·회피가 물고기다운 리듬을 만든다
반응손의 속도와 거리에 따라 놀람·호기심·접촉이 달라진다
시간매 순간 이전 움직임을 이어받아 같은 존재처럼 계속 산다

빛은 물속인데 움직임은 공중 같거나, 손을 내밀었는데 한참 뒤 반응하거나, 물고기의 성격이 순간마다 바뀌면 세계가 깨진다. 이 작품에서는 화려한 그래픽보다 서로 모순되지 않는 작은 법칙들이 물고기를 같은 공간에 존재하는 대상으로 느끼게 한다.

작품 ④ · 재료와 물성

사진으로 3D를 만들고, Blender에서 최적화를 했다.

Tripo에 입력한 베타 참고 사진
① 이미지 · 베타의 형태와 실루엣
Tripo 이미지 투 쓰리디로 생성한 베타 모델
② Tripo 이미지→3D · 94,235 정점
Blender에서 폴리곤을 줄인 뒤 브라우저에서 실행한 베타
③ Blender 정리 후 · 41,622 정점

프로시저럴 형태가 어색해 Tripo의 이미지→3D로 모델을 만들었다. 하지만 원본은 정점이 너무 많아 실시간 지느러미 물리에 무거웠다. Blender에서 폴리곤을 줄이고 몸통·지느러미를 여덟 파트로 나눈 뒤 GLB로 다시 가져왔다. 이 Blender 작업을 말로 맡길 때 사용한 연결이 다음 장의 MCP다.

이머시브 베타 작업기 · MCP

MCP는 코딩 에이전트와 Blender 사이의 연결 규칙이다

사람의 지시“폴리곤을 줄이고 지느러미를 나눠줘”
코딩 에이전트요청을 작업 순서와 도구 호출로 바꾼다
Blender MCPBlender가 공개한 기능을 에이전트에게 연결한다
Blender 실행감량·분리·점검·GLB 내보내기를 수행한다
실제 지시의 형태
“이 모델을 웹 실시간 시뮬레이션용으로 정리해줘. 폴리곤을 줄이고, 지느러미를 각각 분리하고, UV와 법선을 확인한 뒤 GLB로 내보내줘.”
Blender 작업 뒤 파트 분리와 이음새를 브라우저에서 확인한 베타
사람의 검수 · 파트 분리, 이음새, 성능을 브라우저에서 다시 확인

MCP(Model Context Protocol)는 AI 에이전트가 외부 앱의 데이터와 기능을 공통 형식으로 발견하고 호출하게 하는 연결 규약이다. 이 작업에서는 Blender 서버·애드온이 공개한 기능만 사용할 수 있으며, 버전·권한·구현에 따라 범위가 달라진다. 실행 결과를 판정하고 다시 지시하는 일은 사람의 몫이다.

작품 ④ · 행동과 관객 반응

이 작품이 정한 물고기 행동을 작은 규칙으로 나눈다

1
배회
앞쪽의 목적지를 천천히 바꾸며 공간을 돌아다닌다.
2
리듬
꼬리질로 추진하고, 그 사이에는 힘을 빼고 활강한다.
3
자세
회전할 때 몸은 호를 그리되 옆으로 과하게 눕지 않는다.
급한 접근놀라 달아난다
느린 접근호기심을 보인다
접촉 유지쓰다듬기에 반응한다
손 이동천천히 따라온다
주먹·위협지느러미를 펼친다
일정 거리경계하며 머문다

웹캠의 손 좌표는 그대로 쓰면 떨린다. 검출 사이의 위치를 부드럽게 이어 물리 입력으로 사용했다. 여섯 반응은 학습한 인공지능이 아니라 작가가 정한 행동 규칙이다.

작품 ④ · 색·빛·판정

참고 사진의 느낌을 팔레트와 빛으로 다시 만든다

청록색 베타 참고 사진참고 · 청록
청록 팔레트로 구현한 베타 작품결과 · 비단
금빛 베타 참고 사진참고 · 금빛
금빛 팔레트 결과결과 · 금빛
연보라 베타 참고 사진참고 · 연보라
연보라 팔레트 결과결과 · 연보라
붉은 베타 참고 사진참고 · 불꽃
붉은 팔레트 결과결과 · 불꽃
참고 사진에서 15개 팔레트를 만들고, 광택·노출·블룸을 조절하며 검은 물속에서도 비단결을 남겼다.

눈으로 “좋다·이상하다”를 판단하면서도 HUD의 정점·삼각형·FPS·지느러미 늘어남을 함께 봤다. 제작 기록 화면은 41,622 정점·82,080 삼각형·약 60 FPS를 보이지만, 성능 수치는 같은 기기·브라우저·해상도에서 비교할 때만 의미가 있다. 참고 이미지를 외부에 배포할 때는 원출처와 이용 조건도 따로 기록한다.

이제 · 실전

내 작품을
만들어보자

레퍼런스를 찾고, 거기에 나의 이야기와 경험을 연결하고, 코딩 에이전트와 첫 화면을 만든다. 창작은 혼자 무에서 꺼내는 일이 아니라 새롭게 연결하는 일에서 시작한다.

ReactBits Split Text 페이지
재료 창고 · ReactBits
reactbits.dev —  움직임 레퍼런스 창고
먼저 움직임을 많이 본다. 이름이나 구현 방법을 몰라도 괜찮다. Preview를 직접 움직여 보고 마음이 가는 장면을 찾는다. React 프로젝트라면 설치법과 의존성을 확인해 컴포넌트를 쓰고, 단일 HTML 작업이라면 화면·동작·Copy Prompt를 참고해 단순한 버전으로 다시 만든다. 허브 입구의 공 배경도 여기서 출발했다.
작은 실습 ① · 하나 고르기

완성작이 아니라, 마음에 드는 한 부분을 고른다

1
먼저 많이 본다
텍스트·배경·파티클·빛·전환을 직접 움직여 본다. 기술 이름은 나중에 알아도 된다.
2
마음이 가는 한 부분을 고른다
완성작과 닮았는지보다 움직임·질감·속도·공간감 중 무엇에 끌렸는지를 본다.
3
주소·화면·이용 조건을 남긴다
페이지 주소와 캡처를 저장하고, Code·Copy Prompt를 쓸 때는 설치법과 라이선스를 함께 확인한다.

베낄 대상을 고르는 일이 아니다. 내가 가져오고 싶은 감각과 관계를 찾는 일이다. 왜 좋은지 정확히 설명하지 못해도 “이게 제일 마음에 든다”는 선택이 있으면 다음 대화를 시작할 수 있다.

작은 실습 ② · 참고에서 창작으로

창작은 익숙한 재료를 다른 관계로 연결하는 데서 시작한다

무엇을 가져올지보다, 왜 끌렸고 어떻게 바꿀지가 중요하다.
분석움직임·질감·속도 중 무엇이 좋은지 고른다
조건 확인원출처·라이선스·설치 방법을 기록한다
나와 연결경험·기억·질문을 재료와 연결한다
변형형태·관계·의미를 바꾸고 출처를 남긴다
이 움직임이 마음에 들어. 화면으로 퍼지는 느낌은 남기고, 알록달록한 색은 빼줘. 오래된 돌 표면에서 지의류가 아주 천천히 자라는 것처럼 바꾸고 싶어. 우선 브라우저에서 움직이는 화면으로 만들어줘. 참고한 페이지와 캡처는 같이 보낼게.

기존 움직임에 돌을 만지며 느낀 시간과 지의류에 대한 생각을 연결하고, 관객의 행동과 화면의 의미를 바꾸면 다른 작품이 시작된다. 나의 경험을 더했다고 모든 재사용이 허용되는 것은 아니므로, 이용 조건과 출처도 함께 남긴다.

작은 실습 ③ · 첫 말 만들기

느낌과 나의 이야기를 한 번에 건넨다

말할 것은 세 가지면 충분하다

  • 무엇이 마음에 들었는지 — 퍼짐, 무게, 느린 속도
  • 무엇과 연결할지 — 돌에 쌓인 시간과 지의류
  • 첫 화면에서 볼 반응 — 마우스 가까이에서 빛이 나타남
이 움직임의 천천히 퍼지는 느낌이 마음에 들어. 오래된 돌에 시간이 쌓이는 이야기와 연결하고 싶어. 우선 검은 화면에 돌의 결이 보이게 하고, 마우스를 가까이 가져가면 결 사이에서 빛이 천천히 나타나는 첫 화면을 만들어줘. 참고 주소와 캡처도 같이 보낼게.

기술 이름을 몰라도 된다. 코딩 에이전트가 필요한 기술을 제안하거나 작은 프로토타입을 만들면, 화면을 본 뒤 원하는 것부터 하나씩 고쳐 나간다.

첫 버전 · 핵심 반응

먼저 띄우고, 한 가지 관계만 만든다

01

재료를 먼저 실행한다

React 프로젝트면 컴포넌트를 설치하고, 단일 HTML이면 참고한 동작을 단순하게 다시 만든다.

02

입력 하나를 건넨다

마우스나 웹캠처럼 관객의 행동을 읽는 방법을 하나만 정한다.

03

변화 하나를 확인한다

다가가면 빛이 나타난다처럼 눈으로 판단할 수 있는 핵심 반응 하나를 만든다.

처음 건넬 말내가 보낸 요소를 먼저 실행해줘. 작동하면 마우스가 가까워질 때 돌의 결 사이에서 빛이 천천히 나타나는 반응 하나만 추가해줘. 실행 화면도 보여줘.

소리·API·여러 장면·세부 설정은 나중이다. 같은 동작을 세 번 반복해 매번 반응하고 콘솔 오류가 없으면 첫 버전은 통과다.

피드백 · 작가의 판단

“이건 아닌데”를 다음 버전으로 바꾼다

“너무 게임 같다.”
“너무 빠르고 가볍다.”
“내가 생각한 돌의 시간이 아니다.”

정확한 기술 용어보다 먼저 느낌을 말한다. 마음에 들지 않는다는 판단도 작가가 가진 중요한 기준이다.

느낌지금 화면에서 어긋나는 인상을 그대로 말한다.
가설AI에게 색·속도·밀도·공간 중 가능한 원인 세 가지와 화면·코드 근거를 제시하게 한다.
비교영향이 가장 큰 변수 하나만 바꾼 버전 2를 만들고 버전 1과 나란히 본다.
다시 건넬 말 · 지금 화면이 너무 게임 같아. 가능한 원인 가설 세 가지와 화면·코드 근거를 보여주고, 가장 영향이 큰 변수 하나만 바꾼 버전을 만들어 전후 화면을 같이 보여줘.
작품 확장 · 필요한 기술만

기술은 작품의 요구가 생긴 뒤 찾는다

“이 장면에
무엇이 더 필요한가?”

기술 목록에서 작품을 고르는 것이 아니다. 이미 만든 화면을 보다가 필요한 기능이 생기면 그때 알맞은 재료를 찾는다.

입체 공간·파티클·손 인식Three.js·MediaPipe 같은 라이브러리에서 구현된 기능을 가져온다.
생장·유체·물리의 모델논문과 GitHub에서 가정과 근거가 적힌 알고리즘·작동 예시를 찾는다.
날씨·언어모델·이미지 생성API로 외부 데이터와 인공지능의 응답을 작품의 규칙에 연결한다.
Blender·Figma·TouchDesigner 조작각 앱의 MCP 연결이 공개한 기능 범위 안에서 에이전트가 작업을 실행하게 한다.

기능을 붙일수록 인터넷 지연·비용·권한·비밀 키·연결 실패도 작품의 조건이 된다. 추가한 기술만큼 실패할 때의 장면도 함께 설계한다.

검증 · 전시 준비

브라우저의 화면을 전시 가능한 작품으로 바꾼다

GATE 01

관객이 만난다

무엇을 해야 하는지 알 수 있고 입력과 반응이 매번 같은 원리로 이어지는가. 웹캠이 실패하면 마우스나 자율 모드로 계속되는가.

GATE 02

오래 버틴다

실제 전시 PC에서 목표 운영 시간 동안 FPS·메모리·로그가 안정적인가. 작품에 구현한 F/H 키, 커서 숨김, 설정값 저장·복원이 작동하는가.

GATE 03

다시 살아난다

재부팅·절전 복귀·카메라 권한 재승인을 시험했는가. 인터넷·API가 끊기면 대체 장면이 나오고 자동 시작 순서가 기록돼 있는가.

에이전트에게 “잘 됐어?”라고 묻지 않는다. 화면·콘솔 오류·성능 로그·반복 재시작 테스트로 확인한다.
끝 · 작가의 몫

AI는 ‘어떻게’를 빠르게 만든다
작가는 ‘무엇을, 왜’를 결정한다

새로운 도구로 어떤 메시지를 전달할 것인가. 수많은 가능성에서 하나를 선택하고,
맥락과 경험으로 구현하며 그 결과를 끝까지 책임지는 사람이 작가다.