Kākāpō Party将Claude生成的像素艺术变成演示视频

Simon Willison··作者 Simon Willison

关键信息

这个动画会响应点击并触发彩纸效果,因此视频生成脚本等待3秒后,再在画布的多个位置分散点击,最终录制出1280×720的视频。该成果依赖Claude生成的代码、浏览器自动化和原始交互页面,因此更像是创意展示,而不是全新的动画系统。

资讯摘要

Simon Willison在WeAreDevelopers World Congress North America的闭幕主题演讲中展示了Kākāpō Party。他希望最后一页能够庆祝新西兰在2026年创下纪录的鸮鹦鹉繁殖季。看到人们讨论Claude Opus 5.5制作像素艺术动画的能力后,他向Claude提供了三张鸮鹦鹉照片,作为外观参考。他在提示词中要求制作一个运行于HTML5画布的动画,让明显具有像素风格的鸮鹦鹉上下跳动、举办派对并产生彩纸效果,而且数量至少达到20只。

Claude生成了这个交互式页面,Willison随后将其发布为Kākāpō Party工具,并认为效果相当不错。由于他想把结果嵌入Keynote演示文稿,他下载了HTML文件,并让本地Claude Code会话为其制作视频。Claude Code使用Playwright打开页面,等待3秒后在多个位置点击以激活彩纸效果,最终生成了适合结束页使用的15秒视频。

Kākāpō Party将Claude生成的像素艺术变成演示视频

资讯正文

工具:Kākāpō Party

昨天,我为 WeAreDevelopers World Congress North America 做了闭幕主题演讲。按照我对“STAR 时刻”的定义,我决定在演讲中穿插一些我们在 2026 年迎来的、创下纪录的鸮鹦鹉繁殖季的内容。

我想用最后一张幻灯片来庆祝这件事,而且我也看到了一些关于 Claude Opus 5.5 制作像素艺术动画能力有多出色的讨论。于是,我从 Google 图片搜索中找了三张鸮鹦鹉的照片,把它们放进 Claude,并附上了这段提示词:

```text

这是几张鸮鹦鹉的照片,只是为了提醒你它们长什么样

我需要你在 HTML 5 canvas 上制作一个动画,采用明显的像素艺术风格:让至少 20 只像素艺术鸮鹦鹉上下跳跃、开派对,并加入彩纸屑之类的效果

```

这是对话记录,生成的页面则在这里。效果相当不错!

我想把它嵌入 Keynote 演示文稿文件中,于是我下载了 HTML 文件,并告诉本地运行的 Claude Code:

```text

把 file:///Users/simon/Downloads/kakapo-party.html 制作成一段视频——你需要在浏览器中加载它,并点击几次以获得彩纸屑效果;视频应为 15 秒长

不要在开始后的 3 秒内点击

确保多次点击分散在可点击区域的不同位置

```

Claude Code 使用了 Playwright,并生成了这段视频,正好满足我最后一张幻灯片的需要:

我使用的完整 Playwright 脚本如下,短得令人满意:

```python

# /// script

# dependencies = ["playwright"]

# ///

import time

from playwright.sync_api import sync_playwright

W, H = 1280, 720

```

# Canvas 填充整个视口;将点击分散到四角、边缘和中心

clicks = [

(3.0, 640, 360), # 中心

(4.2, 160, 120), # 左上

(5.4, 1120, 120), # 右上

(6.6, 180, 600), # 左下

(7.8, 1100, 600), # 右下

(9.0, 640, 100), # 顶部中心

(10.0, 380, 380), # 左中

(11.0, 900, 380), # 右中

(12.2, 640, 620), # 底部中心

(13.2, 640, 300), # 最终中心

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()

来源与参考

  1. 原始链接
  2. Tool: Kākāpō Party

收录于 2026-09-28