Graphite 2024 年度回顾与 2025 展望:从 Alpha 原型迈向完整 2D 创作套件的关键一年
2026/9/11 3:24:29 网站建设 项目流程

Graphite 2024 年度回顾与 2025 展望:从 Alpha 原型迈向完整 2D 创作套件的关键一年

【免费下载链接】GraphiteCommunity-built comprehensive 2D content creation appplication for graphic design, digital art, and interactive real-time motion graphics powered by a node-based procedural graphics engine项目地址: https://gitcode.com/GitHub_Trending/gr/Graphite

Graphite 是一款由社区共建、免费开源的 2D 内容创作应用,覆盖矢量图形、数字艺术与交互式实时动态图形,其核心是独一无二的基于节点图的无损程序化编辑引擎(详见 README.md)。这篇年度回顾发布于 2025 年 1 月,系统梳理了 2024 年(Alpha 3 版本系列)在性能、稳定性、节点引擎、光栅渲染与社区生态方面的关键进展,并公布了 2025 年的开发路线图:桌面原生应用、时间轴动画、Lambda/实例/列表/属性等高级程序化编辑能力、光栅图像编辑以及教育市场支持。读完本文,你将完整掌握 Graphite 当前的架构能力、各模块在仓库中的实际实现位置,以及项目未来的技术演进方向。

2024 年开发进展总览:从技术演示到可用产品

2024 年是 Graphite 从"有前途的技术演示"蜕变为"大体可用的矢量艺术与平面设计应用"的一年。其核心差异化能力——通过节点图实现的无损程序化编辑——在这一年中逐步打磨成熟。Alpha 3 版本系列的重点工作包括:

  • 性能修复:将原先极不理想的运行性能提升到可接受水平,解决了大量崩溃与稳定性问题;
  • Graphene 节点引擎升级:支持新的渲染可能性、引入更多实用的节点,并解除了以往常见节点组合中的限制;
  • 矢量绘制工具增强:新增布尔路径操作、吸附(snapping)、图层选择历史、快速测量、渐变取色等功能,以及贯穿整个编辑器的大量易用性微调。

仓库中的示例作品(见 demo-artwork 目录,如changing-seasons.graphiteisometric-fountain.graphitemarbled-mandelbrot.graphite等)正是这些矢量与程序化能力的直接产物,对应的网页缩略图位于 frontend/assets。

2024 年也是 Graphite 首次以季度报告形式发布开发进展的一年,四篇季度报告(Q4 报告当时即将发布)均以循环视频演示配合一句话变更摘要的方式呈现:

  • Graphite progress report (Q1 2024)
  • Graphite progress report (Q2 2024)
  • Graphite progress report (Q3 2024)

Alpha 路线图更新:Alpha 4 与 Beta 时间表

Alpha 3 系列于 2024 年 2 月启动,计划在 2024 年末假期开发周期结束后、2025 年 2 月左右正式开启 Alpha 4 系列。按照当时的规划,如果开发进度符合预期,Alpha 4 可能是 Beta 之前的最后一个 Alpha 系列,Beta 最早有望在 2026 年初开始

从仓库当前的代码状态看,这一路线图正在稳步落地:编辑器主体位于 editor/src,其中application.rsdispatcher.rs与海量的消息处理模块构成了应用的消息驱动架构;而节点图的程序化执行与编译则由 node-graph 下的graphene-compilerinterpreted-executorwgpu-executor等 crate 承载。

Google Summer of Code 2024 成果

2024 年是 Graphite 首次作为指导组织入选 Google Summer of Code(GSoC),迎来了三位暑期实习生:Adam、Elbert 与 Dennis。他们的成果已在仓库中留下可验证的实现证据。

Adam:节点编辑器的深度演进

Adam 为 Graphite 带来了节点编辑器的大幅演进,引入了调整图层(adjustment layers)、可编辑的嵌套图(editable nested graphs)以及图层/节点组织功能,让程序化编辑环境更接近产品愿景。暑期结束后 Adam 正式加入核心团队,继续负责节点编辑系统的开发。

Elbert:Rawkit —— 索尼 ARW 原始格式解码库

Elbert 从零构建了 Rust 库Rawkit(libraries/rawkit),用于解码与处理索尼数码相机(市场上最流行的相机品牌之一)的.arw原始文件,尼康、佳能以及未来的其他品牌格式均在规划范围内。该库为 Graphite 提供了所需的细粒度控制,是 2025 年聚焦数字照片处理的前置技术。

