波动光学演示系统 — "见"所未见
MelianX 是一个交互式波动光学可视化演示系统,支持 Web 浏览器与跨平台桌面应用双端运行。通过 WASM 加速计算,实时渲染干涉、衍射、偏振等光学现象。
- 丰富的光学实验 — 内置多种经典光学实验(杨氏双缝、单缝衍射、光栅衍射、菲涅尔圆孔衍射等)
- WASM 加速渲染 — C 语言编写的计算核心,通过 Emscripten 编译为 WebAssembly,实现高性能实时渲染
- 自定义实验 — 支持通过 JSON 配置文件定义自定义光学实验
- 双端运行 — Web 版直接浏览器访问,桌面版基于 Tauri v2 打包(~10MB)
- 交互式操作 — 拖拽光学元件、实时调节参数、所见即所得
- 偏振支持 — 完整的偏振光学模拟
| 层 | 技术 | 说明 |
|---|---|---|
| 前端框架 | React 18 + TypeScript | 组件化 UI |
| UI 组件库 | Ant Design 5 | 设置面板、交互控件 |
| 构建工具 | Vite 5 | 开发服务器 + 生产构建 |
| 计算引擎 | WebAssembly (C / Emscripten) | tinyexpr 表达式引擎 + CIE 色彩匹配 |
| 桌面框架 | Tauri v2 | Rust 后端 + 系统 WebView |
| 文档站 | Docusaurus 3 | 静态文档网站 |
# 安装依赖
npm install
# 启动开发服务器(端口 1420)
npm run dev# 前置:安装 Rust 和 Tauri 系统依赖
# 参见 https://v2.tauri.app/start/prerequisites/
npm run dev:tauri# 前置:安装 Emscripten SDK (emcc)
npm run build:wasm# Web 版
npm run build # 产物输出到 dist/
# 桌面版(生成可执行文件)
npm run build:tauri
# WASM 模块
npm run build:wasm # 输出到 src/wasm/gen1.wasm.js
# 文档站
npm run build:docs # 输出到 docs/build/MelianX/
├── src/ # React 前端(Web + Desktop 共享)
│ ├── wasm/ # WASM 加载器 + 屏幕渲染 Hook
│ ├── screens/ # 4 种 WASM 加速屏幕组件
│ ├── lab/ # 光具座场景
│ ├── experiment/ # 实验配置(JSON + 逻辑)
│ ├── color/ # 波长→光强辅助
│ ├── setting/ # 设置面板组件
│ ├── measures/ # 测量工具
│ └── lib/platform.ts # 平台抽象层
├── src-tauri/ # Tauri Rust 后端
├── wasm/ # C 源码 + 构建脚本
├── docs/ # Docusaurus 文档站
├── scripts/ # 构建脚本
└── deploy/ # 部署脚本(不进 git)
| 屏幕 | 维度 | 用途 |
|---|---|---|
| ScreenFixedCircle | 1D | 固定圆屏(杨氏双缝、单缝、光栅) |
| ScreenBoard | 1D | 矩形屏(无裁剪) |
| ScreenFixedCirclePolar | 2D | 固定圆屏偏振 |
| ScreenBoardPolar | 2D | 矩形屏偏振 |
完整文档请访问 MelianX 文档站,包含使用指南、自定义实验教程和开发者文档。
MelianX(v3.0.0)是对旧版 Melian 的全面重构,由 GLM-5.2 和 Qwen3.7-Plus 两个 AI 模型深度辅助完成。旧版是基于 Electron 的桌面优先应用,新版改为 Web 优先 + Tauri 轻量桌面架构,计算引擎从纯 JavaScript 统一迁移到 WASM(C/Emscripten)。
详见 X 重构解释。
王宇轩 (Elwina Vardal)
- GitHub: @elwina
- Email: elwina_vardal@outlook.com
Copyright © 2023-2026 王宇轩 (Elwina Vardal). Licensed under the MIT License.