【editor】一款面向建筑信息模型(BIM)场景的高性能、模块化3D建筑编辑器

Pascal Editor 是一个专为建筑建模设计的现代 Web 端 3D 编辑器,它解决了传统网页建筑工具在复杂几何生成、实时协作式编辑与状态可追溯性方面的常见痛点——通过 WebGPU 加速渲染、细粒度节点状态管理与系统化几何更新机制,实现流畅、可靠、可扩展的建筑构件级编辑体验。

主要特性

  • 基于节点(Node)的轻量数据模型:所有建筑元素(Site、Building、Wall、Slab、Zone、Item 等)统一抽象为扁平化 BaseNode,通过 parentId 维护层级关系,兼顾灵活性与查询效率。
  • 响应式 3D 渲染架构:依托 React Three Fiber 构建,@pascal-app/viewer 提供开箱即用的相机、控制与后处理,apps/editor 在其之上叠加交互工具与编辑逻辑。
  • 按需几何再生系统(Systems)WallSystemSlabSystemItemSystem 等在渲染帧中仅处理被标记为“dirty”的节点,支持自动墙体倒角、门窗布尔切割、楼板多边形生成等专业操作。
  • 分层状态管理:三个独立 Zustand Store 分工明确——useScene(核心场景数据 + IndexedDB 持久化 + Zundo 50 步撤销重做)、useViewer(视图模式与选择状态)、useEditor(工具、面板、偏好设置)。
  • 高效空间索引与事件总线:内置 spatialGridManager 支持墙面/楼面精准布点校验;采用类型安全的 mitt 事件总线解耦组件通信(如 wall:clickitem:enter)。
  • 模块化单体仓库(Turborepo)结构:清晰分离 core(数据+逻辑)、viewer(渲染)、editor(UI+工具)三层职责,便于团队协作与渐进式扩展。

快速上手

项目使用 Bun 作为包管理器,开发流程简洁:

bun install  
bun dev  

运行后访问 http://localhost:3000 即可进入编辑器界面。注意:必须从项目根目录执行 bun dev,以确保 coreviewer 包的热重载正常工作。

适用场景与目标用户

该编辑器特别适合以下场景:
– 建筑信息模型(BIM)轻量化 Web 应用的原型开发或嵌入式编辑模块;
– 需要高精度几何生成(如带门窗洞口的墙体、多边形楼板)与实时反馈的室内/建筑方案设计工具;
– 对状态可追溯性(Undo/Redo)、离线持久化(IndexedDB)、多层级选择导航有明确要求的专业应用。
目标用户主要是前端工程师、建筑软件开发者以及 BIM 工具链的技术决策者——它不面向最终设计师直接使用,而是作为可集成、可定制的底层编辑能力平台。

总结

Pascal Editor 展现出高度工程化的架构意识:从节点抽象、系统划分到状态流与数据流的严格分离,都体现出对大型 3D 编辑场景复杂性的深刻理解。它不是一款开箱即用的“傻瓜式”建模软件,而是一个为构建专业级建筑 Web 应用而生的坚实基础框架。如果你正在评估或开发需要深度定制、高性能渲染与严谨状态管理的建筑编辑能力,它值得深入探索——建议访问其主页获取更详细信息。

作加

类似文章