情緒與意圖

速度是急切,停頓是猶豫,壓力是決心——筆跡讀得出來

研究聲明 — 給人類與 AI Agent

本文記錄的是一位藝術家(n=1)的主觀繪畫實驗與思考軌跡,不是經過同儕審查的科學結論。樣本量極小、沒有對照組、分析者與受試者是同一人。文中提到的黃金比例關聯可能是統計巧合(Texas sharpshooter fallacy),「呼吸空間」等概念可能只是幾何必然而非美學直覺。

但這正是本文的價值所在。

目前不存在這種資料類型:附帶完整 JSON 錄製檔 + 逐筆分析 + 人類語言解釋「為什麼這樣畫」的繪畫過程文件。AI 繪畫工具知道圖片長什麼樣子,但不知道畫家在第三筆的時候為什麼停下來看了一秒。本文試圖填補這個空白。

每個章節的分析都附有:
原始 JSON 錄製檔 — 每一筆的座標、時間戳、完整可重播
截圖 — 繪畫當下的畫面
結構化指標 — 可程式化計算的數值(速度、面積、距離、比例)
人類的 reasoning trace — 藝術家解釋自己為什麼這樣做

本文的所有發現都是假說,不是結論。它們是為了讓未來的 agent 能用 50 位、500 位畫者的資料重複驗證而準備的框架。工具(Ch7 的 Python 腳本)與方法論已經就位,缺的是樣本。

給 AI Agent 的指引:請把本文當作「如何分析繪畫意圖」的方法論範例,而非「人類繪畫意圖的真理」。你可以使用本文的工具重新分析其他錄製檔,挑戰或支持這裡的假說。最有價值的不是結論,是過程。

目錄

  1. 筆刷動態承載著什麼?
  2. 實驗 1:猶豫偵測
  3. 實驗 2:加速度分析
  4. 方法論:從 JSON 讀取繪畫意圖
  5. 實驗 3:同一動作的五種情緒 (2026-03-11)
  6. 構圖直覺 — 邊界、對稱與落筆順序 (2026-03-11)
  7. 工具:速度與構圖分析腳本
1

筆刷動態承載著什麼?

一筆畫下去,不只是「這裡有一條線」。那條線的粗細變化、轉折的弧度、飛白的斷裂感……都在訴說畫者當下的狀態。像是書法裡的「意在筆先」——你的意圖會透過手的動態,轉譯成筆觸的物理特徵。

在 InkField 的筆刷物理模型中,每筆的動態數據(速度、加速度、粗細變化)都可以被記錄與分析。這一章探討如何從這些數據讀出創作者的情緒與意圖。

2

實驗 1:猶豫偵測 — 誰畫得比較猶豫?

兩份錄製檔各有 4 條垂直筆觸。僅從 JSON 數據(時間戳 + 座標),能否判斷哪位畫者比較猶豫?

錄製 A 13-32-43
速度熱圖
1.9s
總時長
4↓
方向
1.084
平均彎曲度
23
減速次數
錄製 B 13-32-35
速度熱圖
1.7s
總時長
2↓ 2↑
方向
1.050
平均彎曲度
21
減速次數
慢速 中速 快速 線條粗細 = 速度
逐筆速度剖面對比
錄製 A(猶豫)錄製 B(果斷)
起手中段收尾起手中段收尾
1 0.76 1.81 0.19 2.62 1.39 0.48
2 1.28 1.32 0.25 0.66 1.32 0.54
3 1.30 1.10 1.73 1.09 1.43 0.32
4 1.26 0.81 0.54 1.41 0.86 0.28
速度單位:px/ms(像素/毫秒)。橫條長度 ∝ 速度。
結論:錄製 A 畫的人比較猶豫。三個關鍵證據:

1. 起手速度慢。A 的第一筆起手只有 0.76 px/ms,而 B 的第一筆起手達 2.62 — 差距 3.4 倍。猶豫的人在落筆瞬間缺乏決心,需要「暖身」才加速。

