无尘阁 · 实验室 ← 博客首页 AI 实验室 skills实验室 看原文
SKILLS 实验室 · 产出展示 / 2026.11.05

一张邀请函,能牵出四千七百多年?

把博客里那篇《一张伊朗国家馆的邀请函,能牵出多少年历史?》做成了一条动态时间线科普片:11 幕、34 段旁白、全程字幕,从埃兰的城邦一路捋到今天门口那盏灯。

这一页除了成片,还把片子借用的那个开源 Skill —— Anatomy 的来源、能力、装法和别人跑出来的实测摊开写清楚。点任意一句台词,视频就跳到那一句。

时长 5 分 37 秒1280 × 720 · 20fps 11 幕 · 34 段旁白中文解说 zh-CN-YunjianNeural全程字幕 · SRT 可下载
← 回到 skills 实验室 · 看其它 skill 的产出

先看片子

点开就能播,不用装任何东西。字幕已经烧进画面,也单独给一份 SRT。声音是微软中文男声,语速放慢了 6%。

《政权会倒,门一直开着》· 时间线科普 · 无尘阁日记 ↓ 下载 MP4 ↓ 字幕 SRT ↓ 口播稿 TXT

点一幕,跳到那一幕

11 幕按年代排好,点卡片从那一幕开头播;下面这条时间轴也能点,播放时会跟着高亮。

时间轴按政权顺序等距排布,不是按年份线性比例 —— 否则四千多年会被挤成一条线。

这条片子讲了什么

年代和事件严格照原文,不添史实。原文把当代新闻单独标成「不是史料」,片子里也只留一句边界说明,不展开。

4700+

年的时间跨度

从公元前 2700 年埃兰人在胡齐斯坦建城邦,到 2026 年进博会那张邀请函。海报上的数字差异,是从埃兰算还是从居鲁士算的区别。

11

段政权更替

埃兰、米底、阿契美尼德、塞琉古、安息、萨珊、伊斯兰化、蒙古与帖木儿、萨法维、恺加、巴列维,一个都不落下。

没换掉

的那几样东西

宗教改过,王位换过,征服者来过又走。波斯语、诺鲁孜节、把客人让进门这件事,一茬茬传了下来。

中国线

史书里那几笔

公元前 119 年张骞副使到安息,两万骑兵到东界迎接;萨珊末代王子卑路斯翻葱岭到长安,唐高宗给了官职。

这条片子借用的 Skill:Anatomy

wheresryan22/anatomy,作者 Ryan,MIT 开源。它不是一个视频模板,是一套给 coding agent 用的画图方法论:让 AI 把抽象原理做成一台能拆、能动、能读数的精密机器。

The object is the explanation — 对象本身就是解释。 仓库 README 的写法:A Claude skill that explains an idea by building it as a real, working object.

它到底能做什么

3 种

输出形态

纯 SVG:等距实心部件、四色阴影、卡片里带实时读数;SVG + WebGL:火焰、水、蒸汽、灯光这些线条画不出的效果;3D:真正能转的转盘与零件(README 标注仍是 beta)。

同源

数字不是摆设

图上每一个读数,都来自驱动部件运动的那一个模型。动臂抬起来,油缸行程、角度、水位跟着变,不是后期补上的装饰数字。

可交互

能拆、能拖、能停

鼠标与键盘都能驱动,明暗双主题;用户开了「减少动态」就整体静止;没有 WebGL 时 SVG 底图照样能读。还能导出 A4 海报与技术图纸。

自检

画完自己验

kit/audit.mjs 查部件穿透、端点落位和深度顺序;headless Chrome 截图、局部特写、拼版逐张检查,几何有问题在交付前就被挑出来。

零依赖

不用钥匙,不装包

不需要 API Key,也不需要 npm install,几何工具只用 Node 内置模块(Node.js 20.10+)。产出是可拥有的源码:构建脚本 + 页面,或 React 组件。

边界

它不是图表库

擅长机器、仪器、工具、家具;不画人物,不画精确地图。没有「可动的机制」的概念,效果会打折扣;生成过程有意偏慢。

装一下,一句话用

用 skills CLI 装到用户级(也可以直接在 Agent 对话里说「帮我安装这个 skill:wheresryan22/anatomy」):

