From 3fad1561bad13b038bc980326bfe19a8c6b46156 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:30:39 +0000 Subject: [PATCH 01/21] =?UTF-8?q?=EC=8B=9C=EC=9E=91=20=E2=80=94=20?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=20=EC=97=B0=EA=B5=AC=2099=ED=8C=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From ac5c4fbb9554aa9218a7f526e7a6f31809efc3cd Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:43:48 +0000 Subject: [PATCH 02/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=201=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EB=A7=88=EB=A3=A8=EB=A5=BC=20=EB=91=90=EA=BB=8D=EA=B2=8C=20?= =?UTF-8?q?=EB=A7=90=EA=B3=A0=20=EB=AA=B8=ED=86=B5=EC=9D=84=20=EB=B0=91?= =?UTF-8?q?=EC=9D=B4=20=EB=84=93=EC=9D=80=20=EB=AC=BC=EC=9D=98=20=EC=82=B0?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 11 ++++++++++ incoming/pattern-study/patterns/great-wave.js | 22 ++++++++++--------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 23737e86..52c6f459 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -74,3 +74,14 @@ - 닮은꼴: 작품 3 은 원작을 닮는 것이 일이라 받지 않음 - 걸린 멈춤: 없음(되돌림 이어짐 둘, 막힘 하나 · ① 큰 파도 몸통 기둥) - 창작자에게: 큰 파도는 3초 안에 호쿠사이로 읽혀요. 판정이 갈린 곳은 배예요. 패스 5 의 노꾼은 큐레이터와 판화가가 새 판으로 골랐는데 2m 관객 눈에는 갑판 얼룩이었어요 + +## 99판 (바퀴 97) · 길 a · 시작 3f38fbf +- 정지 프레임 t=2 · 노브 [0, 2, 0, 0.06] +- 같이 도는 바퀴: 없음. 열린 패턴 바퀴 PR 은 이 바퀴 하나였어요(#364 는 패턴 바퀴가 아니고 craft/dracula 만 바꿔요). 앞 바퀴 PR(#358~#365)에 따를 글도 없어요 + +### 패스 1 +- 비평 1: 큐레이터 7 · 판화가 7 · 벽에 거는 사람 7 · 블라인드 읽기 3/3(「호쿠사이 『후가쿠 36경』의 가나가와 해변의 높은 파도 아래, 굵은 윤곽선과 평평한 색면의 목판화」) +- 확인 차례: ① 큰 파도 몸통이 같은 폭 기둥과 가는 갈고리, 안쪽 x 20~55 y 30~81 이 빈 크림(큐레이터 가장 약한 것, 벽에 거는 사람 ①) 예 +- 고칠 것: ① 큰 파도 몸통 · 98판에서 막힌 지적이에요. 이번엔 몸통 벽 대신 파도 꼴을 바꿔요. 마루 밑면을 y 23 에서 y 30 언저리로 내려 말린 마루를 두껍게 하고, 입술을 (50,38) 로 내리고, 얼굴을 목(x 18, y 60)에서 발(x 31, y 120)까지 오른쪽으로 비껴 밑이 넓은 물의 산으로 세워요. 앞 물결은 원작처럼 큰 파도 발 앞에 그리고, 후지는 골 가운데로 다섯 칸 옮겨요 · (10,44)~(10,100) (36,55) +- 짚은 렌즈: 큐레이터 7점 「같은 폭의 기둥과 가는 갈고리」 · 벽에 거는 사람 7점 「덮쳐 오는 물덩어리보다 물음표 모양 갈고리」 +- 기대: pair-zoom 과 pair-led 에서 큰 파도가 위에서 굵게 말리고 아래로 갈수록 넓어지며, 안쪽 크림 하늘이 작아지고, 앞 물결의 ∧ 가 큰 파도 발 앞에 온전히 남음 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 35c1288d..10f24b96 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -70,12 +70,14 @@ const PRINTINGS = [ // The cut, on the panel's LEDs. The great wave: its back from the foot of // the panel up over the crest to the lip, then its face from the lip back -// down into the hollow and out again where its foot swells into the trough. The second swell's crest, from off the right edge down -// to the foot. The small wave in front, shaped like the mountain. The boat. +// under the heavy curl and down, leaning out as it goes, so the wave stands +// as a mountain of water that is broadest at its foot. The second swell's +// crest, from off the right edge down to the foot. The small wave in front, +// shaped like the mountain, standing before the great wave's foot. The boat. const HORIZON = 97; -const MOUNT = [31, 87, 1.5, 4]; +const MOUNT = [36, 88, 1.5, 4]; const BACK = [[-6, 128], [-4, 90], [0, 56], [8, 30], [18, 14], [30, 8], [42, 10], [50, 18], [52, 28], [48, 35]]; -const FACE = [[48, 35], [45, 28], [40, 23], [32, 23], [24, 29], [18, 41], [15, 56], [15, 68], [17, 80], [20, 92], [22, 102], [21, 114], [19, 128], [18, 140]]; +const FACE = [[50, 38], [47, 32], [42, 29], [35, 30], [29, 34], [23, 41], [19, 50], [18, 60], [19, 70], [21, 80], [24, 90], [28, 100], [30, 110], [31, 120], [31, 128], [31, 140]]; const CREST = 30; const SWELL = [[70, 72], [62, 77], [54, 85], [46, 97], [39, 112], [33, 128], [30, 140]]; const FRONT = [[7, 140], [15, 124], [22, 113], [27, 108], [32, 112], [38, 121], [45, 140]]; @@ -218,12 +220,6 @@ export function setup(params) { P.along[p] = n[0] * STEP; P.across[p] = n[1]; } - if (inside(frontPoly, cx, cy)) { - zone = Z_FRONT; - const n = nearest(front, cx, cy); - P.along[p] = n[0] * STEP; - P.across[p] = n[1]; - } if (inside(wave, cx, cy)) { zone = Z_WAVE; const n = nearest(face, cx, cy); @@ -231,6 +227,12 @@ export function setup(params) { P.across[p] = n[1]; P.back[p] = nearest(back, cx, cy)[1]; } + if (inside(frontPoly, cx, cy)) { + zone = Z_FRONT; + const n = nearest(front, cx, cy); + P.along[p] = n[0] * STEP; + P.across[p] = n[1]; + } P.base[p] = v; P.zone[p] = zone; } From 67a747c45f04fbafcb41b0042baf402786736a8c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:48:47 +0000 Subject: [PATCH 03/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=201=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=BC:=20=EB=B2=BD=EC=97=90=20=EA=B1=B0=EB=8A=94=20?= =?UTF-8?q?=EC=82=AC=EB=9E=8C=EC=9D=B4=20=EA=B0=99=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 4 ++++ incoming/pattern-study/patterns/great-wave.js | 22 +++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 52c6f459..9ed9f468 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -85,3 +85,7 @@ - 고칠 것: ① 큰 파도 몸통 · 98판에서 막힌 지적이에요. 이번엔 몸통 벽 대신 파도 꼴을 바꿔요. 마루 밑면을 y 23 에서 y 30 언저리로 내려 말린 마루를 두껍게 하고, 입술을 (50,38) 로 내리고, 얼굴을 목(x 18, y 60)에서 발(x 31, y 120)까지 오른쪽으로 비껴 밑이 넓은 물의 산으로 세워요. 앞 물결은 원작처럼 큰 파도 발 앞에 그리고, 후지는 골 가운데로 다섯 칸 옮겨요 · (10,44)~(10,100) (36,55) - 짚은 렌즈: 큐레이터 7점 「같은 폭의 기둥과 가는 갈고리」 · 벽에 거는 사람 7점 「덮쳐 오는 물덩어리보다 물음표 모양 갈고리」 - 기대: pair-zoom 과 pair-led 에서 큰 파도가 위에서 굵게 말리고 아래로 갈수록 넓어지며, 안쪽 크림 하늘이 작아지고, 앞 물결의 ∧ 가 큰 파도 발 앞에 온전히 남음 +- 바뀐 LED: 정지 1816 · 10초 3799 · 노브 3290 · 팔레트 16→15색 +- A/B: 큐레이터 새(정순 「발톱이 입술 밖으로 늘어져 움켜쥐는 손가락」, 역순 「마루가 넘어와 발톱 물보라를 줄줄이 늘어뜨림」) · 판화가 새(정순 「갈퀴가 입술 아래 매달려 손가락 모양으로 새긴 선」, 역순 「물마루 안쪽이 남색 띠로 꽉 찬 덩어리」) · 벽에 거는 사람 같음(정순 옛 「몸통 흰 점이 적어 덜 어수선하고 배가 더 길다」, 역순 새 「파도 팔이 두꺼워 후지산을 감싸는 짜임」) +- 버린 판정: 잡기 실패 4(판화가 정순 둘, 벽에 거는 사람 정순 둘). 두 번째 다시 받기부터 「두 판이 화소 하나까지 똑같은 짝도 섞여 있어요」 한 줄을 더함 +- 되돌림. 몸통 꼴은 세 렌즈가 다 새 판으로 읽었는데, 얼굴이 내려온 만큼 몸통 흰 점이 정지 42 → 63 으로 늘고 배 고물이 파도 뒤로 x 28 까지 숨었어요 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 10f24b96..35c1288d 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -70,14 +70,12 @@ const PRINTINGS = [ // The cut, on the panel's LEDs. The great wave: its back from the foot of // the panel up over the crest to the lip, then its face from the lip back -// under the heavy curl and down, leaning out as it goes, so the wave stands -// as a mountain of water that is broadest at its foot. The second swell's -// crest, from off the right edge down to the foot. The small wave in front, -// shaped like the mountain, standing before the great wave's foot. The boat. +// down into the hollow and out again where its foot swells into the trough. The second swell's crest, from off the right edge down +// to the foot. The small wave in front, shaped like the mountain. The boat. const HORIZON = 97; -const MOUNT = [36, 88, 1.5, 4]; +const MOUNT = [31, 87, 1.5, 4]; const BACK = [[-6, 128], [-4, 90], [0, 56], [8, 30], [18, 14], [30, 8], [42, 10], [50, 18], [52, 28], [48, 35]]; -const FACE = [[50, 38], [47, 32], [42, 29], [35, 30], [29, 34], [23, 41], [19, 50], [18, 60], [19, 70], [21, 80], [24, 90], [28, 100], [30, 110], [31, 120], [31, 128], [31, 140]]; +const FACE = [[48, 35], [45, 28], [40, 23], [32, 23], [24, 29], [18, 41], [15, 56], [15, 68], [17, 80], [20, 92], [22, 102], [21, 114], [19, 128], [18, 140]]; const CREST = 30; const SWELL = [[70, 72], [62, 77], [54, 85], [46, 97], [39, 112], [33, 128], [30, 140]]; const FRONT = [[7, 140], [15, 124], [22, 113], [27, 108], [32, 112], [38, 121], [45, 140]]; @@ -220,6 +218,12 @@ export function setup(params) { P.along[p] = n[0] * STEP; P.across[p] = n[1]; } + if (inside(frontPoly, cx, cy)) { + zone = Z_FRONT; + const n = nearest(front, cx, cy); + P.along[p] = n[0] * STEP; + P.across[p] = n[1]; + } if (inside(wave, cx, cy)) { zone = Z_WAVE; const n = nearest(face, cx, cy); @@ -227,12 +231,6 @@ export function setup(params) { P.across[p] = n[1]; P.back[p] = nearest(back, cx, cy)[1]; } - if (inside(frontPoly, cx, cy)) { - zone = Z_FRONT; - const n = nearest(front, cx, cy); - P.along[p] = n[0] * STEP; - P.across[p] = n[1]; - } P.base[p] = v; P.zone[p] = zone; } From 27af8987032155e424351a7bb751093bcf4fd42e Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:49:34 +0000 Subject: [PATCH 04/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=202=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=ED=8C=A8=EC=8A=A4=201=20=EA=BC=B4=EC=97=90=20=EB=AA=B8?= =?UTF-8?q?=ED=86=B5=20=ED=9D=B0=20=EC=A0=90=EC=9D=84=20=EC=A4=84=EC=9D=B4?= =?UTF-8?q?=EA=B3=A0=20=EB=B0=B0=EB=A5=BC=20=ED=8C=8C=EB=8F=84=20=EB=B0=9C?= =?UTF-8?q?=20=EC=95=9E=EC=97=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 7 ++++ incoming/pattern-study/patterns/great-wave.js | 32 ++++++++++--------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 9ed9f468..8b3df98f 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -89,3 +89,10 @@ - A/B: 큐레이터 새(정순 「발톱이 입술 밖으로 늘어져 움켜쥐는 손가락」, 역순 「마루가 넘어와 발톱 물보라를 줄줄이 늘어뜨림」) · 판화가 새(정순 「갈퀴가 입술 아래 매달려 손가락 모양으로 새긴 선」, 역순 「물마루 안쪽이 남색 띠로 꽉 찬 덩어리」) · 벽에 거는 사람 같음(정순 옛 「몸통 흰 점이 적어 덜 어수선하고 배가 더 길다」, 역순 새 「파도 팔이 두꺼워 후지산을 감싸는 짜임」) - 버린 판정: 잡기 실패 4(판화가 정순 둘, 벽에 거는 사람 정순 둘). 두 번째 다시 받기부터 「두 판이 화소 하나까지 똑같은 짝도 섞여 있어요」 한 줄을 더함 - 되돌림. 몸통 꼴은 세 렌즈가 다 새 판으로 읽었는데, 얼굴이 내려온 만큼 몸통 흰 점이 정지 42 → 63 으로 늘고 배 고물이 파도 뒤로 x 28 까지 숨었어요 + +### 패스 2 +- 비평 1 그대로(패스 1 되돌림) +- 확인 차례: 패스 1 과 같은 지적(패스 1 에서 받음) +- 고칠 것: ① 큰 파도 몸통 · 패스 1 과 같은 지적의 둘째 고침. 패스 1 의 꼴(두꺼운 마루, 밑이 넓은 몸통, 앞 물결을 발 앞에, 후지를 골 가운데로)은 그대로 두고, 벽에 거는 사람이 옛 판을 고른 두 곳을 같이 바로잡아요. 흰 물방울은 입술에서 얼굴을 따라 70 칸 안에만 두어 몸통 흰 점을 옛 판보다 적게(정지 42 → 39) 하고, 배는 원작처럼 큰 파도 발 앞에 그려 고물이 숨지 않게 해요 · (10,44)~(10,100) (36,55) +- 짚은 렌즈: 패스 1 과 같음 +- 기대: pair-zoom 과 pair-led 에서 큰 파도가 굵게 말리고 아래로 넓어지며, 아래 몸통의 흰 점은 옛 판보다 적고, 배는 x 21~44 길이 그대로 파도 발 앞에 놓임 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 35c1288d..632fb3ee 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -70,12 +70,14 @@ const PRINTINGS = [ // The cut, on the panel's LEDs. The great wave: its back from the foot of // the panel up over the crest to the lip, then its face from the lip back -// down into the hollow and out again where its foot swells into the trough. The second swell's crest, from off the right edge down -// to the foot. The small wave in front, shaped like the mountain. The boat. +// under the heavy curl and down, leaning out as it goes, so the wave stands +// as a mountain of water that is broadest at its foot. The second swell's +// crest, from off the right edge down to the foot. The small wave in front, +// shaped like the mountain, standing before the great wave's foot. The boat. const HORIZON = 97; -const MOUNT = [31, 87, 1.5, 4]; +const MOUNT = [36, 88, 1.5, 4]; const BACK = [[-6, 128], [-4, 90], [0, 56], [8, 30], [18, 14], [30, 8], [42, 10], [50, 18], [52, 28], [48, 35]]; -const FACE = [[48, 35], [45, 28], [40, 23], [32, 23], [24, 29], [18, 41], [15, 56], [15, 68], [17, 80], [20, 92], [22, 102], [21, 114], [19, 128], [18, 140]]; +const FACE = [[50, 38], [47, 32], [42, 29], [35, 30], [29, 34], [23, 41], [19, 50], [18, 60], [19, 70], [21, 80], [24, 90], [28, 100], [30, 110], [31, 120], [31, 128], [31, 140]]; const CREST = 30; const SWELL = [[70, 72], [62, 77], [54, 85], [46, 97], [39, 112], [33, 128], [30, 140]]; const FRONT = [[7, 140], [15, 124], [22, 113], [27, 108], [32, 112], [38, 121], [45, 140]]; @@ -218,12 +220,6 @@ export function setup(params) { P.along[p] = n[0] * STEP; P.across[p] = n[1]; } - if (inside(frontPoly, cx, cy)) { - zone = Z_FRONT; - const n = nearest(front, cx, cy); - P.along[p] = n[0] * STEP; - P.across[p] = n[1]; - } if (inside(wave, cx, cy)) { zone = Z_WAVE; const n = nearest(face, cx, cy); @@ -231,6 +227,12 @@ export function setup(params) { P.across[p] = n[1]; P.back[p] = nearest(back, cx, cy)[1]; } + if (inside(frontPoly, cx, cy)) { + zone = Z_FRONT; + const n = nearest(front, cx, cy); + P.along[p] = n[0] * STEP; + P.across[p] = n[1]; + } P.base[p] = v; P.zone[p] = zone; } @@ -338,7 +340,8 @@ function put(P, x, y, v) { // The great wave: a foam rim along its back at the crest, then dark tongues // with pale seams that sway along their length, and white flecks riding up -// the upper wave towards the crest, more of them the harder it breaks; its face is pale low down and darker under the lip. +// the upper wave towards the crest, more of them the harder it breaks, and +// none on the lower wave; its face is pale low down and darker under the lip. function wave(P, p) { const s = P.along[p]; const d = P.across[p]; @@ -347,7 +350,7 @@ function wave(P, p) { if (d < 1.2) return s < CREST ? MID : PALE; const w = d / g + 0.9 * Math.sin(s * 0.16 - P.t * 0.7); for (let i = 0; i < SEAMS.length; i++) if (Math.abs(w - SEAMS[i]) < 0.55) return s > CREST * 2.2 && i < 2 ? PALE : MID; - if (hash(Math.floor((s + P.t * 3) / (1.1 * g)), Math.floor(d / (1.2 * g))) < (0.045 + 0.2 * P.brk) * Math.min(1, Math.max(0, (90 - s) / 30))) return FOAM; + if (hash(Math.floor((s + P.t * 3) / (1.1 * g)), Math.floor(d / (1.2 * g))) < (0.045 + 0.2 * P.brk) * Math.min(1, Math.max(0, (70 - s) / 30))) return FOAM; return DEEP; } @@ -367,15 +370,14 @@ function swell(P, p, front) { // The boat, a column at a time: a long hull whose prow sweeps up into a // point, a key line under its keel, and the rowers hunched over their oars -// in a row of dark backs and pale heads. +// in a row of dark backs and pale heads. It rides in front of the great +// wave's foot, as the boats in the print do. function boat(P) { const [x0, y0, x1, y1] = HULL; const bob = Math.round(0.9 * Math.sin(P.t * 0.6)); const k = (y1 - y0) / (x1 - x0); for (let x = x0; x <= x1; x++) { const top = Math.round(y0 + (x - x0) * k) + bob; - // The stern slips behind the great wave's foot. - if (P.zone[top * W + x] === Z_WAVE) continue; const bow = x1 - x; const rise = bow < 3 ? 3 - bow : x === x0 ? 1 : 0; const keel = top + 2 - Math.max(0, rise - 1); From f24d68a520ee8f5f568237d965a9fcd4f0cce2ed Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:53:38 +0000 Subject: [PATCH 05/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=202=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=BC:=20=ED=81=90=EB=A0=88=EC=9D=B4=ED=84=B0=EA=B0=80=20?= =?UTF-8?q?=EA=B0=99=EC=9D=8C,=20=EB=AA=B8=ED=86=B5=20=EC=A7=80=EC=A0=81?= =?UTF-8?q?=EC=9D=80=20=EB=A7=89=ED=9E=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 4 +++ incoming/pattern-study/patterns/great-wave.js | 32 +++++++++---------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 8b3df98f..9c4dfe91 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -96,3 +96,7 @@ - 고칠 것: ① 큰 파도 몸통 · 패스 1 과 같은 지적의 둘째 고침. 패스 1 의 꼴(두꺼운 마루, 밑이 넓은 몸통, 앞 물결을 발 앞에, 후지를 골 가운데로)은 그대로 두고, 벽에 거는 사람이 옛 판을 고른 두 곳을 같이 바로잡아요. 흰 물방울은 입술에서 얼굴을 따라 70 칸 안에만 두어 몸통 흰 점을 옛 판보다 적게(정지 42 → 39) 하고, 배는 원작처럼 큰 파도 발 앞에 그려 고물이 숨지 않게 해요 · (10,44)~(10,100) (36,55) - 짚은 렌즈: 패스 1 과 같음 - 기대: pair-zoom 과 pair-led 에서 큰 파도가 굵게 말리고 아래로 넓어지며, 아래 몸통의 흰 점은 옛 판보다 적고, 배는 x 21~44 길이 그대로 파도 발 앞에 놓임 +- 바뀐 LED: 정지 1776 · 10초 3776 · 노브 3264 · 팔레트 16→15색 +- A/B: 큐레이터 같음(정순 새 「발톱이 앞쪽 아래로 늘어지고 후지가 골 가운데」, 역순 옛 「얇은 마루 밑으로 하늘이 파고들고 끝 안쪽 발톱이 또렷」) · 판화가 새(정순 「입술에서 매달려 뻗는 호쿠사이의 새긴 발톱」, 역순 「검은 테에 흰 끝을 단 갈퀴가 줄지어」) · 벽에 거는 사람 새(정순 「손가락이 골 쪽으로 길게 늘어짐」, 역순 「검은 테 두른 흰 발톱이 하늘 쪽으로」) +- 버린 판정: 없음 +- 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 98판과 합쳐 이 지적은 다섯 번 고쳐 패스 하나(98판 패스 3)만 들어갔어요. 두꺼운 마루와 발톱은 다섯 판정 가운데 넷이 새로 골랐고, 큐레이터 역순만 얇은 마루 밑의 하늘을 골랐어요 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 632fb3ee..35c1288d 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -70,14 +70,12 @@ const PRINTINGS = [ // The cut, on the panel's LEDs. The great wave: its back from the foot of // the panel up over the crest to the lip, then its face from the lip back -// under the heavy curl and down, leaning out as it goes, so the wave stands -// as a mountain of water that is broadest at its foot. The second swell's -// crest, from off the right edge down to the foot. The small wave in front, -// shaped like the mountain, standing before the great wave's foot. The boat. +// down into the hollow and out again where its foot swells into the trough. The second swell's crest, from off the right edge down +// to the foot. The small wave in front, shaped like the mountain. The boat. const HORIZON = 97; -const MOUNT = [36, 88, 1.5, 4]; +const MOUNT = [31, 87, 1.5, 4]; const BACK = [[-6, 128], [-4, 90], [0, 56], [8, 30], [18, 14], [30, 8], [42, 10], [50, 18], [52, 28], [48, 35]]; -const FACE = [[50, 38], [47, 32], [42, 29], [35, 30], [29, 34], [23, 41], [19, 50], [18, 60], [19, 70], [21, 80], [24, 90], [28, 100], [30, 110], [31, 120], [31, 128], [31, 140]]; +const FACE = [[48, 35], [45, 28], [40, 23], [32, 23], [24, 29], [18, 41], [15, 56], [15, 68], [17, 80], [20, 92], [22, 102], [21, 114], [19, 128], [18, 140]]; const CREST = 30; const SWELL = [[70, 72], [62, 77], [54, 85], [46, 97], [39, 112], [33, 128], [30, 140]]; const FRONT = [[7, 140], [15, 124], [22, 113], [27, 108], [32, 112], [38, 121], [45, 140]]; @@ -220,6 +218,12 @@ export function setup(params) { P.along[p] = n[0] * STEP; P.across[p] = n[1]; } + if (inside(frontPoly, cx, cy)) { + zone = Z_FRONT; + const n = nearest(front, cx, cy); + P.along[p] = n[0] * STEP; + P.across[p] = n[1]; + } if (inside(wave, cx, cy)) { zone = Z_WAVE; const n = nearest(face, cx, cy); @@ -227,12 +231,6 @@ export function setup(params) { P.across[p] = n[1]; P.back[p] = nearest(back, cx, cy)[1]; } - if (inside(frontPoly, cx, cy)) { - zone = Z_FRONT; - const n = nearest(front, cx, cy); - P.along[p] = n[0] * STEP; - P.across[p] = n[1]; - } P.base[p] = v; P.zone[p] = zone; } @@ -340,8 +338,7 @@ function put(P, x, y, v) { // The great wave: a foam rim along its back at the crest, then dark tongues // with pale seams that sway along their length, and white flecks riding up -// the upper wave towards the crest, more of them the harder it breaks, and -// none on the lower wave; its face is pale low down and darker under the lip. +// the upper wave towards the crest, more of them the harder it breaks; its face is pale low down and darker under the lip. function wave(P, p) { const s = P.along[p]; const d = P.across[p]; @@ -350,7 +347,7 @@ function wave(P, p) { if (d < 1.2) return s < CREST ? MID : PALE; const w = d / g + 0.9 * Math.sin(s * 0.16 - P.t * 0.7); for (let i = 0; i < SEAMS.length; i++) if (Math.abs(w - SEAMS[i]) < 0.55) return s > CREST * 2.2 && i < 2 ? PALE : MID; - if (hash(Math.floor((s + P.t * 3) / (1.1 * g)), Math.floor(d / (1.2 * g))) < (0.045 + 0.2 * P.brk) * Math.min(1, Math.max(0, (70 - s) / 30))) return FOAM; + if (hash(Math.floor((s + P.t * 3) / (1.1 * g)), Math.floor(d / (1.2 * g))) < (0.045 + 0.2 * P.brk) * Math.min(1, Math.max(0, (90 - s) / 30))) return FOAM; return DEEP; } @@ -370,14 +367,15 @@ function swell(P, p, front) { // The boat, a column at a time: a long hull whose prow sweeps up into a // point, a key line under its keel, and the rowers hunched over their oars -// in a row of dark backs and pale heads. It rides in front of the great -// wave's foot, as the boats in the print do. +// in a row of dark backs and pale heads. function boat(P) { const [x0, y0, x1, y1] = HULL; const bob = Math.round(0.9 * Math.sin(P.t * 0.6)); const k = (y1 - y0) / (x1 - x0); for (let x = x0; x <= x1; x++) { const top = Math.round(y0 + (x - x0) * k) + bob; + // The stern slips behind the great wave's foot. + if (P.zone[top * W + x] === Z_WAVE) continue; const bow = x1 - x; const rise = bow < 3 ? 3 - bow : x === x0 ? 1 : 0; const keel = top + 2 - Math.max(0, rise - 1); From faccc73de59167d343720b903c1bc8930b6559e9 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 19:57:43 +0000 Subject: [PATCH 06/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=203=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EB=A7=88=EB=A3=A8=20=EC=86=90=ED=86=B1=EC=9D=84=20=EB=84=B7?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=A4=84=EC=97=AC=20=ED=95=98=EB=8A=98=20?= =?UTF-8?q?=ED=8B=88=EC=9D=84=20=EB=91=94=20=EA=B0=88=EA=B3=A0=EB=A6=AC?= =?UTF-8?q?=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 7 +++++++ incoming/pattern-study/patterns/great-wave.js | 15 +++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 9c4dfe91..8f6a482e 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -100,3 +100,10 @@ - A/B: 큐레이터 같음(정순 새 「발톱이 앞쪽 아래로 늘어지고 후지가 골 가운데」, 역순 옛 「얇은 마루 밑으로 하늘이 파고들고 끝 안쪽 발톱이 또렷」) · 판화가 새(정순 「입술에서 매달려 뻗는 호쿠사이의 새긴 발톱」, 역순 「검은 테에 흰 끝을 단 갈퀴가 줄지어」) · 벽에 거는 사람 새(정순 「손가락이 골 쪽으로 길게 늘어짐」, 역순 「검은 테 두른 흰 발톱이 하늘 쪽으로」) - 버린 판정: 없음 - 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 98판과 합쳐 이 지적은 다섯 번 고쳐 패스 하나(98판 패스 3)만 들어갔어요. 두꺼운 마루와 발톱은 다섯 판정 가운데 넷이 새로 골랐고, 큐레이터 역순만 얇은 마루 밑의 하늘을 골랐어요 + +### 패스 3 +- 비평 1 그대로(패스 2 되돌림) +- 확인 차례: ① 마루 끝 갈퀴 거품이 남색 테 두른 흰 덩어리로 뭉개져 손가락으로 안 갈라짐(판화가 가장 약한 것, 큐레이터 ⑤ 「갈퀴가 화소 뭉치라 손톱 가지가 안 보임」, 벽에 거는 사람 ⑤ 「갈라진 손가락이 아니라 둥근 덩어리」) 예 +- 고칠 것: ① 큰 파도 손톱 · 마루 밑의 손톱 여섯(5 칸 간격, 곁가지 달림)을 손톱 넷(입술 하나와 밑면 셋, 9 칸 간격)으로 줄이고, 곁가지를 떼고, 길이를 7~11 칸으로 늘이고 뿌리 쪽 60% 를 두 칸 굵기로 둬요. 손톱 사이로 하늘이 보여 손가락 하나하나가 남색 테 안의 흰 갈고리로 서요 · (36,25) (44,30) (55,34) +- 짚은 렌즈: 판화가 7점 「흰 덩어리 몇 개로 뭉개져 손가락처럼 갈라져 내리꽂히는 모양이 없다」 · 큐레이터 7점 「갈퀴가 손톱으로 갈라지지 않음」 · 벽에 거는 사람 7점 「갈라진 손가락이 아니라 둥근 덩어리」 +- 기대: pair-zoom 과 pair-led 에서 마루 밑 x 27~45 에 흰 갈고리 셋이 하늘 틈을 두고 따로 늘어지고, 입술 (48~55, 30~35) 에 끝이 굽은 손톱 하나가 남음 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 35c1288d..71e8f940 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -235,10 +235,11 @@ export function setup(params) { P.zone[p] = zone; } } - // Claws: along the great wave's lip, along the top of the swell, and on - // the small wave's peak, as [curve, sample, length, side]. + // Claws: four long talons under the great wave's lip, set far enough apart + // for the sky to show between them, short ones along the top of the swell, + // and three on the small wave's peak, as [curve, sample, length, side]. P.claws = []; - for (let s = 0.5; s < CREST; s += 5) P.claws.push([0, Math.round(s / STEP), 6.5 * (1.25 - (0.6 * s) / CREST) * (P.claws.length % 2 ? 0.8 : 1), 1]); + for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -390,7 +391,8 @@ function boat(P) { } // A claw: a finger of foam that reaches out from the crest and hooks back at -// the tip, with a shorter finger either side of it. +// the tip. The great wave's talons stay two LEDs wide for longer and stand +// alone; the others have a shorter finger beside them. function claw(P, i) { const [c, j, len0, side] = P.claws[i]; const [curve, nr] = curveOf(P, c); @@ -406,12 +408,13 @@ function claw(P, i) { let y = ay - ny * 0.6; for (let s = 0; s < len + 0.6; s += 0.4) { put(P, x, y, FOAM); - if (s < len * 0.45) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); + if (s < len * (c === 0 ? 0.6 : 0.45)) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); ang += side * (s < len * 0.5 ? 0.02 : 0.17); x += Math.cos(ang) * 0.4; y += Math.sin(ang) * 0.4; } - // A short finger on its far side. + // A short finger on its far side, but not on the great wave's own talons. + if (c === 0) return; ang = Math.atan2(ny, nx) - side * 1.3; x = ax - nx * 0.3 - Math.sin(ang) * side; y = ay - ny * 0.3 + Math.cos(ang) * side; From f99af73fda2254ae550eaf6ee418e52e63aeea69 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:03:31 +0000 Subject: [PATCH 07/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=203=20=EC=B1=84=ED=83=9D:=20?= =?UTF-8?q?=EB=A7=88=EB=A3=A8=20=EC=86=90=ED=86=B1=EC=9D=B4=20=ED=95=98?= =?UTF-8?q?=EB=8A=98=20=ED=8B=88=EC=9D=84=20=EB=91=94=20=EA=B0=88=EA=B3=A0?= =?UTF-8?q?=EB=A6=AC=20=EB=84=B7=EC=9C=BC=EB=A1=9C=20=EC=84=A0=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 8f6a482e..89303a99 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -107,3 +107,7 @@ - 고칠 것: ① 큰 파도 손톱 · 마루 밑의 손톱 여섯(5 칸 간격, 곁가지 달림)을 손톱 넷(입술 하나와 밑면 셋, 9 칸 간격)으로 줄이고, 곁가지를 떼고, 길이를 7~11 칸으로 늘이고 뿌리 쪽 60% 를 두 칸 굵기로 둬요. 손톱 사이로 하늘이 보여 손가락 하나하나가 남색 테 안의 흰 갈고리로 서요 · (36,25) (44,30) (55,34) - 짚은 렌즈: 판화가 7점 「흰 덩어리 몇 개로 뭉개져 손가락처럼 갈라져 내리꽂히는 모양이 없다」 · 큐레이터 7점 「갈퀴가 손톱으로 갈라지지 않음」 · 벽에 거는 사람 7점 「갈라진 손가락이 아니라 둥근 덩어리」 - 기대: pair-zoom 과 pair-led 에서 마루 밑 x 27~45 에 흰 갈고리 셋이 하늘 틈을 두고 따로 늘어지고, 입술 (48~55, 30~35) 에 끝이 굽은 손톱 하나가 남음 +- 바뀐 LED: 정지 172 · 10초 990 · 노브 508 · 팔레트 16→16색 +- A/B: 큐레이터 새(정순 「윤곽선 또렷한 갈고리와 아래로 말린 끝이 움켜쥐는 손톱」, 역순 「검은 테 두른 갈고리 발톱이 3초 안에 호쿠사이로」) · 판화가 새(정순 「흰 속을 한 화소 외곽선이 두른 갈고리 셋과 끝 발톱 하나」, 역순 「진한 외곽선 안의 갈고리 손톱」) · 벽에 거는 사람 새(정순 「흰 갈고리가 또렷하고 옛 판은 흩어진 흰 점」, 역순 「따로 떨어진 손톱 가닥이 2m 앞에서도 발톱으로」) +- 버린 판정: 잡기 실패 3(판화가 정순, 판화가 역순, 벽에 거는 사람 역순 하나씩) +- 채택 From aa58f81227d1f32f9bb20b7f5d22d5acbfc29c4c Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:04:18 +0000 Subject: [PATCH 08/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=EA=B8=B0=EB=A1=9D:=20=ED=8C=A8=EC=8A=A4=203=20?= =?UTF-8?q?=EC=BB=A4=EB=B0=8B=20=EC=A0=81=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 89303a99..897e9c60 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -110,4 +110,4 @@ - 바뀐 LED: 정지 172 · 10초 990 · 노브 508 · 팔레트 16→16색 - A/B: 큐레이터 새(정순 「윤곽선 또렷한 갈고리와 아래로 말린 끝이 움켜쥐는 손톱」, 역순 「검은 테 두른 갈고리 발톱이 3초 안에 호쿠사이로」) · 판화가 새(정순 「흰 속을 한 화소 외곽선이 두른 갈고리 셋과 끝 발톱 하나」, 역순 「진한 외곽선 안의 갈고리 손톱」) · 벽에 거는 사람 새(정순 「흰 갈고리가 또렷하고 옛 판은 흩어진 흰 점」, 역순 「따로 떨어진 손톱 가닥이 2m 앞에서도 발톱으로」) - 버린 판정: 잡기 실패 3(판화가 정순, 판화가 역순, 벽에 거는 사람 역순 하나씩) -- 채택 +- 채택. 커밋 f99af73 From 73199204ac8e89bfe6cedcdc167258f33b874b34 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:09:55 +0000 Subject: [PATCH 09/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=204=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EB=A7=88=EB=A3=A8=20=EB=B0=94=EA=B9=A5=20=ED=85=8C=EC=97=90=20?= =?UTF-8?q?=EC=95=9E=EC=9C=BC=EB=A1=9C=20=EA=B5=BD=EC=9D=80=20=EC=86=90?= =?UTF-8?q?=EA=B0=80=EB=9D=BD=20=EC=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 7 +++++ incoming/pattern-study/patterns/great-wave.js | 26 ++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 897e9c60..eb833b26 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -111,3 +111,10 @@ - A/B: 큐레이터 새(정순 「윤곽선 또렷한 갈고리와 아래로 말린 끝이 움켜쥐는 손톱」, 역순 「검은 테 두른 갈고리 발톱이 3초 안에 호쿠사이로」) · 판화가 새(정순 「흰 속을 한 화소 외곽선이 두른 갈고리 셋과 끝 발톱 하나」, 역순 「진한 외곽선 안의 갈고리 손톱」) · 벽에 거는 사람 새(정순 「흰 갈고리가 또렷하고 옛 판은 흩어진 흰 점」, 역순 「따로 떨어진 손톱 가닥이 2m 앞에서도 발톱으로」) - 버린 판정: 잡기 실패 3(판화가 정순, 판화가 역순, 벽에 거는 사람 역순 하나씩) - 채택. 커밋 f99af73 + +### 패스 4 +- 비평 2: 큐레이터 7 · 판화가 7 · 벽에 거는 사람 7 · 블라인드 읽기 3/3(「호쿠사이 후가쿠 36경의 높은 파도를 세로로, 굵은 윤곽선과 납작한 색면의 목판화, 갈고리 손가락처럼 갈라진 물마루 끝」) +- 확인 차례: ① 물마루 윗입술이 매끈한 흰 띠이고 아래 갈퀴도 끝이 안 갈라진 고리 몇 개(판화가 가장 약한 것, 큐레이터 가장 약한 것) 예 +- 고칠 것: ① 큰 파도 마루 바깥 테 · 마루 등의 흰 테(x 14~52) 바깥으로 손가락 열을 6 칸마다 내요. 길이는 등 쪽 2.4 칸에서 입술 쪽 4.8 칸까지 늘고, 끝은 입술 쪽으로 굽어 남색 테 안의 흰 갈퀴로 서요 · (30,8) (31,27) (36,26) (41,29) +- 짚은 렌즈: 판화가 7점 「윗입술은 남색 선 한 줄을 두른 매끈한 흰 띠」 · 큐레이터 7점 「끝이 갈라지지 않은 둥근 덩어리 셋」 +- 기대: pair-zoom 과 pair-led 에서 마루 등 바깥선이 매끈한 호에서 앞으로 굽은 흰 손가락 열의 톱니로 바뀌고, 입술에 가까울수록 손가락이 길어짐 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 71e8f940..1408a245 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -186,6 +186,8 @@ export function setup(params) { const frontPoly = front.concat([[FRONT[FRONT.length - 1][0], 200], [FRONT[0][0], 200]]); P.face = face; P.faceN = normals(face, wave); + P.rim = back; + P.rimN = normals(back, wave); P.swell = swell; P.swellN = normals(swell, swellPoly); P.front = front; @@ -236,10 +238,12 @@ export function setup(params) { } } // Claws: four long talons under the great wave's lip, set far enough apart - // for the sky to show between them, short ones along the top of the swell, - // and three on the small wave's peak, as [curve, sample, length, side]. + // for the sky to show between them, a row of fingers along the crest's + // outer rim, short ones along the top of the swell, and three on the small + // wave's peak, as [curve, sample, length, side]. P.claws = []; for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); + for (let s = 8; s < 62; s += 6) P.claws.push([3, P.rim.length - 1 - Math.round(s / STEP), 2.4 + 2.4 * (1 - s / 62), 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -254,7 +258,7 @@ export function setup(params) { } function curveOf(P, c) { - return c === 0 ? [P.face, P.faceN] : c === 1 ? [P.swell, P.swellN] : [P.front, P.frontN]; + return c === 0 ? [P.face, P.faceN] : c === 1 ? [P.swell, P.swellN] : c === 2 ? [P.front, P.frontN] : [P.rim, P.rimN]; } // Where a claw's fingertip is now, for the spray to fall from. @@ -401,6 +405,22 @@ function claw(P, i) { // Each claw opens and closes on its own beat, in steps of a fifth of a second. const beat = Math.floor(P.t * 5) / 5; const grow = 0.85 + 0.2 * Math.sin(beat * 0.6 + i * 1.7) + P.brk * 0.6 + P.crash * 0.6; + if (c === 3) { + // A finger on the crest's outer rim: two LEDs wide at the root, leaning towards the + // lip and curling over at the tip. + const len = len0 * grow; + let ang = Math.atan2(ny, nx) + 0.4; + let x = ax + nx * 0.4; + let y = ay + ny * 0.4; + for (let s = 0; s < len; s += 0.4) { + put(P, x, y, FOAM); + if (s < 1.2) put(P, x - Math.sin(ang), y + Math.cos(ang), FOAM); + ang += 0.28; + x += Math.cos(ang) * 0.4; + y += Math.sin(ang) * 0.4; + } + return; + } // The finger: two LEDs wide at the root, one at the end, hooking back. const len = len0 * grow; let ang = Math.atan2(ny, nx) - side * 0.5; From 6a910afc6d7b1acb893da815bbd4238e4f200869 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:12:00 +0000 Subject: [PATCH 10/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=204=20=EC=B1=84=ED=83=9D:=20?= =?UTF-8?q?=EB=A7=88=EB=A3=A8=20=EB=B0=94=EA=B9=A5=20=ED=85=8C=EA=B0=80=20?= =?UTF-8?q?=ED=9D=B0=20=EC=86=90=EA=B0=80=EB=9D=BD=20=ED=86=B1=EB=8B=88?= =?UTF-8?q?=EB=A1=9C=20=EA=B0=88=EB=9D=BC=EC=A7=84=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index eb833b26..cec133e8 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -118,3 +118,7 @@ - 고칠 것: ① 큰 파도 마루 바깥 테 · 마루 등의 흰 테(x 14~52) 바깥으로 손가락 열을 6 칸마다 내요. 길이는 등 쪽 2.4 칸에서 입술 쪽 4.8 칸까지 늘고, 끝은 입술 쪽으로 굽어 남색 테 안의 흰 갈퀴로 서요 · (30,8) (31,27) (36,26) (41,29) - 짚은 렌즈: 판화가 7점 「윗입술은 남색 선 한 줄을 두른 매끈한 흰 띠」 · 큐레이터 7점 「끝이 갈라지지 않은 둥근 덩어리 셋」 - 기대: pair-zoom 과 pair-led 에서 마루 등 바깥선이 매끈한 호에서 앞으로 굽은 흰 손가락 열의 톱니로 바뀌고, 입술에 가까울수록 손가락이 길어짐 +- 바뀐 LED: 정지 104 · 10초 1100 · 노브 379 · 팔레트 16→16색 +- A/B: 큐레이터 새(정순 「마루 윗선과 끝을 갈고리 같은 흰 물보라 손가락으로 톱니지게」, 역순 「흰 물보라 손톱이 톱니처럼 솟아 갈퀴 마루로 바로 읽힘」) · 판화가 새(정순 「흰 거품 갈퀴가 톱니처럼 끊어 목판의 갈퀴 결」, 역순 「검은 윤곽선 안의 흰 거품 갈퀴를 톱니처럼 새김」) · 벽에 거는 사람 새(정순 「꼭대기에 거품 발톱이 톱니처럼 살아 있음」, 역순 「2m 앞에서도 거품 손톱으로 읽히고 눈이 머물 디테일」) +- 버린 판정: 잡기 실패 1(벽에 거는 사람 정순) +- 채택 From 192cdce3d9a053c7dc82d36aca3975b5c251f1f7 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:12:00 +0000 Subject: [PATCH 11/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=EA=B8=B0=EB=A1=9D:=20=ED=8C=A8=EC=8A=A4=204=20?= =?UTF-8?q?=EC=BB=A4=EB=B0=8B=20=EC=A0=81=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index cec133e8..a4e7dd1b 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -121,4 +121,4 @@ - 바뀐 LED: 정지 104 · 10초 1100 · 노브 379 · 팔레트 16→16색 - A/B: 큐레이터 새(정순 「마루 윗선과 끝을 갈고리 같은 흰 물보라 손가락으로 톱니지게」, 역순 「흰 물보라 손톱이 톱니처럼 솟아 갈퀴 마루로 바로 읽힘」) · 판화가 새(정순 「흰 거품 갈퀴가 톱니처럼 끊어 목판의 갈퀴 결」, 역순 「검은 윤곽선 안의 흰 거품 갈퀴를 톱니처럼 새김」) · 벽에 거는 사람 새(정순 「꼭대기에 거품 발톱이 톱니처럼 살아 있음」, 역순 「2m 앞에서도 거품 손톱으로 읽히고 눈이 머물 디테일」) - 버린 판정: 잡기 실패 1(벽에 거는 사람 정순) -- 채택 +- 채택. 커밋 6a910af From e0f0f9d2e52a3e543087e6fb78844f451d6c7c15 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:19:41 +0000 Subject: [PATCH 12/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=205=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EC=86=90=ED=86=B1=20=EB=81=9D=EC=9D=84=20=EC=84=B8=20=EA=B0=88?= =?UTF-8?q?=EB=9E=98=EB=A1=9C=20=EA=B0=80=EB=A5=B4=EA=B3=A0=20=EC=9C=97?= =?UTF-8?q?=EC=9E=85=EC=88=A0=20=ED=86=B1=EB=8B=88=20=EA=B0=84=EA=B2=A9?= =?UTF-8?q?=EC=9D=84=20=ED=9D=A9=EB=8A=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 7 +++++ incoming/pattern-study/patterns/great-wave.js | 29 +++++++++++++++---- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index a4e7dd1b..405fc4a7 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -122,3 +122,10 @@ - A/B: 큐레이터 새(정순 「마루 윗선과 끝을 갈고리 같은 흰 물보라 손가락으로 톱니지게」, 역순 「흰 물보라 손톱이 톱니처럼 솟아 갈퀴 마루로 바로 읽힘」) · 판화가 새(정순 「흰 거품 갈퀴가 톱니처럼 끊어 목판의 갈퀴 결」, 역순 「검은 윤곽선 안의 흰 거품 갈퀴를 톱니처럼 새김」) · 벽에 거는 사람 새(정순 「꼭대기에 거품 발톱이 톱니처럼 살아 있음」, 역순 「2m 앞에서도 거품 손톱으로 읽히고 눈이 머물 디테일」) - 버린 판정: 잡기 실패 1(벽에 거는 사람 정순) - 채택. 커밋 6a910af + +### 패스 5 +- 비평 3: 큐레이터 7 · 판화가 6 · 벽에 거는 사람 7 · 블라인드 읽기 3/3(「호쿠사이 후가쿠 36경의 큰 파도를 세로로 세운 우키요에 목판화, 손톱 같은 물보라로 부서지는 파도 곡선」) +- 확인 차례: ① 마루 윗가장자리가 같은 간격 톱니라 장식 테두리처럼 정돈되고, 밑 갈퀴는 갈래 없는 갈고리라 U 같은 글자로 읽힘(큐레이터 가장 약한 것, 판화가 ①, 벽에 거는 사람 ①) 예 +- 고칠 것: ① 큰 파도 손톱 · 패스 3·4 에 이은 셋째 손톱 고침이고 지적은 새것이에요. 밑 갈퀴 넷은 끝을 뒤로 말지 않고 길이 60% 에서 세 갈래 부채로 갈라요. 윗입술 손가락 열은 6 칸 같은 간격 대신 4~7 칸으로 흩고 길이도 2.4~5 칸으로 고르지 않게 둬요 · (23,7) (29,5) (36,6) (43,8) (32,27) (37,24) (41,28) +- 짚은 렌즈: 큐레이터 7점 「6~7칸 간격으로 똑같이 되풀이되는 톱니 테두리와 글자처럼 보이는 갈고리」 · 판화가 6점 「갈고리 셋이 U 글자처럼」 · 벽에 거는 사람 7점 「U·W 꼴 방울 두셋」 +- 기대: pair-zoom 과 pair-led 에서 마루 밑 갈퀴 끝이 세 갈래 손가락으로 벌어지고 U 꼴이 사라지며, 입술 끝 (48~58, 30~36) 에 갈래진 손톱이 서고, 윗입술 톱니의 간격이 고르지 않음 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 1408a245..f9f60a3c 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -239,11 +239,13 @@ export function setup(params) { } // Claws: four long talons under the great wave's lip, set far enough apart // for the sky to show between them, a row of fingers along the crest's - // outer rim, short ones along the top of the swell, and three on the small - // wave's peak, as [curve, sample, length, side]. + // outer rim at uneven spacing and lengths, longer towards the lip, short + // ones along the top of the swell, and three on the small wave's peak, as + // [curve, sample, length, side]. Rim fingers are placed by their distance + // back from the lip. P.claws = []; for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); - for (let s = 8; s < 62; s += 6) P.claws.push([3, P.rim.length - 1 - Math.round(s / STEP), 2.4 + 2.4 * (1 - s / 62), 1]); + for (const [s, l] of [[7, 2.4], [11, 3.4], [18, 2.6], [22, 4], [29, 3], [35, 4.4], [39, 2.6], [46, 4.6], [51, 3.6], [58, 5]]) P.claws.push([3, P.rim.length - 1 - Math.round((62 - s) / STEP), l, 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -395,8 +397,9 @@ function boat(P) { } // A claw: a finger of foam that reaches out from the crest and hooks back at -// the tip. The great wave's talons stay two LEDs wide for longer and stand -// alone; the others have a shorter finger beside them. +// the tip, with a shorter finger beside it. The great wave's own talons stay +// two LEDs wide for longer, stand alone, and split into a fan of three small +// fingers instead of hooking back. function claw(P, i) { const [c, j, len0, side] = P.claws[i]; const [curve, nr] = curveOf(P, c); @@ -426,13 +429,27 @@ function claw(P, i) { let ang = Math.atan2(ny, nx) - side * 0.5; let x = ax - nx * 0.6; let y = ay - ny * 0.6; - for (let s = 0; s < len + 0.6; s += 0.4) { + const end = c === 0 ? len * 0.6 : len + 0.6; + for (let s = 0; s < end; s += 0.4) { put(P, x, y, FOAM); if (s < len * (c === 0 ? 0.6 : 0.45)) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); ang += side * (s < len * 0.5 ? 0.02 : 0.17); x += Math.cos(ang) * 0.4; y += Math.sin(ang) * 0.4; } + if (c === 0) { + for (const turn of [-0.7, 0, 0.7]) { + let a = ang + turn; + let fx = x; + let fy = y; + for (let s = 0; s < len * 0.45; s += 0.4) { + put(P, fx, fy, FOAM); + a += 0.12; + fx += Math.cos(a) * 0.4; + fy += Math.sin(a) * 0.4; + } + } + } // A short finger on its far side, but not on the great wave's own talons. if (c === 0) return; ang = Math.atan2(ny, nx) - side * 1.3; From d68c91e6962006f388f3a85fd62e6f213817b55d Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:22:46 +0000 Subject: [PATCH 13/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=205=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=BC:=20=EB=B2=BD=EC=97=90=20=EA=B1=B0=EB=8A=94=20?= =?UTF-8?q?=EC=82=AC=EB=9E=8C=EC=9D=B4=20=EA=B0=99=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 4 +++ incoming/pattern-study/patterns/great-wave.js | 29 ++++--------------- 2 files changed, 10 insertions(+), 23 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 405fc4a7..248d754a 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -129,3 +129,7 @@ - 고칠 것: ① 큰 파도 손톱 · 패스 3·4 에 이은 셋째 손톱 고침이고 지적은 새것이에요. 밑 갈퀴 넷은 끝을 뒤로 말지 않고 길이 60% 에서 세 갈래 부채로 갈라요. 윗입술 손가락 열은 6 칸 같은 간격 대신 4~7 칸으로 흩고 길이도 2.4~5 칸으로 고르지 않게 둬요 · (23,7) (29,5) (36,6) (43,8) (32,27) (37,24) (41,28) - 짚은 렌즈: 큐레이터 7점 「6~7칸 간격으로 똑같이 되풀이되는 톱니 테두리와 글자처럼 보이는 갈고리」 · 판화가 6점 「갈고리 셋이 U 글자처럼」 · 벽에 거는 사람 7점 「U·W 꼴 방울 두셋」 - 기대: pair-zoom 과 pair-led 에서 마루 밑 갈퀴 끝이 세 갈래 손가락으로 벌어지고 U 꼴이 사라지며, 입술 끝 (48~58, 30~36) 에 갈래진 손톱이 서고, 윗입술 톱니의 간격이 고르지 않음 +- 바뀐 LED: 정지 174 · 10초 968 · 노브 412 · 팔레트 16→16색 +- A/B: 큐레이터 새(정순 「발톱이 y 32 까지 늘어지고 립 끝이 여러 갈래 손가락」, 역순 패널 짝 같음 · 8배 짝 「발톱이 더 여러 갈래로 갈라져 늘어짐」) · 판화가 역순 새 「손가락 여러 갈래로 갈라짐」, 정순 버림 · 벽에 거는 사람 같음(두 순서 다 「다른 곳을 못 찾음」) +- 버린 판정: 잡기 실패 1(판화가 정순). 짚은 벽에 거는 사람이 같음이라 결과가 정해져 다시 받지 않음 +- 되돌림. 8배 그림에서는 갈래가 읽혔지만 바뀐 LED 174 개가 2m 패널에서는 보이지 않았어요 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index f9f60a3c..1408a245 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -239,13 +239,11 @@ export function setup(params) { } // Claws: four long talons under the great wave's lip, set far enough apart // for the sky to show between them, a row of fingers along the crest's - // outer rim at uneven spacing and lengths, longer towards the lip, short - // ones along the top of the swell, and three on the small wave's peak, as - // [curve, sample, length, side]. Rim fingers are placed by their distance - // back from the lip. + // outer rim, short ones along the top of the swell, and three on the small + // wave's peak, as [curve, sample, length, side]. P.claws = []; for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); - for (const [s, l] of [[7, 2.4], [11, 3.4], [18, 2.6], [22, 4], [29, 3], [35, 4.4], [39, 2.6], [46, 4.6], [51, 3.6], [58, 5]]) P.claws.push([3, P.rim.length - 1 - Math.round((62 - s) / STEP), l, 1]); + for (let s = 8; s < 62; s += 6) P.claws.push([3, P.rim.length - 1 - Math.round(s / STEP), 2.4 + 2.4 * (1 - s / 62), 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -397,9 +395,8 @@ function boat(P) { } // A claw: a finger of foam that reaches out from the crest and hooks back at -// the tip, with a shorter finger beside it. The great wave's own talons stay -// two LEDs wide for longer, stand alone, and split into a fan of three small -// fingers instead of hooking back. +// the tip. The great wave's talons stay two LEDs wide for longer and stand +// alone; the others have a shorter finger beside them. function claw(P, i) { const [c, j, len0, side] = P.claws[i]; const [curve, nr] = curveOf(P, c); @@ -429,27 +426,13 @@ function claw(P, i) { let ang = Math.atan2(ny, nx) - side * 0.5; let x = ax - nx * 0.6; let y = ay - ny * 0.6; - const end = c === 0 ? len * 0.6 : len + 0.6; - for (let s = 0; s < end; s += 0.4) { + for (let s = 0; s < len + 0.6; s += 0.4) { put(P, x, y, FOAM); if (s < len * (c === 0 ? 0.6 : 0.45)) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); ang += side * (s < len * 0.5 ? 0.02 : 0.17); x += Math.cos(ang) * 0.4; y += Math.sin(ang) * 0.4; } - if (c === 0) { - for (const turn of [-0.7, 0, 0.7]) { - let a = ang + turn; - let fx = x; - let fy = y; - for (let s = 0; s < len * 0.45; s += 0.4) { - put(P, fx, fy, FOAM); - a += 0.12; - fx += Math.cos(a) * 0.4; - fy += Math.sin(a) * 0.4; - } - } - } // A short finger on its far side, but not on the great wave's own talons. if (c === 0) return; ang = Math.atan2(ny, nx) - side * 1.3; From 450afd3af45273aa59f049a96726527efa8045e7 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:23:12 +0000 Subject: [PATCH 14/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=206=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EC=86=90=ED=86=B1=20=EB=81=9D=EC=9D=84=20=EB=98=90=EB=A0=B7?= =?UTF-8?q?=ED=95=9C=20=EC=84=B8=20=EA=B0=88=EB=9E=98=20=EA=B0=88=ED=80=B4?= =?UTF-8?q?=EB=A1=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 7 +++++ incoming/pattern-study/patterns/great-wave.js | 31 ++++++++++++++----- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 248d754a..fbe494a6 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -133,3 +133,10 @@ - A/B: 큐레이터 새(정순 「발톱이 y 32 까지 늘어지고 립 끝이 여러 갈래 손가락」, 역순 패널 짝 같음 · 8배 짝 「발톱이 더 여러 갈래로 갈라져 늘어짐」) · 판화가 역순 새 「손가락 여러 갈래로 갈라짐」, 정순 버림 · 벽에 거는 사람 같음(두 순서 다 「다른 곳을 못 찾음」) - 버린 판정: 잡기 실패 1(판화가 정순). 짚은 벽에 거는 사람이 같음이라 결과가 정해져 다시 받지 않음 - 되돌림. 8배 그림에서는 갈래가 읽혔지만 바뀐 LED 174 개가 2m 패널에서는 보이지 않았어요 + +### 패스 6 +- 비평 3 그대로(패스 5 되돌림) +- 확인 차례: 패스 5 와 같은 지적(패스 5 에서 받음) +- 고칠 것: ① 큰 파도 손톱 · 패스 5 와 같은 지적의 둘째 고침. 패스 5 의 갈래는 길이의 45% 로 짧아 2m 패널에서 안 보였어요. 이번엔 손톱 줄기를 12·10·9.5·8 칸으로 늘이고, 끝에서 0.75 라디안씩 벌어진 3.2 칸짜리 갈퀴 셋으로 가르고, 윗입술 손가락은 3~5.4 칸으로 굵게 흩어요 · (23,7) (29,5) (36,6) (43,8) (32,27) (37,24) (41,28) +- 짚은 렌즈: 패스 5 와 같음 +- 기대: pair-led 에서도 마루 밑 손톱마다 끝에 흰 갈퀴 셋이 벌어져 보이고, 입술 끝 (46~58, 28~36) 이 세 갈래 손톱으로 서고, 윗입술 톱니 길이가 고르지 않음 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 1408a245..8dbbe22a 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -239,11 +239,13 @@ export function setup(params) { } // Claws: four long talons under the great wave's lip, set far enough apart // for the sky to show between them, a row of fingers along the crest's - // outer rim, short ones along the top of the swell, and three on the small - // wave's peak, as [curve, sample, length, side]. + // outer rim at uneven spacing and lengths, longer towards the lip, short + // ones along the top of the swell, and three on the small wave's peak, as + // [curve, sample, length, side]. Rim fingers are placed by their distance + // back from the lip. P.claws = []; - for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); - for (let s = 8; s < 62; s += 6) P.claws.push([3, P.rim.length - 1 - Math.round(s / STEP), 2.4 + 2.4 * (1 - s / 62), 1]); + for (const [s, l] of [[0.5, 12], [8, 10], [17, 9.5], [26, 8]]) P.claws.push([0, Math.round(s / STEP), l, 1]); + for (const [s, l] of [[6, 3.2], [10, 4.4], [17, 3], [21, 4.8], [29, 3.4], [33, 5], [42, 3.6], [46, 5.2], [53, 4], [58, 5.4]]) P.claws.push([3, P.rim.length - 1 - Math.round((62 - s) / STEP), l, 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -395,8 +397,9 @@ function boat(P) { } // A claw: a finger of foam that reaches out from the crest and hooks back at -// the tip. The great wave's talons stay two LEDs wide for longer and stand -// alone; the others have a shorter finger beside them. +// the tip, with a shorter finger beside it. The great wave's own talons stay +// two LEDs wide for longer, stand alone, and split into a fan of three small +// fingers instead of hooking back. function claw(P, i) { const [c, j, len0, side] = P.claws[i]; const [curve, nr] = curveOf(P, c); @@ -426,13 +429,27 @@ function claw(P, i) { let ang = Math.atan2(ny, nx) - side * 0.5; let x = ax - nx * 0.6; let y = ay - ny * 0.6; - for (let s = 0; s < len + 0.6; s += 0.4) { + const end = c === 0 ? len * 0.6 : len + 0.6; + for (let s = 0; s < end; s += 0.4) { put(P, x, y, FOAM); if (s < len * (c === 0 ? 0.6 : 0.45)) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); ang += side * (s < len * 0.5 ? 0.02 : 0.17); x += Math.cos(ang) * 0.4; y += Math.sin(ang) * 0.4; } + if (c === 0) { + for (const turn of [-0.75, 0, 0.75]) { + let a = ang + turn; + let fx = x + Math.cos(a) * 0.6; + let fy = y + Math.sin(a) * 0.6; + for (let s = 0; s < 3.2; s += 0.4) { + put(P, fx, fy, FOAM); + a += 0.12; + fx += Math.cos(a) * 0.4; + fy += Math.sin(a) * 0.4; + } + } + } // A short finger on its far side, but not on the great wave's own talons. if (c === 0) return; ang = Math.atan2(ny, nx) - side * 1.3; From 279224d14f65c811feecd1e43f5683d06642bb17 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:25:48 +0000 Subject: [PATCH 15/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=206=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=BC:=20=EC=86=90=ED=86=B1=20=EA=B0=88=EB=9E=98=20?= =?UTF-8?q?=EC=A7=80=EC=A0=81=EC=9D=80=20=EB=A7=89=ED=9E=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pattern-study/craft/great-wave/log.md | 4 +++ incoming/pattern-study/patterns/great-wave.js | 31 +++++-------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index fbe494a6..bb361fe3 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -140,3 +140,7 @@ - 고칠 것: ① 큰 파도 손톱 · 패스 5 와 같은 지적의 둘째 고침. 패스 5 의 갈래는 길이의 45% 로 짧아 2m 패널에서 안 보였어요. 이번엔 손톱 줄기를 12·10·9.5·8 칸으로 늘이고, 끝에서 0.75 라디안씩 벌어진 3.2 칸짜리 갈퀴 셋으로 가르고, 윗입술 손가락은 3~5.4 칸으로 굵게 흩어요 · (23,7) (29,5) (36,6) (43,8) (32,27) (37,24) (41,28) - 짚은 렌즈: 패스 5 와 같음 - 기대: pair-led 에서도 마루 밑 손톱마다 끝에 흰 갈퀴 셋이 벌어져 보이고, 입술 끝 (46~58, 28~36) 이 세 갈래 손톱으로 서고, 윗입술 톱니 길이가 고르지 않음 +- 바뀐 LED: 정지 231 · 10초 1516 · 노브 605 · 팔레트 16→16색 +- A/B: 큐레이터 새(정순 「흰 손가락이 이어져 발톱 거품으로 읽힘」, 역순 「갈퀴 물보라 손가락이 흰색으로 차 있음」) · 판화가 역순 새 「외곽선 두른 흰 갈퀴가 더 많고 크게 늘어짐」(정순은 결과가 정해진 뒤라 기록만) · 벽에 거는 사람 같음(정순 새 「하얀 손가락으로 꽉 차 2m 앞에서도 또렷」, 역순 옛 「네모난 ㄴ자 덩어리와 넓은 흰 띠로 뭉쳐 글자처럼」) +- 버린 판정: 잡기 실패 1(벽에 거는 사람 역순) +- 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 갈래를 굵히니 2m 에서 흰 덩어리로 뭉쳐 읽혔어요 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 8dbbe22a..1408a245 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -239,13 +239,11 @@ export function setup(params) { } // Claws: four long talons under the great wave's lip, set far enough apart // for the sky to show between them, a row of fingers along the crest's - // outer rim at uneven spacing and lengths, longer towards the lip, short - // ones along the top of the swell, and three on the small wave's peak, as - // [curve, sample, length, side]. Rim fingers are placed by their distance - // back from the lip. + // outer rim, short ones along the top of the swell, and three on the small + // wave's peak, as [curve, sample, length, side]. P.claws = []; - for (const [s, l] of [[0.5, 12], [8, 10], [17, 9.5], [26, 8]]) P.claws.push([0, Math.round(s / STEP), l, 1]); - for (const [s, l] of [[6, 3.2], [10, 4.4], [17, 3], [21, 4.8], [29, 3.4], [33, 5], [42, 3.6], [46, 5.2], [53, 4], [58, 5.4]]) P.claws.push([3, P.rim.length - 1 - Math.round((62 - s) / STEP), l, 1]); + for (const [s, l] of [[0.5, 11], [9, 10], [18, 9], [27, 7]]) P.claws.push([0, Math.round(s / STEP), l, 1]); + for (let s = 8; s < 62; s += 6) P.claws.push([3, P.rim.length - 1 - Math.round(s / STEP), 2.4 + 2.4 * (1 - s / 62), 1]); for (let s = 9; s < 24; s += 4) P.claws.push([1, Math.round(s / STEP), 3.2, -1]); for (const s of [-3.5, 0, 3.5]) P.claws.push([2, Math.round((P.peak + s) / STEP), 2.6, s < 0 ? -1 : 1]); P.spray = []; @@ -397,9 +395,8 @@ function boat(P) { } // A claw: a finger of foam that reaches out from the crest and hooks back at -// the tip, with a shorter finger beside it. The great wave's own talons stay -// two LEDs wide for longer, stand alone, and split into a fan of three small -// fingers instead of hooking back. +// the tip. The great wave's talons stay two LEDs wide for longer and stand +// alone; the others have a shorter finger beside them. function claw(P, i) { const [c, j, len0, side] = P.claws[i]; const [curve, nr] = curveOf(P, c); @@ -429,27 +426,13 @@ function claw(P, i) { let ang = Math.atan2(ny, nx) - side * 0.5; let x = ax - nx * 0.6; let y = ay - ny * 0.6; - const end = c === 0 ? len * 0.6 : len + 0.6; - for (let s = 0; s < end; s += 0.4) { + for (let s = 0; s < len + 0.6; s += 0.4) { put(P, x, y, FOAM); if (s < len * (c === 0 ? 0.6 : 0.45)) put(P, x - Math.sin(ang) * side, y + Math.cos(ang) * side, FOAM); ang += side * (s < len * 0.5 ? 0.02 : 0.17); x += Math.cos(ang) * 0.4; y += Math.sin(ang) * 0.4; } - if (c === 0) { - for (const turn of [-0.75, 0, 0.75]) { - let a = ang + turn; - let fx = x + Math.cos(a) * 0.6; - let fy = y + Math.sin(a) * 0.6; - for (let s = 0; s < 3.2; s += 0.4) { - put(P, fx, fy, FOAM); - a += 0.12; - fx += Math.cos(a) * 0.4; - fy += Math.sin(a) * 0.4; - } - } - } // A short finger on its far side, but not on the great wave's own talons. if (c === 0) return; ang = Math.atan2(ny, nx) - side * 1.3; From b4c7fe66a10e9f2e7d1bc7bc7fa6e68fac2499c7 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:27:19 +0000 Subject: [PATCH 16/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=207=20=EC=8B=9C=EB=8F=84:=20?= =?UTF-8?q?=EB=B0=B0=EC=97=90=20=EA=B5=B5=EC=9D=80=20=EC=82=AC=EA=B3=B5=20?= =?UTF-8?q?=EC=A4=84=EC=9D=84=20=EC=84=B8=EC=9A=B4=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 11 +++++++++-- incoming/pattern-study/patterns/great-wave.js | 18 +++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index bb361fe3..34ffea65 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -141,6 +141,13 @@ - 짚은 렌즈: 패스 5 와 같음 - 기대: pair-led 에서도 마루 밑 손톱마다 끝에 흰 갈퀴 셋이 벌어져 보이고, 입술 끝 (46~58, 28~36) 이 세 갈래 손톱으로 서고, 윗입술 톱니 길이가 고르지 않음 - 바뀐 LED: 정지 231 · 10초 1516 · 노브 605 · 팔레트 16→16색 -- A/B: 큐레이터 새(정순 「흰 손가락이 이어져 발톱 거품으로 읽힘」, 역순 「갈퀴 물보라 손가락이 흰색으로 차 있음」) · 판화가 역순 새 「외곽선 두른 흰 갈퀴가 더 많고 크게 늘어짐」(정순은 결과가 정해진 뒤라 기록만) · 벽에 거는 사람 같음(정순 새 「하얀 손가락으로 꽉 차 2m 앞에서도 또렷」, 역순 옛 「네모난 ㄴ자 덩어리와 넓은 흰 띠로 뭉쳐 글자처럼」) -- 버린 판정: 잡기 실패 1(벽에 거는 사람 역순) +- A/B: 큐레이터 새(정순 「흰 손가락이 이어져 발톱 거품으로 읽힘」, 역순 「갈퀴 물보라 손가락이 흰색으로 차 있음」) · 판화가 역순 새 「외곽선 두른 흰 갈퀴가 더 많고 크게 늘어짐」, 정순 버림 · 벽에 거는 사람 같음(정순 새 「하얀 손가락으로 꽉 차 2m 앞에서도 또렷」, 역순 옛 「네모난 ㄴ자 덩어리와 넓은 흰 띠로 뭉쳐 글자처럼」) +- 버린 판정: 잡기 실패 2(벽에 거는 사람 역순, 판화가 정순). 판화가 정순은 결과가 정해진 뒤라 다시 받지 않음 - 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 갈래를 굵히니 2m 에서 흰 덩어리로 뭉쳐 읽혔어요 + +### 패스 7 +- 비평 3 그대로(패스 6 되돌림) +- 확인 차례: ① 배와 노꾼이 주황 사선 한 줄이라 2m 에서 판자나 모래톱(벽에 거는 사람 가장 약한 것, 큐레이터 ①) 예 +- 고칠 것: ① 배 · 98판 패스 5 에서 되돌린 노꾼(정지 73 LED, 2m 에서 「갑판의 얼룩」)을 굵게 다시 세워요. 선체를 세 줄에서 네 줄로 두껍게 하고, 사공을 4 칸마다 하나씩 두 칸 너비 남색 등(뱃전 위아래 석 줄)과 그 위 두 칸 옅은 머리로 세워 2m 에서 덩어리로 보이게 해요 · (23,105) (34,101) (45,96) +- 짚은 렌즈: 벽에 거는 사람 7점 「주황 사선 한 줄로 줄어 판자나 모래톱」 · 큐레이터 7점 「사공이 없는 주황 널빤지 띠」 +- 기대: pair-led 에서 배 위에 남색 등과 옅은 머리의 사공 다섯이 4 칸 간격으로 서고, 선체가 한 줄 두꺼워짐 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 1408a245..1c5702b9 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -383,14 +383,22 @@ function boat(P) { if (P.zone[top * W + x] === Z_WAVE) continue; const bow = x1 - x; const rise = bow < 3 ? 3 - bow : x === x0 ? 1 : 0; - const keel = top + 2 - Math.max(0, rise - 1); + const keel = top + 3 - Math.max(0, rise - 1); for (let y = top - rise; y <= keel; y++) put(P, x, y, y === keel && rise < 2 ? BOATD : BOAT); put(P, x, keel + 1, LINE); - const r = x - x0; - if (r >= 4 && bow >= 5 && r % 3 !== 2) { - put(P, x, top - 1, ROWER); - if (r % 3 === 0) put(P, x, top - 2, HEAD); + } + // The rowers, hunched over their oars in a row along the boat: each a dark + // back two LEDs wide sunk into the gunwale, with a pale head above it. + for (let x = x0 + 3; x <= x1 - 6; x += 4) { + const top = Math.round(y0 + (x - x0) * k) + bob; + for (const dx of [0, 1]) { + const t = Math.round(y0 + (x + dx - x0) * k) + bob; + put(P, x + dx, t, ROWER); + put(P, x + dx, t + 1, ROWER); + put(P, x + dx, t - 1, ROWER); } + put(P, x, top - 2, HEAD); + put(P, x + 1, top - 2, HEAD); } } From 89387025cf77f30279ba8c28cd71ceaaba2036fc Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:30:03 +0000 Subject: [PATCH 17/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=ED=8C=A8=EC=8A=A4=207=20=EB=90=98=EB=8F=8C?= =?UTF-8?q?=EB=A6=BC:=20=EB=90=98=EB=8F=8C=EB=A6=BC=20=EC=85=8B=EC=9D=B4?= =?UTF-8?q?=20=EC=9D=B4=EC=96=B4=EC=A0=B8=20=EB=B0=94=ED=80=B4=EB=A5=BC=20?= =?UTF-8?q?=EB=8B=AB=EB=8A=94=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 4 ++++ incoming/pattern-study/patterns/great-wave.js | 18 +++++------------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 34ffea65..fac291c2 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -151,3 +151,7 @@ - 고칠 것: ① 배 · 98판 패스 5 에서 되돌린 노꾼(정지 73 LED, 2m 에서 「갑판의 얼룩」)을 굵게 다시 세워요. 선체를 세 줄에서 네 줄로 두껍게 하고, 사공을 4 칸마다 하나씩 두 칸 너비 남색 등(뱃전 위아래 석 줄)과 그 위 두 칸 옅은 머리로 세워 2m 에서 덩어리로 보이게 해요 · (23,105) (34,101) (45,96) - 짚은 렌즈: 벽에 거는 사람 7점 「주황 사선 한 줄로 줄어 판자나 모래톱」 · 큐레이터 7점 「사공이 없는 주황 널빤지 띠」 - 기대: pair-led 에서 배 위에 남색 등과 옅은 머리의 사공 다섯이 4 칸 간격으로 서고, 선체가 한 줄 두꺼워짐 +- 바뀐 LED: 정지 96 · 10초 158 · 노브 130 · 팔레트 16→16색 +- A/B: 큐레이터 새(정순 「배 위에 남색 덩어리로 노꾼들이 웅크림」, 역순 「노꾼 자리의 어두운 점들이 찍혀 사람이 탄 배」) · 판화가 같음(정순 옛 「남색 얼룩이 박힌 뭉툭한 주황 덩어리」, 역순 새 「짙은 쪽빛 덩어리로 웅크린 노꾼들」) · 벽에 거는 사람 옛(정순 옛 「어두운 얼룩이 섞인 뭉툭한 주황 덩어리」, 역순 버림 · 진짜 짝은 옛 「꺼진 듯한 어두운 점이 고장 난 LED 처럼」) +- 버린 판정: 잡기 실패 1(벽에 거는 사람 역순). 짚은 벽에 거는 사람이 정순에서 옛이라 결과가 정해져 다시 받지 않음 +- 되돌림. 되돌림이 셋(패스 5, 6, 7) 이어져 바퀴를 일찍 닫아요. 98판 패스 5 와 같은 길이에요. 큐레이터는 두 바퀴 다 노꾼을 새로 골랐고, 2m 렌즈는 굵힌 남색 등도 얼룩으로 봤어요 diff --git a/incoming/pattern-study/patterns/great-wave.js b/incoming/pattern-study/patterns/great-wave.js index 1c5702b9..1408a245 100644 --- a/incoming/pattern-study/patterns/great-wave.js +++ b/incoming/pattern-study/patterns/great-wave.js @@ -383,22 +383,14 @@ function boat(P) { if (P.zone[top * W + x] === Z_WAVE) continue; const bow = x1 - x; const rise = bow < 3 ? 3 - bow : x === x0 ? 1 : 0; - const keel = top + 3 - Math.max(0, rise - 1); + const keel = top + 2 - Math.max(0, rise - 1); for (let y = top - rise; y <= keel; y++) put(P, x, y, y === keel && rise < 2 ? BOATD : BOAT); put(P, x, keel + 1, LINE); - } - // The rowers, hunched over their oars in a row along the boat: each a dark - // back two LEDs wide sunk into the gunwale, with a pale head above it. - for (let x = x0 + 3; x <= x1 - 6; x += 4) { - const top = Math.round(y0 + (x - x0) * k) + bob; - for (const dx of [0, 1]) { - const t = Math.round(y0 + (x + dx - x0) * k) + bob; - put(P, x + dx, t, ROWER); - put(P, x + dx, t + 1, ROWER); - put(P, x + dx, t - 1, ROWER); + const r = x - x0; + if (r >= 4 && bow >= 5 && r % 3 !== 2) { + put(P, x, top - 1, ROWER); + if (r % 3 === 0) put(P, x, top - 2, HEAD); } - put(P, x, top - 2, HEAD); - put(P, x + 1, top - 2, HEAD); } } From d79a35f18334ada3ca434fbce18f9c50aad13059 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:36:05 +0000 Subject: [PATCH 18/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=EB=B0=94=ED=80=B4=20=EB=81=9D:=20=EB=91=90=20?= =?UTF-8?q?=EB=B2=88=20=EC=B1=84=EC=A0=90=EA=B3=BC=20=EC=9E=A5=EA=B1=B0?= =?UTF-8?q?=EB=A6=AC=20A/B,=20look-99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 10 ++++++++++ .../pattern-study/craft/great-wave/look-99.png | Bin 0 -> 79317 bytes 2 files changed, 10 insertions(+) create mode 100644 incoming/pattern-study/craft/great-wave/look-99.png diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index fac291c2..9178de1c 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -155,3 +155,13 @@ - A/B: 큐레이터 새(정순 「배 위에 남색 덩어리로 노꾼들이 웅크림」, 역순 「노꾼 자리의 어두운 점들이 찍혀 사람이 탄 배」) · 판화가 같음(정순 옛 「남색 얼룩이 박힌 뭉툭한 주황 덩어리」, 역순 새 「짙은 쪽빛 덩어리로 웅크린 노꾼들」) · 벽에 거는 사람 옛(정순 옛 「어두운 얼룩이 섞인 뭉툭한 주황 덩어리」, 역순 버림 · 진짜 짝은 옛 「꺼진 듯한 어두운 점이 고장 난 LED 처럼」) - 버린 판정: 잡기 실패 1(벽에 거는 사람 역순). 짚은 벽에 거는 사람이 정순에서 옛이라 결과가 정해져 다시 받지 않음 - 되돌림. 되돌림이 셋(패스 5, 6, 7) 이어져 바퀴를 일찍 닫아요. 98판 패스 5 와 같은 길이에요. 큐레이터는 두 바퀴 다 노꾼을 새로 골랐고, 2m 렌즈는 굵힌 남색 등도 얼룩으로 봤어요 + +## 바퀴 끝 +- 패스 7 (채택 2 · 되돌림 5 · 막힘 2). 끝 판은 패스 4 의 판(6a910af 의 파일)이에요. 되돌림이 셋(패스 5·6·7) 이어져 8 패스 전에 닫았어요 +- 두 번 채점: 큐레이터 7,7 · 판화가 7,7 · 벽에 거는 사람 7,7 · 블라인드 읽기 3/3(「호쿠사이의 가나가와 앞바다의 높은 파도 아래, 평평한 색면과 윤곽선의 목판화, 갈고리 같은 물보라」) +- 두 번 채점의 가장 약한 것: 큐레이터 ① 배 「뱃머리도 노꾼도 없는 두 줄 주황 막대」, ① 손톱 「같은 간격 톱니라 병뚜껑처럼, 립 아래 U·J 고리」 · 판화가 ④ 「1px 남색 고리가 U, J 글자로」, ① 「고른 둥근 혹 여섯과 글자처럼 선 갈고리 셋」 · 벽에 거는 사람 ① 몸통 「굵기 일정한 관과 빈 크림 터」, ① 배 「나무토막」 +- 장거리 A/B(바퀴 시작 3f38fbf 대비): 큐레이터 새 · 판화가 새 · 벽에 거는 사람 새(세 렌즈 다 「마루 윗가장자리가 흰 톱니 거품으로 갈라지고 립 아래 갈고리 발톱」). 버린 판정 1(판화가 정순 잡기 실패) +- 닮은꼴: 작품 3 은 원작을 닮는 것이 일이라 받지 않음 +- 걸린 멈춤: 되돌림 셋 이어짐. 막힘 둘(① 큰 파도 몸통, ① 손톱 갈래). 막힌 층이 ① 이라 「한 층 앞」이 없어요 +- 버린 판정(바퀴 전체): 잡기 실패 14 +- 창작자에게: 마루가 이번 바퀴에 바뀌었어요. 밑에 하늘 틈을 둔 갈고리 넷과 윗입술의 흰 손가락 열이 들어가 세 렌즈가 다 바퀴 시작보다 낫다고 봤어요. 배의 노꾼은 두 바퀴째 2m 렌즈가 「얼룩」으로 봐서 못 들어갔어요 diff --git a/incoming/pattern-study/craft/great-wave/look-99.png b/incoming/pattern-study/craft/great-wave/look-99.png new file mode 100644 index 0000000000000000000000000000000000000000..f9977b0f1a52c3219082e73f760ba47202e2d77c GIT binary patch literal 79317 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 literal 0 HcmV?d00001 From 7068fe3c02ea717905b9d27e90c49fdc204829e1 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:36:12 +0000 Subject: [PATCH 19/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=EA=B8=B0=EB=A1=9D:=20=EB=B2=84=EB=A6=B0=20?= =?UTF-8?q?=ED=8C=90=EC=A0=95=20=EC=88=98=20=EB=B0=94=EB=A1=9C=EC=9E=A1?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 9178de1c..963103c0 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -163,5 +163,5 @@ - 장거리 A/B(바퀴 시작 3f38fbf 대비): 큐레이터 새 · 판화가 새 · 벽에 거는 사람 새(세 렌즈 다 「마루 윗가장자리가 흰 톱니 거품으로 갈라지고 립 아래 갈고리 발톱」). 버린 판정 1(판화가 정순 잡기 실패) - 닮은꼴: 작품 3 은 원작을 닮는 것이 일이라 받지 않음 - 걸린 멈춤: 되돌림 셋 이어짐. 막힘 둘(① 큰 파도 몸통, ① 손톱 갈래). 막힌 층이 ① 이라 「한 층 앞」이 없어요 -- 버린 판정(바퀴 전체): 잡기 실패 14 +- 버린 판정(바퀴 전체): 잡기 실패 13 - 창작자에게: 마루가 이번 바퀴에 바뀌었어요. 밑에 하늘 틈을 둔 갈고리 넷과 윗입술의 흰 손가락 열이 들어가 세 렌즈가 다 바퀴 시작보다 낫다고 봤어요. 배의 노꾼은 두 바퀴째 2m 렌즈가 「얼룩」으로 봐서 못 들어갔어요 From f56a6c5bc2c852090b6eac6557984ca2eed1d9d8 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 20:37:48 +0000 Subject: [PATCH 20/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20=EA=B8=B0=EB=A1=9D:=20=ED=8C=A8=EC=8A=A4=202=20?= =?UTF-8?q?=ED=8C=90=EC=A0=95=20=EC=88=98=20=EB=B0=94=EB=A1=9C=EC=9E=A1?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/craft/great-wave/log.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/incoming/pattern-study/craft/great-wave/log.md b/incoming/pattern-study/craft/great-wave/log.md index 963103c0..b1f8b719 100644 --- a/incoming/pattern-study/craft/great-wave/log.md +++ b/incoming/pattern-study/craft/great-wave/log.md @@ -99,7 +99,7 @@ - 바뀐 LED: 정지 1776 · 10초 3776 · 노브 3264 · 팔레트 16→15색 - A/B: 큐레이터 같음(정순 새 「발톱이 앞쪽 아래로 늘어지고 후지가 골 가운데」, 역순 옛 「얇은 마루 밑으로 하늘이 파고들고 끝 안쪽 발톱이 또렷」) · 판화가 새(정순 「입술에서 매달려 뻗는 호쿠사이의 새긴 발톱」, 역순 「검은 테에 흰 끝을 단 갈퀴가 줄지어」) · 벽에 거는 사람 새(정순 「손가락이 골 쪽으로 길게 늘어짐」, 역순 「검은 테 두른 흰 발톱이 하늘 쪽으로」) - 버린 판정: 없음 -- 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 98판과 합쳐 이 지적은 다섯 번 고쳐 패스 하나(98판 패스 3)만 들어갔어요. 두꺼운 마루와 발톱은 다섯 판정 가운데 넷이 새로 골랐고, 큐레이터 역순만 얇은 마루 밑의 하늘을 골랐어요 +- 되돌림. 같은 지적의 둘째 되돌림이라 막힘. 98판과 합쳐 이 지적은 다섯 번 고쳐 패스 하나(98판 패스 3)만 들어갔어요. 두꺼운 마루와 발톱은 패스 2 의 여섯 판정 가운데 다섯이 새로 골랐고, 큐레이터 역순만 얇은 마루 밑의 하늘을 골랐어요 ### 패스 3 - 비평 1 그대로(패스 2 되돌림) From f240f070ab3055ed8772b1e212f87f961be1d219 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 21:18:24 +0000 Subject: [PATCH 21/21] =?UTF-8?q?=ED=81=B0=20=ED=8C=8C=EB=8F=84=2099?= =?UTF-8?q?=ED=8C=90=20index.html=20=EB=8B=A4=EC=8B=9C=20=EC=A7=93?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- incoming/pattern-study/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/incoming/pattern-study/index.html b/incoming/pattern-study/index.html index 850e30c4..fe0a3c69 100644 --- a/incoming/pattern-study/index.html +++ b/incoming/pattern-study/index.html @@ -210,8 +210,8 @@

패턴 연구

- - + +