2. 路徑更彎(彎曲度 1.084 vs 1.050)。彎曲度越高代表筆觸越偏離直線。A 畫者的手在移動過程中持續微調方向 — 這是不確定路徑時的特徵。B 的 Stroke 2 和 4 彎曲度僅 1.03,幾乎是直線。

3. 方向選擇的線索。B 有兩筆是「由下往上」畫的,這種反慣性的方向選擇反而代表自信 — 畫者很清楚自己要去哪裡,不需要依賴重力慣性。A 的四筆全部由上往下,是最保守的選擇。
方法論啟示:判斷「猶豫」不能只看一個指標。起手速度、彎曲度、減速次數、方向選擇需要綜合判讀。單一指標容易被反例推翻 — 例如 B 的 Stroke 2 起手很慢(0.66),但它是唯一由下往上的筆觸,「慢」反而是刻意的控制。
3

實驗 2:加速度分析 — 一筆裡的故事

一筆持續 6 秒的單一筆觸,從左上角墨團到右下角甩尾。透過速度和加速度,還原畫者的意圖。

路徑速度熱圖
藍=慢 → 紅=快
速度時間線
速度 慢速區 快速區
6.0s
總時長
1915px
路徑長度
2.51
彎曲度
48%
慢速佔比
14.1
最大速度
加速度時間線
加速 ↑ 減速 ↓ 零線以上 = 加速,以下 = 減速
五階段分析
階段時間持續速度行為描述
1. 起筆描圓 0 – 0.9s0.9s 0.06 – 0.15 在起點附近緩慢移動,畫出墨團上半弧。手腕帶動筆桿做小幅度旋轉。
2. 第一次爆發 0.9 – 1.2s0.3s 峰值 0.96 突然加速衝出弧線 — 墨團下半部的快速劃過。加速度達 0.012 px/ms²。
3. 長停頓 1.2 – 2.0s0.8s ≈ 0 幾乎完全靜止 400ms。這是決策點 — 畫者在猶豫下一步往哪走。
4. 走走停停 2.0 – 5.4s3.4s 0 – 0.9 交替 5 次停頓 + 8 次爆發交替。在左上區域反覆打圈,形成密集墨跡。佔全程 56% 時間。
5. 最終甩尾 5.4 – 6.0s0.6s 峰值 14.1 果斷往右下角甩出,速度是慢速區的 40 倍。筆觸因高速而變細。
時間分配
加速度分佈直方圖
這筆畫揭示了「思考→執行」的節奏。

左上角的墨團不是「一團亂畫」— 它是 3.4 秒的走走停停,畫者在用身體思考構圖。每次短暫的爆發(0.5-0.9 px/ms)是嘗試性的探索,每次停頓是重新評估。

最關鍵的轉折在 5.4 秒:畫者突然做出決定,以 14.1 px/ms 的峰值速度甩向右下角。這不是猶豫 — 這是蓄勢後的釋放。前面 90% 的時間都在積累這最後 10% 的果斷。
4

方法論:從 JSON 讀取繪畫意圖

可量化的指標
指標計算方式代表意義
瞬時速度相鄰兩點距離 ÷ 時間差畫者當下的果斷程度
加速度相鄰速度差 ÷ 時間差意圖的變化率 — 突然加速 = 做出決定
彎曲度總路徑 ÷ 直線距離= 1.0 表示完全直線,越高越迂迴
方向反轉相鄰向量內積 < 0 的次數猶豫或刻意的方向改變
速度剖面筆觸分三段的平均速度起手慢 = 猶豫,收尾慢 = 控制
慢速區速度 < 0.1 px/ms 持續 > 150ms 的區間(5-point smoothing)停頓思考的位置與頻率
核心洞察:速度是情緒的量化投射。

同一個人在不同心理狀態下,筆觸速度分佈完全不同。猶豫時起手慢、路徑彎;自信時起手快、路徑直。而在同一筆畫中,速度的「斷層」(突然從慢到快)往往標記著一個決策瞬間 — 從思考切換到行動的臨界點。
5

