조각보 분할
한 장의 모시가 잘리고 물들고 꿰매지면, 빛이 뒤로 돌며 솔기가 진한 선으로 떠오른다.
설정값 미리보기
바꾼 문구·색으로 다시 재생합니다
프롬프트 설정
Claude 가 읽는 제작 지시문입니다. 직접 읽지 않아도 됩니다.
조각보가 만들어지는 반복 애니메이션을 HTML 파일 하나로 만들어 줘. 미리보기에서 바로 재생되게. 길게 설명할 테니 숫자는 그대로 지켜 줘.
핵심 아이디어: 생모시 한 장이 가위질로 거듭 둘로 나뉘고, 나뉜 조각마다 천연 염색 색이 스며들며 살짝 떨어진다. 이어 감침질 땀이 솔기를 따라 달려가며 작은 조각부터 차례로 다시 꿰매고, 마지막 긴 솔기가 꿰매지는 순간 방의 불이 꺼지고 천 뒤에서 흰빛이 켜진다(투광). 앞에서 볼 때는 조금 밝던 솔기가, 빛이 뒤에서 비치면 천이 두 겹 겹친 자리라서 진한 선으로 뒤집히고, 조각들은 스테인드글라스처럼 제 색으로 빛난다. 재생은 다 꿰매진 조각보에서 시작해 첫 1초 안에 불이 켜진다. 몬드리안 같은 색면 구성이 아니라, 얇은 천이 겹쳐 빛을 거르는 실제 조각보의 원리로 그린다.
[바꿀 곳]
- 시드: 174 (바꾸면 다른 조각보가 나온다)
- 옅은 색(큰 조각): 생모시 #E6DCC3 · 옅은 치자 #EEDB9E · 옥색 #C4D8CF · 연분홍 #EBC3BB
- 중간 색: 치자 #DDA93A · 쪽 #5F88A3 · 홍화 #D4707E · 쑥 #8E9C5F
- 짙은 색(작은 조각): 쪽빛 #27436B · 진홍 #A12B3A · 먹 #46413D · 자주 #64304C
- 벽: 앞빛일 때 #1D1A17 · 뒤빛일 때 #0F0D0B
- 뒤에서 비치는 빛: #FFF9F0 (거의 흰빛)
- 길이: 13초 (끝나면 처음으로 이어서 반복), 재생 시작 장면 시각 6.90초
- 화면비: 1:1 (캔버스 1080×1080)
[크기] — 전부 화면 폭 W(=1080) 기준
- 조각보는 정사각형, 한 변 S = 0.86W(928.8px), 화면 가운데. 왼쪽 위 모서리 (0.07W, 0.07W).
- 조각 좌표는 보 좌표 u, v ∈ [0, 1] 로 저장하고 그릴 때 화면 = 0.07W + u·S 로 바꾼다.
- 조각이 벌어진 상태의 전체 폭 ≈ 1.04S = 0.89W. 틈은 가위 지나간 자리만큼만 — 벽색 틈이 보 영역의 7% 이하.
- 솔기 겹침 폭 s = 0.0065(보 좌표) ≈ 6px. 감침질 땀 하나 길이 0.010(≈9px), 굵기 1.4px.
[분할 규칙 — 실제 조각보처럼]
- 난수: mulberry32. 정확히 이 코드:
function mulberry32(a){return function(){a|=0;a=a+0x6D2B79F5|0;let t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296}}
줄기 넷을 섞지 않는다: 분할 R = mulberry32(시드) · 색 배정 mulberry32(시드+1) · 흔들림 J = mulberry32(시드+2) · 결 타일 mulberry32(시드+3).
- 보 전체(0,0,1,1)에서 시작해 깊이 우선으로 나눈다(먼저 생긴 자식 — 왼쪽 또는 위 — 을 끝까지 나눈 뒤 다음 자식). 마디 번호도 이 순서로 매긴다. 사각형 (x, y, w, h), 깊이 d, 넓이 a = w·h 에 대해:
1) 나눌지: d = 6 이면 안 나눈다. a > 0.09 이면 나눈다. 0.010 < a ≤ 0.09 이면 R() < 0.62 일 때 나눈다(이때만 R 을 부른다). a ≤ 0.010 이면 안 나눈다.
2) 방향: w/h > 2.0 이면 세로선(폭을 자름), h/w > 2.0 이면 가로선, 아니면 R() < 0.5 일 때 세로선(이때만 R 을 부른다).
3) 비율: r = 0.28 + 0.44·R(). 자르는 변의 길이를 L 이라 할 때 두 조각 모두 0.04 이상이 되게 r 을 [0.04/L, 1 − 0.04/L] 로 자른다. 세로선이면 왼쪽 w·r / 오른쪽 w·(1−r), 가로선이면 위 h·r / 아래 h·(1−r).
4) 안 나누기로 한 사각형이 0.75 ≤ w/h ≤ 1.333 이고 a ≤ 0.03 이면 R() < 0.4 일 때 대각선으로 잘라 직각삼각형 둘을 만든다. 대각선 방향은 R() < 0.5 이면 왼쪽 위→오른쪽 아래, 아니면 오른쪽 위→왼쪽 아래. 삼각형은 더 나누지 않는다.
- 시드 174 검산값: 조각 50개(삼각형 10개), 나누는 마디 49개, 깊이별 마디 수 0~6 = 1·2·4·7·12·18·5, 가장 큰 조각 넓이 0.0881, 가장 작은 0.0035, 첫 칼질은 가로선 r = 0.5859. 솔기 길이 합 12.36, 땀 1,100개.
- 변마다 「솔기 번호」를 붙인다: 사각형의 변 [위, 오른쪽, 아래, 왼쪽] 은 부모의 번호를 물려받고, 새로 자른 선은 자른 마디의 번호가 된다. 보 바깥 변은 −1. 삼각형도 같은 방식(대각선 = 그 마디 번호, 나머지 두 변 = 부모 사각형의 해당 변).
- 땀: 솔기 길이 L 마다 n = floor(L / 0.011) 개, 땀 i 의 자리 = 바늘이 출발하는 끝에서 (i + 0.5)·L/n.
[색 규칙 — 넓을수록 옅게]
- 조각을 넓이 내림차순으로 줄 세운다. 넓이 차가 1e−9 이하면 먼저 만들어진 조각(깊이 우선 순서)이 앞이다(삼각형 짝은 넓이가 같다).
- 앞 38% = 옅은 색, 다음 37% = 중간 색, 나머지 = 짙은 색(시드 174 에서 19 · 18 · 13개).
- 그 순서대로 색 난수로 그 묶음 넷 중 하나(floor(R1()·4))를 고르되, 이미 색이 정해진 이웃(변을 0.01 이상 공유하거나 같은 사각형에서 나온 삼각형 짝)과 같으면 최대 8번까지 다시 고른다.
- 재질: 옅은 색·중간 색 조각 = 모시(성긴 결, 앞빛 불투명도 0.80, 투과 a0 = 0.18, γ = 0.5), 짙은 색 조각 = 명주(결 없음, 불투명도 0.92, a0 = 0.12, γ = 0.75 — 명주는 얇아 빛을 잘 통과시키고 채도를 지킨다).
- 아직 잘리지 않은 천과 염색 전 조각은 생모시 #E6DCC3.
[흔들림 난수 J — 이 순서로만 부른다]
- ① 나누는 마디마다(마디 번호 순, 첫 마디 포함) 칼질 지터 → 꿰맴 지터 → 칼질 시작 끝. 첫 마디는 세 번 다 부르되 두 지터 값은 0 으로 쓴다.
- ② 잎 조각마다(깊이 우선 순) 염색 방향 → 결 위치 x → 결 위치 y → 흩어짐 각도 지터 → 시드 각도 → 회전. 안 쓰는 값도 부른다.
[빛 — 앞빛과 뒤빛 두 장을 그려 섞는다]
- 투광 정도 b(0~1)에 따라 화면 = 앞빛 그림 위에 뒤빛 그림을 globalAlpha = b 로 얹은 것. b = 0 이면 앞빛만, b = 1 이면 뒤빛만 그린다.
- 앞빛 그림(어스름한 방): 벽 #1D1A17(가장자리로 8% 어두워지는 비네트). 조각은 색 × 0.66 을 재질 불투명도로 source-over 로 칠한다(벽이 비친다). 두 겹 겹친 솔기는 덜 비쳐서 조금 밝다 — 생모시 한 겹 RGB(127,121,108), 두 겹 (147,140,124).
- 뒤빛 그림: 벽 #0F0D0B. 보 바깥 벽에는 보 가운데를 중심으로 0.43W → 0.75W 에서 rgba(255,236,205,0.22) → 투명 인 은은한 번짐만 둔다. 빛 원형 그라디언트(0 → #FFF9F0, 0.55W → #FFF4E4, 0.70W → rgba(255,236,205,0.6), 0.95W → 투명)는 보 정사각형 안에만 칠한다(사각형으로 clip). 보 모서리(0.61W)까지 거의 고르게 비친다. 화면에서 가장 밝은 것은 천이다 — 바깥 벽은 가장 밝은 곳도 RGB(71,65,56), L* 28 이하.
그 위에 조각마다 globalCompositeOperation = 'multiply' 로 투과색 T 를 칠한다. T(채널별) = e^(−a0) × (색/255)^γ.
multiply 라서 두 겹 솔기는 T 가 두 번 곱해져 저절로 진해지고, 솔기가 엇갈리는 매듭은 세·네 겹이라 더 진하다.
- 검산(빛 한가운데): 생모시 모시 T = (0.793, 0.776, 0.730) → 한 겹 (202,193,175) · 두 겹 (160,150,128). 쪽 (130,152,160) — 파랑이 빨강보다 커야 한다. 쪽빛 명주 T = (0.217, 0.325, 0.462) → (55,81,111). 진홍 (160,58,70).
- 합격 기준(결을 빼고, CIE L*, 앞빛 → 뒤빛): 생모시 51 → 78 · 옥색 49 → 77 · 치자 42 → 70 · 쪽 32 → 61 · 쪽빛 17 → 34 · 진홍 23 → 40 · 먹 17 → 34. 앞빛에서 어느 조각도 벽(#1D1A17, L* 9.5)보다 L* 6 이상 밝다 — 먹이 벽과 같아지면 천에 구멍이 난 것처럼 보인다(먹 #46413D 앞빛 RGB(45,42,39), L* 17). 보 모서리 근처(중심에서 0.60W) 조각도 옅은·중간 색은 L* 20 이상, 짙은 색은 10 이상 밝아진다. 어느 조각도 투광 때 어두워지면 안 된다.
- 결(모시만): 시작할 때 360×360 캔버스에 결 타일 난수로 한 번 그린다. 가로실·세로실의 간격은 실마다 4.5 ± 1.2px, 실마다 20~80px 마디로 끊어 마디 굵기 0.8~1.8px(3% 확률로 2.0~2.4px 의 굵은 마디), 색 rgba(60,45,30, 0.05~0.10). createPattern(…, 'repeat') 로 조각 다각형을 한 번 더 채운다. 무늬는 조각마다 0~40px 어긋나게(pattern.setTransform) 하고, 조각의 이동·회전 변환 안에서 칠해 조각과 함께 움직인다. 앞빛은 source-over, 뒤빛은 multiply, 둘 다 한 번. 결은 가까이서만 보이는 질감이다 — 한 걸음 물러서면 사라져야 한다.
[솔기 — 선을 긋지 않고 천을 겹친다]
- 조각을 그릴 때 다각형을 변마다 따로 바깥으로 e 만큼 넓힌다: 각 변을 바깥 법선 방향으로 그 변의 e 만큼 평행이동하고, 이웃한 두 변 직선의 교점을 새 꼭짓점으로 한다. e = (s/2) × (그 변의 솔기 번호 마디의 꿰맴 진행도). 바깥 변은 e = 0.
- 그래서 꿰매기 전에는 조각 가장자리가 맞닿기만 하고, 꿰매는 순간 이웃 조각과 폭 s 만큼 겹쳐 솔기가 생긴다.
- 넓힌 꼭짓점은 보 정사각형 [0,1]² 밖으로 나가지 않게 좌표를 0~1 로 자른다(clamp). 안쪽 교점이 원래 꼭짓점에서 1.5·e(이웃 두 변 e 중 큰 값)보다 멀면 그 방향 그대로 1.5·e 거리로 당긴다 — 45° 예각에서는 교점이 약 2.6·e 까지 나가 가시처럼 튀어나온다.
[장면] 장면 시각 τ(0~13초)로 쓴다. 재생 시각 t 와의 관계: τ = (t + 6.90) mod 13. 그래서 첫 프레임(t = 0)은 50조각이 다 꿰매지고 마지막 땀이 달리는 앞빛 조각보이고, t = 0.40 에 마지막 땀이 끝나며 t = 0.40~1.20 에 투광이 일어난다. 녹화도 t = 0 부터 한 바퀴다.
(마디의 「자리 이동」 = 부모 기준 k·(자기 꼭짓점 평균 − 부모 꼭짓점 평균), k = 0.04. 조각의 화면 위치 = 조상들의 자리 이동 × 각자 진행도의 합)
1. 0.00–0.40 정지. 생모시 한 장, 앞빛.
2. 0.40–3.78 가르기. 깊이 d 마디의 칼질 시작 = 0.40 + 0.40·d + 지터(0~0.10초, 첫 칼질은 0).
- 칼질 0.28초(easeInOutSine): 자르는 선의 한쪽 끝(J 로 고름)에서 다른 끝까지 칼끝이 달리고, 지나간 자리에 벽색 실금(1.5px).
- 깊이 0~2 마디(7개, 동시 최대 4개)만 칼끝에 가위 V 를 단다: 두 획 각 0.022 보 길이(약 20px), 굵기 2px, #F3EDE0, 벌어진 쪽이 진행 방향, 반쪽 각도 = 9° + 7°·sin(2π·10·τ) 로 사각거린다. 깊이 3 이상은 실금만.
- 칼질이 끝나기 전까지 그 마디는 한 장으로 그리고, 끝난 프레임부터 두 자식으로 그린다.
- 벌어짐: 칼질 끝부터 0.36초(easeOutCubic) 동안 두 자식이 자리 이동만큼 살짝 떨어진다. 틈 = k × 부모 폭의 절반(첫 칼질 19px, 가장 작은 삼각형 짝 약 1.5px). 검산: 3.78초에 벌어진 전체 폭 964px, 그 상자 안 벽색 틈 5.7%.
- 물들임: 잎 조각(더 안 나뉘는 조각)은 부모 칼질 끝 + 0.10초부터 0.50초 동안 생모시에서 제 색으로 바뀐다. 조각 경계상자를 대각선 방향(넷 중 J 로)으로 가로지르는 선형 그라디언트 띠(폭 0.3)가 지나가며 색이 스민다(easeInOutSine). 큰 조각의 옅은 색이 먼저, 작은 조각의 짙은 색이 마지막에 들어온다.
3. 3.78–4.20 벌어진 채 멈춤.
4. 4.20–7.30 꿰매기(깊은 마디부터). 깊이 d 마디의 꿰맴 시작 = 4.20 + 0.40·(6 − d) + 지터(0~0.08초, 첫 칼질 마디는 0 → 6.60).
- 틈 닫힘: 0.32초(easeInOutCubic) 동안 두 자식의 자리 이동이 0 으로 돌아온다. 같은 진행도로 그 솔기의 e 가 0 → s/2.
- 감침질: 꿰맴 시작 + 0.08초부터 「0.62초 × 솔기 길이(보 좌표)」 동안 바늘 끝이 칼질과 반대 방향으로 솔기를 달리고, 지나간 땀 자리에 땀이 하나씩 생긴다. 땀 = 솔기 위 점을 가운데로 솔기 방향에서 62° 기운 짧은 사선(그 마디의 위치 이동을 따라간다). 앞빛 색 #EFE6D0(불투명 0.9), 뒤빛에서는 multiply #6E6455. 바늘 = 진행 방향으로 0.022 길이 1.2px #CFCAC0 의 가는 선, 마지막 긴 솔기만 0.04 길이 2px.
- 마지막 긴 솔기(첫 칼질, 길이 1.0): 틈 닫힘 6.60–6.92, 감침질 6.68–7.30.
5. 7.30–8.10 투광(시그니처, 재생 t = 0.40~1.20). 마지막 땀이 솔기 끝에 닿는 순간 b 가 0 → 1(easeInOutSine). 방이 어두워지고 천 뒤에서 흰빛이 켜진다. 조각보 전체(한 변 = 화면 폭의 86%)에서 조각이 제 색으로 빛나고, 솔기 전부(보 좌표 길이 합 12.4)가 한꺼번에 진한 선으로 뒤집히고, 매듭이 더 진해진다. 생모시 L* 51 → 78.
6. 8.10–10.20 머묾. 움직임 없음.
7. 10.20–11.00 풀림. 10.20–10.75 동안 모든 솔기의 땀이 꿰맨 끝에서 시작 쪽으로 차례로 빠지고(easeInQuad), 같은 진행도로 e → 0. b 는 10.20–11.00 동안 1 → 0.
8. 10.70–12.25 흩어짐. 조각마다 시작 = 10.70 + 0.45·(1 − ρ), ρ = 조각 중심의 보 중심 거리 ÷ 가장 먼 조각의 거리(바깥 조각부터 떠난다). 1.10초 동안 easeInCubic 으로 1.05W 날아간다. 방향 = 보 중심에서 조각 중심 쪽 ± 12°(J)(중심에서 0.04 안이면 시드 각도), 회전 ±20° × 진행도(조각 중심 기준). 결도 함께 돈다.
9. 11.50–12.50 새 천. 생모시 한 장이 흩어지는 조각들 뒤(아래 층)로 위에서 내려온다: 세로 이동 −0.95W → 0, easeOutBack(c1 = 0.8). 12.20초 무렵 0.022W 내려갔다 돌아와 12.50초에 멈춘다.
10. 12.50–13.00 정지. 13.00초 = 0.00초 프레임(생모시 한 장, 앞빛, 솔기·땀 없음). 이 정지는 재생 루프의 한가운데(t ≈ 5.6~6.5)에 들어가 쉼표가 된다.
[구현]
- HTML 파일 하나로 만든다. 외부 파일·글꼴·라이브러리·네트워크 요청을 쓰지 않는다(미리보기에서 막히거나 느려진다).
- 첫 <script> 맨 앞에 CONFIG 객체를 두고 [바꿀 곳]의 값과 이 글에 나온 숫자(시간표·크기·색·세기)를 이름 붙여 모은다. 나중에 숫자만 바꿔 다듬을 수 있게.
- 그림은 시간 t(초)만으로 계산하는 함수 render(t) 로 그린다. requestAnimationFrame 의 타임스탬프나 performance.now() 로 t 를 구한다. setTimeout·setInterval·CSS 애니메이션·transition 으로 움직이지 않는다(프레임마다 속도가 달라지고, 다시 재생할 때 어긋난다). 시뮬레이션처럼 상태가 쌓이는 작품은 고정 시간 간격으로 상태를 진행하되 그 진행도 타임스탬프로만 정한다.
- 난수는 시드 고정 난수(mulberry32 등)만 쓴다. Math.random 은 쓰지 않는다(매번 다른 화면이 나온다).
- 캔버스 내부 해상도는 화면비에 맞춘 기준 크기로 고정하고, 창 크기에 맞춰 화면비를 지키며 가운데에 꽉 차게 보이게 한다(남는 곳은 배경색). 스크롤이 생기지 않게 한다. devicePixelRatio 는 그리는 선명도에만 반영한다.
- 글자는 시스템 글꼴만 쓴다: 'Pretendard', 'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif. 붓글씨·손글씨 느낌은 글꼴이 아니라 획을 그려서 낸다.
- 길이가 정해진 작품은 끝나면 처음과 같은 화면으로 돌아가 이음매 없이 반복한다.
- 모든 함수·상수·셰이더 문자열을 먼저 정의하고, 시작(초기화와 첫 requestAnimationFrame)은 스크립트 맨 끝에서 한 번만 호출한다. 정의되기 전에 쓰면 첫 화면에서 멈춘다.
이 작품에만 해당하는 구현:
- 기준 크기 1080×1080. render(t) 는 맨 처음에 τ = (t + CONFIG.timing.startAt) mod CONFIG.timing.loop 를 구하고, 아래는 전부 τ 로 계산한다.
- 분할 나무·색·솔기 번호·땀 위치·결 패턴·흔들림 값은 시작할 때 한 번 만들고, 매 프레임은 τ 만으로 계산한다(상태 누적 없음).
- 각 마디에 cutStart · cutEnd · sewStart · 자리 이동 벡터를 저장한다. 조각의 위치 = Σ(조상 마디의 자리 이동 × 벌어짐 진행도 × (1 − 닫힘 진행도)) + 흩어짐 이동.
- 앞빛·뒤빛은 화면 밖 캔버스 두 장에 그려 합친다. b = 0 또는 1 인 구간에서는 한 장만 그린다.
- 모든 다각형 채우기는 보 좌표 → 화면 변환 안에서 한 번의 fill 로 한다(조각마다 clip + 큰 drawImage 금지 — 50조각이면 느려진다).
- 시작할 때 콘솔에 검산 한 줄을 찍는다: 조각 수·삼각형 수·깊이별 마디 수·가장 큰/작은 넓이·솔기 합·땀 수·색 묶음 수.
- CONFIG.timing: startAt 6.90 · loop 13.00 · hold0[0,0.40] · cut(base 0.40, perDepth 0.40, jitter 0.10, dur 0.28, scissorMaxDepth 2) · open 0.36 · dye(delay 0.10, dur 0.50) · sew(base 4.20, perDepth 0.40, jitter 0.08, close 0.32, stitchDelay 0.08, stitchPerUnit 0.62) · glow[7.30,8.10] · hold[8.10,10.20] · unravel[10.20,10.75] · glowOff[10.20,11.00] · scatter(base 10.70, spread 0.45, dur 1.10) · drop[11.50,12.50].
- CONFIG.spread.k = 0.04 · CONFIG.light: frontShade 0.66, lightStops 위 넷(보 안에만), outerBloom {r0 0.43, r1 0.75, alpha 0.22}, miterLimit 1.5, 모시 {opacity 0.80, a0 0.18, gamma 0.5}, 명주 {opacity 0.92, a0 0.12, gamma 0.75}.
[하지 말 것]
- 첫 화면을 민 생모시 한 장으로 시작하지 않는다 — 피드에서 빈 베이지 사각형은 빈 카드와 구별되지 않아 첫 1초에 넘겨진다. 재생은 장면 6.90초(꿰매지는 중인 완성 조각보)에서 시작해 1초 안에 투광이 온다.
- 벌어진 틈을 굵게 키우지 않는다(k 를 올리지 않는다) — 어두운 벽이 틈으로 드러나면 검은 격자에 색면이 박힌 몬드리안이 된다. 조각은 가위 지나간 자리만큼만 살짝 떨어진다.
- 솔기를 stroke 선으로 긋지 않는다 — 선을 그으면 겹침이 진해지는 원리가 사라지고, 앞빛과 뒤빛에서 솔기가 밝음↔진함으로 뒤집히는 이 작품의 핵심이 안 생긴다. 솔기는 넓힌 다각형 두 장이 겹친 자리일 뿐이다.
- 조각 테두리를 검은 굵은 선으로 두르거나 빨강·파랑·노랑 순색을 쓰지 않는다 — 그 순간 몬드리안 흉내로 읽힌다. 색은 위 열두 개의 천연 염색 hex 만 쓴다.
- 빛을 보 바깥 벽까지 밝게 칠하지 않는다 — 벽이 천보다 밝으면 「빛나는 조각보」가 아니라 흰 라이트박스 위에 놓인 인쇄물로 읽힌다. 투광의 주인공은 천이다.
- 뒤에서 비치는 빛을 노랗게 하거나 보 안의 빛 원 반지름을 줄이지 않는다 — 노란 빛은 쪽·옥색을 회록으로 바래게 하고, 작은 빛 원은 보 모서리 조각을 앞빛보다 어둡게 만든다. 그러면 투광이 「불이 켜짐」이 아니라 「누렇게 바램」으로 읽힌다.
- 투광을 흰 덧칠·밝기 올리기·bloom·shadowBlur 로 내지 않는다 — 전체가 뿌옇게 밝아질 뿐 솔기는 오히려 묻히고, shadowBlur 는 50조각에서 프레임이 떨어진다. 빛은 multiply 로 천을 통과해야 한다.
- 빛줄기·렌즈 플레어·먼지·반짝이 입자를 넣지 않는다 — 시선이 솔기 무늬에서 떠나고 흔한 템플릿 영상처럼 보인다.
- 넓힌 다각형의 예각 꼭짓점을 그대로 두지 않는다 — 삼각형 끝이 보 바깥으로 7px 혀처럼 삐져나와, 투광 정지 2초 동안 또렷이 보인다.
- 조각에 그림자·입체감·펄럭임(천 물리)을 넣지 않는다 — 평평해야 겹친 솔기의 농도 차이가 읽히고, 천 물리는 짐작으로 짜면 조각이 찢어진 것처럼 일그러진다.
- 결 실을 일정한 간격으로 긋거나 뒤빛에서 두 번 겹쳐 칠하지 않는다 — 규칙 격자가 진해지면 모시가 아니라 모눈종이·방충망으로 읽힌다.
- 결 무늬를 화면에 고정하거나 매 프레임 노이즈로 새로 만들지 않는다 — 고정하면 조각이 움직일 때 무늬가 미끄러져 천이 아니라 유리 너머 무늬처럼 보이고, 새로 만들면 지글거린다.
- 모든 조각의 결을 같은 자리에 맞추지 않는다 — 꿰맨 뒤 결이 솔기를 넘어 이어지면 한 장 천에 줄을 그은 것처럼 보인다. 조각마다 다른 천이다.
- 땀을 setLineDash 점선으로 그리지 않는다 — 감침질은 솔기를 비스듬히 넘는 짧은 사선이고, 점선은 재봉틀 박음질이나 오려 내는 선으로 읽힌다.
- 가위를 그림으로 그리거나 모든 칼질에 V 를 달지 않는다 — 큰 가위 그림은 클립아트처럼 보이고, 작은 칼질마다 단 V 는 화살촉 점이 흩뿌려질 뿐이다. V 는 깊이 0~2 의 큰 칼질에만.
- 분할 비율을 0.5 로 맞추거나 격자로 고르게 나누지 않는다 — 크기가 고르면 바둑판이 되어 조각보가 아니다. 비율 0.28~0.72 와 규칙대로의 크기 분포를 지킨다.
- 색을 넓이와 무관하게 아무렇게나 배정하지 않는다 — 큰 조각에 짙은 색이 앉으면 화면이 무거워지고, 작은 짙은 조각이 옅은 바탕 사이에서 반짝이는 조각보 특유의 리듬이 사라진다.
- 흔들림 난수를 위에 적은 순서 밖에서 부르지 않는다 — 한 번만 더 불러도 그 뒤 칼질 순서·염색 방향·흩어짐 각도가 전부 밀려 같은 시드가 다른 영상이 된다.
- 태극 문양·한복·전통 무늬 장식·글자를 넣지 않는다 — 이 작품의 한국다움은 분할 원리와 천의 겹침에서 나온다. 상징을 얹으면 기념품 그림이 된다.
- 조각이나 화면 전체를 투명도로 사라지게(페이드) 하지 않는다 — 끝은 조각이 화면 밖으로 흩어지고 새 천이 내려와 처음 프레임으로 이어진다. 앞빛↔뒤빛 섞기만이 투명도를 쓴다.
- 머무는 구간에 숨쉬기·흔들림을 넣지 않는다 — 투광된 조각보를 가만히 보여 주는 정지가 이 작품의 쉼표다.
사용 방법
필요한 것: claude.ai 계정 — 무료 계정에서도 Claude Opus 5.5 를 고를 수 있습니다
- claude.ai 에서 새 대화를 엽니다.
- 모델 메뉴에서 Claude Opus 5.5 를 고르고, 같은 메뉴의 Effort(답변 깊이)를 High 로 둡니다.
- 복사한 프롬프트를 붙여 넣고 전송합니다. 결과로 나온 HTML 파일을 브라우저로 열면 재생됩니다.
- 권장 모델
- Claude Opus 5.5 · Effort High
- 화면비
- 1:1 (정사각)
- 재생 길이
- 13초
- 결과물
- HTML 파일 하나 · 따로 설치할 것 없음
- 영상 파일
- 위 「MP4 저장 기능 포함」을 켜면 결과 화면에 녹화 단추가 생깁니다 1080 기준 · 12 Mbps · 브라우저에 따라 MP4 또는 WebM
추가 요청 예시
결과가 나온 뒤 같은 대화에서 이어서 요청하면 해당 부분만 수정됩니다.
- 색을 쪽빛 한 가족으로 바꿔 줘. 옅은 색은 #E6DCC3·#C4D8CF·#DCE6E8·#B7CAD6, 중간 색은 #5F88A3·#7FA3B8·#4E7A8C·#8FB0A8, 짙은 색은 #27436B·#2B4569·#46413D·#3B5A78 로.
- 조각을 더 잘게 나눠 줘. 더 나누지 않는 조각의 크기 기준을 0.09 에서 0.05 로 낮추고, 둘로 나누는 횟수 상한을 6번에서 7번으로 올려 줘. 시간 배치도 한 번 더 나누는 만큼 늘려서.
- 뒤에서 빛이 비친 조각보를 더 오래 보고 싶어. 다른 시각은 그대로 두고 완성된 채 멈춰 있는 시간만 3초 늘려서 전체 16초로.
한국 미학