关于本站
星舰第 15 次飞行测试(2026 年 11 月 13–14 日)的 3D 重建与回顾。飞行已结束:星舰 Ship 42 绕地 14 圈后被发射塔首次捕获,超重型 Booster 22 未能返场、在墨西哥湾坠毁。网站保留了任务期间的实时跟踪功能,现在默认显示最终状态,可从任意时刻回放全程。轨迹不是手绘的动画,而是用公开信息搭建的物理模型数值积分得到的,事件时刻对齐 SpaceX 官方时间线。
01制作思路
SpaceX 直播只给出速度、高度和若干关键事件,不公布完整的三维轨迹。本站想回答一个简单的问题:此刻星舰在地球上方的哪里?
- 以官方时间线为骨架。点火、关机、热分离、入轨、离轨、再入、捕获的时刻都固定为 SpaceX 公布的时间。
- 以物理模型填补中间。两次事件之间的运动由引力、推力、大气阻力和制导律决定,用数值积分算出来,而不是插值出来的。
- 用实时时钟驱动。页面默认按现实时间显示当前位置,也可以回放、拖动时间轴,或切换视角看发射塔、轨道和整个地球。
- 界面风格参考官方直播。HUD 仿照直播画面的速度/高度仪表、发动机点火状态和弧形事件时间线。
02实现方法
整个站点是纯静态网页,没有后端。仿真在开发时离线运行一次,把结果写成一个数据文件,页面加载后只做插值和渲染,所以在手机上也能流畅运行。
仿真的自由参数(俯仰程序、制导增益、发射方位角、入轨和离轨推力)由程序用割线法自动迭代:先让轨迹满足官方时刻,再满足任务约束(约 275 km 轨道、再入航路经过墨西哥北部和德州南部、返回星港上空)。
03物理原理与公式
载具当作质点,在地心惯性系中积分,地球自转、扁率和大气都考虑在内。下面列出主要模型,具体实现细节从略。
运动方程
状态量为位置 \(\mathbf r\)、速度 \(\mathbf v\) 和质量 \(m\),用四阶龙格–库塔法(RK4)积分:
$$\dot{\mathbf r}=\mathbf v,\qquad \dot{\mathbf v}=\mathbf g(\mathbf r)+\frac{\mathbf T+\mathbf D+\mathbf L}{m},\qquad \dot m=-\frac{|\mathbf T|_{\text{vac}}}{I_{sp}\,g_0}$$引力(含 J2 扁率项)
$$\mathbf g=-\frac{\mu}{r^3}\mathbf r-\frac{3}{2}J_2\frac{\mu R_E^2}{r^5}\left[\left(1-5\frac{z^2}{r^2}\right)(x,\,y,\,0)+\left(3-5\frac{z^2}{r^2}\right)(0,\,0,\,z)\right]$$μ = 398600.44 km³/s²,RE = 6378.137 km,J2 = 1.08263×10⁻³。
大气
0–86 km 采用 1976 年美国标准大气(分层温度梯度 + 静力平衡),86 km 以上用热层密度表插值。气流相对速度扣除大气随地球的转动:
$$\mathbf v_{\text{rel}}=\mathbf v-\boldsymbol\omega_\oplus\times\mathbf r,\qquad q=\tfrac12\rho v_{\text{rel}}^2$$发动机推力
猛禽 3 的推力随环境压力变化(喷管背压损失),节流系数为 \(k\):
$$F=k\,F_{\text{vac}}-A_e\,p(h)$$气动力
阻力系数随马赫数变化;再入时星舰以大攻角飞行,产生升力,通过倾侧角 \(\sigma\) 控制升力方向:
$$D=q\,S\,C_D(Ma),\qquad L=D\cdot\frac{L}{D},\qquad \mathbf L=L\left(\cos\sigma\,\hat{\mathbf n}_{\text{up}}+\sin\sigma\,\hat{\mathbf n}_{\text{side}}\right)$$制导
- 助推器上升:垂直起飞 → 俯仰程序转弯 → 重力转弯(推力沿相对速度方向)。
- 星舰上升:线性正切制导,俯仰角满足 \(\tan\theta(t)=\tan\theta_0-c\,t\),达到目标能量即关机。
- 返场点火:“待增速度”制导,推力指向 \(\Delta\mathbf v=\mathbf v_{\text{req}}-\mathbf v\),\(\mathbf v_{\text{req}}\) 是从当前位置抛到目标点所需的速度。
- 着陆点火:多项式(E 制导类)制导,在剩余时间 \(t_{go}\) 内同时满足末端位置和速度: $$\mathbf a_{\text{cmd}}=\frac{6\left(\mathbf r_f-\mathbf r-\mathbf v\,t_{go}\right)}{t_{go}^2}-\frac{2\left(\mathbf v_f-\mathbf v\right)}{t_{go}}-\mathbf g$$
- 再入:数值预测–校正制导。每一步向前积分预测落点,用倾侧角大小调纵程、用倾侧反转控制横程,最后段按能量管理滑翔经过航路点。
再入加热(驻点热流)
用 Sutton–Graves 关系估算,\(R_n\) 为头部等效半径:
$$\dot q_s\approx k\sqrt{\frac{\rho}{R_n}}\;v^3,\qquad k\approx1.74\times10^{-4}\ \text{(SI)}$$Starlink 卫星分离
已知信息(SpaceX、Space.com、Wikipedia):26 颗 Starlink V3 在 T+00:35:01 至 01:17:40(约 42 分钟)内部署,其中 3 颗带相机,用来拍摄星舰的防热罩,部署期间星舰缓慢转动配合拍摄;直播计数在 T+00:38:51 为 2 颗、T+00:49:39 为 4 颗。收拢尺寸约 7 × 3.5 m(第三方估计),约 2 吨。本站据此假设:前 4 颗(含相机卫星)释放较慢,其余 22 颗约每 77 秒一颗;卫星平躺着从背风侧的“PEZ”狭缝滑出,以约 0.45 m/s 推离。
卫星相对星舰的运动用 Clohessy–Wiltshire(Hill)方程描述,\(n\) 为轨道角速度(x 径向、y 沿迹、z 法向),\(a_y\) 为沿迹方向的附加加速度:
$$\ddot x-2n\dot y-3n^2x=0,\qquad \ddot y+2n\dot x=a_y,\qquad \ddot z+n^2z=0$$\(a_y\) 包括两部分:一是气动阻力差(约 270 km 高度,扁平卫星比致密的星舰多减速约 \(10^{-5}\ \text{m/s}^2\),使卫星略降低、慢慢跑到前方);二是卫星自检、展开太阳翼后(假设释放后约 3–4 小时)电推进的顺行推力(约 \(3\times10^{-5}\ \text{m/s}^2\),相当于每天抬升几公里)。抬轨使卫星升高、落到星舰后方,且先释放的先开始抬升、落后更多,于是 26 颗按释放顺序在星舰后方排成一列,即“卫星列车”(沿迹约 \(\tfrac32 a_y t^2\))。
与官方时刻对齐
仿真中各事件的时刻与官方时刻会有几秒的偏差。再入段和助推器下降段做了轻微的分段线性时间缩放,让事件准确落在官方时刻;显示的速度仍是物理值。
043D 可视化
- 尺度跨度大:场景同时包含 12,000 km 直径的地球和 1 m 级的发射塔构件,所以开启对数深度缓冲来避免远近物体互相穿插闪烁。
- 坐标系:轨迹数据存为地固系(ECEF)坐标;星港附近用当地东–北–天坐标系摆放发射塔,并按真实太阳位置计算昼夜和地影。
- 姿态:箭体轴向取推力或速度方向;滚转用平行传输(最小扭转)参考,避免竖直时姿态突变。热分离和捕获段用四元数球面插值在两种姿态之间过渡,并绕质心转动,避免两级穿模。
- 塔臂捕获:托架沿塔升降,两根“筷子”绕托架前端的铰接立柱水平摆动。星舰悬停在张开的两臂之间 → 待尾翼降到臂下方后两臂合拢,间隙约 10.5 m,略大于 9 m 箭体 → 星舰继续下降,两侧捕获销落在臂顶导轨上 → 关机,托架下沉约 1.8 m 缓冲。
- 发动机尾焰:每台工作中的猛禽发动机从模型上实测的喷口位置各发出一束近场射流(喷口附近的白热核心,海平面时可见激波节),下游汇成整体尾焰;环境压力降低后尾焰欠膨胀、迅速变宽变淡。工作的发动机组合按飞行状态选择(助推器 33 → 13 → 3 台,星舰 6 / 3 / 1 台),可摆动的发动机(助推器内圈 13 台、星舰 3 台海平面发动机)按推力矢量控制摆动:\(\delta=\arcsin\!\big(I\alpha/(T_gL)\big)\),其中 \(\alpha\) 为显示姿态的角加速度,\(T_g\) 为可摆动发动机的推力,\(L\) 为喷口到质心的距离,助推器限幅 ±12°、星舰 ±10°。发射时还有照亮发射台的光、地面热辉光、从导焰槽两端喷出的火焰、导流槽喷水,以及向外翻滚、上升、随风飘散的水蒸气云。
- WebGPU / WebGL 2:默认在支持 WebGPU 的浏览器上使用 three.js 的 WebGPU 渲染器,否则使用 WebGL 2;也可在“物理模型 → 显示设置”里手动切换(或用
?renderer=webgpu|webgl)。两套渲染器共用同一份场景,地球、大气、地形、尾焰、等离子体和轨迹线的着色器各有一套 GLSL 和 TSL(节点材质)实现;WebGPU 启动失败时自动退回 WebGL 2。由于场景以地心为原点、单位为公里,模型-视图矩阵在 CPU 上用双精度计算,避免远离原点的载具抖动。 - 任务结束后:“直播”模式停在最终状态并显示任务结果卡片,可一键回放发射、热分离、捕获或以 300 倍速回放全程;“时间线”标签页合并了 SpaceX 官方倒计时与飞行时间线、每个事件的实际结果和来源,以及发射前后的新闻节点(UTC 与美中时间对照)。
- 启动检查与画质:进入前先检测 WebGL 2、GPU 型号、CPU 线程数、内存和最大贴图尺寸,自动选择高 / 中 / 低三档画质(贴图分辨率、抗锯齿、渲染像素比)。模型、发射塔和基础贴图加载完才进入,最多等待 25 秒,7 秒后可手动跳过;8K 地球和高清航拍在进入后继续在后台加载。运行中若帧率持续偏低,会自动降低渲染分辨率。可用
?quality=high|medium|low手动指定画质。 - 地球:8K 昼夜贴图,着色器里混合晨昏线、城市灯光、海面高光和大气边缘散射;星港周边叠加三层影像地形:发射场 ±3 km 用约 0.7 m 分辨率航拍,±18 km 用约 9 m 卫星图,±75 km 用约 37 m 卫星图,边缘渐隐过渡到地球贴图。
05使用的资源
| 资源 | 用途 | 来源 / 许可 |
|---|---|---|
| “SpaceX Starship Block 3” | 星舰与助推器 3D 模型(拆成两级并压缩) | Sketchfab,作者 Clarence365,CC BY 4.0 |
| 发射塔 3D 打印模型 | 底座、7 段塔身、带平台的顶段(按榫卯对接堆叠);“筷子”捕获臂、上下 C 形托架环、铰接立柱、导轨。按原设计 1:200 比例(1 mm = 0.2 m)装配,捕获动作、捕获销与发射台为本站自建 | “星舰发射塔”(Starship Launch Tower,1:200),设计师 Beans(@Beans_Models),MakerWorld · Standard Digital File License(经授权方可再分发) |
| 地球昼夜贴图(8K) | 地球表面与夜间灯光 | Solar System Scope(基于 NASA 数据),CC BY 4.0 |
| 地球贴图(低分辨率预载、水体遮罩) | 快速首屏、海面高光 | three-globe 示例图(NASA Blue Marble 衍生) |
| 星港高清航拍影像 | 发射场 ±3 km,约 0.6–0.7 m 分辨率:北纬 26.0° 以南为 2024 年 10 月拍摄,以北为 2022 年 6 月,已调色拼接 | USGS NAIP 航空影像(美国农业部),公有领域;2024 年影像经 Microsoft Planetary Computer 获取 |
| 2 号发射台与燃料加注臂 | 按公开照片和比例图手工建模:塔位取自 Google Earth 标注,发射台在塔南侧 31.8 m;加注臂尺寸参考 @LunarCaveman 的 Ship QD 比例图 | 参考 NSF Starbase Live、RGV Aerial Photography、Jordan Guidry(WAI)等公开照片;模型为本站自建 |
| 周边卫星影像 | 星港周围 ±75 km,约 9–37 m 分辨率 | Sentinel-2 cloudless 2016 by EOX IT Services GmbH(含修改过的 Copernicus Sentinel 数据 2016),CC BY 4.0 |
| three.js r175 | WebGPU / WebGL 2 渲染引擎、TSL 节点材质 | threejs.org,MIT |
| KaTeX | 本页公式排版 | katex.org,MIT |
| Barlow / Noto Sans SC | 界面字体 | Google Fonts,SIL Open Font License |
| 任务信息 | 倒计时、飞行时间线、捕获说明 | SpaceX Flight 15 任务页,SpaceX 捕获说明 |
| 实际进展 | 起飞时刻、助推器中止原因、卫星部署、返回检查、离轨、再入与塔臂捕获结果 | 只采用官方与主流媒体:SpaceX 官网任务页、SpaceX 发言人 Dan Huot / Kate Tice 在直播中的说明(经 Space.com 实时报道转述)、CNBC、SpacePolicyOnline |
| 物理常数与模型 | 引力、大气、轨道力学 | WGS-84、1976 年美国标准大气、公开文献中的经典制导方法 |
发射塔的外观、捕获臂结构和载具朝向参考了 SpaceX 官网 Flight 15 页面的图片及公开照片。
06开发者
07局限
SpaceX 没有公开真实遥测、质量和制导律,所以本站是基于公开信息的物理重建,和真实轨迹可能相差几公里到几十公里。末段航路点、溅落点和应急区位置都是近似值。起飞时刻只公布到分钟(22:47 UTC),轨道倾角没有官方数据(模型从星港向东发射,约 26°),助推器“提前结束返场点火”的具体时长也未公布,模型中的助推器返程仍按完整返场点火计算。发射塔和捕获臂是按照片还原的示意模型,不是工程图纸。本站与 SpaceX 无关,非官方。