OpenPBS (Open-source Satellite collision simulation & Physics-Based visualization System) 是一个基于 PyBullet 物理引擎的实时卫星碰撞仿真与 3D 可视化系统。
- 🌍 高保真 3D 地球可视化 - 基于 Three.js 的实时渲染
- ☀️ 实时 UTC 晨昏线 - 基于真实时间的昼夜边界
- 🛰️ 卫星轨道仿真 - PyBullet 物理引擎驱动的精确轨道力学
- 💥 碰撞检测 - 实时卫星碰撞检测与响应
- 🌐 WebSocket 通信 - 低延迟的实时数据传输
- 🎮 交互式控制 - 创建自定义卫星、控制仿真、多场景测试
./start_all.sh这将启动:
- PyBullet WebSocket 服务器 (端口 8766) - 物理仿真引擎
- 云层服务器 (端口 5002) - 实时云层数据(可选)
在浏览器中打开:
web_client/index.html
或通过 HTTP 服务器:
python3 -m http.server 8080 --directory web_client
# 然后访问 http://localhost:8080/index.html- 点击 "连接服务器" 按钮
- 点击 "开始仿真" 按钮
- 观察卫星在轨道上运行
OpenPBS/
├── pybullet_websocket_server.py # PyBullet WebSocket 服务器
├── cloud_server.py # 实时云层服务器
├── core_simulator_framework.py # 核心仿真框架
├── src/modules/ # 仿真模块
│ ├── satellite_sim.py # 卫星仿真模块
│ ├── physics_engine.py # 物理引擎
│ └── ...
├── web_client/ # 前端可视化
│ ├── index.html # 主页面
│ └── visualization_client.js # Three.js 可视化
├── start_all.sh # 启动所有服务
└── stop_all.sh # 停止所有服务
系统提供多种测试场景:
- 默认: LEO 轨道(10 颗卫星)
- 碰撞测试: 两星相撞 / 100 星密集
- 小轨道: 高碰撞概率
- 随机场景: 随机生成
- Python 3.12+
- PyBullet - 物理仿真引擎
- NumPy - 数值计算
- WebSocket - 实时通信
- Flask - 云层服务器
- Three.js r128 - 3D 渲染
- HTML5/CSS3 - 用户界面
- WebSocket API - 实时数据接收
- PyBullet 集成指南 - 物理引擎详解
- 实时晨昏线说明 - UTC 晨昏线实现
- 自定义卫星指南 - 如何创建自定义卫星
- 云端部署指南 - 部署到云服务器
- 基于真实 UTC 时间的昼夜分界线
- 太阳位置随时间实时更新
- 地球自转与太阳位置完美同步
- 基于 PyBullet 的精确轨道力学
- 真实的地球引力模拟
- 碰撞检测与碎片生成
- 创建自定义卫星(位置、速度、形状)
- 实时控制仿真(开始、暂停、重置)
- 多种预设场景快速切换
- NASA Blue Marble 卫星纹理
- 经纬度网格线
- 卫星轨迹显示
- 实时 FPS 和状态监控
- Python 3.8+
- 2GB RAM
- 现代浏览器(Chrome/Firefox/Safari)
- Python 3.12+
- 4GB+ RAM
- 支持 WebGL 2.0 的显卡
# 启动所有服务
./start_all.sh
# 停止所有服务
./stop_all.sh
# 查看服务器状态
ps aux | grep -E "(pybullet_websocket_server|cloud_server)"
# 查看日志
tail -f pybullet_server.log
tail -f cloud_server.log| 端口 | 服务 | 说明 |
|---|---|---|
| 8766 | PyBullet WebSocket | 物理仿真数据流 |
| 5002 | 云层服务器 | 实时云层图片 |
| 8080 | HTTP 服务器 | 前端页面服务(可选) |
- v6.5-clean - 移除地名标注和云层,简洁地球
- v6.4-no-labels - 移除地名标注
- v6.3.1-terminator-fixed - 修复光源冲突,实现实时晨昏线
- v6.2-simple-earth - 简化地球渲染
- v6.0-v6.1 - 早期版本
欢迎提交 Issue 和 Pull Request!
MIT License
- PyBullet - 物理仿真引擎
- Three.js - 3D 渲染库
- NASA - Blue Marble 地球纹理
状态: ✅ 生产就绪 最后更新: 2025-01-13