xh Tool · osu! 谱面分析引擎资源说明（S31）

本目录是 xh Tool 在 osu! 房间「工具箱」中使用的离线计算引擎，只在应用内不可见的 WebView / WKWebView 中运行，
不联网、不读写本目录以外的任何存储，计算结果以 JSON 交给原生界面绘制。

来源

- ManiaMapAnalyser（osumania_map_analyser）· https://github.com/LeoBlackMT/osumania_map_analyser
  · MIT License · Copyright (c) 2026 Leo_Black（全文见同目录 LICENSE）。
  本目录中的 config.js 与 js/ 下文件为上游原版文件的子集（谱面解析、难度估计、Etterna MinaCalc、
  Interlude 星级、键型识别、难度曲线），未修改算法。未包含 tosu 实时读取、实时 PP、暂停检测、
  遥测 / 反馈上传、桌面壳、Malody / StepMania 转换器及其 simfile-parser。
- index.html 与 xh-engine.js 为 xh Tool 自写的计算宿主（MIT · © 2026 鳕烩），按上游
  js/app/analysis.js 的口径整理结果。
- ONNX Runtime Web 1.24.3（js/estimator/companella/ort/）· https://github.com/microsoft/onnxruntime
  · MIT License · Copyright (c) Microsoft Corporation。
- Etterna MinaCalc（js/ett/versions/minaclac-*.wasm，经上游编译为 WebAssembly）
  · https://github.com/etternagame/etterna · MIT License。

上游所引用的算法与参考项目

以下项目的算法经 ManiaMapAnalyser 移植或参考，随上游代码一并提供；具体授权以各原项目为准：

- Sunny Rework（Star-Rating-Rebirth）· https://github.com/sunnyxxy/Star-Rating-Rebirth
- Interlude（YAVSRG，RC 键型分析）· https://github.com/YAVSRG/YAVSRG
- Daniel · https://thebagelofman.github.io/Daniel/
- Companella（段位估计模型 dan_model.onnx）· https://github.com/Leinadix/companella
- DanielEtterna（Etterna 数据获取方法参考）· https://github.com/JoseMGS3/DanielEtterna
- Azusa / Roxy 估计器为 ManiaMapAnalyser 自有算法。

另：谱面输入方式（bid / 链接 / 上传 .osu、.osz）与卡片信息排布参考了
nonebot-plugin-osumania-toolkit（MIT），未使用其代码。

osu! 是 ppy Pty Ltd 的商标；xh Tool 与 ppy、上述项目及其作者均无隶属或背书关系。
