# 来源与许可证 / Source and License

更新时间：`2026-09-07 21:50 CST`

## OpenRocket 公式来源

本网页的头锥轮廓公式是 OpenRocket `Transition.Shape` Java 实现的 JavaScript 移植和修改版本。

- 源仓库：<https://github.com/openrocket/openrocket>
- 固定来源提交：`f039634e81e35ad3c4cf44376a72332acfb17455`
- 主要来源文件：`Transition.java`、`NoseCone.java`、`TransitionTest.java`
- OpenRocket Copyright (C) 2007-2025 Sampo Niskanen and others.
- OpenRocket 许可证：GNU General Public License version 3 or later。

网页移植的六种外形为 `CONICAL`、`OGIVE`、`ELLIPSOID`、`POWER`、`PARABOLIC` 和 `HAACK`。`NoseCone.java` 将头锥表示为前端半径为零的 Transition；本项目据此移植半径轮廓函数，没有复制 Swing 界面、材料、质量或飞行仿真系统。

## 本项目修改

- 将 Java 半径函数改写为浏览器 JavaScript。
- 增加圆管数据前置门禁、输入范围和装配数据。
- 固定主壁厚 `1.5 mm`、台阶长度 `20 mm`、直径配合间隙 `0.5 mm`。
- 增加接缝 `2.0 mm` 局部加固和固定 `Ø3.0 mm` 径向贯穿通气孔。
- 增加二维 SVG、Three.js 三维预览、Manifold WebAssembly 实体布尔运算和二进制 STL 序列化。
- 增加中英文、浏览器语言选择、本地 JSON 语言包、本地字体和 Chrome 环境检查；不查询 IP 或地区服务。
- 增加受控 AI JSON 契约、人工确认导入、通气孔折角法线显示和生产构建保护。
- 增加常规、提升、困难三模式总入口；暂停模式保留可见结构位置。增加圆管上游门禁、模块导航、整箭三维预览和尾翼 CAD/三维设计预览；尾翼当前不导出制造 STL。
- 增加 AI v2 系统清单、模块目录和设计文档 Schema；既有锥头 AI v1 契约保持冻结。
- 增加打印坐标转换，使安装台阶开口端位于 `Z=0`、锥尖朝上，并增加打印平台预览和方向回归测试。
- 全部设计和实体计算在浏览器本机执行；服务端只需静态托管文件。

## 第三方运行库

- `manifold-3d 3.5.1`：用于封闭实体、旋转体和通气孔布尔运算，Apache License 2.0。
- `three 0.185.1`：用于 WebGL 三维预览，MIT License。
- `vite 8.2.2` 与 `playwright-core 1.63.0`：仅用于开发构建和浏览器验收，不是普通网页用户的安装依赖。
- `javascript-obfuscator 5.6.0`：仅用于提高第一方生产入口的阅读门槛，不是运行依赖，也不改变 GPL 对应源码义务。

依赖版本以 `package-lock.json` 为可复核依据。Manifold 与 Three.js 的许可证文本随本地依赖分别位于 `node_modules/manifold-3d/LICENSE` 和 `node_modules/three/LICENSE`。

## 分发条款

本修改实现按 `GPL-3.0-or-later` 分发，完整 GPL 文本位于 `LICENSE.TXT`。Manifold 和 Three.js 保留各自许可证及版权归属。

生产构建的压缩、变量改名和混淆不是加密，也不得用来限制 GPL 授予的复制、修改和再分发权利。分发 `dist/` 对象代码时，发布者还必须按 GPL 第 6 条同时提供该版本的完整对应源码和构建脚本。若未来需要闭源专有内核，应另行完成来源隔离、独立实现和专业许可审核，不能直接把当前派生实现改成闭源许可证。

本项目不是 OpenRocket 官方版本，也未获得 OpenRocket 项目背书。修改行为和缺陷不得归因于上游作者。

## English Summary

The nose-profile equations are a modified JavaScript port of OpenRocket `Transition.Shape` at commit `f039634e81e35ad3c4cf44376a72332acfb17455`. Version 0.12.1 preserves the three-mode system entry and adds its own body-tube gate, modular navigation, full-rocket and fin previews, fixed 1.5 mm nose wall, 2.0 mm nose-joint reinforcement, Ø3.0 mm radial bore, browser solid modelling, nose STL export and AI v2 metadata. Fin geometry is currently a design preview and does not export manufacturing STL.

The modified implementation is distributed under `GPL-3.0-or-later`. `manifold-3d 3.5.1` retains Apache-2.0 and `three 0.185.1` retains MIT. This is not an official OpenRocket release and is not endorsed by the OpenRocket project.
