mcpField
L
livecanvas

livecanvas

github.com/pengchujinCreative & media53692 installsUpdated 3w ago
Repository

About livecanvas

LiveCanvas is a skill for turning a request or source material into evidence-based animated cards, using charts, images, and scene-based storytelling. It guides research, Remotion production, validation, and packaging as an Apple Live Photo resource.

Key features

  1. 01Extracts key facts and verifies sources
  2. 02Plans scenes and visual storytelling
  3. 03Creates Remotion animations
  4. 04Validates data, visuals, and renders
  5. 05Packages Apple Live Photo resources
  6. 06Delivers previews and project files

Use cases

  1. 01Animate verified data comparisons
  2. 02Turn a report into a narrated visual sequence
  3. 03Create themed cards with images and motion
  4. 04Deliver a preview alongside a Live Photo resource package

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/pengchujin/livecanvas --skill livecanvas

After installing, type/livecanvasin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
agents/
openai.yaml
assets/remotion/
data.json
package-lock.json
package.json
render.mjs
tsconfig.json
assets/remotion/src/
index.tsx
references/
data.md
design.md
direct-delivery.md
portable-live-photo.md
production.md
visual-assets.md
scripts/
package_live_photo.py
pair_live_photo.py
pair_live_photo.swift
test_portable_live_photo.py
validate_data.py
verify_live_photo.swift
scripts/portable_live_photo/
__init__.py
apple.py
iso_bmff.py
LICENSE
NOTICE

Details

From the project README

LiveCanvas · 实况画布

把用户的一句话变成有证据、静态可读、动态能讲清内容的实况动效卡。原名 LiveChart,现名 LiveCanvas(实况画布),覆盖图表、图片与场景叙事;默认主动设计与主题相关的图片/图标和场景动作,图表只是可选表达。默认中文、Remotion、1080×1440、30 fps、约 3 秒、无声。这些是起点,允许按内容调整;3 秒不是声称的苹果格式限制。

先定内容,再定动效

  1. 从请求提取主体、指标、时间范围、比较关系、用途;给定文章或报告时先读完整材料,再提取关键事件、变化、能力、对比与场景。按内容重要性分配篇幅,不只挑价格或易展示的数字。具体需求优先,不把用户给的例子当成固定模板。
  2. 搜索并核实数据,读 数据与口径。先保存原始证据、事实或结构化数据,再写标题、数字与注释。无时间序列的主题可以用事实卡、过程或场景解释;不能为了画图虚构数据。
  3. 写简短制作说明:整套内容主线、每张的主体与结论、事实/数据口径、封面信息层级、分镜时间表及素材计划。张数依用户要求和内容决定,不固定为某个数量或主题组合。选出适合该主题的表达,不默认折线图加数字。直接做设计判断;仅当缺失信息会实质改变答案时提问。
  4. 按 封面与动效 制作。吸收 Emil Kowalski animate 的有目的、克制、连续、节奏清晰原则;用户已指定 Remotion,不执行上游的工具替换步骤,也不把交互组件时长限制机械套到解释性视频。

文案:直接写事实与数据

  • 标题优先写“主体 + 数字/变化/明确结论”,例如“输出上限 1M tokens”“首发任务成本低 39%”“Text Arena 暂列第一”。没有必要的数字时,直接写产品名、版本或具体事件,不硬凑数据。
  • 用简短、直观的陈述,删掉空泛宣传、设问、比喻、对仗和装饰性英文标签。不要用“重新定义”“读懂三个变化”“让收益落到真实场景”等句子代替事实。正文与配图描述也遵循同一标准;来源写清机构名,如 Artificial Analysis,不只写 AA。写法示例与限定条件见 封面与动效。
  • 用户说“AI 味太浓”“直接上数据”“不要花里胡哨”时,优先精简文案与无关装饰;保留原有主题、信息、必要素材和已选设计方向,不擅自删除主体封面、合并主题或把整套改成同一数据模板。
  • 修改时保留已确认的主题、信息与视觉要求。用户改变张数或重点时重新分配内容,并说明合并、替换与复用关系;不靠机械拆页或重复主题凑数。按图编号核对改版前后内容,总包按不同内容去重。

视觉表达

  • 封面以产品名、版本号或核心对象建立视觉主次。“登场感”“冲击力”等是效果描述,不直接当成画面文字;具体做法见 封面与动效。

  • 整套统一配色、字体和图形语言,按内容选择构图。用图形解释事实与关系,避免堆文字、大数字、装饰卡片或机械复用同一模板。

  • 默认让主题中的对象出现在画面中:产品 PNG、咖啡杯、汽车、列车、奖牌、城市照片、天气 emoji 等;挑选与内容有关的一组统一风格素材,不是给图表角落贴装饰。

  • 设计对象的入场、运动、排列、替换或状态变化来解释内容。例如列车驶过年份节点、咖啡杯带出门店卡片、城市画面随季节切换。

  • 按主题组合场景、图片对比、图标阵列、时间线、过程演示、重点文字和必要图表。纯图表只在确实最清楚或用户指定时采用。

  • 使用图片或 emoji 时读 图片与图标,负责找素材、检查可用性并加入工程;无需让用户先提供素材才开始。