从源码结构看,Rawkit 是一个完整的 TIFF/RAW 解码管线:

  • libraries/rawkit/src/lib.rs 中的RawImage::decode根据压缩方式自动分派:arw1::decode_a100处理未压缩或 Huffman 解码的 A100 路径,arw2::decode处理索尼 ARW 压缩格式,uncompressed::decode处理未压缩数据;
  • 解码器分别位于 decoder/arw1.rs 与 decoder/arw2.rs,后者会断言CompressionValue::Sony_ARW_Compressed并读取SonyToneCurve等索尼私有标签;
  • 相机元数据识别见 metadata/identify.rs,配套的rawkit-proc-macros通过build_camera_data.rscamera_data/Sony/*.toml编译数百款索尼机型的参数表(如ILCE-7RM5.tomlILCE-9M3.tomlZV-E10.toml等)。

Rawkit 的 README 给出了最直接的用法:打开文件后调用RawImage::decode(file)即可获得 Bayer 像素数据与元数据(尺寸、CFA 模式、相机型号、白平衡),可编辑白平衡与旋转变换后调用process_8bit()输出 RGB 图像。该库目前在 crates.io 上独立发布,Graphite 是其首要用户。

Dennis:性能攻坚与 Vello 渲染器集成

Dennis 的工作围绕性能展开:优化了渲染与布尔运算等节点、构建了性能剖析工具、增强了整个节点引擎的健壮性,最关键的是引入了Vello高性能矢量图形渲染器,取代了原有的基于 SVG 的渲染方式,大幅精简了视口展示中的光栅化与合成管线。

从源码看,Vello 集成已经深入渲染栈的核心:

  • node-graph/libraries/rendering/Cargo.toml 声明了vellovello_encoding依赖;
  • node-graph/libraries/rendering/src/renderer.rs 实现了完整的场景编码:render_graphic_item_to_vello将图形项按透明度、混合模式与兄弟裁剪逐层写入 VelloScene,并对矢量、CPU 光栅、GPU 光栅、颜色、渐变、文本等不同图形类型分别调用render_to_vello
  • 该文件还针对 Vello 的实现细节做了专门适配,例如VelloRampTexels用于模拟 SVG 与 Vello 都不原生支持的Clear渐变扩散模式(renderer.rs),以及在位置 0 处复制首停靠点以适配 Vello 忽略首停靠点位置的语义(renderer.rs)。

按博客当时的说明,Vello 可从编辑器偏好设置菜单中手动开启,计划在 2025 年浏览器对 WebGPU API 支持普及后默认启用——这与仓库中渲染模块整体向 WebGPU/wgpu 迁移的方向一致(参见 desktop/src/render/composite_shader.wgsl 中基于@group/@binding绑定的 GPU 合成着色器)。

除技术成果外,GSoC 的另一个环节是 10 月在 Google Mountain View 办公室举办的 Mentor Summit:作者与各开源组织维护者交流了开源项目管理经验,并主持了主题为 "Well-Designed User Interfaces in FOSS Apps" 的分享会(30–40 名参与者)。

社区活动与行业拓展

2024 年 Graphite 团队参与了多项线下活动,将项目带出"互联网的小角落":

Game Developers Conference(3 月,旧金山)

作者与产品设计贡献者 Oliver Davies 一同参加 GDC,与 Godot、O3DE 等开源组织建立联系,与 Blender 基金会成员交流,参与游戏行业开源采用圆桌讨论,并与 Rust Gamedev 社区举办线下聚会。Rust 游戏开发者聚会的主持人 Forest Anderson 的直播中曾多次演示 Graphite 的月度开发里程碑。

Blender Conference LA(4 月,洛杉矶)

在首届洛杉矶 Blender 大会上,团队与 Blender 团队及众多 3D/VFX 行业人士会面,作者登台发表了一场介绍 Graphite 的 lightning talk,现场还有 Blender 创始人 Ton Roosendaal、Blender Guru 作者 Andrew Price、导演 Colin Levy 与 Ian Hubert 等知名创作者。

Open Sauce 展位(6 月,旧金山)

Open Sauce 是面向创客与创作者的开源博览会。Graphite 首次设立自己的展位,Adam 与 Oliver 在现场进行实时演示。展位被设计成"艺术家的空间":LED 背光白板供观众涂鸦、可入内交流并坐下试用应用。这对团队是一次宝贵的"用户测试"机会。

Bay Area Maker Faire 展位(10 月)

Maker Faire 是创客运动的发源地。这次活动吸引了许多家庭与儿童用户,最小的试用者年仅 6 岁却能深度使用产品,验证了界面直觉性设计的正确方向。Dennis 专程从德国飞来,四名核心团队成员首次几乎全员线下聚齐,在通勤途中进行了深度的代码架构讨论与知识传递。

2025 年展望:五大方向

桌面原生应用

这是用户呼声最高的需求。作者明确否定了"把 Web 应用塞进未改动的 Electron 壳"的取巧方案——那在技术上是一条死胡同。真正的价值在于提供原生应用:编辑器 Rust 代码与 GPU 加速渲染直接运行在 Windows、Mac 或 Linux 机器上,无需浏览器开销。难点在于把"Web 渲染的编辑器界面"与"原生渲染的作品画面"在三个平台上分别融合。

仓库当前状态印证了这项工作的推进: desktop 目录已形成完整的原生应用工程,包含:

  • desktop/src/main.rs 与 desktop/src/lib.rs 组成的入口层,后者通过UiContext::setup()初始化 UI 运行时,使用fd_lock实现单实例锁(重复启动时将文件路径经 desktop/src/socket.rs 的本地 socket 转发给已运行实例);
  • desktop/platform 下的 Linux(x11/wayland相关)、macOS(含 helper.rs)与 Windows 三个平台 crate;
  • desktop/ui 的浏览器进程/渲染进程架构(CEF),其中 internal 下包含browser_process_handler.rsrender_process_handler.rsscheme_handler_factory.rs等完整实现;
  • desktop/src/render 使用 wgpu + WGSL 合成着色器完成作品画面的原生 GPU 渲染。

动画:时间轴面板与节点参数关键帧

作者最期待的功能是动画。规划中的Timeline 面板将支持对任意节点参数设置关键帧,与现有的基于图与数据驱动的工作流无缝集成,让"动态图形 + 程序化生成"成为现实。仓库中该功能已具雏形:editor/src/messages/animation/animation_message.rs 定义了AnimationMessage消息类型,配套的animation_message_handler.rsmod.rs构成了动画消息处理模块。

高级程序化编辑:Lambda、实例、列表与属性

节点图将进入下一阶段,引入四项关键能力:

  • Lambda(λ):把节点当作数据传给另一个节点,使其可在循环中以不同参数迭代执行;
  • 实例(Instances):将图形数据、变换与组通用化,使每个图层成为一个或多个带有独立变换的实例,从而彻底解决图层缺少合适枢轴点(pivot point)的历史限制;
  • 列表(Lists):以类似电子表格的表格形式表示矢量点、线段等数据列表,形式化表格数据表示后,节点引擎可通过优化 CPU 缓存利用获得类似 ECS 的性能收益;
  • 属性(Attributes):把点、线段、实例、外观样式等的属性编码为表格数据中的列。这是与 Blender Geometry Nodes 相同的设计原理,将解锁 Graphite 在该方向上的全部潜力。

光栅图像编辑

Graphite 一直带有基础的光栅支持(主要用于矢量创作时引入参考图),部分光栅节点可调整图像颜色,但尚无可用于局部编辑的选区与绘制工具;且所有处理像素数据的节点都未使用 GPU,大图会遭遇 CPU 瓶颈。光栅编辑需要"工具 + GPU 节点"两项基础设施齐备后才可行。后续计划包括:掩码(masking)节点、完全重写的笔刷引擎、以及矩形选框(marquee)选择模式。进展速度取决于浏览器厂商何时普遍支持 WebGPU API,使 Graphite 能将其从实验状态推向默认部署。

Graphite 进课堂:教育市场

在 Maker Faire 上作者与多位学校教师交流后发现:由于其他网页图形编辑器常含广告而被学校 IT 管理员封锁,完全无广告且可运行于 Chromebook 的 Graphite 在教育市场有独特优势——事实上站点访问数据已显示 Chromebook 访问量在学期内上升、假期回落的"课堂使用"特征。

2025 年的教育方向包括:优先改进低配硬件上的运行性能;减少新手易踩的常见坑;投入更多时间制作学习资源与文档;与教师合作开发课堂课程包;为教育工作者制作专属介绍页面。

结语

Graphite 不以投资人或商业团队为依托,而是完全由社区共建、社区资助。2025 年被视作"所有拼图各就各位"的一年:桌面应用、有竞争力的性能与功能、以及光栅图像编辑。项目的参与方式包括:成为捐赠会员(现已支持无需 GitHub 账号的直接捐赠)、以开发者/技术写作/艺术/设计/营销等身份参与志愿贡献、在 Discord 社区注册成为 QA 测试员、以及在社区中分享作品。

延伸阅读

  • 项目概览与构建说明:README.md
  • 2024 年度四篇季度进展报告的其余三篇:Q1 / Q2 / Q3
  • GSoC 参与公告:2024-02-22-graphite-internships-announcing-participation-in-gsoc-2024.md
  • 贡献者指南(含 Graphene 引擎介绍入口):website/content/volunteer/guide/_index.md
  • 索尼相机参数数据:见 libraries/rawkit/camera_data/Sony

【免费下载链接】GraphiteCommunity-built comprehensive 2D content creation appplication for graphic design, digital art, and interactive real-time motion graphics powered by a node-based procedural graphics engine项目地址: https://gitcode.com/GitHub_Trending/gr/Graphite

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询