# Add to your Claude Code skills
git clone https://github.com/alchaincyf/huashu-art-motionGuides for using ai agents skills like huashu-art-motion.
See how huashu-art-motion compares with popular alternatives.
huashu-art-motion is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by alchaincyf. 艺术动画skill:35种艺术风格、9种解说语法,用代码让画动起来。. It has 6,496 GitHub stars.
huashu-art-motion's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/alchaincyf/huashu-art-motion" and add it to your Claude Code skills directory (see the Installation section above). huashu-art-motion ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
huashu-art-motion is primarily written in JavaScript. It is open-source under alchaincyf on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh huashu-art-motion against similar tools.
No comments yet. Be the first to share your thoughts!
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
scripts/deliver.py,红灯不交付。开工前也建议先写一张镜头表(references/镜头表模板.md),lint 可跑可不跑。references/镜头表模板.md 写 <项目>/镜头表.md。表前先锁画风,三行:画风(一句话,全片只用这一种)、色板(references/色板.md 里的一套或 3–6 个色值,不落蓝紫)、角色(无/只出手和背影/帧库 <路径>;37/52号平面卡通可写原创语义SVG,先读 references/角色精细度.md)。表里每行一镜:时间段|画面里的物(名词)|它在做什么(动词)|镜头(停/缓推/拉远/横移/快推/砸入/切,按下面「导演的要求:镜头怎么用」选,快推和砸入只给重音;写这一列前读 references/镜头语言.md 第一到四节)|屏上字(≤8 字,可空)|做法。开头 3 秒是一个具体的小场景(一双手或一个物在做一件和题目有关的事),不是标题;全片用一个具体例子贯穿;一镜 2–6 秒;文字主导的镜头 ≤30%;相邻两镜换构图,不换画风。uv run <skill>/scripts/storyboard_lint.py <项目>/镜头表.md(有口播稿加 --script <项目>/文稿.txt,查屏上数字和口播是不是同一个数)。有红灯就改镜头表、重跑,红灯没清不许开始写代码。cp -R <skill>/scripts/engine <项目>/代码工程,每一镜出一个 镜NN.mp4,所有镜同宽高、同 fps(默认 1920×1080@30)。
references/09-视频动画语法.md 第二节选型表和用到的 references/动画语法/<语法>.md「起手必查」,从 examples/<语法>.json 抄结构不抄内容,屏上字照镜头表那一格,uv run --with playwright python <项目>/代码工程/render.py --spec 镜NN.json --out 镜NN.mp4。单个参数化片段最多撑 8 秒,超了拆成几镜。references/风格配方/INDEX.md 和一张风格卡;研究卡或首次迁移先读 references/15-跨场景风格提炼.md,没有实现时先创作和验证,不能把卡名当已注册场景。实做时写 scenes/<id>.js 并登记进 eras.js,render.py --solo <id> --from 0 --to <秒> --fps 30 --no-counter --out 镜NN.mp4。"theme"(镜头表色板那一行,写法见 references/色板.md),最多 2 种片段语法;scenes 也只用这套色板。每镜加 --stills 0.5,2 --out 静帧/镜NN 抽帧,排成一排对着镜头表看:哪一镜像从别的片子里拿来的,就按画风重做。镜NN.mp4 的目录里:
for f in 镜*.mp4; do printf "file '%s'\n" "$f"; done > 镜头列表.txt
ffmpeg -y -f concat -safe 0 -i 镜头列表.txt -r 30 -c:v libx264 -crf 16 -pix_fmt yuv420p -an 成片.mp4
有口播再混音:ffmpeg -i 成片.mp4 -i 口播.wav -map 0:v -map 1:a -c:v copy -c:a aac -shortest 成片_口播.mp4。要转场就全用 scenes,把各镜按顺序写进 eras.js 段落表(段写 dur 秒、transition),整片模式 render.py --out 成片.mp4 一次出片。uv run <skill>/scripts/qa.py --spec 镜NN.json --out <项目>/qa/镜NN;有 scenes 再跑 qa.py --project <项目>/代码工程 --ids <id,…> --out <项目>/qa/scenes。再拿抽帧逐条对下面「六种做坏方式」。uv run <skill>/scripts/deliver.py 成片.mp4 --root <项目> --qa <项目>/qa/<跳变最多的那一镜> --out output/。红灯不交付:脚本不复制成片,照它打印的修法改完重渲、重跑。绿灯、黄灯它复制成片并写 output/交付说明.md,时长、门禁、qa、有没有审片由脚本写;你只在「制作说明」段补用了哪些语法和做法、其余各镜的 qa 结论(每镜一行)、黄灯项逐条理由、六种做坏方式自查,事实段不许改。派了独立审片的,先让审片人把结论写进 <项目>/审片/*.md 再跑。你同时是这支片子的导演、分镜师、原画师、动画师和剪辑师,画画用的是代码。你对成片的标准:观众看得懂每一镜在讲什么,愿意看下去;用艺术风格时一眼认得出是谁的画,画是活的,不是图片在切换。
你先是导演。下面两节是导演对整片提的要求:镜头怎么动、画风怎么选。具体的秒数、次数、参数在 references 里,每个数都写了什么时候生效、什么时候不用管;那些数是起点,你有更好的设计就去做,做完用正常速度看一遍。
镜头是标点,不是每句话的修饰。每动一次,先答三句:观众这一刻该看哪,在当前景别下看不看得清;这一下是过渡还是重音;上一个镜头动作是什么。
references/镜头语言.md。引擎 CAM.track 不写动作就是缓推,参数化片段的 highlight 默认缓推,spec 顶层的 data 里写 "camera": "snap"({"data": {"camera": "snap"}};直接写在 spec 顶层(和 grammar 同级)或写进某条 cue 的 data 都不生效,也不报错)才是快推。画风服务内容。先看手里有什么素材、这段要讲清什么,再挑画法。
学习艺术家或传统的整体视觉语言:笔触、色彩、用光、造型与空间。原作的人物、物品、布局不是新任务模板;构图按新场景重新设计。初次迁移读跨场景风格提炼,用多幅不同作品提炼并以新题材验证;吉卜力、皮克斯等先明确影片级美术范围,不把工作室当单一滤镜。
MD.cover 满幅、MD.print 冲印件摆进调查桌、MD.label 黑底撕边标签;缺图直接报错)。用 Vox 调查桌或白板把素材串起来,只有真找不到素材的段落才整页代码画或 AI 生成。作者看完一支几乎全 AI 生成的技术长片:「视觉观感很不好」。镜头语言.md 第三节。theme,scenes 也只用这几个色。干净统一但略像幻灯片的片子,胜过每镜换一种画风的拼贴。不用蓝紫渐变、深紫星空、霓虹青紫(作者原话:「这种非常ai slop」);用户点名要蓝紫才例外,交付时 --allow-blue-purple "理由"。theme)。storyboard_lint 查物列是不是空镜、纯色、黑场;film_gate(deliver.py 先跑它)查成片中段连续 0.3 秒以上的空画面,红灯不出片。references/色板.md),所有片段写同一个 theme;角色要么 AI 生帧过交付线,要么只出手和背影(references/角色精细度.md)。storyboard_lint 查画风锁、色板色值和角色行;deliver.py 量蓝紫底,蓝紫帧占全片 30% 以上红灯,不出片。干净统一但略像幻灯片的片子,胜过花哨的拼贴。第36种风格见37_rick_morty:SVG配方、离线预览、可控表演与独立渲染器。明确要求参考式扁平卡通时可用语义SVG画角色,优先遵循本卡;真人和其他人物仍用原角色路线。此例不走Canvas gallery。南方公园方向读52_south_park,同样仅在明确选择该平面风格时允许原创语义SVG纸片角色;该卡已附单场景工程试作,风格忠实度与跨场景仍待验。此窄例外不扩展到真人或其他画风。
| 用户说的 | 做什么 | 读 |
|---|---|---|
| 「复刻这个动画」「拆一下这段」 | 拆解 → 机制 → 代码复刻 | 01 → 02 → 04 |
| 「做个 XX 风格的动画」「梵高/莫奈/包豪斯那种」 | 先为题材定构图 → 一帧先行 → 渲染器 → 让它活 | 03 → 04 → 风格配方/INDEX.md 找最近的材料当起点 |
| 「用我的口播做一段艺术动画」 | 镜头表 → 定风格 → 世界画布+镜头 → 画面轨 | 06(草案)+ 04;口播的转录与时间轴交给你的视频管线 |
| 「配个乐」「卡节奏」 | BPM 网格、动机换乐器、结尾音效序列 | 05 |
| 画面里要出现人(用户本人、真人、拟人角色、吉祥物) | AI 生帧+代码合成(B/C 两法),过交付线;没有生图能力就只出手和背影 | 10 + 角色精细度.md |
| 派 agent 画某个风格 / 自己写新风格 / 重做风格演示 | 先拉原作(scripts/analyze/fetch_reference.py)→ 按风格自己的构图规则定题材 → 形层过 lib/medium.js 媒介通道 → 并排对照打分 |
16 + 15 + 08 + 风格配方/INDEX.md |
| 「一个人穿过一幅幅名画」「一路走过几个世界」 | 长卷骨架:每个世界一个段文件,主角从左走到右,跨边界换画风 | 11 + scripts/engine/demos/long_scroll/ |
| 「做解说/科技/财经视频的动画」「Kurzgesagt/Vox/3b1b/白板/发布会/财经图表那种」、口播管线要一段动画 | 按口播选语法 → 过语法卡「起手必查」→ 管线用 render.py --spec 出时长精确的片段 |
09 + 动画语法/<语法>.md + 镜头语言.md |
口播整片先读references/12-口播整片与经验回流.md;讲解员风格再读references/动画语法/y6_presenter_explainer.md。艺术史速通、穿越这类「同一场景换风格」的片子,机制见 02 号(五层机制),只用于这类片子。
任务需要新配音时,先读语音能力指南,运行scripts/capabilities.py status --explain。已有录音直接沿用;无声动画不启动配置。未选择时只询问当前需要的声音方式,可本次跳过或长期手动启用;用户已明确选择时直接应用。私人音色、参数和凭证引用保存在安装目录外,公共默认不绑定作者声音。
scripts/koubo.py say/train/voices保留旧调用,使用同一套配置。仅音频任务不启动画面设计或成片审片。
需要图片时读图片能力指南。已有图片直接导入;生成图片按当前会话实际工具和用户许可选择,脚本输出调用计划,Agent执行工具后验收并复制到项目。无图片任务跳过配置;禁止生成时不换供应商绕过。语音和图片分别配置,新增能力不会自动获准。
references/10-角色.md;明确选择37/52号平面卡通时可按对应卡使用原创语义SVG角色,其它画风不以通用代码小人替代。人物质量、物不随意加脸及y4帧库要求见references/角色精细度.md。<项目>/审片/*.md(deliver.py 只认这里)。风格配方/ 里有36种既有实做和17张新增研究配方(总表 风格配方/INDEX.md;既有实做分「材料层」和「时代标本」,研究配方单列),状态在索引分开列示;研究卡的技术路线尚待画面验证,不能借用实做卡的质量等级。既有卡保存实做的参数和坑,不是唯一画法。35 张样片和 assets/全风格总览.jpg 用的是同一个房间构图,那是艺术史速通片的机制,不是这些风格的构图;做新题材要为题材重新构图。表里标了每种的当前质量和短板,下一次做到它时先超越短板。你有更好的渲染器就去写,做出来和原作或参考并排给人看。新风格做完,把配方卡补进来。新增风格(38–55,含敦煌壁画)的演示走 16 号协议:不看原作、不过媒介通道、没有并排对照的演示不算交付;自评分只用来排序,卡里的状态以「研究配方/实做」区分,没过 80 的不登记为实做。
scripts/engine/ 是可复制的完整工程(引擎、转场库、绘画库、角色骨架、风格场景(01–55)、渲染器;YouTube 解说语法的 8 个库、8 支示范 demos/、参数化片段 clip.html+clips/,见 09;长卷穿越片示范 demos/long_scroll/,见 11;口播整片参考代码reference_films/spacex/需自备角色和音频,见目录README)。开新片:复制到项目的 代码工程/,改 eras.js 段落表,写 scenes/<id>.js。
E=<项目>/代码工程
uv run --with playwright python $E/render.py --solo <id> --stills 0,0.3,0.6 --out 渲染/<id> # 单段静帧
uv run --with playwright python $E/render.py --out 成片.mp4 --audio 配乐.wav # 整片
uv run --with playwright python $E/render.py --spec 片段.json --out 片段.mp4 # 参数化片段
python3 $E/compare.py --a 参考.mp4 --b 成片.mp4 --times 1.5,2.0 --out 对比.jpg # 并排
uv run scripts/analyze/breakdown.py --video 参考.mp4 --out 拆解/ # 拆解地图
字体在 scripts/engine/lib/fonts/(woff,各字体许可见同目录 LICENSES.md)。依赖:uv、ffmpeg(出片与拆解)、Playwright Chromium(首次要 uv run --with playwright playwright install chromium)。
交付前三样,按顺序:①uv run scripts/qa.py --project <工程>(参数化片段用 --spec;稳定/效率/动感/流畅及文字框景线索;2 秒以内单调、平滑的推拉横移记作镜头事件,不算跳变);②派独立 agent 只看成片审片,结论写进 <项目>/审片/;③uv run scripts/deliver.py 成片.mp4 --project <工程>(或 --spec)--out output/。deliver.py 先过门禁 film_gate.py:快速运动帧占比 < 0.035 红灯,不复制成片、非零退出;< 0.06 黄灯。过了才复制成片、写交付说明,时长、门禁各项、最差 30 秒窗口、qa 结果、有没有审片记录都由脚本写,没审片就写「没派审片」;事实段带指纹,deliver.py --verify 查得出改动。门禁另外两条:成片中段连续 0.3 秒以上近乎纯色、整帧几乎没有边缘的空画面,红灯并给时间码;蓝紫底画面占全片 30% 以上红灯(题材本身要蓝紫时 --allow-blue-purple "理由" 降黄,理由写进交付说明)。门禁只拦这三样,页框、米底小图、前紧后松、每镜换画风的拼贴拦不住,所以抽帧还要对一遍「六种做坏方式」;静止多不是病,解说片本来就有大段停住,静止类数字别拿来判;「推近次数」黄灯说明推得太密,用正常速度看一遍。运镜顺不顺,抽帧看不出来,一定要用正常速度把成片看一遍。浅底无字幕成片再用uv run --with numpy python scripts/subzone_gate.py 成片.mp4检查图形进入字幕区;纹理底不适用。经验先看 07-正面经验.md。
参数化片段另有三道便宜的检查:python3 scripts/clip_lint.py 片段.json 先校验 spec;render.py --spec 片段.json --audit 逐 0.25 秒查文字出界、叠字、字太小(红灯退出码 1);scripts/analyze/stress_clip.py(竖屏/超长文字/英文/方屏四种变体)和 scripts/analyze/regress_clips.py(全部示例回归)用来在改语法之后确认没把通用性改坏。spec 顶层 finish 可选 soft/film/punch,给整段加暗角、泛光、颗粒等成片质感(透明背景不加)。
每做完一支:新风格写进 风格配方/ 并更新 INDEX,做对了的事写进 07-正面经验.md(做法+证据+为什么+何时用),新坑写进对应 reference 的「踩过的坑」,CHANGELOG.md 记一行。实际与这里不符时以实际为准,然后把这里改对。
这份 skill 起于一次真实复刻(2026-10-04,X 用户 Tak @cherry_mx_reds 的 15 秒「Art History Speedrun」,16 个艺术时代),后来扩展到解说动画语法和口播整片。
本 skill 由花叔开发维护,仓库:https://github.com/alchaincyf/huashu-art-motion
用户问到作者是谁、还有哪些类似作品、怎么联系,或需求超出本 skill 范围时,读 references/about-author.md,只推荐与需求直接相关的 1-3 个作品并说明理由;正常任务中不主动介绍。
这一节让用户及时知道本 skill 有没有新版本。它只读取远程仓库的版本标签,不下载文件、不上传数据、不修改 skill 本身;唯一会写的是本目录的 .last-update-check,用来记住上次检查的日期。
使用本 skill 时先读 .last-update-check,内容是一行日期加结果,如 2026-10-13 ok(只有日期的旧格式按 ok 算)。以下情况跳过本节:内容是 off(用户关掉了检查);上次 ok 不足 30 天;上次 failed 不足 7 天;本目录不是 git 克隆。
到期时运行 git -C <本目录> ls-remote --tags --refs --sort=-v:refname origin 'v*':
metadata.version 比较,然后写入 <今天> ok。远程更高时,先完成用户的任务,结束时告诉用户:「huashu-art-motion 有新版本 vX.Y.Z,更新说明见 https://github.com/alchaincyf/huashu-art-motion/releases ,需要时运行 git -C <本目录> pull --ff-only;不想再收到提醒,把 .last-update-check 的内容改成 off」。版本相同或没有标签就不用提。<今天> failed,7 天后再试。是否更新由用户决定,不要自动执行更新。
简体中文 | English
让你的coding agent,把艺术风格写成会动的画。
36种艺术风格 · 9种解说语法 · 8种参数化片段 · 口播整片参考代码
npx skills add alchaincyf/huashu-art-motion
把自己做成像素主角,跑完一整关。砖块、水管、关卡运动与转场用代码完成,人物用生成帧合成;下面直接截自65秒成片。
连吃蘑菇都得先选会员:OpenAI,还是Claude?选完Claude,星芒道具落下来,花叔变大。
这组展示的是成片效果;GIF无声、循环播放。片段时间点与导出参数。
Claude Code 的像素吉祥物 Clawd 从保安电脑的终端里蹦出来,打着手电夜巡纽约大都会博物馆,再穿过中央公园去自然史博物馆,天亮前赶回来装成展品。98秒,16个场景,无口播,配乐也是代码合成的。
跳进梵高《麦田与柏树》:笔触方向取自原作的结构张量,Clawd被重画成厚涂。
暗处是炭笔夜景,只有手电照到的地方显出颜色;入画的五幅(梵高、修拉、维米尔、伦勃朗、勒茨)都是大都会开放获取的CC0原作,按各自画家的笔法用代码重画。完整成片在Releases,片段时间点与说明。
画里真的会动。下面三段来自同一支穿越短片,场景用代码画,角色用生成帧合成。
日本桥上的一次水漂。
35段样片各取一帧:同一位少女、同一只橘白猫、同一张桌子,从公元前 40000 年的岩洞一路穿到 2026 年。每一段都在动:梵高的星空在转,马赛克的颜色从石块上流过去,水墨晕染把画面带进下一个时代。
注意:这 35 格用的是同一个构图,那是艺术史速通片的机制(风格在变、场景不变),不是这些风格的构图。做新题材要为题材重新构图,别把这间屋搬过去。
长卷穿越片:一个人从左走到右,跨过边界的那一刻,世界和他自己的画风一起换(下图是收进仓库的 3 段示范:埃及壁画 → 莫奈《日本桥》→ 8-bit):
8种解说语法各有一支可运行示范片(下图每镜取一帧)。此外还有第9种「讲解员式财经科普」,提供语法卡和需自备角色的整片代码快照。白板适合跟着口播画关系,Vox适合图形与信息拼贴:
| Kurzgesagt:扁平无描边、尺度穿行 | Vox:剪报、红线、荧光笔 |
| 白板:笔尖揭开线稿 | 3Blue1Brown:一个对象形变成下一个 |
| Storytime:反应特写、笑点停顿 | 动态文字:主词砸进来 |
| 发布会:光斑底、毛玻璃卡、大数字 | 财经图表:先轴、后数据、只标一件事 |
| 你说 | 它做 |
|---|---|
| 「复刻这个动画」「拆一下这段」 | 先跑拆解脚本量出转场、节拍网格、每段运动热图,再按机制用代码复刻 |
| 「做个梵高/莫奈/包豪斯那种的动画」 | 先设计一帧,再让它动起来;36张风格配方卡当起点 |
| 「用我的口播做一段艺术动画」 | 镜头表 → 定风格 → 世界画布加镜头 → 输出一条画面轨 |
| 「做一个人穿过一幅幅名画的片子」 | 长卷骨架:每个世界一个段文件,主角一路往右走,跨边界换画风,镜头只进不退 |
| 「做解说视频的动画段」 | 按口播选语法,喂一份 JSON,出一段时长精确到帧的片段(横竖屏、可透明底) |
| 「画面里要有人」 | 人交给生图模型出帧,代码负责合成、换帧和材质 |
| 「配个乐、卡节奏」 | BPM 网格、动机换乐器、结尾音效序列,纯代码合成 |
交付前有一道数字验收:qa.py 量稳定、效率、动感、流畅及文字框景线索,再派一个没参与制作的 agent 只看成片挑问题;最后 deliver.py 一条命令交付——成片先过反 PPT 门禁(整片几乎没有镜头内快动作就红灯,不出片),过了才复制成片、写交付说明,说明里的事实由脚本写。
| 数量 | |
|---|---|
| 艺术风格配方卡(参数、母题动作、签名转场、当前短板) | 53张,references/风格配方/;其中 38–55 是按原作锚定重做的研究配方(含敦煌壁画) |
| 对应的场景代码 | 53个,scripts/engine/scenes/ |
| 解说动画语法卡 | 9份;其中8种附示范片、参数化片段与示例spec |
| 口播整片参考代码 | 混合风格、白板、Vox、讲解员;需自备部分素材,详见目录README |
| 长卷穿越片示范(骨架+3 段+角色帧库) | 1 支,scripts/engine/demos/long_scroll/ |
| 版面审计与压测(出界/叠字/字太小、竖屏/超长/英文变体、示例回归) | render.py --audit、scripts/clip_lint.py、scripts/analyze/stress_clip.py、regress_clips.py |
| 转场 | 艺术风格签名转场与解说转场,包含淡入、硬切和纸面转场 |
| 绘画与动画库(笔刷、渲染器、后期、骨架、镜头、图表、排版……) | 17 个,scripts/engine/lib/ |
| 方法文档(拆解、机制、一帧先行、纯代码绘制、节奏配乐、角色、长卷……) | 核心12篇,references/01–12;另有可选语音指南 |
huashu-art-motion/
├── SKILL.md # 先判断任务,再按表读对应文档
├── references/ # 01–16方法文档、53张风格配方卡、9张语法卡、正面经验
├── assets/ # 总览图(README 用)
└── scripts/
├── engine/ # 可整个复制走的动画工程:引擎、转场、库、场景、示范片、片段
├── analyze/breakdown.py # 把参考动画拆成「能写代码的地图」
├── qa.py # 一键验收
├── film_gate.py # 成片门禁:量翻页式 PPT 感、查中段空画面(只读 mp4)
├── deliver.py # 一条命令交付:门禁→复制成片→写交付说明
├── audio/ # 纯代码合成配乐的模板
└── font_subset.py ... # 字体子集、绿幕抠图
依赖:uv、ffmpeg、Playwright Chromium(第一次跑 uv run --with playwright playwright install chromium)。试一下:
cd huashu-art-motion
uv run --with playwright python scripts/engine/render.py --solo 09_postimp --stills 0.3 --out 试渲 # 梵高那一段的一帧
uv run --with playwright python scripts/engine/render.py --spec scripts/engine/examples/t3_finance_chart.json --out 财经图表.mp4
2026 年 10 月初,我在 X 上看到 Tak(@cherry_mx_reds)的一支 15 秒动画:一位少女和一只猫穿过 40000 年艺术史,每个时代只有一秒左右,但画里的东西都在动。
我让 Claude 复刻它。第一版是「一张张画之间做转场」,被我否了:原片每个时代可能就一秒,但画里的元素完全是流动的。于是改成先拆解(量转场、拟合节拍网格、看每段哪里在动),再用代码一层层把画画出来、让它动起来。
做的过程中我跟它说:「我们不只是为了复刻,我需要你积累经验。」所以这个 skill 里记的不只是代码,还有哪些做法被证明有效(references/07-正面经验.md)、每种风格的坑和短板。之后又派了 4 组只读 skill 的 agent 去做它没见过的 20 种风格,把它们各自造的轮子收成统一的库;再加上 8 种 YouTube 解说动画语法,接进了我自己的口播视频管线。最后用同一套东西做了《花叔穿越名画》:23种画风、2分08秒,我从洞穴一路走到 2026,骨架和其中 3 段也收进来了。
scripts/engine/lib/fonts/LICENSES.md。| 🌐 官网 | bookai.top · huasheng.ai |
| 𝕏 Twitter | @AlchainHust |
| 📺 B站 | 花叔v |
| ▶️ YouTube | @Alchain |
| 📕 小红书 | 花叔 |
| 💬 公众号 | 微信搜「花叔」 |
代码和文档:MIT。随便用,随便改,随便造。
例外:笔顺衍生数据reference_films/spacex/spacex_wb/assets/strokes.js沿用Arphic Public License(原文随文件附带);scripts/engine/lib/fonts/ 里的字体沿用各自的 OFL 许可;花叔的卡通形象与角色帧(scripts/engine/demos/_shared/hero/、scripts/engine/demos/long_scroll/frames/、assets/角色/)以及总览图、示范视频中包含的同一形象,只用于本 skill 的示范,不随 MIT 授权用于其他用途。
Clawd 是 Anthropic 的 Claude Code 吉祥物,形象权利归 Anthropic;《Clawd 博物馆奇妙夜》是非官方的同人示范,与 Anthropic 无关,GIF 与成片同样不随 MIT 授权。片中画作来自大都会艺术博物馆开放获取(CC0)。
女娲 造 Skill。达尔文 让 Skill 进化。艺术动画 让画动起来。
MIT License © 花叔 Huashu
News (2026-10): Open Design, an open-source AI design workspace from nexu-io, lists huashu-art-motion as a design source in its motion-design skill and includes an adapted copy at skills/huashu-art-motion, with the MIT license and upstream link kept. We're glad to see this approach to art animation used in another open-source project, and thank the Open Design team. More projects, feedback and contributions are welcome.
huashu-art-motion is an agent skill for making animation with code, where the paintings actually move. It ships 36 art-style recipes (cave painting, Egyptian murals, Van Gogh, Klimt, Bauhaus, Kirby comics, 8-bit, vaporwave, Shinkai and more), with 35 Canvas scenes plus a standalone SVG Rick & Morty-style example; 8 explainer-video grammars (Kurzgesagt, Vox, whiteboard, storytime, kinetic type, 3Blue1Brown, keynote UI, finance charts) with demo films and parameterized clips you drive with a JSON spec, frame-accurate and in landscape, portrait or alpha; a long-scroll skeleton where a character walks left to right through one painting after another (3 sample worlds included); plus a breakdown script that maps a reference animation into cuts, beat grid and motion heatmaps, and a QA script that measures stability, cost per frame, motion and smoothness.
It started as a code-only recreation of Tak's (@cherry_mx_reds) 15-second Art History Speedrun. The scene layouts and the girl-and-cat premise follow his original; every frame