news 2026/8/27 8:15:39

Ray Optics:免费在线2D几何光学仿真工具,从浏览器到本地部署完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ray Optics:免费在线2D几何光学仿真工具,从浏览器到本地部署完整指南

Ray Optics:免费在线2D几何光学仿真工具,从浏览器到本地部署完整指南

【免费下载链接】ray-opticsA web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos.项目地址: https://gitcode.com/gh_mirrors/ra/ray-optics

Ray Optics 是一个免费开源的 Web 应用,让你在浏览器里直接做 2D 几何光学仿真:把点光源、透镜、镜子放到画布上,光线的反射、折射、色散路径立刻可见,无需安装任何软件。下面按"能做什么 → 怎么跑起来 → 怎么深入用"的顺序,把它的能力和用法一次讲清楚。

🧭 能力全景:Ray Optics 光学仿真元件与功能清单

核心功能与光学元件库

  • 光源:点光源、单条光线、平行/发散光束。你在课堂上拖动光束角度,屏幕上的折射光线会同步变化,学生能直接看到偏折量。
  • 反射与折射:直线或曲面镜、直线或曲面折射界面,都支持用自定义方程定义表面形状;分光镜、二向色镜、衍射光栅也都有。
  • 透镜与梯度折射率介质:理想透镜/镜面(遵循透镜公式)、用前后焦距定义的球面透镜、用自定义折射率函数定义的 GRIN 材料,适合做光纤和自聚焦透镜的原型验证。
  • 颜色仿真:颜色混合、颜色过滤、色散——白光穿过棱镜后在屏幕上分开成光谱。

Ray Optics 仿真中的球面透镜与镜面系统,展示了光的聚焦与反射路径

Ray Optics 颜色仿真:不同颜色光线在屏上叠加与分离

测量与分析:距离、角度、能量流怎么读

  • 直尺量距离、量角器量角度,还可以测能量流和动量流。
  • **Detector(探测器)**记录落在屏上的光能量,并能画出发照度分布图(irradiance map)。
  • 打开光线延长线开关,可以直接看出出射光是否汇聚成虚像;界面还能直接显示实像、虚像、虚物体,以及"从某个观察者位置看过去的像"。

自定义扩展:SVG 导入、方程表面与模块组合

  • 可以把 SVG 文件里的形状导入为光学元件,画好的光路图直接变成可仿真的组件。
  • 自定义曲面/自定义曲线让你用方程定义表面及其与光线的交互行为。
  • 多个光学元件可以打包成一个模块并暴露可调参数,官方模块区已提供 11 个现成模块(束扩、光纤、镀膜透镜、菲涅尔透镜等),见data/moduleScenes/目录。

AI 辅助:让聊天机器人帮你写模块代码

ai-tools/目录存放了 "Ray Optics Coder" 聊天机器人的指令与知识文件,它能帮你编写模块代码和集成脚本。你可以使用官方版本,也可以拿这些文件搭建自己的聊天机器人;熟悉提示词工程的话,还能通过提交 PR 改进它。

🚀 上手路径:在线体验与一键本地部署步骤

方式一:在线体验。打开项目的官方在线页面即可进入仿真器,同站还有交互演示画廊,无需任何配置。

方式二:本地跑起来(开发者)。安装 Node.js 18 以上版本后,在终端执行:

git clone https://gitcode.com/gh_mirrors/ra/ray-optics cd ray-optics npm install --no-optional npm run start

浏览器打开http://localhost:8080/simulator/即可使用。若只想本地运行完整网站(含画廊和模块页),先执行npm installnpm run build,全部产物会生成到dist目录。

方式三:非开发者路线。下载打包好的发布版本解压,用 Simple Web Server 指向该文件夹,并在 Basic Options 中开启 "Exclude .html extension",点 Create server 后访问http://localhost:8080/。详细图文步骤见run-locally/README.md

Ray Optics 本地部署:Simple Web Server 启动后,在浏览器访问本地地址即可使用完整站点

🛠️ 深度玩法:自定义光学模块与三个实战场景

自定义模块。在工具栏的模块功能里,你可以把若干光学元件组合成一个带自定义参数的模块,界面内置代码编辑器;完成后既可以导入别人写的模块(Tools → Import Modules),也可以把自己调好的组合存下来反复使用。例如做一个"束扩"模块并暴露放大倍率参数,之后在任何场景里引用它、改一个数字就能复用。

场景一:课堂教学。画廊里的"黑猫变白"场景演示了折射如何改变物体的视觉外观:光从水中射出发生偏折,原本黑色的物体看起来变白。老师拖动画布中的界面位置,全班同步看到效果变化,比板书画光线图直观得多。

Ray Optics 画廊场景"黑猫变白":折射使水下物体呈现不同颜色,适合课堂演示

场景二:工程设计。光学工程师在设计束扩器、全息瞄具这类系统时,可以先用原理图快速验证光路是否合理,再摆上 Detector 记录能量分布,确认关键参数后才进入物理打样。

