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 + 移动端双端适配

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

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

bash 复制代码
/pc
/m

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

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

如果你刚好也在研究:

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

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

项目地址:

github.com/zhangbo126/...

gitee.com/ZHANG_6666/...

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

相关推荐
测试_AI_一辰1 小时前
AI Agent 评测最隐蔽的坑-记忆
人工智能·算法·ai·自动化·ai编程
打呵欠的猫2 小时前
我让 AI 封装了一个 ImageUpload 组件,它设计的 5 层校验链路比我想的周全
前端·ai编程
程序员黑豆2 小时前
深入解析Java数据类型:基本类型与引用类型的本质区别与实战选择
前端·ai编程·全栈
努力搬砖的咸鱼2 小时前
AI Agent测试全景图:它到底改变了什么
人工智能·python·ai·集成测试·pytest·agent·ai编程
明川2 小时前
从 Copilot 到 Harness Engineering:我在 Android 工程里的 AI 开发实践
ai编程
GitLqr3 小时前
拒绝 AI 乱写代码:手把手教你玩转 Claude Code 的工程化技能集
openai·ai编程·claude
仙逆GPT3 小时前
ChatGPT、Codex实战:Scheduled Tasks怎么用?本地项目和Worktree到底该选哪个?
ai编程·codex·chatgptplus·worktree·scheduledtasks
仙逆GPT3 小时前
ChatGPT、Codex实战:GPT-5.4即将退出,迁移到5.6 Terra / Luna前要检查哪些配置?
ai编程·codex·chatgptplus·gpt5.6·codex教程
MomentYY4 小时前
RAG 评估:答错了,是检索的错还是生成的错?
人工智能·agent·ai编程