Coding

Science Simulation Author

Try it

Generate self-contained interactive science simulations as a single index.html from a SimSpec YAML or JSON. Use when the user asks for physics, chemistry, bi...

What it does

Generate self-contained interactive science simulations as a single index.html from a SimSpec YAML or JSON. Use when the user asks for physics, chemistry, bi...

The skill document

Science Simulation Author

Core promise

Generate one self-contained index.html that runs offline, renders a STEM simulation on a 2D canvas, exposes model parameters as sliders, plots a time series, and includes an inquiry worksheet.

Inputs

Accept a SimSpec in YAML or JSON with:

  • id, title, domain
  • state, params, initial, equations, outputs
  • optional level, dt, worksheet, success_criteria

Validate against templates/sim_spec_schema.json before generating anything.

Output contract

  • Produce exactly one file named index.html.
  • Keep all CSS in and all JS in.
  • Do not use bundlers, package managers, CDNs, external fonts, or runtime network access.
  • Include these DOM ids: simCanvas, plotCanvas, runToggle, stepBtn, resetBtn, dtSlider, paramControls, readouts, statusBanner, worksheet, copyJsonBtn, downloadCsvBtn.
  • Include controls, readouts, one time-series plot, local JSON snapshot export, local CSV download, and a non-empty worksheet.

Workflow

  1. Validate the incoming SimSpec against templates/sim_spec_schema.json.
  2. Normalize the spec:
    • If dt is missing, use default=0.01, min=0.001, max=0.05.
    • If a parameter omits step, derive step=(max-min)/100 with sensible rounding.
    • Normalize derivative aliases such as dx, dy, dvx, dvy, dq, dvc to canonical d keys before generating JS.
    • Default readouts to t plus every state variable in state order.
  3. Choose the renderer:
    • mechanics + state includes x and y -> trajectory2d
    • mechanics + state includes x and v -> oscillator1d
    • electromagnetism + state includes q or vc -> circuit_rc
    • Otherwise stop and ask the user for a clearer SimSpec instead of guessing.
  4. Populate templates/sim_single_file_html_template.html with pre-normalized values.
  5. Run rubrics/validation_checklist.md before returning the final index.html.

Template placeholders

Populate these mustache variables:

  • sim_id, sim_title, domain, level, renderer_kind
  • state_json, params_json, initial_json, equations_json, outputs_json
  • worksheet_json, success_criteria_json, readout_fields_json
  • dt_default, dt_min, dt_max
  • model_step_logic_js, scene_draw_js, readout_map_js

Expectations:

  • JSON placeholders must be serialized before insertion.
  • String placeholders used in data attributes should be plain strings.
  • model_step_logic_js must return a derivative object without using eval or Function.
  • scene_draw_js and readout_map_js may be no-ops; use return []; for an empty readout override.

Rendering and model rules

  • Use the shared RK4 and Euler integrators already present in the template.
  • Keep physics fixed-step and rendering on requestAnimationFrame.
  • Auto-pause if any state becomes NaN or Infinity.
  • Cap trail history and plot history.
  • Prefer one clear plot target from outputs; if multiple plots are supplied, use the first one for the visible plot and keep the rest only as metadata.

Worksheet rules

  • If the SimSpec provides a worksheet, keep it unless it is incomplete.
  • If any worksheet category is missing, synthesize it using rubrics/pedagogy_inquiry_prompts.md.
  • Always return:
    • 3 Predict prompts
    • 2 Test prompts
    • 2 Explain prompts
    • 2 Misconceptions prompts

Safety rules

Apply rubrics/security_notes.md strictly.

  • Do not tell the user to run shell commands.
  • Do not request secrets or API keys.
  • Do not fetch remote assets or scripts.
  • Do not add hidden telemetry or analytics.
  • Do not produce multiple files.

Templates and references

  • Template: templates/sim_single_file_html_template.html
  • Schema: templates/sim_spec_schema.json
  • Validation checklist: rubrics/validation_checklist.md
  • Pedagogy prompts: rubrics/pedagogy_inquiry_prompts.md
  • Security notes: rubrics/security_notes.md

Examples

  • examples/projectile_drag.yml
  • examples/spring_mass.yml
  • examples/rc_circuit.yml

Related skills

Generate publication-ready scientific figures with the official SciDraw AI web app and public API. Use for paper figures, graphical abstracts, mechanism diagrams, research workflows, and model architectures.

1 installs

Diagnose, configure, generate, simulate, and report on NI Multisim circuits through the Multisim MCP server. Use when the user asks to install or configure Multisim MCP, generate a Multisim schematic, run circuit simulation, analyze waveforms, or produce an electronic design report.

教材虚拟仿真系统生成器,支持多种教材格式(文本/PDF/JSON)转换为交互式教育仿真 Web 应用。 能够生成3D场景、交互式组件、数据分析功能,适用于教育实验、操作培训、知识图谱等多种仿真类型。 当用户提出以下意图时触发:创建教材仿真、生成虚拟实验、构建教学模拟、制作教育3D场景、 教材可视化、交互式教学应用...

根据工程要求生成安全、可复现的 Multisim 电路实验并核对理论与仿真结果;use when creating a new circuit, schematic, simulation, or experiment report

基于已注册实验的真实产物撰写中英实验报告;use when producing a lab report, design record, reproducibility package, or formal HTML/PDF output

Use when the user wants to generate or edit images with Google's Nanobanana/Gemini image models using the official Gemini API shape, or when they need public...

33 installs