🪞 MirrorReflect — 镜面圆柱体可视化教学工具

:mirror: MirrorReflect — 镜面圆柱体可视化教学工具

SOLO 科技至善挑战赛 参赛作品

用科技让光学之美触手可及,让抽象物理原理跃然眼前。


一、作品简介

MirrorReflect 是一款跨学科的交互式可视化教学软件,专注于演示和探索**圆柱镜面反射映射(Cylindrical Mirror Anamorphosis)**的物理与数学原理。

你见过那种神奇的"变形画"吗?——一张纸上画着看似乱七八糟的图案,但把一个圆柱形镜子放在中间,镜子里就会浮现出一幅清晰的图像。这种数百年来让人着迷的光学幻象,正是 MirrorReflect 要揭示和教学的核心。

我们的软件不仅还原这一光学现象,更让用户能够亲手设计属于自己的镜面变形画,在交互中理解光线追踪、坐标变换和图像优化等核心概念。

一句话描述:让每个人都能"画"出镜中的世界——一个将光学、数学与艺术融为一体的科技教学平台。


二、:bullseye: 解决的问题:科技至善,教育为先

当前教育的痛点

在中学和大学的物理、光学、计算机图形学课程中,圆柱镜面反射映射是一个经典的跨学科课题,但长期以来面临三大困境:

困境

具体表现

高度抽象

涉及复杂的光线追踪、非线性坐标变换,纯公式推导让学生望而生畏

缺乏实验手段

手工制作镜面变形画极其耗时且精度低,难以在课堂上实时演示

知识割裂

物理光学、数学变换、计算机算法各自独立,缺乏一个能直观串联的工具

MirrorReflect 的解决方案

我们打造了一个零门槛、全功能、实时交互的教学平台:

  • :artist_palette: 可视即所得:上传任意图片,即刻生成对应的镜面变形画,亲眼见证"混沌→清晰"的光学魔法

  • :microscope: 从入门到专业:入门模式只需 5 个直观滑块即可快速体验;专业模式暴露 60+ 可调参数,满足深度研究

  • :globe_with_meridians: 3D 沉浸观察:GPU 加速的 3D 场景中自由旋转视角,直观理解观察者、圆柱和纸面之间的空间关系

  • :high_voltage: GPU 实时加速:核心计算全部支持 GPU 加速,复杂搜索秒级完成


三、:rocket: 核心功能模块

MirrorReflect 围绕四大功能模块构建,覆盖从基础演示到高级研究的全链路:

模块一:逆映射与搜索(Inverse Mapping & Search)

输入:一张目标图片(你希望在镜子中看到的图像)
输出:一张纸面图案(打印后放在圆柱旁,镜子中会映出目标图)

技术亮点

  • 光线追踪逆求解:从观察者视线出发,反向计算每条光线经圆柱镜面反射后在纸面上的落点

  • 蒙特卡洛参数搜索:自动搜索最优圆柱尺寸(半径 R、高度 H)和可见角范围,最大化纸面覆盖率

  • 结果对比:同时展示目标图、纸面设计图、模拟镜面图和误差热力图

模块二:镜面融合优化(Mirror Fusion Optimizer)

输入:镜面目标图 + 纸面先验图
输出:一张融合纸面图案,在镜子中呈现目标图,在纸面上保留先验图的特征

技术亮点

  • 三阶段优化:镜面硬约束 → 纸面软约束 → 联合微调

  • 多损失函数融合:MSE、SSIM、边缘损失、金字塔损失、全变分正则化,九项损失权重均可调

  • 脚印掩膜技术:精确划定镜面反射影响区域,实现区域化约束

  • 质量预设(低/中/高)和优化模式(均衡/镜面优先/纸面优先)一键切换

模块三:双重语义分析(Dual Semantics Analysis)

输入:两张不同图案(图片A和图片B)
输出:可行性评估——能否在同一圆柱的不同角度分别看到两张图?

技术亮点

  • 双重独立图案可行性量化分析

  • 帕累托前沿计算:在两张图的还原质量之间寻找最优折衷

  • FFT 变形分析 + 雷达图多维评估

  • 适合高阶研究和项目答辩展示

模块四:3D 立体观察(3D Interactive Viewer)

功能:在3D场景中实时观察圆柱镜面映射系统

技术亮点

  • pyrender + OpenGL GPU 渲染:圆柱实体 + 纸面贴图 + 观察者视线,真实物理场景

  • 鼠标拖拽旋转:视角参数实时双向同步(拖拽 3D 视图 ↔ 滑块数值联动)

  • 滚轮缩放:模拟观察距离变化

  • 自动旋转模式:360° 缓慢旋转,适合演示和录屏

  • 当 pyrender 不可用时自动降级为 matplotlib 3D 渲染


