🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

赛车遥测分析 jingjie43/dsh-sim-telemetry

DeepSeek Harness
jingjie439 天前有提交已提供中文文档扫描:含敏感能力

跑完几圈自动生成逐弯失误定位与改进建议

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/26 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add jingjie43/dsh-sim-telemetry
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 20 处,展示前 20 条)
  • 写入本地文件
    index.js:34
    try { mkdirSync(dir, { recursive: true }); } catch { }
  • 写入本地文件
    index.js:39
    try { appendFileSync(join(dataDir(), "debug.log"), `${new Date().toISOString()} ${msg}\n`); } catch { }
  • 执行外部命令来自配置/变量
    index.js:45
    execFile(file, args, {
  • 读取本地文件
    index.js:78
    if (c.exe.includes("\\") && !existsSync(c.exe)) return null;
  • 读取本地文件
    index.js:91
    if (c.exe.includes("\\") && !existsSync(c.exe)) continue;
  • 读取本地文件
    index.js:155
    try { return JSON.parse(readFileSync(join(dataDir(), "settings.json"), "utf8")); } catch { return {}; }
  • 写入本地文件
    index.js:159
    try { writeFileSync(join(dataDir(), "settings.json"), JSON.stringify(next, null, 2), "utf8"); } catch { }
  • 执行外部命令来自配置/变量
    index.js:171
    execFile(info.exe, [...info.args, join(PY_DIR, script), ...args], {
  • 执行外部命令来自配置/变量
    index.js:201
    const child = spawn(info.exe, [...info.args, join(PY_DIR, "collect_f1.py"), String(dur), String(cfg.autoReportLaps || 0)], {
  • 执行外部命令固定命令
    index.js:222
    execFile("taskkill", ["/PID", String(proc.pid), "/T", "/F"], { windowsHide: true }, () => {});
  • 发起网络请求
    index.js:270
    const res = await fetch(PY_INSTALL_URL);
  • 写入本地文件
    index.js:274
    writeFileSync(tmp, buf);
  • 删除本地文件
    index.js:279
    try { unlinkSync(tmp); } catch { }
  • 写入本地文件
    index.js:512
    try { mkdirSync(mode, { recursive: true }); targets.push(mode); } catch { }
  • 读取本地文件
    index.js:514
    if (existsSync(plots) && targets.length) {
  • 读取本地文件
    index.js:515
    for (const f of readdirSync(plots)) {
  • 读取本地文件
    index.js:519
    try { mtime = statSync(src).mtimeMs; } catch { continue; }
  • 写入本地文件
    index.js:523
    try { copyFileSync(src, dst); copied.push(dst); } catch { }
  • 发起网络请求
    client.js:18
    const r = await fetch(API + p, { credentials: 'same-origin' })
  • 发起网络请求
    client.js:23
    const r = await fetch(API + p, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

给 DeepSeek Harness 的 F1 25 遥测插件:跑完几圈自动出比赛工程师报告 —— 逐弯定位哪里慢了、为什么慢、该往哪个方向改。

README

由 DeepSeek 最新模型翻译生成
dsh-sim-telemetry 给 DeepSeek Harness 的赛车遥测插件:跑完几圈,它像比赛工程师一样告诉你「哪儿慢了、为什么慢、怎么改」。 不用装第三方遥测软件,不用上传数据 —— 采集和分析全在你自己的电脑上跑。 它是什么 跑赛车的时候,你知道自己慢,但往往说不清慢在哪 —— 是刹车踩早了?出弯给油太晚?还是方向盘打多了? 游戏只给你一个圈速,不给你答案。 这个插件把游戏的 UDP 遥测抓下来,按赛道距离对齐多圈,用曲率识别弯道、检测失控、归因时间损失,然后输出: - 圈速与一致性:三圈差多少秒,稳不稳 - 逐弯对比:第几弯、每圈 apex 速度差多少 - 失误定位:哪一圈、哪个位置 spin 了,速度掉了多少 - 时间损失归因:每 100 米丢了多少秒 - 该改什么:先改哪个弯、怎么改 分析全在本地 Python 里完成,模型只读结论那几行 —— 省 token 也省心。
展开完整文档(README 剩余 1 节)
dsh-sim-telemetry

给 DeepSeek Harness 的赛车遥测插件:跑完几圈,它像比赛工程师一样告诉你「哪儿慢了、为什么慢、怎么改」。

不用装第三方遥测软件,不用上传数据 —— 采集和分析全在你自己的电脑上跑。

它是什么

跑赛车的时候,你知道自己慢,但往往说不清慢在哪 —— 是刹车踩早了?出弯给油太晚?还是方向盘打多了?

游戏只给你一个圈速,不给你答案。

这个插件把游戏的 UDP 遥测抓下来,按赛道距离对齐多圈,用曲率识别弯道、检测失控、归因时间损失,然后输出:

- 圈速与一致性:三圈差多少秒,稳不稳
- 逐弯对比:第几弯、每圈 apex 速度差多少
- 失误定位:哪一圈、哪个位置 spin 了,速度掉了多少
- 时间损失归因:每 100 米丢了多少秒
- 该改什么:先改哪个弯、怎么改

分析全在本地 Python 里完成,模型只读结论那几行 —— 省 token 也省心。

核心能力

采集

- F1 25 UDP 遥测(端口可配置,和游戏里的设置保持一致即可)
- 玩家完整数据 + 全部 22 辆车摘要
- Motion 包:世界坐标、三轴 G、车头朝向 yaw
- 方向盘转角
- 赛道位置(m_lapDistance,0 ~ 赛道全长)
- 原始数据落盘,可反复分析

分析

- 多圈按赛道距离对齐:圈速差几秒也不会错位,逐弯对比是真在比同一个弯
- 曲率识别弯道:由车头朝向变化率求弯的曲率,不依赖「减速」——高速全油弯也能认、S 弯不会粘成一段;弯道数量 = 官方弯数
- 多圈平均曲率:单圈走线差异和 yaw 噪声互相抵消,弯位更稳
- 自动检测 spin / 打滑:速度断崖 且 横向 G 塌陷才算失控,正常刹车不会误报
- 时间损失按 100 米归因
- 逐弯操作对比:apex 速度 / 方向盘峰值 / 出弯给油点 / 刹车点

产出(跑完自动全出)

- 工程师报告:圈速、失误、时间损失、逐弯表(第 N 弯)、改进建议
- 轨迹诊断图:你自己的实跑轨迹 + 弯位编号 + 颜色分级 + 带方向性的调整建议(方向 多打 −0.36 表示打多了要收,给油 晚 −125 m 表示晚了要提前)
- 速度曲线图 / 油门刹车图
- CSV 表格 + 完整明细 md

主动引导

报告检出失误后会直接问:「想知道这一下到底怎么发生的、下次怎么避免吗?」你说想,它就把这一圈和最快圈逐秒拉出来对比 —— 告诉你第几弯、哪一脚刹车踩重了、哪一次方向打多了。

安装

在 DSH 的「设置 → 插件」里填 GitHub 地址:

https://github.com/jingjie43/dsh-sim-telemetry

装完重启 DSH,设置左侧会出现「赛车遥测」。

环境依赖

- Python 3.10+(3.11 / 3.12 / 3.13 都行)
- Pillow(只有画图需要)

第一次用不用自己折腾:面板会自动检测 Python,没装会出现「一键安装 Python 3.12」按钮。

使用方法

游戏里先开遥测

F1 25 → 设置 → 遥测设置:

| 项目 | 值 |
| UDP 遥测 | 开 |
| UDP 广播 | 关 |
| 端口 | 和插件设置里填的一样(默认 20777,两边保持一致就行) |
| 发送频率 | 20Hz |
| 格式 | 2025 |

三步搞定

1. 设置里选圈数(1 / 3 / 5 圈)
2. 点「开始记录」,然后正常跑
3. 跑满自动停,全部结果自动生成 —— 不用再点任何东西

数据在哪

~/.dsh/sim-telemetry/
├── frames_.jsonl # 原始遥测 ├── laps_.csv # 每圈汇总 ├── summary_full_*.md # 完整明细 ├── plots/ # 速度图 / 油门图 / 轨迹诊断图 └── settings.json # 面板设置

已知限制

⚠️ 目前只有银石完成了弯位校准

- ✅ 银石(Silverstone):18 个弯全校准,弯位精确到几十米
- ⚠️ 其他 23 条赛道:还没填官方弯数,弯道识别会不准

为什么:弯位必须用实跑数据校准,不能凭空填 —— 公开资料只有弯名和赛道全长,游戏内的赛道资源是加密的私有格式。唯一可靠的数据源就是玩家实跑一圈的遥测。

会怎么解决:一条一条来,哪条赛道跑过就能校准。

其他

- 同时只能跑一个采集任务,只能监听一个端口
- 只支持 F1 25 的「2025 赛制」UDP 格式;F2、经典模式未适配
- 弯位误差量级 几十米(算的是你的实际走线,不是赛道中心线)
- 弯名和序号还没对应(用「第 N 弯」+ 轨迹图代替,不影响使用)

未来展望

目标不是「F1 专用」,而是通用赛车遥测助手。

| 优先级 | 游戏 | 状态 |
| 1 | F1 25 | 已支持(持续打磨) |
| 2 | 神力科莎竞速(ACC) | 计划中 |
| 3 | 神力科莎(AC) | 计划中 |
| 4 | 其他大众赛车游戏 | 视需求 |

架构上「采集」和「分析」是分开的:每个游戏一个适配器(lib/py/collect_<game>.py),分析管线(切圈 / 弯道 / 对比 / 报告 / 图)全部共用 —— 加新游戏只是加一个文件。

远期想做:
- 理想圈:把各段最好表现拼起来,看理论上能跑多少
- 与 AI 车手遥测对比(「AI 在这个弯比你快多少」)
- 圈速进步曲线(跨场次记录)
- 更多赛道的弯位校准

License

MIT
预览分享卡片长什么样 ↓jingjie43/dsh-sim-telemetry
分享 · DeepSeek Harness Hub
jingjie43/dsh-sim-telemetry

跑完几圈自动生成逐弯失误定位与改进建议

这是你的仓库?认领条目

回到顶部