前言¶
化學教學裏常見的做法是靜態示意圖:反應物、生成物各畫一張球棍圖,配一行方程式。學生看不到斷鍵、成鍵和原子重組的過程,也看不出原子是怎麼守恆的。如果想做交互演示,通常要自己搭 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