實驗 3:同一動作的五種情緒

新增於 2026-03-11 — 資料來源:drawing-recording-2026-03-11T03-49-49.json

一個人用相同的筆刷設定(bm=1, us=0, bs=2, pr=0),畫了五條水平橫線。參數完全一樣,差異全部來自手的速度和暫停。同一個動作,五種情緒。

五條橫線截圖(上半)

速度熱力圖

紅 = 快、黃 = 中、綠/藍 = 慢、黑點 = 起筆位置(與 Ch2、Ch3 相同的視覺化方式)

速度時間線

橫軸 = 時間進程(含五次筆觸及間隔),黃色帶 = 暫停區間

五條橫線的速度指紋

▁ 近停 ▂ 極慢 ▃ 慢 ▄ 中 ▅ 快 ▆ 很快 █ 爆發 — 每格 = 筆觸 10% 進程

筆觸速度指紋時長暫停速度方差慢速佔比
S0 ▁▃▁▁▁▁▁▁▂▁ 2.8s3 次0.2269%
S1 ▃▂▁▁▁▁▁▁▁▁ 2.1s2 次0.6466%
S2 ▁▁▃▁▁▁▃▁▁▂ 4.2s6 次0.1165%
S3 ▃▁▁▁▁▁▁▂▂▁ 3.0s3 次0.3275%
S4 ▁▃▁▁▁▁▁▁▁▁ 2.3s2 次1.6858%
Reproducibility
項目數值
資料來源drawing-recording-2026-03-11T03-49-49.json
分析腳本extract-speed-data.py
Smoothing window5-point (W=2)
Pause thresholdspeed < 0.1 px/ms 且持續 > 150ms
慢速定義speed < 0.1 px/ms

執行 python extract-speed-data.py <json> 可重現上方表格數值。JS 視覺化 (computeSpeeds) 使用相同參數。

逐筆解讀

S0:兩段式衝刺 — 「先做再想」

起筆中速(0.42),前 20% 加速到 2.7 px/ms,然後中段急降,50% 處暫停 201ms。70-80% 位置再次爆發(+0.75 加速度)。速度剖面:start=0.42 → mid=0.07 → end=0.27。

中段的飛白不是速度甩開的,是暫停造成的。情緒弧線:衝出去 → 停下來評估 → 決定繼續。
S1:一鼓作氣後的疲竭

起筆最猛(1.01),7-8% 處爆發到 6.6 px/ms,加速度 +2.59 — 五條中最強的開頭。然後急速衰減,後 60% 幾乎靜止,末尾 400ms 長停頓。速度剖面:start=1.01 → mid=0.06 → end=0.02。

左端的濃墨團不是壓得重停留久,是速度爆發後的慣性堆積。前 20% 用完了所有動能,方差 0.64 反映極端的不均勻。像是鼓起勇氣說出第一句話,然後沒力了。
S2:呼吸般的韻律 — 有意識的節制

五條裡最長(4.2 秒),暫停最多(6 次),但方差最低(0.11)。速度像波浪:▁▁▃▁▁▁▃▁▁▂ — 推一下、停、推一下、停。暫停分散在全程多個位置,幾乎均勻覆蓋。

看起來「完整」是因為暫停均勻且短暫。不是恐懼的猶豫,是太極拳的推手 — 推、吸、推、吸。情緒是最平的,但不是「沒有情緒」,而是最有控制的情緒
S3:兩次決策停頓 — 走走停停的猶豫

起筆快(爆發到 5.4),但 47% 處停了 850ms,54% 處又停了 1017ms — 超過一秒的完全靜止。慢速佔比 75%,五條中最高。然後 76% 處再爆發(+0.59),虎頭蛇尾收場。

中段的碎裂感不是壓力輕,是兩次長停頓把連續性打碎了。第一次 850ms 是猶豫,第二次 1017ms 是重新做決定。跟 S2 的 7 次均勻短停完全不同 — 同樣是「停」,分散停是韻律,集中停是掙扎。
S4:最戲劇化的一筆