四、:building_construction: 技术架构

技术栈

层级

技术

用途

GUI 框架

PySide6 (Qt for Python)

跨平台桌面应用界面

数值计算

PyTorch + CUDA

GPU 加速的光线追踪和优化

图像处理

OpenCV, NumPy, SciPy

图像预处理、插值、滤波

3D 渲染

trimesh + pyrender (OpenGL)

3D 场景构建与 GPU 离线渲染

可视化

matplotlib

热力图、损失曲线、帕累托图等

异步架构

QThread + Signal/Slot

计算异步化,不阻塞 UI

架构设计

┌─────────────────────────────────────────────────────┐
│                    QToolBar                          │
│   标题 | 📂打开图片 | 🔬专业模式 | 💾导出             │
├─────────────────────────────────────────────────────┤
│  InfoBar: 文件名 | 分辨率 | 文件大小                  │
├─────────────────────────────────────────────────────┤
│  ┌─────────────┐    全屏画布     ┌─────────────┐    │
│  │ 快速成像面板  │  ResultCanvas  │ 高级搜索面板  │    │
│  │ (悬浮浮动)   │  (QStacked)   │ (悬浮浮动)   │    │
│  │             │               │ QScrollArea  │    │
│  │ 5个核心滑块  │               │ 完整参数控制  │    │
│  │ ▶一键生成    │               │ 🔍完整搜索   │    │
│  │ ⚡GPU开关   │               │             │    │
│  │ 进度条      │               │             │    │
│  └─────────────┘               └─────────────┘    │
├─────────────────────────────────────────────────────┤
│  QStatusBar: 设备信息 | GPU型号 | 当前模式          │
└─────────────────────────────────────────────────────┘

关键设计原则

  1. 悬浮极简 UI:左右参数面板悬浮于画布之上,半透明白色背景 + 12px 统一圆角 + 柔和阴影,最大化画布空间

  2. 入门/专业分离:左侧 5 个核心参数(入门级),右侧 60+ 参数(专业级),入门模式可隐藏专业面板

  3. GPU 加速开关:GPU 可用时显示绿色 “:high_voltage: GPU 加速 ON”,可随时切换 CPU/GPU

  4. 显存自适应:自动检测 GPU 显存容量,动态调整计算分辨率防止 OOM

  5. 计算异步化:所有计算在 QThread 子线程执行,通过信号槽传递进度和结果


五、:light_bulb: 核心创新点

1. 从"黑箱演示"到"透明探索"

传统的教学动画只能展示"结果"——一张变形的图和镜中的清晰影像。MirrorReflect 将整个物理过程可视化

  • 实时调整观察者距离、视线高度、圆柱尺寸

  • 即刻看到纸面图案的对应变化

  • 误差热力图直观反馈设计质量

2. 入门与专业的无缝衔接

不是简单的"难/易"二选一,而是渐进式参数暴露

  • 入门模式的 5 个滑块对应核心物理量,适合 10 分钟课堂演示

  • 专业模式解锁全部 60+ 参数,支持研究生级别的深入研究

  • 同一套代码、同一个界面,按需切换

3. 双重语义——从"一幅图"到"两幅图"

首次将"在同一圆柱上看到两幅不同图案"的可行性分析可视化:

  • 帕累托前沿让用户直观理解"质量权衡"

  • FFT 分析揭示变形的频域特性

  • 为光学艺术创作提供量化指导

4. GPU 加速的全链路覆盖

不只是一个"GPU Demo",而是从图像加载、光线追迹(数千条光线并行计算)、参数搜索(数百组参数批量评估)、结果构建到 3D 渲染的全链路 GPU 加速


六、:globe_showing_europe_africa: 社会价值与教育意义(科技至善)

教育公平

  • 零成本部署:纯 Python 开源软件,无需昂贵的实验设备

  • 跨平台运行:Windows/Linux/macOS 均可使用

  • 降低门槛:让偏远地区的学生也能"亲手"体验光学的奇妙

跨学科融合

MirrorReflect 天然连接多个学科领域:

学科

涉及知识点

物理学

镜面反射定律、光线追迹、光学成像

数学

非线性坐标变换、优化算法、蒙特卡洛方法

计算机科学

GPU 并行计算、数值优化、3D 渲染管线

艺术

变形画(Anamorphosis)、视觉错觉艺术

适用场景

  • :school: 中学物理课堂:光的反射定律的可视化演示

  • :graduation_cap: 大学光学/图形学课程:交互式实验平台

  • :microscope: 科研探索:镜面变形画的参数敏感性分析

  • :artist_palette: 科普展览:科技馆/美术馆的互动展项

  • :laptop: STEM 教育:编程+物理+数学的融合实践项目

:+1: :+1: