前言¶
化学教学里常见的做法是静态示意图:反应物、生成物各画一张球棍图,配一行方程式。学生看不到断键、成键和原子重组的过程,也看不出原子是怎么守恒的。如果想做交互演示,通常要自己搭 Three.js 场景、手写方程配平、再单独做讲解,几节课下来维护成本很高。
edu-chem-reaction 把这件事打包成一个技能:输入一个化学反应(文字描述、方程式,或者一张图),它生成一个自包含的 HTML 页面——左边是可拖拽的 Three.js 分子动画,右边是 KaTeX 反应方程、分步讲解、原子守恒计数,可选能量-反应进程曲线。页面由 sympy 精确计算驱动,动画和方程同源,不会出现”图上画的和式子对不上”的问题。
这是什么¶
edu-chem-reaction 是一个面向化学教育场景的 Skill,把单个化学反应渲染成自包含的微观 3D 交互演示网页。它由 SkillHub 上的 user_8bb4b4f5 发布维护,属于 education 分类,SkillHub 评分 99471,下载量 940。
它解决的问题是:化学反应的微观过程(断键、成键、原子重组)难以在普通课件里可视化,且手动制作的演示与方程式、守恒校验容易不一致。这个 Skill 用统一的计算内核生成动画和方程,保证答案与几何同源一致。
核心功能¶
三种入口¶
1、给定文字描述或化学方程式,直接生成演示页。
2、随机出题模式,随机给出一个反应并生成完整演示。
3、上传图片,识别图片中的化学反应后生成演示。
页面结构¶
页面是单文件自包含 HTML,布局为左/上分子动画区、右侧信息区:
- 分子动画区:Three.js 可交互 3D 场景。拖动滑块控制反应进程,可以看到断键、成键、原子重组,并按步骤高亮当前状态。
- 反应方程:用 KaTeX 渲染,自动配平。
- 分步讲解:按反应步骤给出文字说明。
- 原子守恒计数:对反应前后各元素的原子数做计数展示。
- 能量-反应进程曲线:可选,展示能量随反应进程的变化。
反应类型覆盖¶
- 燃烧反应(如甲烷燃烧、氢气燃烧)。
- 化合、分解、置换、复分解四类基本反应。
- 氧化还原反应,带电子转移可视化。
- 有机反应机理(如酯化反应),包含催化剂与过渡态的展示。
sympy 驱动的统一计算¶
动画不是手工调出来的,而是由 sympy 统一计算:
1、自动配平化学方程式。
2、校验原子守恒,并做原子映射(反应物中的原子对应到生成物中的哪个原子)。
3、推导键的断裂与生成。
因为方程、原子映射、键的变化都来自同一套计算,页面里的动画和右侧的方程式、守恒计数是同源一致的,改一个反应不需要分别维护。
两套几何引擎自动选择¶
Skill 内置两套引擎,会根据反应类型自动选择:
- morph:原子变形动画,用于展示原子守恒,原子在反应前后保持对应关系。
- mechanism:机理关键帧动画,用于展示催化过程和过渡态。
混合几何来源¶
分子几何默认来自自建的 VSEPR 分子库。如果运行环境装有 RDKit,则可以用 RDKit 从 SMILES 生成构象,几何更贴近真实。注意:不会自动安装 RDKit,环境里没有就退回 VSEPR 库。
安装与启用¶
官方地址:https://api.skillhub.cn/user_8bb4b4f5/edu-chem-reaction
本次写作时该官方页面抓取失败,具体的安装命令、目录配置未能从官方资料核实,因此不在此列出。启用方式以 SkillHub 页面和 SKILL.md 为准。
典型用法¶
以下是入口对应的调用方式,具体参数格式以 SKILL.md 为准:
1、给定文字反应或方程式:把反应描述或方程式作为输入,Skill 生成演示页。
2、随机出题:请求随机一个化学反应,Skill 给出反应并生成演示页。
3、图片识别:上传一张包含化学反应的图片,Skill 识别其中的反应后生成演示页。
生成结果是自包含的 HTML 文件,可直接打开查看。
适用场景与注意¶
适合化学教学、课件制作,以及需要把某个具体反应讲清楚(断键成键、原子守恒、电子转移)的场景。也适合其他 agent 调用,批量生成这类反应演示页。
使用上的注意:
- 覆盖范围是脚本列出的反应类型(燃烧、四类基本反应、氧化还原、酯化等有机机理),不在列表里的反应不一定能正确处理。
- 分子几何依赖 VSEPR 库或已安装的 RDKit;要更真实的构象需自行在环境中装好 RDKit。
- 官方页面本次未能访问,安装与配置细节未核实,采用前建议先打开官方地址确认。
结尾¶
edu-chem-reaction 的价值在于把”反应动画 + 方程式 + 守恒校验”三件事合并到一个由 sympy 驱动的流程里,教师或 agent 只要给出一个反应,就能得到同源一致的交互演示,不用分别维护动画和式子。
官方地址:https://api.skillhub.cn/user_8bb4b4f5/edu-chem-reaction