Hfss logo

Hfss

Organization
svd-ai-lab
hfss

Work with Ansys HFSS 3D through PyAEDT, AEDT, sim-plugin-hfss, or solver-native workflows. Use when the user asks an agent to inspect, build, edit, run, monitor, export, or debug HFSS 3D models.

Overview

Publishersvd-ai-lab
Repositorysim-cli
Skill namehfss
Stars
242
Forks
23
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by svd-ai-lab on GitHub. Read the source before you install it.

Installation

Install the Hfss AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/svd-ai-lab/sim-cli/tree/main/plugins/hfss/src/sim_plugin_hfss/_skills/hfss
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/svd-ai-lab/sim-cli.git /tmp/sim-cli
mkdir -p .claude/skills
cp -r /tmp/sim-cli/plugins/hfss/src/sim_plugin_hfss/_skills/hfss .claude/skills/hfss
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Hfss in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Hfss on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Hfss is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

HFSS Skill

Use this skill for Ansys HFSS 3D work.

This plugin targets HFSS 3D through PyAEDT and AEDT. It does not yet cover HFSS 3D Layout, Maxwell, Icepak, Q3D, Circuit, or generic AEDT workflows.

sim-cli is a control and observability layer, not the only valid execution path. Use sim check, sim connect, sim inspect, and bounded sim exec snippets when they add discovery, session control, or structured evidence. Use plain PyAEDT scripts, AEDT executables, vendor batch flows, or GUI operation when those are the narrower reliable primitive. The evidence standard is the same for every path.

Required Protocol

  1. Run an HFSS/AEDT availability probe before launch or solve.
    • Use sim check hfss when sim-cli is available.
    • Acceptable alternatives: a PyAEDT import/version probe, AEDT executable path probe, Windows Registry/default-install probe, or environment variable probe.
    • When probing nested Python packages such as ansys.aedt.core, catch ModuleNotFoundError; a missing top-level ansys package is evidence that the control package is absent, not a reason to launch AEDT for discovery.
    • Do not use -help on ansysedt.exe, ansysedtsv.exe, or hfss.exe as an availability probe. AEDT Student can open a modal Electronics Desktop Student Help window and block automation when launched this way.
    • Missing sim-cli is not evidence that AEDT/HFSS is missing.
  2. If no AEDT installation is found, stop and ask for an AEDT installation or SIM_HFSS_AEDT_ROOT path. Do not invent install paths.
  3. Prefer no-GUI operation unless the user needs visual review or the workflow cannot expose the required state programmatically.
  4. Before setup, solve, export, or result interpretation, inspect the active project/design using the best available path:
bash
sim inspect session.versions
sim inspect session.summary
sim inspect hfss.project.identity
sim inspect hfss.design.summary
sim inspect hfss.model.summary
sim inspect hfss.boundaries.summary
sim inspect hfss.setups.summary

Use release-specific API guidance only when session.versions reports version_source: active_runtime. A newer AEDT installation detected on the same host does not establish the version of the connected HFSS session.

If you are not using sim-cli, collect equivalent project, design, object, boundary, port, setup, and sweep information through PyAEDT or AEDT APIs. 5. Run one bounded step at a time. After each mutation, inspect the changed state and capture last.result, script output, or equivalent logs. 6. Treat process success as transport success only. Engineering acceptance must come from HFSS results, exported data, convergence, S-parameters, fields, far-field quantities, or another domain-specific criterion requested by the user. 7. Keep failed evidence. If a solve/export fails, capture AEDT messages, stdout/stderr, generated files, and the exact step that failed.

Common Workflows

Offline AEDT Project Probe

When the user only needs quick inventory or triage from a saved project and AEDT may not be installed, use the experimental offline inspector before launching AEDT:

bash
python -m sim_plugin_hfss.aedt_inspect path/to/project.aedt

It can report best-effort project/design hints, variables, setup and sweep names, port/boundary names, lock-file status, and .aedtresults sidecar progress. It does not solve, read field data, extract mesh connectivity, or provide authoritative geometry/boundary semantics. When accuracy matters, validate the same file through PyAEDT/AEDT inspections.

Connect Through sim-cli

bash
sim check hfss
sim connect --solver hfss --ui-mode no_gui
sim inspect session.summary
sim inspect hfss.project.identity
sim inspect hfss.design.summary

Use GUI mode only when the user needs to watch or interact with AEDT:

bash
sim connect --solver hfss --ui-mode gui

Run a PyAEDT Script

Use this for a complete script that constructs or opens an HFSS project:

bash
sim lint --solver hfss path/to/script.py
sim run --solver hfss path/to/script.py

Direct execution is also acceptable when it is clearer:

bash
python path/to/script.py

In either case, preserve the AEDT project, logs, exported reports, and numeric acceptance results.

Execute a Bounded Snippet

After sim connect, snippets can use the live hfss object:

python
{
    "project": hfss.project_name,
    "design": hfss.design_name,
    "setups": list(hfss.setup_names),
}

Prefer JSON-serializable results. Use sim inspect last.result after each snippet.

Control-plane snippets are bounded by the HFSS driver by default. To tighten or disable that bound for a session, pass an explicit driver option:

bash
sim connect --solver hfss --ui-mode no_gui --driver-option exec_timeout_s=60