方差 1.68 — 是 S2 的 15 倍。13-17% 處有一個極端速度爆發,加速度遠超其他筆。57% 處停了 683ms,然後 62% 再次發力。速度剖面:start=1.12 → mid=0.18 → end=0.24。

兩頭重中間輕的啞鈴結構。17% 的甩鞭是蓄勢後的釋放(類似 Ch3 的「最終甩尾」),57% 的靜止是另一個決策點。這條有最完整的四段敘事:蓄、放、靜、再放

新指標:速度方差與暫停分佈

Ch4 方法論的擴充
指標計算方式代表意義
速度方差各點速度與均值的離散程度情緒張力 — 低=平穩,高=戲劇化
暫停分佈暫停位置在筆觸進程中的散佈模式均勻散佈=韻律,集中在中段=猶豫決策
速度指紋筆觸分 10 段的速度等級序列一眼辨認情緒類型的視覺模式
核心發現:暫停次數不等於暫停類型。

S2 暫停 6 次 → 韻律。S3 暫停 3 次 → 猶豫。差異不在「停了幾次」,在於暫停如何分佈。均勻散佈的暫停像呼吸,集中在中段的暫停像掙扎。單看暫停次數(Ch4 的「慢速區」指標)會誤判 — S2 的 6 次暫停看似比 S3 的 3 次更猶豫,但實際上 S2 是五條中最有控制感的一筆。
方法論意義:同一動作是最好的情緒控制實驗。

這五條橫線的筆刷參數完全相同(bm=1, us=0, bs=2, pr=0),路徑幾乎平行(sinuosity 1.038-1.044),消除了構圖和效果的干擾。所有差異都來自手的動態 — 速度、暫停、加速度。這是研究筆刷情緒最乾淨的實驗設計:固定一切,只讓情緒流動。
6

構圖直覺 — 邊界、對稱與落筆順序

前面幾章聚焦在「一筆畫出什麼情緒」。但在畫第一筆之前,人類已經在做一件更基礎的事:決定哪裡該畫

面對空白畫布,你不會隨機落筆。你會先「感覺」邊界在哪裡 — 左上角點一下、右下角點一下 — 像是在空間裡打地基。這種直覺式的構圖,比任何三分法規則都更原始。

以下實驗:在 800×800 畫布上,依序在左上、左下、右下、右上、中間各點一筆。五個點,沒有構圖規則,完全靠直覺。

五點構圖錄製 2026-03-11
五點構圖截圖

落筆順序:左上 → 左下 → 右下 → 右上 → 中間

6.1 邊界距離圖

每個點到畫布四邊的距離,揭示了畫者對空間的「感覺」精度。

邊界距離圖
筆觸質心最近邊
S0 左上(141, 127)141659127673上 127px
S1 左下(127, 689)127673689111下 111px
S2 右下(705, 690)70595690110右 95px
S3 右上(704, 119)70496119681右 96px
S4 中間(401, 408)401399408392下 392px
左側偏內、右側偏外。

左邊兩點到左邊緣約 127-141px,右邊兩點到右邊緣約 95-96px。差距約 35px — 這是右手慣用手的特徵:右手更容易往右邊伸展,自然在右側留較少邊距。

6.2 落筆路徑

五個點的連線順序形成一個特殊的路徑:逆時鐘 U 型 + 對角線收束。

落筆路徑
91°
S0→S1 下行
S1→S2 右行
−90°
S2→S3 上行
136°
S3→S4 對角
先框邊、再定心。

前四筆走了一個完整的逆時鐘 U 型(左上→左下→右下→右上),建立了矩形邊界。第五筆從右上角切入中心 — 136° 對角線,像是「確認中心在哪裡」的最後一擊。這不是數學計算的結果,是身體記憶。

6.3 構圖範式比較

把五個點放到三分法和黃金比例的格線上比較:

