Claude Code Skill for AFSIM | 专为 Claude Code 设计的 AFSIM 仿真技能
AFSIM Script Generator 是一个专业的 Claude Code Skill,用于生成和执行 AFSIM(Advanced Framework for Simulation, Integration and Modeling)仿真脚本。本项目提供完整的 AFSIM 2.9.0 脚本语言支持,涵盖无人机仿真、平台建模、传感器配置、武器系统、协同作战等场景。
AFSIM 是美国空军研究实验室开发的高级仿真框架,广泛应用于军事仿真、无人机集群、传感器建模、武器系统和任务规划。本 Skill 为 Claude Code 提供:
- ✅ AFSIM 2.9.0 完整脚本语言支持
- ✅ WSF (World Simulation Framework) 语法和 API
- ✅ 158个 API 方法的完整文档
- ✅ 22+种平台类型 (mover types) 参考
- ✅ 智能脚本生成和语法验证
- ✅ 一键仿真执行和结果分析
- 🎯 智能脚本生成:基于 Claude AI 自动生成语法正确的 AFSIM/WSF 场景脚本,支持空对空、空对地、ISR等多种仿真场景
- 🚀 一键脚本执行:通过 mission.exe 直接运行 AFSIM 仿真,支持事件步进、实时帧步进等多种执行模式
- 🔍 智能语法验证:自动检测并修复 AFSIM 脚本语法错误,避免常见的单位缺失、代码块未闭合等问题
- 📚 完整文档库:包含 AFSIM 2.9.0 完整语言语法、158个API方法、22+种mover类型、命令参考和工作示例
- 🛠️ Python 工具集:提供便捷的脚本执行包装器,支持配置管理和路径自动推导
✈️ 空战仿真:空对空作战、BVR交战、近距格斗- 🎯 对地打击:空对地攻击、精确制导、目标打击
- 🛰️ ISR任务:情报监视侦察、目标搜索、态势感知
- 🚁 无人机集群:UAV编队协同、分布式任务规划、集群智能
- 🎮 多域作战:空天地海多域协同、联合作战仿真
- 🔧 WSF脚本语言:完整支持 World Simulation Framework 脚本语法
- 📡 传感器建模:雷达、ESM、EOIR等多种传感器类型
- 💣 武器系统:空空导弹、空地导弹、炸弹、火炮等武器建模
- 🤖 行为树:支持复杂的AI决策和任务规划
- 📊 数据输出:事件日志、二进制报告、回放文件生成
- AFSIM 2.9.0 - Advanced Framework for Simulation, Integration and Modeling
- 可安装在任意位置(通过配置文件指定)
- 需要有效的 AFSIM 许可证
- Python 3.x - 用于运行脚本执行包装器
- Claude Code - Anthropic 的 AI 编程助手(可选,用于智能脚本生成)
方式 1:从 GitHub 克隆
git clone https://github.com/lookingforfeng/afsim-script-generator.git
cd afsim-script-generator方式 2:直接下载
- 下载 ZIP 文件并解压到本地目录
- 或复制整个 skill 目录到
~/.claude/skills/目录
编辑 config.txt 文件,设置你的 AFSIM 安装目录:
# AFSIM 安装目录配置
# 修改下面的路径为你的 AFSIM 2.9.0 安装位置
AFSIM_INSTALL_DIR=D:\Program Files\afsim2.9.0配置说明:
- ✅ 只需修改
AFSIM_INSTALL_DIR这一行 - ✅
mission.exe路径会自动推导为:{AFSIM_INSTALL_DIR}/bin/mission.exe - ✅ 文档路径会自动推导为:
{AFSIM_INSTALL_DIR}/documentation/html/docs - ✅ 在不同电脑上使用时,只需更新这个配置即可
- ✅ 支持 Windows、Linux、macOS 路径格式
运行以下命令验证配置是否正确:
python scripts/run_mission.py --help如果配置正确,会显示:
- ✅ 帮助信息
- ✅ 当前 AFSIM 安装目录
- ✅ mission.exe 路径
- ✅ 文档目录路径
在 Claude Code 中,直接描述您的 AFSIM 仿真需求,例如:
"帮我创建一个空对空作战的 AFSIM 脚本"
Claude Code 会自动加载本 Skill 并生成相应的脚本。
- 生成脚本:使用 AFSIM 脚本语言创建场景脚本
- 执行脚本:使用提供的 Python 包装器运行
python scripts/run_mission.py <脚本文件.txt> [选项]可用选项:
-es- 事件步进模式(默认)-rt- 实时帧步进模式-fs- 非实时帧步进模式-fio- 刷新输出-sm- 抑制消息
必须遵守以下规则,否则脚本会失败:
- 文件扩展名必须是
.txt- 不是.wsf! - 所有数值参数必须带单位 - 例如:
100 m/sec、30.0 sec、1000 m - 所有代码块必须有结束标记 -
end_mover、end_platform_type、end_processor等 - 不要使用不存在的脚本方法 - 避免
Position()、Geodetic()、Time()等 - 路由中不要使用
loop命令 - 会导致语法错误
详细错误说明和最佳实践: 见 references/common_mistakes.md
在生成 AFSIM 脚本前,需要明确以下仿真要素:
- 空对空作战 (Air-to-Air Combat):BVR交战、近距格斗、多机协同
- 空对地打击 (Air-to-Ground Strike):精确打击、区域轰炸、SEAD任务
- ISR任务 (Intelligence, Surveillance, Reconnaissance):侦察、监视、目标搜索
- 无人机集群 (UAV Swarm):编队飞行、协同作战、分布式任务
- 多域作战 (Multi-Domain Operations):空天地海联合仿真
- 有人机平台:战斗机、轰炸机、运输机、预警机
- 无人机平台:侦察无人机、攻击无人机、蜂群无人机
- 导弹平台:空空导弹、空地导弹、巡航导弹
- 地面单位:SAM系统、雷达站、指挥中心
- 卫星平台:通信卫星、侦察卫星
- 传感器类型:雷达 (Radar)、ESM、EOIR、声纳
- 武器系统:导弹、炸弹、火炮、电子战设备
- 仿真开始时间和持续时间
- 关键事件触发条件
- 平台航路和机动
- 事件日志 (Event Log)
- 轨迹数据 (Track Data)
- 传感器探测记录
- 武器交战结果
使用 AFSIM 脚本语言 (WSF Scripting Language) 创建仿真场景。本 Skill 提供完整的语法支持和 API 参考。
// AFSIM/WSF 脚本使用 // 或 /* */ 注释
// 文件扩展名必须是 .txt
// 1. 平台定义 (Platform Definition)
PLATFORM my_aircraft
{
TYPE air_vehicle // 平台类型
POSITION 0.0 0.0 10000.0 // 初始位置 (m)
VELOCITY 250.0 0.0 0.0 // 初始速度 (m/s)
}
// 2. 传感器定义 (Sensor Definition)
SENSOR my_radar
{
TYPE radar // 传感器类型
PARENT my_aircraft // 父平台
RANGE 100000.0 // 探测距离 (m)
}
// 3. 武器定义 (Weapon Definition)
WEAPON my_missile
{
TYPE air_to_air_missile // 武器类型
PARENT my_aircraft // 父平台
QUANTITY 4 // 数量
}
// 4. 仿真控制 (Simulation Control)
RUN_SIMULATION
{
DURATION 300.0 sec // 仿真时长
// 运行时命令和事件
}
- 文件扩展名:必须使用
.txt,不是.wsf - 单位要求:所有数值必须带单位 (如
100 m/sec,30.0 sec,1000 m) - 代码块闭合:所有代码块必须有结束标记 (
end_mover,end_platform_type等) - 脚本方法:避免使用不存在的方法 (如
Position(),Geodetic(),Time()) - 路由命令:不要在路由中使用
loop命令
- references/common_mistakes.md - 首先阅读 - 10条关键规则和常见错误
- references/file_structure.md - 标准 AFSIM 脚本文件结构和模板
- references/mover_reference.md - 22+种 mover 类型完整参考(含所有参数)
- references/script_api_reference.md - WsfPlatform/Sensor/Weapon/Track 完整 API(158个方法)
- references/commands_reference.md - 完整命令语法参考
- references/message_types_reference.md - WsfMessage 消息系统(8种核心消息类型)
- references/sensor_types_reference.md - 特殊传感器类型(Radar/ESM/EOIR)
- references/examples.md - 4个完整工作示例 + 5种常用模式
使用提供的 Python 包装器通过 mission.exe 运行仿真:
python scripts/run_mission.py scenario.txt -es-
-es- 事件步进模式 (Event Stepping) - 推荐用于调试- 按事件驱动仿真
- 适合分析事件序列
-
-rt- 实时帧步进模式 (Real-Time Frame Stepping)- 实时速率执行
- 适合可视化和演示
-
-fs- 非实时帧步进模式 (Fast Frame Stepping)- 最快速度执行
- 适合批量仿真
-
-fio- 刷新输出 (Flush I/O)- 立即输出日志
- 适合实时监控
-
-sm- 抑制消息 (Suppress Messages)- 减少控制台输出
- 适合批处理
AFSIM 仿真会生成以下输出文件:
- 事件日志 (.log) - 仿真事件序列
- 二进制报告 (.bin) - 详细仿真数据
- 回放文件 (.replay) - 可视化回放数据
- 轨迹数据 - 平台运动轨迹
- 传感器记录 - 探测和跟踪数据
- 武器交战记录 - 发射和命中数据
- 查看 mission.exe 控制台输出,检查语法错误和警告
- 验证仿真是否按预期完成
- 检查事件日志中的关键事件
- 轨迹分析:验证平台运动是否符合预期
- 传感器性能:检查探测距离、跟踪精度
- 武器效能:分析命中率、杀伤效果
- 任务完成度:评估任务目标达成情况
根据仿真结果调整脚本参数:
- 调整平台性能参数(速度、机动性)
- 优化传感器配置(探测距离、视场角)
- 修改武器参数(射程、命中率)
- 改进任务规划(航路、时序)
- 语法错误:参考
references/common_mistakes.md - 执行错误:检查 mission.exe 路径和配置
- 性能问题:优化仿真步长和输出频率
- 结果异常:验证物理模型和参数设置
创建一个基本的空中平台 (Air Vehicle),用于战斗机仿真或无人机仿真:
PLATFORM aircraft_1
{
TYPE air_vehicle // 平台类型:空中载具
POSITION 0.0 0.0 10000.0 // 初始位置 (x, y, z) 单位:米
VELOCITY 250.0 0.0 0.0 // 初始速度 (vx, vy, vz) 单位:m/s
// 适用于:战斗机、轰炸机、无人机等空中平台
}
为平台添加雷达传感器 (Radar Sensor),用于目标探测和态势感知:
SENSOR radar_1
{
TYPE radar // 传感器类型:雷达
PARENT aircraft_1 // 父平台:挂载在 aircraft_1 上
RANGE 100000.0 // 探测距离:100km
// 适用于:空对空雷达、地面搜索雷达、火控雷达
}
为平台配置空空导弹 (Air-to-Air Missile),用于空战仿真:
WEAPON missile_1
{
TYPE air_to_air_missile // 武器类型:空空导弹
PARENT aircraft_1 // 父平台:挂载在 aircraft_1 上
QUANTITY 4 // 携带数量:4枚
// 适用于:AIM-120、AIM-9、霹雳系列等空空导弹
}
创建无人机编队,用于集群协同仿真:
// 创建多个无人机平台
PLATFORM uav_1
{
TYPE air_vehicle
POSITION 0.0 0.0 5000.0
VELOCITY 50.0 0.0 0.0 // 无人机巡航速度
}
PLATFORM uav_2
{
TYPE air_vehicle
POSITION 100.0 0.0 5000.0 // 编队间距
VELOCITY 50.0 0.0 0.0
}
// 为每个无人机配置传感器
SENSOR uav_sensor_1
{
TYPE eoir // 光电传感器
PARENT uav_1
}
定义ISR任务的仿真控制流程:
RUN_SIMULATION
{
DURATION 3600.0 sec // 仿真时长:1小时
// 任务阶段1:起飞和爬升
AT_TIME 0.0 sec
{
// 初始化命令
}
// 任务阶段2:巡航和搜索
AT_TIME 300.0 sec
{
// 搜索区域命令
}
// 任务阶段3:返航
AT_TIME 3000.0 sec
{
// 返航命令
}
}
完整的工作示例和高级模式,请参考:
- references/examples.md - 4个完整 AFSIM 脚本示例
- references/mover_reference.md - 22+种平台类型参考
- references/commands_reference.md - 完整命令语法
afsim-script-generator/ # AFSIM 脚本生成器 Claude Code Skill
├── README.md # 项目说明文档(中英文)
├── SKILL.md # Claude Code Skill 描述文件(带导航索引)
├── CONFIG_README.md # 配置文件详细说明
├── config.txt # AFSIM 安装目录配置文件
├── LICENSE # MIT 开源许可证
│
├── assets/ # 资源文件目录
│ ├── template.wsf # AFSIM 脚本模板
│ ├── wechat_contact.jpg # 微信联系方式二维码
│ └── wechat_reward.jpg # 微信赞赏码
│
├── references/ # 参考文档目录(完整系统化)
│ ├── common_mistakes.md # ⭐ 10条关键规则和常见错误(必读)
│ ├── file_structure.md # 标准 AFSIM 脚本文件结构
│ ├── mover_reference.md # 22+种 mover 类型完整参考
│ ├── script_api_reference.md # WsfPlatform/Sensor/Weapon 完整 API(158个方法)
│ ├── commands_reference.md # 完整命令语法参考
│ ├── message_types_reference.md # WsfMessage 消息系统(8种核心消息类型)
│ ├── sensor_types_reference.md # 特殊传感器类型(Radar/ESM/EOIR)
│ ├── examples.md # 4个完整工作示例 + 5种常用模式
│ ├── language_grammar.md # 完整脚本语言语法
│ ├── script_types.md # 数据类型和类方法
│ └── commands.md # 命令参考(按类别组织)
│
└── scripts/ # 工具脚本目录
└── run_mission.py # mission.exe 执行包装器(支持配置管理)
- README.md - 项目主文档,包含安装、配置、使用指南
- SKILL.md - Claude Code Skill 定义,包含快速参考和导航索引
- CONFIG_README.md - 配置系统详细说明
- 11个系统化参考文档,涵盖 AFSIM 脚本语言的所有方面
- 从基础语法到高级 API,从常见错误到完整示例
- 支持快速查找和深度学习
- run_mission.py - Python 包装器,简化 mission.exe 调用
- 支持配置文件管理、路径自动推导、多种执行模式
常见问题:
- ❌ 文件扩展名错误(使用了
.wsf而不是.txt) - ❌ 数值缺少单位(如
100而不是100 m/sec) - ❌ 代码块未闭合(缺少
end_mover、end_platform_type等) - ❌ 使用了不存在的脚本方法(如
Position()、Geodetic()) - ❌ 路由中使用了
loop命令
解决方案:
- 📖 查看
references/common_mistakes.md- 10条关键规则 - 📖 参考
references/language_grammar.md- 完整语法规则 - 📖 检查
references/commands_reference.md- 命令语法 - 📖 查看
references/examples.md- 工作示例
常见问题:
- ❌ mission.exe 路径不正确
- ❌ AFSIM 安装目录配置错误
- ❌ 文件权限不足
- ❌ 缺少必需的 AFSIM 组件
解决方案:
- ✅ 检查
config.txt中的AFSIM_INSTALL_DIR配置 - ✅ 验证 mission.exe 是否存在:
{AFSIM_INSTALL_DIR}/bin/mission.exe - ✅ 确保有执行权限(Windows: 右键→属性→安全)
- ✅ 运行
python scripts/run_mission.py --help验证配置
常见问题:
- ❌ 没有生成输出文件
- ❌ 输出目录不存在
- ❌ 日志文件为空
- ❌ 仿真结果异常
解决方案:
- ✅ 检查仿真日志文件(.log)
- ✅ 验证输出目录存在且有写权限
- ✅ 查看 mission.exe 控制台输出
- ✅ 使用
-fio选项刷新输出 - ✅ 检查仿真时长和事件设置
常见问题:
- ❌ Skill 未正确安装
- ❌ SKILL.md 文件缺失或损坏
- ❌ Claude Code 未识别 AFSIM 关键词
解决方案:
- ✅ 确保 skill 目录在
~/.claude/skills/下 - ✅ 验证 SKILL.md 文件存在且完整
- ✅ 在提示词中明确提到 "AFSIM"、"WSF"、"仿真脚本" 等关键词
- ✅ 重启 Claude Code
常见问题:
- ❌ 仿真运行缓慢
- ❌ 内存占用过高
- ❌ 输出文件过大
解决方案:
- ✅ 使用
-fs模式(非实时帧步进)加快仿真 - ✅ 减少输出频率和详细程度
- ✅ 优化仿真步长设置
- ✅ 使用
-sm选项抑制不必要的消息
详细文档位于 references/ 目录(已系统化完善):
- references/common_mistakes.md - 从这里开始 - 10条关键规则,避免常见错误
- references/file_structure.md - 新增 - 标准AFSIM脚本文件结构和模板
- references/mover_reference.md - 新增 - 22+种mover类型完整参考(含所有参数)
- references/script_api_reference.md - 新增 - WsfPlatform/Sensor/Weapon/Track完整API(158个方法)
- references/commands_reference.md - 新增 - 完整命令语法参考(platform/route/sensor/weapon/processor)
- references/message_types_reference.md - 新增 - WsfMessage消息系统完整参考(8种核心消息类型)
- references/sensor_types_reference.md - 新增 - 特殊传感器类型参数(Radar/ESM/EOIR)
- references/examples.md - 重写 - 4个完整工作示例+5种常用模式
- references/language_grammar.md - 完整的脚本语言语法和语法规则
- references/script_types.md - 所有可用的数据类型、类及其方法
- references/commands.md - 按类别组织的综合命令参考
- AFSIM 脚本使用
.txt扩展名 - 不是.wsf! - 所有数值参数都需要单位 - 例如:
100 m/sec、30.0 sec - 脚本是基于文本的,人类可读
- 配置文件 -
config.txt中设置AFSIM安装目录 - mission.exe 位置 - 从配置文件自动推导:
{AFSIM_INSTALL_DIR}/bin/mission.exe - 文档目录 - 从配置文件自动推导:
{AFSIM_INSTALL_DIR}/documentation/html/docs - 输出包括事件日志、二进制报告和回放文件
本skill提供三层文档支持:
- 快速导航索引
- 关键规则和最佳实践
- 各参考文档的摘要
- 使用场景:日常脚本编写,快速查找
- 11个系统化参考文档
- 完整的API、命令、示例
- 使用场景:需要详细信息时
- 1602个官方HTML文档
- 最权威、最详细的信息
- 使用场景:
- 需要确认非常具体的细节
- 查找罕见参数或选项
- 验证边缘情况
- skill文档未覆盖的内容
建议使用顺序:SKILL.md → references/ → documentation/
注意: 本项目需要AFSIM 2.9.0。如果您的安装路径不同,请修改 config.txt 中的 AFSIM_INSTALL_DIR 配置。
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证 - 详见 LICENSE 文件
我是冯zhangwei,来自四川成都,致力于研究无人机大规模异构协同智能化及仿真相关技术。
- 🚁 无人机集群协同
- 🤖 异构系统智能化
- 🎮 仿真技术与建模
- 📊 AFSIM仿真应用
欢迎交流讨论!可以通过以下方式联系我:
扫码添加微信,一起交流无人机仿真技术 ps:最近发现新手不学习,无脑问,什么这是个什么库?这个插件怎么用?什么是claude code?这种问题,既然都用大模型了,请自己问大模型哈。公益项目,微信可以加,问题选择性回答,工作比较忙,望理解
如果这个项目对你有帮助,欢迎请我喝杯咖啡!☕
感谢你的支持!
⭐ 如果觉得这个项目有用,请给个Star支持一下!⭐
Made with ❤️ by 冯zhangwei