搜索默认值

  • “最近 3 年”:截至最新可靠已完成观测日的滚动三年,注明首尾实际日期,不默认成三个年末值。月度图用已完成月末观测;最新未完成月只能单独注明。
  • “全年温度”未给年份:采用最近一个完整自然年,默认月平均气温;在结果开头说明选择。若意图明显是常年气候,使用有明确基准期的气候平均值。
  • 跨公司比较对齐观测日期、指标、币种,或明确使用同基期指数,保留原始绝对值。
  • 允许涨、跌、持平、季节循环。不要因用户说“增长曲线”而把下降画成增长。
  • 日期按用户时区解析,不用机器日期硬编码“今年”。

制作与封装

读 运行与交付 和 直接交付。资源路径相对于本 skill 目录;称该绝对路径为 SKILL_DIR。

  • 把 assets/remotion/ 作为渲染工程起点复制到本次目录,使用随附锁文件 npm ci。其中折线图只是示例,应按分镜重写 composition,不是默认成品版式。不要在已安装 skill 内生成输出或安装依赖。
  • 示例 data.json 为合成数据,只用于测试。正式制作需替换数据和文案,去掉示例标记前完成事实核查。
  • 时间序列使用 scripts/validate_data.py 检查日期、来源引用、覆盖和范围;其他内容按 数据与口径 使用匹配的事实/比较结构,不硬套日期序列。校验通过不代表来源事实已核实。
  • 所有动画由 useCurrentFrame() 驱动;禁止 CSS animation、墙钟、未固定随机数、网页图库自带动画。
  • 将图片、emoji、文字、场景与图表纳入同一分镜,保留可追溯事实、静态封面、确定性渲染与验证流程。
  • 从同一 composition 的完整停留帧导出 cover.jpg,记录 coverFrame / fps。封面画面必须出现在动画内,still-image-time 指向同一时间。
  • 按生成环境选择配对器:macOS 可用 scripts/pair_live_photo.swift;Linux / Windows 使用 scripts/pair_live_photo.py,读 跨平台 Apple Live Photo。两条路径都将无声 H.264 与 JPEG 写成包含共享标识和 timed metadata 的 Apple 配对资源。这是中间步骤,不算交付完成;其他输入先转码,不默默丢弃用户音轨。
  • 封装完成后禁止再次普通转码 paired MOV,否则可能丢失元数据轨道。
  • 用 scripts/package_live_photo.py 生成命名明确的单个 .pvt 包;将其标为实况资源包,不承诺 iPhone「文件」App 可直接预览;不自动打开或导入「照片」App,不修改照片库。不得停在 JPG + MOV 配对资源。

验证与完成标准

先检查事实和素材,再预览封面和视频:抽查开始、主要动作中段、转场、数据极值(如有)和封面停留帧;检查图片加载、emoji 字形、透明边缘、中文字体、标签遮挡、数值同步、单位日期与裁切。确认动作在解释主题,而非只有数字和条形变化。真实曲线不使用引入虚假峰谷的平滑;缺测处断线。成套核对重要内容和比较关系是否保留、封面主体是否明确、风格是否统一;数字滚动检查中间帧与最终值,静态封面必须完整可读。

分别记录状态,不把前一项当作后一项成功:

  1. 数据与来源核实;机器校验只是其中一部分。
  2. 封面和 MP4 渲染完成,素材与主要动作可见,元数据及画面检查通过。
  3. Live Photo 标识匹配、timed metadata 时间位置正确。
  4. 有 Apple 环境时记录 PHLivePhoto.request 本机加载成功或具体失败;纯 Python 生成环境记为 not_available,不要伪造通过。
  5. .pvt 包完整、配对资源哈希一致。
  6. 相册导入、设备播放、第三方平台上传及锁屏兼容性均为可选事项,只有用户另外明确请求时才操作并记录,不作为文件交付的前置条件。

没有 macOS 时执行跨平台 Python 配对与打包,不能仅因操作系统退回 MP4 + 封面。元数据读回、视频解码和包完整性通过即可交付资源;Apple 本机加载、iPhone 导入/播放分别记录。缺少实际依赖且无法安装时才交付预览并明确阻塞项,不声称平台无法生成。生成文件不证明手机预览、保存或播放成功。

交付

每个主题独立目录,同时提供可直接观看的预览和 主题名称.pvt 实况资源包,保存 delivery.json。另保留 data.json、原始证据、sources.md、含本地素材的可编辑 Remotion 工程、素材清单 assets.json(使用素材时)、cover.jpg、motion.mp4、内部 live/ 配对资源及 manifest、qa.json。压缩包只用于传输,不是可直接识别的 Live Photo。

优先展示可观看的封面/动态预览,另附 .pvt 资源包链接、数据截止日及验证状态。用户要求手机直接预览时,核实其接收路径;不能仅凭文件包生成或本机加载成功宣称已满足。传输界面不支持目录包时附 .pvt.zip,注明解压后得到资源包,仍需支持 Live Photo 的应用读取。网页 LivePhotosKit 预览与保存为原生实况照片是两项能力,未实现的能力不承诺。封面和 MP4 只能标作预览;聊天界面不能原生展示 Apple 实况时简短说明。不要把“直接交付 Live Photo”解释成导入相册,不索取照片库权限,也不自动打开可能触发导入的 .pvt。未经请求不发布到社交平台。

示例触发

  • “用 LiveCanvas 做小米最近三年的市值变化。”

  • “苹果和小米近三年市值做成两张实况图,风格统一。”

  • “把北京去年的全年气温做成 Live 图,封面也设计好。”

  • “把这份数据做成会动的信息图,导出苹果实况照片。”

  • “用咖啡杯 PNG 和门店卡片,做瑞幸与星巴克的扩张故事。”

  • “用列车、年份节点和里程数字,做中国高铁的实况动效。”

Comments

Markdown supported