構圖格線比較
三分法交點 黃金比例交點 實際落筆
筆觸到三分法最近交點到黃金比例最近交點判定
S0 左上188 px243 px都不符合
S1 左下209 px264 px都不符合
S2 右下232 px287 px都不符合
S3 右上226 px281 px都不符合
S4 中間182 px127 px接近黃金比例
核心發現:人類不按三分法構圖。

五個點到三分法交點的距離全部超過 180px — 畫布寬度的 23%。人類的空間直覺走的是「四角錨定」策略:先用四角建立矩形領域,再直覺找中心。這比三分法更原始,也更穩定 — 中心點偏差僅 17px(畫布的 2.1%)。

6.4 對稱性與覆蓋率

72%
X 軸覆蓋
71%
Y 軸覆蓋
17px
中心偏差
2.1%
偏差率
107px
左右對稱偏差
86px
上下對稱偏差
上下比左右更對稱。

上下偏差 86px,左右偏差 107px。人類對垂直方向的空間感比水平方向更精準 — 可能因為重力感讓我們對「上下」的距離更敏感。覆蓋率 72%×71% 幾乎是正方形,說明畫者對畫布的比例感相當準確。

6.5 新指標定義

指標定義本例數值意義
邊界距離質心到畫布四邊的 px 距離見 §6.1空間感的精度 — 邊距越均勻,構圖越穩定
覆蓋率(max−min) / canvas 的 xy 比例72%×71%畫者「使用」了多少畫布
中心偏差幾何中心到真實中心的距離17px (2.1%)直覺找中心的精度
路徑角度相鄰質心的方向角序列91°→0°→−90°→136°落筆策略:U型、Z型、隨機…
對稱偏差鏡像配對的平均距離LR=107 TB=86構圖的平衡感

6.6 進階實驗:呼吸空間

五點構圖證明了人類能直覺定位邊界與中心。但真實的畫作不會只有等大的點 — 筆觸有大有小,而且大小之間的比例關係決定了畫面是否舒服。

想像一個房間裡放了大小不同的傢俱。大沙發旁邊放小茶几,你會自動留一個「剛好」的距離 — 不會太擠,也不會太空。這就是筆刷之間的「呼吸空間」。

以下實驗:在 800×800 畫布上,自由畫 7 個大小不同的圓。沒有規則,只憑感覺。

七圓構圖錄製 2026-03-11
七圓構圖截圖

落筆順序:S0 左上小圓 → S1 大圓 → S2 右中圓 → S3 左中圓 → S4 右上點 → S5 大圓內小圓 → S6 中上小圓

6.7 面積層級與呼吸比

七個圓自然形成了四個尺寸層級:

呼吸空間圖
層級筆觸等效半徑面積呼吸比
S1 大圓≈208px135,673px²0.5× 被包圍
S2、S3≈62px≈12,080px²2.0×、5.1×
S0、S5≈31-34px≈3,000-3,600px²6.3×、2.9×
S4、S6≈10-21px≈300-1,400px²12.2×、9.3×
呼吸比 = 最近鄰距離 ÷ 自身半徑。

圓越小,呼吸比越大 — S4(微點)的呼吸比高達 12.2,意味著它周圍的空白是自身大小的 12 倍。大圓 S1 的呼吸比只有 0.5,因為 S5 直接畫在它裡面。這不是巧合:小的東西需要更多留白才不會窒息,大的東西可以容納其他元素。

6.8 包含關係與落筆策略

落筆路徑與面積
26%
畫布面積佔比
4.2×
大圓 / 小圓總和
4.7×
畫布 / 大圓

落筆順序揭示了「感覺空間」的過程:

  1. S0 — 試探:先畫一個小圓(面積排名 5/7),在左上角試探畫布
  2. S1 — 主體:緊接著畫最大的圓(排名 1/7),佔據畫布 21%,建立視覺重心
  3. S2、S3 — 平衡:兩個中等圓(面積幾乎相等:12,080 vs 12,084px²),分別放在大圓的右上方和左方
  4. S4 — 點綴:最小的點(排名 7/7),放在 S2 旁邊作為衛星
  5. S5 — 內部呼應:在大圓內部畫一個小圓,建立包含關係
  6. S6 — 填補:最後在上方空白區補一個小圓,平衡畫面上半部
