一个用光路反射递归生成多层空间的交互式几何装置。 本仓库是该装置长期演化的 Web 实现——已模块化(CORE / RENDER / APP),含视锥追迹、活动域、多视图、测试布景与"观者所见(Σ)"视角。
🔗 在线预览:https://fansudur.github.io/incidence/ (GitHub Pages,自动部署 main 分支)
一个球体 Σ(视线/光的起点)穿过一个取景框 F,投射到 45° 倾斜的镜面链上;每经过一面镜面光路旋转 90°,反射生成层层放大的世界。红 / 绿 / 蓝 是同一个世界内部的三个层级(活动域),不是三个独立世界——它们共享同一个 Σ + F,在 Σ 视点处合成为一幅完整画面。
零构建、纯静态、离线可用(three.js / lil-gui 已 vendored 在 vendor/)。
# 任选其一,把本目录当静态根
py -m http.server 8765
# 然后浏览器打开 http://localhost:8765也可直接部署到任意静态服务器 / nginx。不使用任何浏览器存储(localStorage 等);状态在内存,持久化走 JSON 预设(规划中)。
- 视锥追迹:从 Σ 发出穿过取景框 F 四角的四条光线,逐面 45° 镜面反射追迹。
- 镜面 = 视锥在该位置的截面:镜面尺寸由光锥自然决定,不预设;层级放大是视锥发散的自然结果(W₁ 最内最小 → W₃ 最外最大)。
- 45° → 光路转 90°:装置的核心不变量。
- 有限镜面 → 穿帮(bug)区:光路越过镜面物理边界即丢失,世界不是无限大的。
- 安全可布景区(黄) + 易穿帮区(红):每段用前/后邻锥把视锥切成两半——黄 = 安全(一切布景任务都在这里做),红 = 易穿帮(本段锥 ∩ 邻锥左右侧壁;布景物落入即被二次反射 / 漏入第一视角 → 穿帮)。其上下高度跟随本段锥自身。
docs/项目档案.md— 项目本质 / 几何结构 / 变体谱系 / 开放问题docs/系统架构与工作计划.md— 模块化重构路线(CORE / RENDER / APP)与分阶段计划docs/协作导则.md— 协作约束(硬设定 / 不可拍板的开放问题 / 风格)
- 视锥追迹原型:单 Σ · 每面镜面独立角度/间距 · 安全可布景区(黄) + 易穿帮区(红) · 穿帮检测 · lil-gui 实时交互 · 离线 vendored。
- 模块化重构:几何内核(纯数学,零 three 依赖)/ 渲染层 / 应用层解耦 + Node 几何回归测试。
- 收尾镜 M4 · 九宫格视线投影 · 多视图(透视/正交)+ 三视口 · 测试布景 · "观者所见"(Σ)视角 + 观影墙。
- 变体扩展(可插拔模块):半透明正背双世界 · 双 Σ 左右对称 · 旋转 N 世界(一生二三)· 复合生成序列。
- 动画:逐层降维收缩(面→线→点,顺序可配置)· 多世界生成过渡。
- 真实镜面反射(Reflector 实时 / 路径追踪 高保真)· 反射回路接口。
- 双语(中 / 英):界面文案可切换 + 按浏览器语言自动选择。
- 页面内说明 / 引导:文本说明区或弹出对话框,讲清场景在表达什么、引导观众理解(避免无背景的观众看不懂)。
持续 15 年以上的长期艺术装置项目的 Web 模块。几何承载意义。