npx skills add wheresryan22/anatomy -g -a claude-code

装完在 Claude Code / Antigravity / OpenCode 里用 /anatomy,Codex 里用 $anatomy:

/anatomy explain how a token bucket rate limiter works, interactive
/anatomy explain why the Earth has seasons, interactive

写提示词的诀窍是「说清要解释什么,别急着指定画成什么样」,再给真实数字、尺寸、速率,让 skill 自己去发明那台机器。

别人跑出来的三个案例

Agent / 模型案例形态耗时与成本
Claude Code
Opus 5.5
挖掘机液压机械臂:动臂升降、斗杆收伸、铲斗翻斗,三个油缸与液压原理图跟着动作实时变化3D + WebGL首版约 2 小时,精细版再加半小时
Codex电热丝式吹风机剖面:两档风速、三档加热、冷风切换,电热丝由灰渐变成橙红纯 SVG15 分钟
WorkBuddy
DeepSeek-V4.1-Flash
滚筒洗衣机:水离开衣物之后,究竟怎么排出机器;内筒转速与水位动态变化纯 SVG约 30 分钟,约 2 元 API 成本

以上三项来自公众号原文的实测记录,本页未复测;耗时与成本随模型和任务波动。

说句老实话:这条片子并不是 Anatomy 生成的等距机械图。借用的是它的理念与工作流 —— 先把真实年代、数字和史料口径核对一遍,再让一条时间线自己把政权更替「动」出来,配上旁白和字幕。画面由 Pillow 逐帧绘制(6,745 帧)、配音用 edge-tts、合成用 ffmpeg,全程代码完成,没打开过剪辑软件。想看 Anatomy 的原生产出,本站还有 13 张可交互等距图。

来源与延伸

片子的文本来源、Skill 的仓库、介绍它的那篇文章,还有站内已有的 Anatomy 实验,都在这儿了。

这条片子是怎么跑出来的

从文章到成片,五步,全部由代码完成。

  1. 先核对年代口径读原文的 11 章和文末史料清单,统一用公元纪年,个别系年差一两年的取大英百科与主流通史口径;当代部分沿用原文「新闻不是史料」的处理。
  2. 写成 34 段口播稿按幕拆句,一句话只讲一件事,年份与人名不改;片头片尾各留一段,收在「政权会倒,门一直开着」。
  3. 逐句合成配音edge-tts 中文男声 zh-CN-YunjianNeural,语速 -6%;按每句音频的真实时长排时间码,生成 SRT 与分镜表,字幕和旁白严格对齐。
  4. 逐帧画动态时间线Pillow 画米黄纸底、万国之门线稿、事件卡与 13 个政权节点;当前节点脉冲高亮,事件卡淡入,字幕逐句换,20fps 共 6,745 帧。
  5. 合成 MP4ffmpeg 把逐帧画面与音轨压成 H.264 + AAC,另导出封面图、SRT 和口播稿,得到一个可以直接上传的目录。
展开看完整口播稿(34 段 · 点任意一句跳到视频对应位置)

史料说明

年代口径:统一用公元纪年,公元前标明「公元前」;个别事件各家系年相差一两年(如居鲁士之死有前 530 与前 529 两说,泰西封陷落有 637 与 638 两说),沿用原文取大英百科与主流通史口径,不逐条出注。

原始史料:贝希斯敦铭文、XPa 铭文、居鲁士圆柱;《史记·大宛列传》《汉书·西域传》《旧唐书·波斯传》;希罗多德《历史》;菲尔多西《列王纪》。

工具书与通史:《大英百科全书》Ancient Iran / Darius I 词条;Encyclopaedia Iranica;Livius 的波斯波利斯与万国之门条目;剑桥伊朗史系列。

中文资料:中国驻伊朗大使馆经济商务处《伊朗历史沿革》;荣新江《欧亚大陆视野下的汉唐丝绸之路》;张西平《中国历史文献中所记载的伊朗》;贵州省政协文史资料《被遗忘的王朝·帕提亚帝国》。

当代部分:原文注明「离今天太近,还没有经过时间筛选,为的是把时间线接到 2026 年,不作判断」。本片沿用这一处理,只用一句口播交代边界,具体新闻段落请读原文。