LiamDroog/mctl
数据复古任务控制台风格的航天器轨迹显示,实时跟踪 ISS、空间站访问飞船与深空探测器的轨道、过境和遥测。
项目介绍
mctl 是一个用 Rust 编写的航天器显示程序,外观模仿复古飞行控制室监视器。它跟踪国际空间站、来访的 Crew 和 Cargo Dragon、哈勃、JWST、Roman、天宫,以及旅行者 1/2 号和新视野号,提供 3D 轨道图、地面轨迹、星空图、过境预测、机动规划器和 ISS 实时遥测(README)。设计目标是长时间挂在家里的屏幕上运行,配套七套 CRT 主题,并提供低分辨率模式,用于树莓派通过复合视频驱动 CRT 显示器。
界面按功能键分页:MASTER(轨道与状态)、TRAJ(全尺寸轨道图和机动规划)、ISS 各分系统实时遥测、PASS(星空图与观测站点)、PROX(来访飞船相对位置)、VIEW(舷窗视角)、SYS(日志、设置、告警)和 OPS(JWST 与哈勃观测计划)(README)。
安装与首次运行
预编译包在 releases 中提供 x86-64 和 aarch64 版本,基于 glibc 2.35 构建,需要 Ubuntu 22.04、Debian 12 或更新版本;解包后执行 ./mctl 即可。如果缺少共享库,包内的 packaging/bootstrap.sh 可帮你安装;packaging/install.sh 会把程序和桌面条目装进 ~/.local(README)。
在全新机器上从源码构建(README):
git clone https://github.com/LiamDroog/mctl
cd mctl
packaging/bootstrap.sh
bootstrap.sh 会检查 C 编译器、curl、窗口库、Vulkan 驱动和 Rust 1.95 以上版本,安装前询问用户,通过 apt、dnf 或 pacman 装系统包,通过 rustup 装 Rust,然后编译并安装到 ~/.local。可以用 --check 或 --dry-run 只查看不修改,或用 --no-system-packages 只报告缺失项(README)。完成后运行 mctl 进入控制台,或运行 mctl --vehicle jwst --theme retrowave --fullscreen 指定飞行器和主题;mctl check 会校验配置并逐个数据源拉取一次(README)。
树莓派与 CRT
mctl --kiosk 是独立的无人值守前端,按飞行器和页面循环展示,把面向 640x480 的布局缩放填满屏幕,并跳过 CRT 滤镜,因为显像管本身就有这些效果。可用参数包括精简控制台页面、随机场景或飞行器顺序、主题轮换和用 --max-fps 降低 CPU 占用(README)。复合视频输出和交叉编译的说明见 docs/pi.md。Pi 3B+ 没有 Vulkan GPU,只能软件渲染,帧率有限(README)。
数据来源与限制
轨道根数来自 CelesTrak,ISS 状态来自 NASA 公开星历,ISS 遥测来自 ISSLIVE 公开的 Lightstreamer 接口(非官方 API,可能变更),地球定向参数来自 IERS/USNO,深空轨迹来自 JPL Horizons,观测计划来自 STScI,星空截图使用 DSS2(README)。请求会标识客户端、用 ETag 重新校验,并在失败时退避。没有来源的数值显示 NO DATA。
作者明确说明这是业余展示工具,不能用于实际运行或导航。测量值带 [EST]、[PLAN]、[TLE]、[SURVEY]、[NOW] 标记,TLE 推演值在约 5 km 内不可信。过境时间与作者另一套独立实现毫秒级吻合,但未与 Heavens-Above 类预测器对比(README)。机动规划器与 NASA ISS 星历对比,一天无阻力误差 3.1 km,带简单阻力模型误差 7.3 km(README)。ISS 告警阈值是占位值。配置覆盖写在 ~/.config/mctl/config.toml,缓存、日志和保留 30 天(上限 2 GB)的 SQLite 记录分别位于 ~/.cache、~/.local/state 和 ~/.local/share。项目没有统计分析,唯一向外发送用户相关信息的是默认关闭的 IP 定位功能(README)。
mctl 采用 GPL-3.0-or-later(LICENSE)。README 说明大部分代码由 Claude 编写,且目前只在 Kubuntu 和 Pi 3B+ 上认真测过(README)。
HotRepo 点评
mctl 于 2026-11-02 出现在 HotRepo 的 Rust 新项目榜上,在 2026-11-01 22:45 至 2026-11-02 00:45 UTC 约两小时的窗口内新增 5 颗 Star;同一条快照记录为 106 Star、9 Fork。该时段逐小时采样从 101 涨到 106,窗口太短,无法判断增长是否持续。技术上值得留意的是它拆成六个 crate,并把误差范围写得很实在,这给读者一个具体判断依据:它是一台文档齐全的业余仪器,不适合当精密跟踪工具。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。