GoForum🌐 V2EX

把一个多年没人维护的开源 3D 户型图工具重写了一遍,用了最新的技术栈

linncharm9 · 2026-03-25 14:49 · 0 次点赞 · 0 条回复

blueprint3d https://github.com/furnishup/blueprint3d 是一个挺有意思的开源项目, 可以在浏览器里画户型、摆家具、切换 2D/3D 视图。但原项目基于 jQuery 、CoffeeScript 和已经废弃的 Three.js API ,好几年没人维护了,现在基本跑不起来。

自己有个项目需要用到类似功能,找了一圈没有合适的现代替代品,就干脆自己重写了一遍。

demo: https://blueprint3d-modern.vercel.app/


改了什么

原版 → 现版:

  • jQuery + CoffeeScript → TypeScript 严格模式 ES Module
  • 废弃的 Three.js Geometry API → Three.js r181 BufferGeometry / WebGLRenderer
  • tween.js → anime.js v4 ( camera 动画)
  • 无持久化 → IndexedDB 本地存储,不需要任何后端
  • 仅英文 → 多语言支持(中文简体 / 繁体 / 英文)
  • 无 demo → Next.js 15 App Router + React 19 完整 demo

主要功能

  • 2D 平面图编辑器:画墙、移动、删除,带吸附和尺寸标注
  • 3D 实时预览:可以拖转视角,随时切换 2D/3D
  • 家具放置:从分类目录拖拽摆放(床、沙发、桌椅、衣柜、卫浴、门窗等)
  • 每件家具可单独调整尺寸、旋转、锁定位置
  • 地板和墙面纹理可以按房间独立设置
  • 房间模板:空白画布或预设房型直接开始
  • 存档/读档:存在浏览器 IndexedDB ,不需要账号,不需要服务器
  • 单位制:英寸/英尺、米、厘米、毫米可切换

技术栈

核心库( src/)是纯 TypeScript ES Module ,可以独立于任何框架使用。

Demo 应用:

  • Next.js 15 App Router
  • React 19
  • Tailwind CSS v4
  • shadcn/ui + Radix UI
  • Zustand (状态管理)
  • Framer Motion (动画)
  • next-intl ( i18n )

仓库地址

原版: https://github.com/furnishup/blueprint3d 重写版: https://github.com/charmlinn/blueprint3d-modern

0 条回复
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: linncharm9
发布: 2026-03-25
点赞: 0
回复: 0