一款名为 KetchUp(GitHub 项目名 KetchUp3D)的免费开源 3D 建模工具在 2026 年 11 月 7 日更新至 v0.6.5 版本。它采用 MIT 协议开源,由 Rust 语言和 WebGPU 构建,直接对标木工与家具设计领域最常用的 SketchUp。用户无需注册任何账号,就能在 Windows、macOS、Linux 原生桌面端或桌面浏览器里直接拉出三维家具模型。这款工具的价值不在于挑战大型工业软件,而在于它精准拆除了商业软件设下的云端围栏,把离线自由和垂直木工功能还给了造物者。

逃离云端围栏与深耕木工痛点

木工和 DIY 玩家苦 SketchUp 久矣。早年的 SketchUp 凭借直观的推拉(Push/Pull)直接建模机制,几乎成了木工画草图的标配。但自从母公司 Trimble 收购并全面转向订阅制后,免费的独立桌面版成为历史。如今的 SketchUp Free 仅限网页端运行,强制绑定 Trimble Connect 云存储,还把通用的 OBJ 格式导出锁进了付费墙;即便是付费的 SketchUp Pro 桌面版,也要求大约每 28 天联网验证一次许可证,而 Linux 桌面原生客户端更是长期空白。至于 FreeCAD 或 Blender,用来画几块木板拼装的书架又显得学习曲线过于陡峭。

告别28天联网验证,把本地斜角榫接与成本预算还给木工(示意图)
告别28天联网验证,把本地斜角榫接与成本预算还给木工(示意图)

KetchUp 切中的正是这片夹缝市场。它保留了木工最熟悉的肌肉记忆:画矩形、直线或自由轮廓,用推拉工具赋予木板厚度,再配合精确尺寸输入、轴向捕捉、卷尺测量以及群组、组件和标签来完成装配。所有操作都在本地自动保存,没有任何账号体系或云端同步强制要求。

KetchUp 与 SketchUp 免费及付费方案核心差异 KetchUp v0.6.5 (MIT 开源) • 平台支持:Win / macOS / Linux 原生 + 浏览器 • 账号与离线:免注册,纯本地保存与离线运行 • 通用导出:免费导出无材质 OBJ 几何体 • 垂直增强:斜角木工接合修剪、工时成本估算 局限:仅单向导入 .skp,不支持写回 SketchUp (Free / Pro 商业版) • 平台支持:Free 仅网页端;无 Linux 原生版 • 账号与离线:Free 强绑云端;Pro 每 28 天验权 • 通用导出:Free 锁死 OBJ 导出,需付费解锁 • 垂直增强:通用建筑草图,木工需装第三方插件 优势:完整原生支持 .skp 读写与组件材质生态

更实质的差异在于,KetchUp 没有停留在做一款通用的克隆软件,而是直接向木工垂直工作流深挖。在最新发布的 v0.6.5 版本(版本主题为 Editable construction guides and angled wood joints)中,开发团队除了改进工作区,还专门上线了三项纯正的木工特性:支持持久化的可编辑构造参考线、带预览与自动修剪功能的斜角木工接合,以及直接导出项目的时间与成本估算。

商业软件把免费用户逼上云端,开源项目用本地化和垂直功能接盘。

对于在车库里做一张高架床或工作台的木工来说,斜角切口怎么咬合、整套板材要花多少工时和预算,恰恰是动锯子之前最核心的算账环节。KetchUp 把这些原本需要依赖第三方扩展插件的能力直接做进了主程序。

Rust 与 WebGPU 撑起的双层架构

为什么一个小体量的开源项目,能同时交付三端原生桌面应用和免安装的网页端 3D CAD?底气来自近年来日趋成熟的 Rust 结合 WebGPU 与 WebAssembly 技术栈。

底层独立双精度几何引擎与上层极小状态纹理局部更新(示意图)
底层独立双精度几何引擎与上层极小状态纹理局部更新(示意图)

翻开 KetchUp 的代码仓库可以看到,它采用了清晰的双 Rust workspace crate 解耦架构。底层的 ketchup-core 专门负责双精度几何计算、面发现与三角剖分、捕捉推导、射线拾取、相机逻辑以及撤销历史,这一层完全独立于任何图形界面和 GPU 接口。上层的 ketchup-app 则负责 egui 界面绘制、本地文件持久化、原生与浏览器启动器以及 wgpu/WGSL 渲染管线,网页端直接通过 Trunk 编译成 WebAssembly 运行。