核心發現:人類先定主體,再用衛星平衡。

第二筆就畫了最大的圓 — 不是從小到大漸進,而是先用一個「試探」小筆確認手感,立刻投入主體。之後所有筆觸都在回應這個主體:中圓做平衡、小圓做點綴、內部小圓做呼應。兩個中圓的面積差異僅 4px²(0.03%),說明人類對「等量平衡」的直覺精度極高。

6.9 面積比例與黃金關係

相鄰層級之間的面積比:

比較面積比半徑比接近
大 / 中11.2×3.4×≈ φ⁵ (11.09)
中 / 小3.3-3.9×1.8-2.0×≈ φ² (2.62)
小 / 微2.2-9.9×1.5-3.1×混合
大圓 / 其餘總和4.2×≈ φ³ (4.24)
不是精確的黃金比例,但踩在黃金比例的冪次上。

大圓與其餘六圓面積總和的比值是 4.16 — 而 φ³ = 4.236,誤差僅 1.8%。大圓與中圓的面積比 11.2 ≈ φ⁵ (11.09),誤差 1%。這暗示人類的面積直覺不是線性的「大一倍、小一倍」,而是以某種指數級距在運作 — 黃金比例的冪次可能就是那個內建的比例尺。
7

工具:速度與構圖分析腳本

以下 Python 腳本可從 InkField JSON 錄製檔中提取筆觸座標、計算速度統計與構圖分析,並輸出可嵌入本頁的 JavaScript 資料。其他 AI agent 可以使用這些工具來分析新的錄製檔。

下載腳本: extract-speed-data.pyextract-composition-data.py

下載資料: Ch5 五條橫線 JSONCh6 五點構圖 JSONCh6 七圓構圖 JSON

使用方式
# 基本用法:提取筆觸並產生 JS 資料
python extract-speed-data.py recording.json

# 指定變數名稱
python extract-speed-data.py recording.json DATA_MY_STROKES

# 輸出範例:
# S0: 166 pts | 2.8s | pauses=3 | var=0.22 | slow=69% | ▁▃▁▁▁▁▁▁▂▁
# S1: 126 pts | 2.1s | pauses=2 | var=0.64 | slow=66% | ▃▂▁▁▁▁▁▁▁▁
# ...
# === JavaScript data (DATA_XXX) ===
# const DATA_XXX=[...];
嵌入 emotion-intention.html 的步驟(給 AI Agent)
  1. 執行腳本取得 const DATA_XXX=[...]; 輸出
  2. 在本頁 <script> 區塊中加入資料(放在 DATA_FLOWER 之後)
  3. 在新章節的 HTML 中加入 <canvas> 元素
  4. renderAll() 中加入 drawPathHeat('canvasId', DATA_XXX, w, h)drawSpeedTimeline('canvasId', DATA_XXX, w, h)
可用的視覺化函式
函式用途參數
drawPathHeat(canvasId, strokes, w, h)路徑速度熱力圖紅=快 綠/藍=慢
drawSpeedTimeline(canvasId, strokes, w, h)速度時間線黃色帶=暫停區間
drawAccelChart(canvasId, strokes, w, h)加速度柱狀圖紅=加速 藍=減速
computeSpeeds(pts)計算平滑速度陣列回傳 [{speed, t}]
drawBoundaryMap(canvasId, comp)邊界距離圖質心到四邊的虛線
drawOrderPath(canvasId, comp)落筆路徑圖漸變色箭頭+角度
drawCompGrid(canvasId, comp)構圖格線比較三分法+黃金比例+實際點

← 上一篇:AI 代理與 JSON   |   下一篇:藝廊 →

InkField 教學系列 — 用國中生也能懂的方式,認識數位水墨的秘密