Use short bounds for inspection, setup edits, and exporter snippets. Do not use a fixed wall-clock timeout as the failure signal for real solves; solve-like snippets such as analyze_setup(...) are not given the driver's default control timeout unless you explicitly set exec_timeout_s. If a snippet returns hung: true, treat the Python control handle as quarantined. Inspect session.health for the tracked AEDT PID and liveness, drop only the quarantined control session, then reattach the existing PID through the ordinary composable commands before more HFSS work:

bash
sim inspect session.health
sim disconnect
sim connect --solver hfss --ui-mode no_gui \
  --driver-option new_desktop=false \
  --driver-option aedt_process_id=<tracked-pid>

Do not interpret the control timeout as solver failure and do not start a duplicate solve while the preserved PID or solution artifacts still advance.

Export and Parse S-Parameters

When Touchstone export is available, export .sNp and parse it directly for acceptance metrics. The connector exposes a best-effort helper in snippets:

python
touchstone_summary("path/to/result.s1p", target_frequencies_ghz=[5.8], threshold_db=-10)

Do not require scikit-rf just to compute minimum S-parameter, target-frequency values, or threshold bandwidth.

Long Solves, Sweeps, and Multi-Physics Coupling

There is no dedicated resumable-sweep primitive and no automatic HFSS-to-Icepak coupling API, and none is planned. Drive both yourself with the generic primitives above instead of waiting for a purpose-built one:

  • Multi-point sweeps: run one point at a time through bounded run() / sim exec calls. Use session.health / hfss.solution.progress between points to tell "still converging" from "actually hung." A stuck point does not require restarting the whole sweep — the AEDT project retains completed points, so reconnect and continue from the next point.
  • HFSS-to-Icepak coupling: there is no supported automatic EM-Loss link. Read per-object/per-frequency loss from HFSS through the same run(code) scripting used for inspection, then feed the computed value into Icepak's own (manual) heat-source assignment call. See sim-cookbook/hfss/examples/cpw_thermoelectric_rf_power_sensor/ for the staged recipe (RF baseline -> manual heat source -> loss-driven heat source).

Ask for a new driver primitive only when a generic gap actually blocks progress (for example, no timeout guard existed before v0.1.1) — not merely because a specific workflow would be more convenient with a dedicated shortcut.

Monitoring and Evidence

Use these inspections when available:

  • hfss.model.summary for object names, sheet/solid grouping, materials, and bounding boxes when PyAEDT exposes them.
  • hfss.boundaries.summary for boundaries, excitations, ports, and associated objects when available.
  • hfss.setups.summary for setup and sweep names/properties.
  • hfss.messages for AEDT errors/warnings/info.
  • hfss.solution.progress for best-effort solved frequency progress from .aedtresults files.
  • session.health for PyAEDT/AEDT liveness, tracked owned AEDT PIDs, recent timeout cleanup, recent messages, and best-effort solve progress.

If an inspection is unavailable, report that honestly and use a solver-native fallback. Do not fabricate status.

Modeling Gotchas

  • AEDT Student installs use the student launcher and may expose version strings such as 2025.2SV. The connector patches PyAEDT 0.26.x startup handling for this case, but direct scripts may need the same care.
  • If an Electronics Desktop Student Help dialog appears during automation, close it, record the exact command, and remove -help from the probe path. Use Registry/path/import checks for discovery, or run a real script invocation when the task needs AEDT execution.
  • For small antenna feeds between curved conductors, do not rely on lumped_port(..., create_port_sheet=True) until the generated sheet has been visually or solver-message validated. HFSS can create a non-planar port sheet between round objects, which fails during port refinement. Prefer an explicit planar sheet plus an explicit two-point integration line.
  • Save the project before a real solve smoke, and capture hfss.odesktop.GetMessages(...) immediately after analyze_setup(...) returns false. Reopening the project later can lose the most useful failure context.
  • For GUI evidence on Windows, inspect the screenshot after taking it. If a full-desktop capture is black, capture the AEDT window by handle instead of treating the file's existence as visual proof.

First-Version Limits

  • Direct .aedt and .aedtz solving through sim run is not validated yet.
  • Real HFSS release validation is opt-in and must be recorded separately from ordinary no-AEDT unit tests.
  • Do not claim solver correctness from plugin unit tests alone.

Troubleshooting

  • Driver not discovered: only when using sim-cli, reinstall the plugin in the same environment as sim-cli and rerun sim check hfss.
  • AEDT not detected: set SIM_HFSS_AEDT_ROOT to the directory containing an AEDT launcher, or rely on Registry/default discovery for common install layouts. A permanent global PATH change is optional, not required.
  • PyAEDT import error: install pyaedt>=0.26.3,<1 in the active environment.
  • Script not detected: make sure it constructs HFSS through PyAEDT, for example from ansys.aedt.core.hfss import Hfss followed by Hfss(...).

Frequently asked questions

What does the Hfss AI skill do?

Work with Ansys HFSS 3D through PyAEDT, AEDT, sim-plugin-hfss, or solver-native workflows. Use when the user asks an agent to inspect, build, edit, run, monitor, export, or debug HFSS 3D models.

Why use Hfss on TypingMind?

Because you install it once and use it with any model. Hfss is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Hfss in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/svd-ai-lab/sim-cli/tree/main/plugins/hfss/src/sim_plugin_hfss/_skills/hfss. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Hfss?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Hfss?

As many as you like. As long as a model supports skills, you can use Hfss with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Hfss AI skill free?

Yes. It is published on GitHub by svd-ai-lab under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