VibeCoding 能做到什么程度?我用它做了一座 3D 数字博物馆

如果把传统博物馆搬到浏览器里,会是什么样?

不是简单地把一张张文物图片放到网页上,也不是做一个传统的图文展示页面。

我更希望它是一座真正可以"走进去"的博物馆

可以在展厅中漫游,可以旋转和缩放文物,可以点击文物查看介绍,也可以通过热点去了解一件文物身上的细节。

于是,我做了这个开源项目:

中国古文物数字博物馆(cultural-relics-museum)

项目使用 Vue 3 + Three.js + Vite 构建,以"夜馆 · 朱金"为视觉主题,目前包含 15 件模拟藏品,并针对 PC 和移动端分别设计了数字展厅体验。

一、为什么想做一个数字博物馆?

传统博物馆最大的魅力,是"人在现场"。

站在一件青铜器面前,你可以看到它真实的材质、轮廓和细节。

但现实中的博物馆也存在一些天然限制:

  • 有开放时间
  • 有物理空间限制
  • 文物不能随意触碰
  • 很多细节需要依靠展板和讲解
  • 不同地区的人也很难随时到现场参观

而 Web 恰好提供了另一种可能。

如果文物已经完成数字化,那么它就可以从博物馆的玻璃展柜里走出来。

可以被旋转、被放大、被聚焦,也可以加入动画、热点、导览和互动。

这也是我做这个项目最初的想法:

不是把博物馆"搬到网页",而是尝试让网页本身成为一座博物馆。

二、打开网页,先进入一座三维展厅

整个项目没有采用传统列表式的文物展示方式,而是设计了一套完整的三维展厅。

中央采用类似"圜丘"的环形布局,将文物围绕中央空间进行陈列。

通过展台、径向光轨、中庭光池以及灯光层次,让整个空间拥有一种偏东方、偏仪式感的视觉氛围。

这样读者第一眼就能理解:这不是一个普通的文物展示网站,而是一个真正的 Web 3D 展厅。

三、文物不只是"看",还可以交互

进入展厅之后,可以直接点击不同的文物。

选中之后,相机会自动聚焦到对应藏品,同时右侧展示文物相关信息。

目前项目设计了:

  • 文物分类
  • 年代
  • 材质
  • 出土地
  • 文物简介
  • 前世今生
  • 知识点
  • 细节热点

除此之外,还加入了几个比较有意思的 3D 交互。

1. Orbit 旋转缩放

可以围绕文物自由旋转和缩放,从不同角度观察模型。

2. 自动旋转

选中文物后,可以让模型缓慢自转。

相比静态图片,这种方式能够更加直观地展示文物的整体造型和纹饰。

3. 相机聚焦

点击某一件文物之后,相机会自动移动到合适的位置。

不需要用户自己调整摄像机。

4. 展厅漫游

项目还加入了相机漫游逻辑。

相机会按照藏品列表依次飞向不同的展品。

这就有点像:

给数字博物馆增加了一名"虚拟导览员"。

四、最有意思的一个功能:文物细节热点

如果只是让模型旋转,其实还不够。

真正值得关注的,是文物身上的细节。

所以项目加入了类似 Sketchfab 的热点交互。

当相机聚焦到某件文物之后,可以出现编号热点。

点击热点,就能够查看对应位置的细节介绍。

这意味着:

3D 模型负责"看",热点负责"讲"。

以后如果继续扩展,还可以进一步接入:

  • AI 文物讲解
  • 语音导览
  • 多语言介绍
  • OCR
  • 文物知识图谱
  • AI 图片识别
  • 文物相似度搜索

这样,一个简单的 Three.js 3D 展厅,就可以逐渐演变成真正的数字文博应用。

五、Three.js 是这个项目真正的核心

这个项目最核心的部分,其实不是 UI。

而是背后的 Three.js 三维场景。

目前项目使用:

  • Vue 3.5
  • TypeScript
  • Vite 8
  • Three.js r185
  • OrbitControls
  • CSS2DRenderer
  • Tween.js
  • Pinia
  • Element Plus
  • Tailwind CSS

其中 Three.js 主要负责整个数字博物馆的三维世界:

复制代码
Vue 3
  ↓
页面 / UI / 数据
  ↓
Three.js
  ↓
Scene
Camera
Renderer
Light
Model
Controls
  ↓
3D 文物数字展厅

模型资源则采用 GLTF / GLB,并结合 Draco、KTX2/Basis、Meshopt 等技术进行加载和优化。

项目还使用 HDR 环境贴图增强金属、釉面等材质的视觉表现。

这也是我觉得这个项目比较适合作为 Three.js 实战学习案例 的原因。

它不是单独演示某一个 Three.js API,而是尝试把:

场景 + 模型 + 材质 + 灯光 + 相机 + 动画 + 交互 + UI

组合成一个完整的 Web 3D 应用。

六、PC + 移动端双端适配

数字博物馆如果只能在电脑上浏览,体验其实还是会受到限制。

所以项目同时设计了两套展厅:

复制代码
/pc
/m

七、项目开源,欢迎一起继续完善

目前这个项目已经开源,采用 MulanPSL-2.0 许可证。

如果你刚好也在研究:

  • Three.js
  • Vue 3
  • WebGL
  • Web 3D
  • 数字孪生
  • 数字文博
  • 国风 3D
  • VibeCoding

那么这个项目可以作为一个比较完整的参考案例。

项目地址:

https://github.com/zhangbo126/cultural-relics-museum

https://gitee.com/ZHANG_6666/cultural-relics-museum

如果你对 Three.js 数字博物馆、数字文博或者 Web 3D 开发感兴趣,也欢迎一起交流

相关推荐
libokaifa2 小时前
从零手搓一个 GPT:只用 Python 标准库,写一个会起名的字符级模型
ai编程
wangyue_msn_862 小时前
Agent知识学习笔记——03 RAG
笔记·学习·ai编程
火云牌神2 小时前
前后端分离:约束 AI 分工,避免接口耦合与职责错乱
人工智能·系统架构·ai编程·前后端分离·vibecoding
刘立军3 小时前
领域驱动设计:给 AI 划定上下文边界,告别“大泥球”代码
架构·ai编程·领域驱动设计
岛雨QA3 小时前
Claude Code国内无障碍接入 DeepSeek使用指南
ai编程·claude·deepseek
ServBay4 小时前
DeepSeek V4 Pro 发布,1.6T 参数、1M 上下文,又有人坐不住了
aigc·ai编程·deepseek
坚强小橙6 小时前
30 分钟的重复工作,我写了 Claude Code Skill 变成了 8 秒
ai编程
玖玥拾6 小时前
Unity3D RPG 入门项目(四)背包拖拽、物品悬浮提示、项目开发思维
3d·unity·游戏引擎
神奇霸王龙6 小时前
DeepSeek 接 Anthropic:迁移屠夫
ai·ai作画·agent·ai编程·claude·claudecode