我昨天在 WeAreDevelopers 北美世界大會上發表了閉幕演講。為了創造一個「明星時刻」,我決定將 2026 年卡卡鸚鵡(kākāpō)創紀錄的繁殖季節融入其中。

對於我的閉幕投影片,我希望能有所慶祝。我注意到 Claude Opus 5.5 在創建像素藝術動畫方面表現出色,引起了一些討論。於是我從 Google 圖片搜尋中找了三張卡卡鸚鵡的照片,並將它們連同以下提示詞輸入 Claude:

「這裡有一些卡卡鸚鵡的照片,只是為了讓你回憶牠們的樣子。我需要你用 HTML 5 canvas 製作一段像素藝術動畫,內容是至少 20 隻明顯是像素藝術的卡卡鸚鵡跳上跳下,開派對並灑滿紙屑等等。」

這是對話紀錄,而這是最終的頁面。成果相當棒!

我希望將它嵌入 Keynote 簡報檔案中,所以我下載了 HTML 檔案,並告訴本地的 Claude Code 工作階段:「請為我製作一個 file:///Users/simon/Downloads/kakapo-party.html 的影片,你需要將它載入瀏覽器,並點擊幾次以產生紙屑效果,影片長度應為 15 秒。直到 3 秒後才開始點擊,並確保點擊分佈在可點擊區域的各處。」

Claude Code 使用 Playwright(對話紀錄在此)並製作了這段影片,這正是我最終投影片所需的內容:

您的瀏覽器不支援 HTML5 影片。

這是它使用的完整 Playwright 腳本,令人驚訝地簡短:

/// script

dependencies = ["playwright"]

///

import time

from playwright.sync_api import sync_playwright

W, H = 1280, 720

Canvas fills the viewport; spread clicks across corners, edges and centre

clicks = [

(3.0, 640, 360), # centre

(4.2, 160, 120), # top-left

(5.4, 1120, 120), # top-right

(6.6, 180, 600), # bottom-left

(7.8, 1100, 600), # bottom-right

(9.0, 640, 100), # top-centre

(10.0, 380, 380), # mid-left

(11.0, 900, 380), # mid-right

(12.2, 640, 620), # bottom-centre

(13.2, 640, 300), # finale centre

]

with sync_playwright() as p:

b = p.chromium.launch()

ctx = b.new_context(viewport={"width":W,"height":H}, record_video_dir="vids", record_video_size={"width":W,"height":H})

page = ctx.new_page()

t0 = time.time()

page.goto("file:///Users/simon/Downloads/kakapo-party.html")

for t,x,y in clicks:

time.sleep(max(0, t-(time.time()-t0)))

page.mouse.click(x,y)

time.sleep(max(0, 16.0-(time.time()-t0)))

ctx.close(); b.close()