根据 SimSpec YAML 或 JSON 规范,生成包含在单个 index.html 文件中的独立交互式科学模拟。适用于用户请求物理、化学、生物等学科模拟的场景。
科学模拟作者
功能概述
科学模拟作者是一项面向实际任务的技能,主要用于Core promise.;Generate one 自定义索引.html 运行离线,使 STEM 模拟在 2D 画布上, 曝光模型参数为滑动器, 绘图时间 Ser。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
科学模拟作者
核心承诺
生成一个自包含的 index.html 文件,该文件可离线运行,在 2D 画布上渲染 STEM 模拟,将模型参数暴露为滑块控件,绘制时间序列图,并内嵌一份探究式工作表。
输入
接收 YAML 或 JSON 格式的 SimSpec,内容需包含:
id、title、domainstate、params、initial、equations、outputs- 可选字段:
level、dt、worksheet、success_criteria
在生成任何内容前,须先依据 templates/sim_spec_schema.json 对输入进行校验。
输出契约
- 仅生成一个名为
index.html的文件。 - CSS 全部内联于
标签中,JavaScript 全部内联于标签中。 - 禁止使用打包器(bundler)、包管理器(package manager)、CDN、外部字体,或任何运行时网络访问。
- 必须包含以下 DOM ID:
simCanvas、plotCanvas、runToggle、stepBtn、resetBtn、dtSlider、paramControls、readouts、statusBanner、worksheet、copyJsonBtn、downloadCsvBtn。 - 必须包含控制面板、实时读数显示、一个时间序列图表、本地 JSON 快照导出功能、本地 CSV 下载功能,以及一份非空的工作表。
工作流
- 依据
templates/sim_spec_schema.json校验输入的 SimSpec。 - 规范化 SimSpec:
- 若未提供
dt,则默认使用default=0.01、min=0.001、max=0.05。 - 若某参数未指定
step,则按step=(max-min)/100推导,并做合理舍入。 - 在生成 JavaScript 前,将导数别名(如
dx、dy、dvx、dvy、dq、dvc)统一标准化为规范形式d键名。 - 默认读数字段为
t加上所有状态变量(按state中声明的顺序)。
- 若未提供
- 选择渲染器:
mechanics领域 + 状态含x和y→ 使用trajectory2dmechanics领域 + 状态含x和v→ 使用oscillator1delectromagnetism领域 + 状态含q或vc→ 使用circuit_rc- 其余情况应中止流程,并提示用户补充更明确的 SimSpec,而非尝试猜测。
- 将预规范化后的值填充至模板
templates/sim_single_file_html_template.html。 - 在返回最终
index.html前,执行rubrics/validation_checklist.md中定义的校验清单。
模板占位符
需填充以下 Mustache 变量:
sim_id、sim_title、domain、level、renderer_kindstate_json、params_json、initial_json、equations_json、outputs_jsonworksheet_json、success_criteria_json、readout_fields_jsondt_default、dt_min、dt_maxmodel_step_logic_js、scene_draw_js、readout_map_js
要求:
- JSON 类型占位符在插入前必须完成序列化(即已转为字符串格式)。
- 用于 HTML data 属性的字符串类占位符应为纯文本字符串(不带引号或转义)。
model_step_logic_js必须返回一个导数对象,且不得使用eval或Function构造函数。scene_draw_js和readout_map_js可为空操作;若需覆盖为空读数,可直接返回return [];。
渲染与模型规则
- 复用模板中已提供的共享 RK4 与欧拉(Euler)积分器。
- 物理计算采用固定步长,渲染则基于
requestAnimationFrame。 - 若任一状态变量变为
NaN或Infinity,自动暂停模拟。 - 对轨迹历史与绘图历史设置长度上限。
- 优先从
outputs中选取一个明确的绘图目标;若提供多个绘图配置,则仅将第一个用于可视图表,其余仅作为元数据保留。
工作表规则
- 若 SimSpec 提供了工作表,且内容完整,则予以保留。
- 若任一工作表类别缺失,则依据
rubrics/pedagogy_inquiry_prompts.md自动生成相应内容。 - 始终返回以下结构:
- 3 条预测类(Predict)提示
- 2 条验证类(Test)提示
- 2 条解释类(Explain)提示
- 2 条常见误区类(Misconceptions)提示
安全规则
严格执行 rubrics/security_notes.md 中的安全说明。
- 不得指示用户执行 shell 命令。
- 不得索取密钥(secrets)或 API 密钥(API keys)。
- 不得加载远程资源或脚本。
- 不得嵌入隐藏遥测(telemetry)或分析(analytics)代码。
- 不得生成多个文件。
模板与参考文档
- 主模板:
templates/sim_single_file_html_template.html - Schema 定义:
templates/sim_spec_schema.json - 校验清单:
rubrics/validation_checklist.md - 教学法提示:
rubrics/pedagogy_inquiry_prompts.md - 安全说明:
rubrics/security_notes.md
示例
examples/projectile_drag.ymlexamples/spring_mass.ymlexamples/rc_circuit.yml
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
最新文章