KetchUp 双层解耦架构与事件驱动渲染 上层:ketchup-app (UI 与跨端渲染层) egui 界面 + wgpu/WGSL 渲染 (WebGPU 回退 WebGL2) + Trunk 编译 WASM / 原生三端启动 底层:ketchup-core (纯几何与算法内核) 双精度几何计算 + 面发现与三角剖分 + 捕捉推导与拾取 + 相机与撤销历史 (零 GUI/GPU 依赖)

在浏览器里跑 3D CAD,最怕遇到大模型卡顿和持续发热。KetchUp 采用的是事件驱动渲染机制,浏览器端优先调用现代的 WebGPU 接口,并在旧设备上自动回退至 WebGL2。面对复杂的不透明透视场景时,软件会把主体几何数据一直驻留在 GPU 显存中;当用户移动鼠标进行悬停或点选零件时,系统不需要每帧重新上传庞大的几何网格,而是只更新一个极小的状态纹理。这种工程巧思,既保证了 CAD 级别的双精度几何准确度,又压低了浏览器端的交互延迟。


迁移前必须看清的格式陷阱与治理盲区

如果你手里攒了一批以前用 SketchUp 画的家具图纸,现在想立刻搬进 KetchUp 接着改,先别急着动手。对照官网宣传与底层技术文档,KetchUp 在格式互通上还有几道绕不开的硬门槛。

导入旧格式会丢失组件关联,改一条桌腿需手动返工四遍
导入旧格式会丢失组件关联,改一条桌腿需手动返工四遍

最容易让人踩坑的是组件关联丢失。官网落地页把支持可复用组件(components)与导入 SketchUp(.skp)几何体放在一起宣传,很容易让老用户以为旧图纸能无缝迁移。但仓库技术文档明确写道,本地导入 .skp 文件时,除了严格拒绝大于 64 MiB 的文件、忽略纹理、透明度、场景和尺寸标注外,原模型里所有嵌套的群组和组件实例都会退化为独立的普通群组。

放在真实的木工场景里,这个限制非常要命。平时画一张餐桌,木工通常会把一条桌腿定义成组件,复制出另外三条;后续只要修改其中一条桌腿的榫头尺寸,其余三条就会自动同步。但把 .skp 导入 KetchUp 后,四条桌腿变成了四个毫无关联的独立群组,想改尺寸就得挨个重画四遍。它虽然保留了面孔洞、纯色、显式隐藏状态以及英寸到米的单位自动转换,但更适合拿来参考旧图尺寸,而不是直接二改老项目。

维度原生保存格式 (.k3d / .ketchup)本地导入 SketchUp (.skp)导出 Wavefront (.obj)
容量与方向本地自动保存与便携下载仅支持导入,上限 64 MiB仅单向导出(米为单位,Z 轴向上)
组件与群组完整保留群组、组件与标签组件退化为独立群组,丢失关联仅可见边缘与三角化面,无组件链接
材质与标注支持基础涂色与尺寸标注保留纯色与孔洞,忽略纹理与标注无材质、无尺寸标注信息

在自有格式与导出边界上,细节也在快速变动。官网页面目前仍写着下载 .ketchup 项目文件,但最新文档已经将主推的可编辑格式更新为 .k3d(同时向下兼容旧的 .ketchup 后缀)。至于导出能力,它不支持把模型重新保存回 .skp 格式;导出的 OBJ 文件也只包含三角化后的网格面和可见边缘,剥离了所有材质、尺寸和组件层级,仅够把几何造型送进渲染器或切片软件。

  • 风险.旧版 .skp 图纸导入后会丢失所有重复组件的联动关系,老项目迁移存在隐性返工成本,目前更适合用它从零新建木工项目。

最后还要留心项目背后的治理变量。目前 KetchUp 的版权归属统一署名为 KetchUp3D contributors,所有版本均由 github-actions 自动打包发布,从公开仓库里暂时无法核实具体人类开发者的真实身份与团队规模。同时,在 Hacker News 与 Reddit 等技术社区里,也还没有出现针对复杂大型装配体的独立性能实测反馈。对于厌倦了云端订阅制的木工和 Linux 用户而言,KetchUp v0.6.5 已经是一个趁手的新建项目利器;但它能否真正动摇 Trimble 的付费转化漏斗,接下来要看社区压测下的帧率表现,以及后续版本能否补上 .skp 组件实例的无损导入。