AtomCut 最初只是用来做文字动画的工具,如今已发展成浏览器端的无限画布加多轨时间线:可对任意元素打关键帧、用水彩笔刷绘制、跟踪运动、添加跟随语音的字幕,并导出 MP4、GIF、SVG 或 Lottie。免费、无需账号、支持离线使用。
作者分享了背后的架构思路:描述动画内容的部分放在不含 DOM 和 React 的纯包中,展示与编辑逻辑放在应用层。项目是单个 JSON 文档,用 zod 校验并带版本号,当前 schema 版本 71,所有迁移仍可运行,早期项目也能打开。渲染帧是纯函数,播放、拖动、MP4/PNG 序列/Lottie 导出都调用同一函数,不存在预览与导出渲染器分叉的问题。撤销基于补丁而非快照,成本与改动大小成正比。
真正难的不是 36 种图层特效——特效本质是着色器加设置卡片,关键帧引擎已能驱动任意数量。难点在于两类正确事实互相冲突的场景:
裁剪视频时窗口与内部画面都可移动,若存成单一变换加四个内边距,关键帧间的重取景会明显漂移。修复方案是窗口与内容各用一套变换,内容变换不读取裁剪值。
镜像图层本质是负缩放。作者曾用 flipX 标志,标志加符号两个字段描述同一事实,跨翻转插值时互相矛盾,删除标志后相关 bug 一并消失。
帧率是网格而非时间。项目没有全局 fps,每个合成自带帧率,只做量化:标尺刻度、方向键步进、导出迭代都基于它。60 fps 合成里的 12 fps 翻页书每格停留 83.33 ms,无重采样就不会漂移。
每次改动须先在公开 changelog 写一行「用户现在能做什么以前做不到的事」,写不出就不发布。约一半已开始的改动因此被砍掉。
局限在于浏览器渲染难以胜任两小时 4K 时间线,重度素材仍不如原生剪辑软件。免费版导出上限 720p,一次性付费 29 美元解除限制,非订阅制。后续计划包括实时协作、可操作时间线的编辑器内助手,以及开放插件 SDK。无需注册,打开 app.atomcut.net 即可使用。
🔗 原文:点击查看

