官网地址:https://zoo.dev/
目录
一、CAD 行业背景与发展脉络
1.1 传统 CAD 的历史包袱
计算机辅助设计(CAD)行业的核心——几何引擎——在过去近四十年间几乎没有发生过根本性变革。目前主流 CAD 软件的底层几何内核仍以 1988 年发布的 Parasolid 和 1989 年发布的 ACIS 为主导。SolidWorks、Onshape、Shapr3D 等现代 CAD 工具实际上都包装着 20 世纪 80 年代末期的技术。这些传统引擎在设计之初就基于单核 CPU 的串行计算假设,其曲面与曲面相交(Surface/Surface Intersection, SSI)算法通过数千个 if/else 分支来处理边界情况,根本无法充分利用当代多核 CPU 和 GPU 的并行计算能力。
与此同时,CAD 行业还面临一系列结构性问题:
- 高昂的软件成本:高端 3D CAD/CAE 软件的订阅费用对中小企业构成沉重负担。
- 数据孤岛与协作瓶颈:工程团队在多个 CAD 工具、项目管理软件、BOM 表格之间来回切换,CAD 文件版本管理混乱,平均每周因协作问题损失约 7.1 小时的工作时间。
- 硬件门槛高:传统 CAD 对本地工作站性能要求极高,大型装配体的加载和编辑常常需要数分钟甚至更久。
- 可编程性差:虽然多数 CAD 软件提供宏录制或有限脚本支持,但缺乏真正 API 优先的设计理念,难以融入现代 DevOps 和自动化工作流。
1.2 Zoo 的诞生与使命
Zoo(前身为 KittyCAD)正是在这一背景下诞生的。公司由 Relativity Space 前 CTO 兼联合创始人 Jordan Noone 和 Oxide Computer Company 前首席产品官 Jessie Frazelle 共同创立,使命是“推动硬件设计行业进步,通过构建现代化软件来加速 CAD 工作流程,消除工程师的繁琐劳动”。
与任何现有 CAD 公司不同,Zoo 选择了一条彻底的道路:从零开始重写几何引擎、创建全新的编程语言(KCL)、构建原生的机器学习 API,并推出完全现代化的 CAD 应用程序——Zoo Design Studio。不到 30 名工程师,在两年多时间内,用远少于前人的资本完成了这一切。
二、Zoo 要解决的核心问题
Zoo 的出现并非为了“做另一个 SolidWorks”。它瞄准的是 CAD 行业的底层基础设施缺口:
-
算力瓶颈:传统几何引擎无法利用 GPU 并行计算,布尔运算、曲面相交等核心操作速度受限。Zoo 从第一性原理出发,将 SSI 数学问题重新设计为可在 GPU 上并行求解的形式。
-
AI 无法真正用于工程 CAD:市面上大量“Text-to-CAD”或“文生 3D”工具输出的只是网格(Mesh)或点云,缺乏精确的拓扑信息和尺寸约束,无法直接用于 CNC 加工或工程分析。Zoo 的目标是生成真正的边界表示(B-rep)模型——每条边、每个面都携带精确的数学定义和公差信息。
-
CAD 与开发工作流的割裂:机械工程师的日常工作很难像软件工程师那样实现自动化、版本控制和持续集成。Zoo 的 API 优先架构和 KCL 编程语言,将“代码即设计”的理念带入硬件设计领域。
-
入门门槛过高:传统 CAD 软件学习曲线陡峭。Zoo 通过自然语言交互(Text-to-CAD)、点选操作和代码编辑三者无缝切换的混合工作流,让不同技能水平的用户都能高效工作。
-
行业基础设施缺失:硬件设计领域缺少像软件行业那样丰富的开源工具和 API 生态。Zoo 的目标是成为“硬件设计的 AWS”——提供 GPU 加速的几何处理能力、云端流式传输、机器学习集成等底层服务,供开发者在其上构建自定义工具。
三、技术原理与架构
3.1 整体架构概览
Zoo 的技术栈可以划分为四个核心层次:
┌─────────────────────────────────────────────────────────┐
│ Zoo Design Studio (桌面 / Web) │
├─────────────────────────────────────────────────────────┤
│ Zookeeper (对话式 CAD Agent) · MCP Server │
├─────────────────────────────────────────────────────────┤
│ KittyCAD API · ML-ephant API · KCL 编程语言 │
├─────────────────────────────────────────────────────────┤
│ Zoo Geometry Engine (GPU 原生) │
└─────────────────────────────────────────────────────────┘
3.2 Zoo Geometry Engine(自研几何引擎)
这是 Zoo 最核心的技术资产。与传统 CAD 内核不同,Zoo 的几何引擎从零构建,原生支持 GPU 并行计算,且完全以 B-rep(Boundary Representation,边界表示)为数据模型。
B-rep 的关键特性:
- 精确性:曲线是真正的曲线,而非由微小直线段构成的近似值
- 可编辑性:调整圆角半径或孔尺寸只需更新一个参数,而非操作顶点网格
- 工作流兼容性:B-rep 是 CAD/CAM 工具的标准格式,可直接用于仿真和制造
传统引擎处理曲面相交依赖大量条件分支,而 Zoo 将其重构为并行化的求根问题,使其能够在现代 GPU 上高效运行。这一架构选择让不到 30 人的团队在不到两年内缩小了数十年的功能差距。
⚠️ 当前状态说明:几何引擎的核心功能(如基础实体建模、布尔运算、曲面相交)已实现,但仍处于持续完善阶段,部分高级曲面建模功能(如混合、修剪、分割)尚在开发中。
3.3 KittyCAD Design API(设计 API)
KittyCAD 是 Zoo 的设计 API,基于 REST 架构,使用标准 HTTP 方法、Bearer Token 认证和 JSON 格式的请求/响应体。它提供以下核心能力:
- 创建和编辑几何体
- CAD 文件格式转换
- AI 辅助设计工作流
- 账户和项目管理
KittyCAD 提供 Python、TypeScript、Go、Rust 四种官方客户端库。此外,建模 API 支持 WebSocket 连接,允许实时发送建模指令并获取结果。
3.4 KCL(KittyCAD Language)编程语言
KCL 是 Zoo 自研的 CAD 专用编程语言,用于参数化地定义几何体。它不同于传统脚本语言——KCL 代码本身就是模型的“源代码”,所有几何特征都以可读、可编辑的代码形式存在。
核心特性:
- 支持变量定义和参数化设计(修改一个变量,所有相关尺寸自动重新计算)
- 支持模块化(将代码拆分到多个文件,通过 export 和 import 共享函数)
- 支持并行处理(模块级并行编译执行)
- 完整的模式(Pattern)支持:圆形阵列和线性阵列
- 当你在 Zoo Design Studio 中通过 Text-to-CAD 输入提示词时,ML 模型实际输出的就是参数化 KCL 代码。
3.5 ML-ephant 机器学习 API
ML-ephant 是 Zoo 的机器学习 API,核心功能是 Text-to-CAD——将自然语言描述转换为可制造的 B-rep 模型。
技术流程:
- 语义解析:用户输入文本提示(如“发动机气门,长 120 毫米,头部 30 毫米,杆部 6 毫米”)
- 指令生成:ML-ephant 模型(针对机械设计语料微调的领域专用模型)将提示分解为结构化操作序列和参数字典
- KCL 代码输出:模型生成参数化 KCL 代码
- 几何执行:KittyCAD API 将 KCL 指令转化为引擎可执行的几何操作,最终生成 B-rep 模型
Text-to-CAD 的 KCL 生成错误率已从初始的 50% 降至约 16%,Zoo 仍在持续优化。
3.6 Zookeeper 对话式 CAD Agent
Zookeeper 是 Zoo Design Studio 内置的对话式 CAD 设计 Agent,于 2026 年 1 月随 Zoo Design Studio v1.1 发布。它利用 LLM 通过自然语言交互来生成和修改 CAD 模型,能够创建新模型、检查现有项目、理解用户选中的几何元素、回答问题,甚至执行设计评审。
Zookeeper 的核心是“Agent”模式——一个能够循环使用工具的 ML 模型。它通过增量式的结构化自然语言指令来创建和编辑真实的参数化 CAD 几何体。
3.7 Zoo MCP Server
Zoo 还构建了 MCP(Model Context Protocol)服务器,允许 AI 工具(如 Claude Desktop 等)直接调用 Zoo 的 API 能力。目前 MCP 提供两项核心功能:创建新的 CAD 模型和编辑现有模型。
四、主要功能与能力(结构化)
4.1 已实现功能
🔹 建模功能
| 类别 | 具体功能 |
|---|---|
| 基础建模 | 2D 草图绘制、拉伸(Extrude)、旋转(Revolve)、圆角(Fillet) |
| 布尔运算 | 并集、差集、交集(持续优化中) |
| 模式/阵列 | 圆形阵列(Circular Pattern)、线性阵列(Linear Pattern) |
| 拉伸模式 | 支持 NEW(创建新实体)和 MERGE(合并到原实体)两种模式 |
| 草图增强 | 支持在内部面上绘制草图(Sketch on inner faces) |
| GD&T 标注 | 实验性支持平面度(Flatness)等几何尺寸与公差标注 |
🔹 AI 功能
| 类别 | 具体功能 |
|---|---|
| Text-to-CAD | 通过文本提示生成参数化 B-rep 模型 |
| Zookeeper | 对话式 CAD 设计 Agent,支持自然语言建模、问答和设计评审 |
| Zoo MCP | MCP 服务器,供 AI 工具调用 CAD 能力 |
🔹 编程与 API
| 类别 | 具体功能 |
|---|---|
| KCL 语言 | 参数化 CAD 编程,支持变量、函数、模块、并行处理 |
| KittyCAD API | REST API,支持几何创建、文件转换、AI 工作流 |
| 多语言 SDK | Python、TypeScript、Go、Rust 官方客户端库 |
| 文件导出 | STL、PLY、OBJ、STEP、glTF、GLB、FBX |
| DXF 导出 | 2D DXF 格式导出(2025 年 10 月新增) |
🔹 平台与协作
| 类别 | 具体功能 |
|---|---|
| 跨平台 | Windows、macOS、Linux 全平台桌面应用 |
| Web 版本 | 浏览器端测试版本 |
| 混合工作流 | 点选建模、KCL 代码、Text-to-CAD 三者无缝切换 |
4.2 未来愿景(Roadmap)
以下功能在官方路线图中明确提及,但尚未完全实现:
- Image-to-CAD:从图像生成 CAD 模型(已在 Zookeeper 中实验性支持)
- 高级曲面建模:混合(Blends)、修剪(Trims)、分割(Splits)等曲面操作
- 更多 GD&T 功能:扩展几何尺寸与公差标注类型
- 复杂装配体支持:当前对多零件间运动约束和装配顺序的理解仍有限
- 持续降低 Text-to-CAD 错误率:从 16% 继续向更低目标优化
五、实际应用场景与优缺点分析
5.1 典型应用场景
① 快速原型设计
- 场景:产品设计师在概念阶段需要快速探索多种形态变体
- 方式:通过 Text-to-CAD 输入描述性文本,几分钟内生成可编辑的 B-rep 模型
② 自动化设计生成
- 场景:工程团队需要批量生成数千种尺寸变体用于测试或定制
- 方式:使用 KCL 编写参数化程序,或通过 API 批量调用生成
③ 自定义 CAD 工具开发
- 场景:硬件设计公司需要构建适配自身产品线的专用设计工具
- 方式:基于 Zoo 的 API 基础设施和开源组件构建
④ 制造准备
- 场景:从设计到 CNC 加工或 3D 打印的最后一公里
- 方式:导出 STEP 格式至专业 CAM 软件,或直接导出 STL 进行 3D 打印
⑤ AI 增强的工程协作
- 场景:非 CAD 专家(如项目经理、采购人员)需要理解和修改设计
- 方式:通过 Zookeeper 自然语言对话进行设计评审和修改
5.2 优势
| 优势 | 说明 |
|---|---|
| GPU 加速性能 | 几何操作利用 GPU 并行计算,显著快于传统 CPU 内核 |
| 原生 AI 集成 | Text-to-CAD 和 Zookeeper 不是“附加功能”,而是从内核层面构建 |
| B-rep 输出 | 生成的模型是真正的参数化 B-rep,可直接用于制造 |
| API 优先架构 | 每个功能都可通过 API 访问,适合开发者和自动化场景 |
| 混合工作流 | 点选、代码、AI 三种模式无缝切换,适应不同用户 |
| 免费入门门槛 | 免费版提供每月 40 次 Text-to-CAD 额度,跨平台支持 |
| 开源部分组件 | Text-to-CAD 平台等组件开源,GitHub 组织名 Adam-CAD |
5.3 局限与不足
| 局限 | 说明 |
|---|---|
| 功能广度不足 | 与 SolidWorks、Fusion 360 相比,高级建模功能(如曲面造型、钣金、焊件)仍待完善 |
| Text-to-CAD 稳定性 | 尽管错误率已降至 16%,但仍有约 1/6 的概率生成失败的 KCL 代码 |
| 复杂装配体处理弱 | 擅长生成单体零件,但多零件间的运动约束和装配顺序理解不足 |
| 生态尚在早期 | 插件生态、社区规模、学习资源远不及老牌 CAD 软件 |
| 依赖网络 | 重度依赖云端 API,离线使用能力有限 |
| 定价透明度 | Pro 版 $99/月,Team 版 $3,830/用户/年,对于中小企业可能有负担 |
六、完整使用流程
6.1 准备工作
-
- 注册账号并获取 API Token
访问 zoo.dev 创建账户,然后进入 Account Settings → API Tokens 生成你的 API Token。
- 注册账号并获取 API Token
-
- 安装 Zoo Design Studio
下载适用于你操作系统的桌面应用(Windows/macOS/Linux),或直接使用 Web 版本进行测试。
- 安装 Zoo Design Studio
-
- 安装 Python SDK(如需编程)
pip install kittycad
- 安装 Python SDK(如需编程)
6.2 方式一:通过 Zoo Design Studio 界面建模
打开 Zoo Design Studio
选择建模方式:
-
点选建模:使用左侧工具栏进行 2D 草图绘制、拉伸、旋转等操作
-
Text-to-CAD:在 AI 面板输入文本描述生成模型
-
KCL 编辑器:直接编写 KCL 代码定义几何体
导出为所需格式(STEP、STL 等)
6.3 方式二:通过 API 编程(Python 示例)
示例 1:验证 API 连接
import requests
API_TOKEN = "your-api-token-here"
headers = {
"Authorization": f"Bearer {
API_TOKEN}"
}
response = requests.get("https://api.zoo.dev/user", headers=headers)
print(response.json()) # 返回用户信息,表示连接成功
七、API 编程(Python 示例)实战,实现一个文本-CAD生成项目
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Zoo ML API - 文本生成 CAD 模型(精简版 - 同步模式)
功能:
- 输入自然语言描述,生成 3D 模型(STEP/STL/OBJ 格式)
- 直接获取并预览模型(无需轮询)
- 支持保存模型文件
"""
import sys
import os
import json
import tempfile
import base64
import requests
from datetime import datetime
from PyQt5.QtWidgets import (
QApplication, QMainWindow, QWidget, QVBoxLayout, QHBoxLayout,
QLabel, QLineEdit, QPushButton, QTextEdit, QFileDialog, QFrame,
QProgressBar, QMessageBox, QComboBox
)
from PyQt5.QtCore import Qt, QThread, pyqtSignal
# 抑制弃用警告
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
# PythonOCC 导入
from OCC.Core.STEPControl import STEPControl_Reader
from OCC.Display.backend import load_backend
load_backend("pyqt5")
from OCC.Display.qtDisplay import qtViewer3d
# ==================== 配置 ====================
API_TOKEN = "xxx" # 请填入您的 Zoo API Token
BASE_URL = "https://api.zoo.dev/"
# ==================== API 客户端 ====================
class ZooMLClient:
def __init__(self, base_url=BASE_URL, token=API_TOKEN):
self.base_url = base_url.rstrip('/')
self.token = token
self.session = requests.Session()
if token:
self.session.headers.update({
"Authorization": f"Bearer {
token}"})
self.session.headers.update({
"Content-Type": "application/json"})
def text_to_cad(self, prompt, output_format="step", poll_interval=2, max_retries=120, progress_callback=None):
"""
生成 CAD 模型,返回文件的二进制数据。
如果 API 返回任务元信息(异步),则会轮询直到任务完成。
"""
url = f"{
self.base_url}/ai/text-to-cad/{
output_format}"
payload = {
"prompt": pro

304

被折叠的 条评论
为什么被折叠?



