pascalorg/editor
Open-source 3D architectural editor with a local CLI, MCP tools, and practical workflows for humans and AI agents.
Pascal Editor – 内置 AI 代理钩子的本地优先 3D 建筑编辑器
简介 – Pascal 是一个基于 React Three Fiber 和 WebGPU 支持的 Three.js 渲染器构建的开源浏览器/桌面 3D 建筑编辑器。它在本地运行(无需云),可以通过简单的 CLI 命令启动。编辑器公开了一个 Model Context Protocol(MCP)服务器,允许外部 AI 代理(例如 Claude、Codex)与场景对话、运行工具并查询几何体。
核心组件
| 包 | 作用 |
|---|---|
@pascal-app/core |
模式、场景状态(Zustand)、注册表契约、空间查询 |
@pascal-app/viewer |
3D 渲染、相机/控制、后处理 |
@pascal-app/editor |
UI 面板、选择管理器、编辑工具(墙壁、楼板、物品、区域) |
@pascal-app/cli |
安装程序、进程管理器、持久化本地数据(~/.pascal/data/pascal.db) |
@pascal-app/mcp |
通过类型化协议向 AI 代理公开场景操作的 HTTP 服务器 |
@pascal-app/nodes |
内置节点定义(墙壁、地板、物品等) |
@pascal-app/capture-* |
用于导入/导出场景的可选捕获会话格式 |
apps/editor |
将上述包捆绑为可运行应用的 Next.js 主机 |
工作原理
- CLI 启动 –
npx @pascal-app/cli editor在空闲回环端口启动 Next.js 编辑器和后台 MCP 服务。 - 场景模型 – 节点是扁平对象(
id、type、parentId等),存储在 Zustand 存储(useScene)中。更改持久化到 IndexedDB,并可通过 Zundo 撤销/重做。 - 渲染 – React-Three-Fiber 组件(
NodeRenderer、WallRenderer等)创建 Three.js 对象并注册到快速查找注册表(sceneRegistry)中。 - 系统 – React 组件每帧(
useFrame)运行,仅重新计算存储中标记为脏的节点的几何体,从而保持更新成本低廉。 - AI 集成 – MCP 服务器实现了基于 JSON 的协议,AI 代理可以调用(
pascal mcp connect、pascal mcp setup claude)。pascal-3d和furniture-fit等技能通过skills.sh市场分发,允许代理无需 API 密钥即可调用场景编辑操作。
主要功能
- 本地优先:无需外部服务;所有数据都存储在用户机器上。
- WebGPU 加速 3D:使用 React Three Fiber + Drei 进行实时渲染。
- 插件系统 – 开发人员可以将新的节点类型、工具或侧面板作为 npm 包发布,编辑器在运行时加载。
- AI 就绪 MCP – 一个标准 HTTP 端点,描述场景状态、接受工具命令并返回验证结果,从而实现“AI 辅助设计”工作流。
- 版本化单体仓库 – Turborepo 管理 core、viewer、editor、CLI 和 MCP 包;每个包都可以独立发布到 npm。
- 撤销/重做与持久化 – Zundo 提供 50 步历史记录;IndexedDB 在会话之间存储场景。
快速开始
# 快速安装(Node ≥22.13)
npx @pascal-app/cli editor # 启动编辑器 + MCP
开发需要在仓库根目录使用 Bun(或 pnpm):
bun install # 安装所有工作区
bun dev # 监视 + 启动 Next.js 开发服务器(http://localhost:3002)
构建和发布:
turbo build # 构建所有包
npm publish --workspace=@pascal-app/core # 对其他包重复
典型用例
- 建筑师或室内设计师在没有云依赖的情况下快速创建 3D 布局。
- 研究人员原型设计需要操作 3D 场景的 AI 代理(例如,“将椅子靠墙放置”)。
- 插件作者使用领域特定节点(树木、暖通空调、照明)扩展编辑器。
- 希望为协作设计提供确定性、版本控制环境的团队(使用单独的
PASCAL_HOME目录运行多个 MCP 实例)。
AI 代理工作流示例
- 安装技能包:
npx skills add pascalorg/editor --skill pascal-3d。 - 启动本地 MCP 服务器(
pascal mcp setup claude)。 - 在 Claude Code 中运行
/mcp connect– 插件自动将代理指向本地 MCP 端点。 - 代理现在可以发出诸如
createNode({type:"wall", …})或runTool("ItemTool", {item:"chair", position:[1,0,2]})之类的命令,并立即收到视觉反馈。
了解更多
- 文档 – https://editor.pascal.app/docs/developers/local-editor
- 插件指南 – https://editor.pascal.app/docs/developers/plugins
- 示例插件 – https://github.com/pascalorg/plugin-trees
- Discord 社区 – https://discord.gg/XRKsDcpqgS
以上信息均直接取自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目