场景三:科研建模。需要研究光纤或自聚焦透镜时,使用data/moduleScenes/中的 OpticalFiber 模块,或用自定义折射率函数改写 GRIN 材料模型,把想法变成可计算的场景,替换公式即可切换研究模型。

⚙️ 调优与输出:光线密度、精度参数与数据导出

  • 光线密度:顶栏可在低/中/高三档间切换。调试场景时先用低密度快速看光路走向,确认无误后调高再出图。
  • 最大光线深度(maxRayDepth):限制单条光线经历的反射/折射次数上限。仿真光学腔、多镜系统时适当调低,能明显减少计算量。
  • 渲染引擎:仿真器内置 CPU 与 WebGPU 两套引擎(见src/core/simulationEngines/),大规模光线任务可交给 WebGPU 加速。
  • 精度控制:Detector 的 irradiance map 按 bin 分箱统计,bin 越细分辨率越高;CropBox 的 width 参数决定渲染图片的宽度。两者按需调整,避免无谓的计算开销。

Ray Optics 高密度光线追踪:调高光线密度后光路分布的细节更完整

数据导出格式:

格式用途
SVG矢量光路图,适合论文与出版物
CSV探测器与辐照度数据,可直接用表格软件分析
JSON场景文件,可分享、可再次编辑
PNG渲染截图,适合报告插图

🌐 生态延伸:社区贡献、多语言集成与学习资源

  • 参与社区:有三类贡献几乎不需要编程知识——向画廊提交新场景、翻译界面(项目已支持 25 种语言,译文文件在locales/目录)、贡献新模块。具体教程见CONTRIBUTING.md,计划中的功能见ROADMAP.md,先读再动手可以避免重复劳动。
  • 与其他语言集成integrations/目录提供了从 Python、Julia 调用仿真引擎的工具,含example_python.pyexample_julia.jl两个示例和runner.js执行入口,把场景 JSON 传进去就能拿到探测器读数或渲染图片;仿真器本身也能作为 Node 模块引入你自己的项目。
  • 学习资源:画廊中的交互演示覆盖从基础折射到复杂光学系统;test/scenes/目录里有大量场景 JSON 及对应的输出图片和 CSV,是不错的入门示例集;API 文档由代码注释自动生成。

打开仿真器,放一个点光源和一块透镜,看看光究竟会聚到哪里。

【免费下载链接】ray-opticsA web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos.项目地址: https://gitcode.com/gh_mirrors/ra/ray-optics

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/27 8:14:39

具身智能百万小时数据建设:从采集到训练集的技术链路拆解

2026 年百万小时具身智能数据建设,这个目标一出来,很多做机器人的团队都会心里一紧。百万小时是什么概念?如果按单台机器人每天采集 8 小时有效数据来算,粗算需要 340 多台设备跑满一整年,这还没算清洗、筛选、标注、质…

作者头像 李华
网站建设 2026/8/27 8:13:53

2026年8月:华硕笔记本维修相关信息

在快节奏的工作与生活里,华硕笔记本一旦出现故障,简直让人抓狂!数据丢失、工作中断,维修若不专业,还可能让问题更严重。选对维修店,能让你少走很多弯路、节省时间和金钱。挑选华硕笔记本维修店,…

作者头像 李华
网站建设 2026/8/27 8:12:45

数学建模竞赛必备:最短路径问题20个核心知识点与实战技巧

1. 项目概述:从“两点之间直线最短”到复杂网络寻优最短路径问题,听起来像是个纯粹的数学概念,但只要你用过手机地图导航、网购时看过物流追踪、甚至在社交软件里刷到“六度空间理论”,你就已经和它打过无数次交道了。它远不止是“…

作者头像 李华
网站建设 2026/8/27 8:12:42

10万台PS3跑Kimi K3?一场分布式推理的算力迷思

这次我们来看一个 Hacker News 上的项目标题:Show HN: Kimi K3 inference on about 100k PS3 nodes。字面意思很简单——把约 10 万台 PlayStation 3 游戏机组在一起,给 Kimi K3 大模型做推理。第一眼像段子,但如果你对 PS3 的硬件历史有印象…

作者头像 李华
网站建设 2026/8/27 8:12:38

隐私优先的预算应用:不触碰银行账户的自托管设计与实践

这次我们来看一类比较特殊的应用:预算管理应用。它的核心卖点不是算法多强、图表多好看,而是“干脆不触碰你的银行账户”,把隐私设计放在第一位。这个思路和市面上大多数记账软件完全不同。主流做法是让用户填手机号、收验证码、绑定银行卡&a…

作者头像 李华
网站建设 2026/8/27 8:12:34

Scratch推箱子通关核心:坐标建模与广播时序设计

1. 这道题为什么让全国选手集体卡在第三关——从蓝桥杯国赛现场还原真实痛点 去年国赛结束当晚,我在点酷网Scratch社区刷到一条置顶帖:“推箱子第三关卡了47分钟,最后靠蒙通关”。发帖人是山东某重点小学五年级学生,附图里他调试区…

作者头像 李华