真理发现实验室 (Truth Discovery Lab) — 项目方案¶
🧭 项目愿景¶
让科学真理的发现过程可以被亲手经历,而不是被告知。
传统科学教育只教"结果"——最速降线的答案是摆线,但没有人能自己"发现"它。本项目通过 MR(混合现实)技术,让人在真实物理空间中以交互方式重演科学发现的全过程,从而真正理解物理、地理、数学中的核心真理。
硬件基础: Pico 4 Ultra(彩色透视 + 手势追踪 + WebXR 支持)
📐 整体架构¶
三阶段实施计划¶
第一阶段:桌面 3D 模拟 (Phase 1)¶
目标: 在电脑浏览器中构建完整的 3D 物理模拟,验证所有实验设计 阶段时长: 2-4 周 所需: 无需 VR 设备,任何浏览器即可运行
1.1 技术栈¶
| 组件 | 选择 | 说明 |
|---|---|---|
| 3D 渲染 | Three.js + react-three-fiber | 成熟、浏览器原生 |
| 物理引擎 | cannon-es | Web 端最好的刚体物理引擎 |
| 框架 | Vite + React + TypeScript | 快速开发 |
| 状态管理 | zustand | 轻量、适合交互状态 |
| 部署 | GitHub Pages / Vercel | 免费托管 |
1.2 首个实验:最速降线模拟器¶
核心交互流程:
可视化覆盖层:
| 元素 | 显示位置 | 说明 |
|---|---|---|
| 速度矢量 | 小球上方 | 长短箭头表示当前速度大小和方向 |
| 能量条 | 轨道侧面 | 实时显示势能(蓝色)→动能(红色)转换 |
| 加速度箭头 | 小球下方 | 显示重力分量沿切线方向的变化 |
| 耗时榜单 | 屏幕侧边 | 多条曲线同时对比 |
| 曲率圆 | 曲线上 | 在每个点显示当前曲率半径 |
| 摆线参考 | 淡灰色虚线 | "理论最佳"的虚影参考 |
1.3 第二阶段扩展实验 (Phase 1 全部)¶
建立以下实验,每个独立页面但共享框架:
物理学 (6 个实验)¶
| # | 实验 | 核心交互 | 可视化内容 |
|---|---|---|---|
| 1 | 最速降线 | 画曲线→球滚→对比 | 速度矢量、能量转换、曲率 |
| 2 | 单摆等时性 | 调节摆长/质量/角度→计时 | 周期显示、相位图、能量转换 |
| 3 | 开普勒三定律 | 放置行星→调节速度→观察轨道 | 面积速度、近日点/远日点标注 |
| 4 | 自由落体 | 从高处"扔"不同质量的球 | 位移-时间曲线、速度-时间曲线 |
| 5 | 电磁感应 | 拖动磁棒在线圈中运动 | 磁场线、感应电流箭头、实时电流表 |
| 6 | 布朗运动 | "缩小"到分子尺度观察 | 花粉颗粒轨迹、分子碰撞可视化 |
地理 (4 个实验)¶
| # | 实验 | 核心交互 | 可视化内容 |
|---|---|---|---|
| 7 | 河流蜿蜒 | "塑造"地形→水流过 | 流速分布、侵蚀区域、沉积区域 |
| 8 | 板块运动 | 手推大陆板块 | 应力分布、山脉隆起、地震点 |
| 9 | 风化侵蚀 | 加速时间×100,000 年 | 岩石→土壤的转变过程 |
| 10 | 大气环流 | 旋转地球→见风带 | 加热空气粒子、冷热环流动画 |
数学 (4 个实验)¶
| # | 实验 | 核心交互 | 可视化内容 |
|---|---|---|---|
| 11 | 曲率可视化 | 在 3D 空间画曲线 | 曲率圆实时跟随、高曲率区域高亮 |
| 12 | 分形探索 | 设置迭代次数→层层展开 | 精确迭代动画、缩放无限细节 |
| 13 | 拓扑变换 | 拖动甜甜圈变形 | 不变量(欧拉示性数)标注 |
| 14 | 四维可视化 | 旋转超立方体投影 | 3D 投影动态变化、棱/面计数 |
1.4 实现优先级顺序¶
第二阶段:WebXR 沉浸式体验 (Phase 2)¶
目标: 通过 Pico 4 Ultra 浏览器(WebXR)实现沉浸式 3D 交互 阶段时长: 4-8 周 所需: Pico 4 Ultra(已有)+ 任何支持 WebXR 的浏览器
2.1 WebXR 适配方案¶
核心优势——零安装,直接访问:
| 功能 | 实现方式 | Pico 4 Ultra 支持 |
|---|---|---|
| VR 沉浸模式 | WebXR sessionMode: 'immersive-vr' | ✅ 原生支持 |
| MR 透视模式 | WebXR sessionMode: 'immersive-ar' | ✅ 彩色透视 |
| 手柄交互 | WebXR Gamepad API + 射线点击 | ✅ Pico 手柄 |
| 手势追踪 | WebXR Hand Input API | ✅ Pico 4 Ultra 支持 |
| 空间锚点 | WebXR Anchors API | ✅ 部分支持 |
2.2 交互升级:VR 新体验¶
与 Phase 1 的"鼠标拖拽"不同,Phase 2 的交互变为**身体参与**:
最速降线 VR 体验¶
各实验的 VR 交互增强¶
| 实验 | 鼠标版 (Phase 1) | VR 版 (Phase 2) |
|---|---|---|
| 最速降线 | 鼠标画曲线 | 手柄在空中画曲线 + 绕轨道走动观察 |
| 单摆 | 滑块调参数 | 手"拿"着摆锤拉到不同高度释放 |
| 开普勒 | 鼠标拖行星 | "站"在太阳旁边看行星绕转,伸手触摸轨道 |
| 板块 | 鼠标推板块 | 双手推两大板块,感受压力反馈(震动) |
| 分形 | 鼠标点按钮 | "走"进分形内部,缩放如同穿越无限空间 |
| 自由落体 | 鼠标拖到高处 | 从"比萨斜塔"顶点松手扔球 |
2.3 MR 混合现实模式¶
利用 Pico 4 Ultra 的彩色透视功能,将虚拟实验叠加到真实桌面:
MR 的优势: - 保留真实物理世界的空间感(你的身体有参照物) - 看到自己的真实双手操作虚拟物体(减少晕眩感) - 可以同时布置多个实验在房间的不同位置 - 和真实物理模型结合(见 Phase 3)
2.4 手势追踪交互¶
Pico 4 Ultra 支持手指级追踪。这意味着:
2.5 发现模式(重要!)¶
每个实验都包含**"发现模式"**——这是本项目的灵魂:
第三阶段:完整 MR 实验室 (Phase 3)¶
目标: 真实物理传感器 + AR 叠加 = 真正的 MR 混合现实 阶段时长: 8-12 周 所需: Pico 4 Ultra + Arduino/传感器套件(约 ¥500)
3.1 真实传感器桥接¶
这是 Phase 3 的核心——把**真实物理世界**的数据实时传入 MR 空间:
技术方案:
3.2 真实物理模型 + AR 叠加¶
每个实验都可以有"纯虚拟"和"真实+AR"两种模式:
示例:最速降线完整 MR 版¶
3.3 不同实验的真实传感器配置¶
| 实验 | 真实物理模型 | 传感器 | 成本 |
|---|---|---|---|
| 最速降线 | 3D 打印的多轨道模型 | 红外感应器 ×3 + 加速计 | ¥80 |
| 单摆等时性 | 带刻度支架 + 不同摆长 | 角度传感器 + 计时器 | ¥50 |
| 自由落体 | 竖直导轨 + 落球 | 超声波测距 + 高速计时 | ¥60 |
| 电磁感应 | 线圈 + 磁棒 + 导轨 | 霍尔传感器 + 电流表 | ¥100 |
| 布朗运动 | 大屏幕显示显微镜画面 | 摄像头实时追踪 | ¥150 |
| 板块运动 | 沙盘 + 两个板块模型 | 压力传感器阵列 | ¥120 |
| 河流蜿蜒 | 倾斜沙盘 + 水循环 | 摄像头识别水流路径 | ¥100 |
| 风化侵蚀 | 不同类型岩石样本 | 高倍摄像头 | ¥80 |
3.4 空间锚点与多实验布局¶
利用 WebXR Anchors API,用户可以将不同的实验布置在真实房间的不同位置:
3.5 多人协作(扩展功能)¶
3.6 发现履历系统¶
所有实验记录自动保存:
🗺️ 项目路线图¶
三阶段时间线¶
部署方案¶
| 阶段 | 访问方式 | 链接 |
|---|---|---|
| Phase 1 | 电脑浏览器 | GitHub Pages → https://你的用户名.github.io/truth-lab/ |
| Phase 2 | Pico 浏览器 | 同上 URL,自动检测 WebXR |
| Phase 3 | Pico 浏览器 + 本地 WebSocket 桥接 | 同上 URL + 本地 Node.js 服务 |
无需应用商店审批,无需安装 APK —— 整个系统就是一个网页。
🔧 项目启动清单¶
第一周要做的事:¶
- 创建项目仓库(GitHub: truth-lab)
- 初始化 Vite + React + Three.js 项目
- 实现 cannon-es 物理引擎基础集成
- 完成最速降线核心逻辑
- 路径绘制(Catmull-Rom 曲线)
- 物理模拟(小球在曲线上的约束运动)
- 计时系统
- 实现基础可视化
- 速度矢量箭头
- 能量条
- 多曲线对比
- 验证: 摆线是否确实是最快路径(与理论值对比误差 <5%)
你需要准备的¶
| 项目 | 你有吗? |
|---|---|
| Pico 4 Ultra | ✅ 已有 |
| 一台能开发的电脑 | ✅(就是现在用的) |
| Node.js / npm | ✅(已有) |
| 基础 3D 打印能力 | ❓(可找淘宝代打,导轨模型约 ¥50/条) |
| Arduino + 传感器 | ❓(淘宝套装 ¥100-300) |
| GitHub 账号 | ✅ |
📘 附录:各实验的真理发现故事¶
最速降线(物理)¶
历史故事: 1696 年,约翰·伯努利在《博学通报》上公开挑战全欧洲数学家:A、B 两点不在同一垂线上,质点仅在重力作用下沿什么路径下降最快?牛顿收到问题后,从下午 4 点工作到凌晨 4 点,12 小时内解出答案——摆线。伯努利后来评价:"我从爪印认出了狮子。"
让你发现的方式: 你先画直线、抛物线、多项式曲线、反正弦曲线…… 10 次尝试后渐渐接近摆线。最终你"发现"的瞬间,系统显示伯努利的原始手稿,告诉你当年的数学巨匠们为此付出了多大努力。
开普勒定律(物理)¶
历史故事: 第谷·布拉赫用 30 年收集了太阳系最精确的行星观测数据。开普勒花了 10 年时间对火星数据进行分析,前 8 年都以为是圆形轨道,直到误差只剩下 8 角分(月亮的 ¼ 宽度),他意识到——轨道必须是椭圆。这 8 角分的差异,彻底改变了天文学。
让你发现的方式: 你面前有一个行星的模拟轨道,"用圆形轨道拟合"→有 8 角分误差,反复调整参数,最终意识到是椭圆。当你发现的那一刻,系统展示开普勒当年的笔记。
河流弯曲(地理)¶
历史故事: 为什么河流总是蜿蜒曲折?1944 年,爱因斯坦发表了《论河流蜿蜒的成因》,指出最小的扰动(表面张力、地球自转)就会导致水流偏向一侧,然后自我强化——稍微弯一点,外侧水流更快,侵蚀更强,变得更弯。这是一个"正反馈"过程。
让你发现的方式: 你在一个完全笔直的河道上方释放水流,"用极小扰动"触发——注意到初始的微小弯曲如何被放大、放大、最终形成蜿蜒。
分形/科赫雪花(数学)¶
历史故事: 1904 年,数学家科赫构造了一个"处处连续但处处不可微"的曲线——科赫雪花。它的周长无限大,但面积有限。这种"病态"曲线震惊了当时的数学界,现在我们知道这其实是自然的常态(海岸线、雪花、树叶)。
让你发现的方式: 你在线段的 ⅓ 处"折"一个等边三角形,重复这个过程。前几次变化不大,第 5 次迭代后,你看到复杂的精细结构出现。继续下去,周长无限增长,但面积趋于定值。
真理发现实验室 — Truth Discovery Lab
不是在学习科学,而是在**做科学**。