PatternGen 是一个面向动态图形与标题卡设计的开源程序化图案生成工具链。它支持在浏览器中围绕标题元素生成可控的 SVG 图案、色块和脉冲点动画,并导出分层 PNG 序列;同时提供 Figma 插件用于导出设计场景 JSON,提供 Blender 插件用于将导出的序列作为发光图像平面导入 3D 合成流程。项目使用 React 18、TypeScript、Vite、Canvas 2D、Zustand、JSZip 等技术构建,适合用于创意编码、Motion Graphics、片头设计和视觉包装工作流。
适用领域
动态图形设计 / 创意编码 / 程序化视觉生成 / 标题卡 / 片头设计 / Figma 插件开发 / Blender 合成工作流 / Web Canvas 动画 / 前端图形工具
配置难度
中等。普通前端开发者可以较快运行 Web 应用;设计师使用现有功能难度较低。但要深度定制 SVG 动画、修改 Canvas 渲染逻辑、维护 Figma/Blender 插件或集成到生产管线,需要一定的 TypeScript、图形渲染和创意工具链经验。
商业价值
对设计工作室、品牌视觉团队、视频包装团队和创意技术团队有较高实用价值。它可以把标题版式、程序化图案动画和后期合成连接起来,缩短动态图形素材制作周期,并支持可复现的视觉变体生成。由于采用 MIT 协议,适合二次开发为内部工具、活动视觉生成器、品牌动态模板系统或自动化视频资产生产流程。不过作为商业级工具使用前,需要补充内置图案库、稳定性测试、批量导出能力、配置化项目管理和更完善的文档。
01
技术亮点
- 完整工具链:覆盖 Figma 设计、浏览器动画生成、PNG 序列导出、Blender 合成导入。
- 确定性生成:基于随机种子,同样的 seed 可复现同样的图案布局。
- 分层导出:titles、patterns、dots 分别导出为透明 PNG 序列,方便后期独立调色和合成。
- 自定义图案扩展简单:通过放置 SVG 并注册动画类型即可扩展图案库。
- 浏览器内完成动画预览和序列导出,无需复杂原生渲染环境。
- 使用 MIT 协议,商业和个人项目使用限制较少。
- 前端技术栈现代:React 18、TypeScript、Vite、Zustand,便于二次开发。
- 适合与设计工作流集成:Figma 到 Web 再到 Blender 的路径对动态图形设计师友好。
02
目标用户
- 动态图形设计师
- 视觉包装设计师
- 创意开发者
- 使用 Figma 设计标题版式的设计师
- 使用 Blender 做合成或三维视觉呈现的艺术家
- 前端工程师和 TypeScript/React 开发者
- 需要快速生成动画图案素材的内容创作者
- 研究程序化图形生成的学生或独立创作者
03
配置要求
- 需要 Node.js/npm 前端开发环境。
- 主应用基于 Vite,默认开发端口通常为 5173。
- 自定义 SVG 图案必须遵循 40×40 px viewBox 约定。
- SVG 背景应使用 fill="white",前景形状应使用 fill="black" 或 stroke="black",以便运行时重新着色。
- 新增图案后,需要在 src/core/patterns.ts 中注册文件和 animType。
- 支持的图案动画类型包括 dots、capsule、circle、arrow、square、stripes、cross。
- Figma 插件主要面向 1920×1080 Figma Frame 导出场景 JSON。
- Blender 插件用于导入 Web 应用导出的 ZIP,并生成带 alpha 混合的发光图像序列平面。
- 导出 PNG 序列时会生成 4 倍分辨率图像,可能对浏览器内存和性能有一定要求。
04
适用场景
- 为片头、标题卡、活动视觉或品牌宣传视频生成动态图案背景
- 在 Figma 中设计标题布局后导出到 Web 工具进行动画化
- 生成可重复的、基于随机种子的图案布局,方便版本迭代和复现
- 导出 titles、patterns、dots 三层透明 PNG 序列,用于后期合成
- 将 PNG 序列导入 Blender,作为 emissive image sequence planes 进行 3D 合成
- 制作实验性视觉海报、动态图形素材、舞台屏幕视觉或社交媒体短片素材
- 基于自定义 SVG 图案扩展自己的视觉语言和品牌图形系统
- 作为学习 React + Canvas 2D + TypeScript 图形应用架构的参考项目
05
部署与配置
- 确保本地已安装 Node.js 和 npm。
- 克隆仓库:git clone <repo-url> patterngen
- 进入项目目录:cd patterngen
- 安装依赖:npm install
- 启动开发服务器:npm run dev
- 在浏览器中打开:http://localhost:5173
- 如需使用自定义图案,将 40×40 px SVG 文件放入 public/patterns/ 目录。
- 在 src/core/patterns.ts 的 PATTERN_FILES 数组中注册 SVG 文件名和对应动画类型。
- 如需使用 Figma 插件或 Blender 插件,分别查看 figma-plugin/README.md 和 blender-addon/README.md 的安装说明。
06
风险与注意事项
- 项目 README 表明默认不内置图案,用户必须自行添加 SVG 图案,否则开箱即用的视觉内容有限。
- 导出 4× PNG 序列可能消耗较多内存和 CPU,复杂场景或长序列在普通电脑上可能较慢。
- Figma 插件和 Blender 插件的稳定性、兼容版本和安装细节需要进一步查看子目录文档确认。
- 当前仓库 stars 224、forks 13,社区规模不大,遇到问题时可参考资料可能有限。
- 如果用于正式商业生产,仍需验证导出质量、色彩管理、帧率、分辨率、透明通道和 Blender 合成效果是否满足管线要求。
- 图案动画依赖 SVG 结构,复杂 SVG 可能无法获得理想动画效果。
- README 没有提供完整的生产构建、部署、测试覆盖率或 CI 信息,工程成熟度需要进一步评估。
- 如果团队成员不熟悉 TypeScript、React、Canvas 或 Blender 插件工作流,二次开发成本会增加。
2026-06-22
第24名
新收录 · github_search