An open API service indexing awesome lists of open source software.

https://github.com/evanstellun/web-three-body

基于web的在线三体文明模拟器
https://github.com/evanstellun/web-three-body

css3 html-css-javascript html5 javascript javascript-game physics physics-3d physics-simulation threebody threebodyproblem threejs

Last synced: 2 months ago
JSON representation

基于web的在线三体文明模拟器

Awesome Lists containing this project

README

          

# 三体文明模拟器

[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey.svg)](https://www.microsoft.com/windows)
[![Status](https://img.shields.io/badge/status-active-brightgreen.svg)](https://github.com)
[![Tech](https://img.shields.io/badge/tech-HTML5%20%7C%20CSS3%20%7C%20JavaScript-blue.svg)](https://developer.mozilla.org/)

[English Version Here](README_EN.md)

[Русская версия здесь](README_RU.md)

## 项目介绍

三体文明模拟器是一个基于Web的交互式3D模拟器,融合了刘慈欣科幻小说《三体》的世界观与真实的三体运动物理规律。该项目不仅能够模拟混沌的三体运动系统,更创造性地将文明的兴衰与宇宙环境的变化相结合,让用户在体验天体运行之美的同时,思考文明与生存的意义。

> "给岁月以文明,而不是给文明以岁月"

## 核心功能

### 3D三体运动模拟

- 基于万有引力定律的真实物理模拟
- 可视化展示三个恒星(α、β、γ)与行星(P)的复杂运动轨迹
- 支持3D视角旋转、缩放和聚焦到特定天体
- 实时显示模拟时间、行星表面温度等关键信息

### 文明兴衰模拟

- 模拟行星P表面温度变化对文明的影响
- 将文明发展划分为七个阶段:原始时代、封建时代、蒸汽时代、电气时代、原子时代、信息时代和星际探索时代
- 记录每个文明的存在时间、发展阶段和最终结局
- 多种文明结局:高温毁灭、低温毁灭、被恒星爆炸毁灭、被碎片撞击毁灭、行星被恒星吞噬、被观察者关闭或成功飞向新家园
- 贴合《三体》原著的文艺灭亡描述

### 恒星碰撞与爆炸系统

- 恒星相撞时同时产生冲击波和星云
- 冲击波快速向外扩散,对附近天体产生向外推力和升温效果(平方反比定律)
- 星云保持不规则形状,随天穹一起旋转产生真实的视运动
- 冲击波和星云的旁观视角与第一视角渲染

### 碎片系统

- 恒星相撞产生 10-20 个碎片,质量为行星的 0.1-5 倍
- 碎片参与天体引力计算和所有物理运算
- 碎片撞击行星会导致文明直接毁灭
- 碎片轨道使用原恒星颜色,在天体列表中不显示

### 交互式体验

- 重开一局:随机生成全新的三体系统配置
- 重新模拟:使用当前参数重置模拟
- 调整模拟速度:从0.1x到300x不等
- 第一视角模式:沉浸式体验三体世界
- 导出/导入参数:保存和分享你的三体系统配置

### 三体名句轮播

- 展示《三体》小说中的50+条经典语句
- 随着模拟进行自动切换,营造浓厚的科幻氛围

## 使用指南

### 基本操作

- **单指拖拽**:旋转视角
- **双指缩放**:调整视野大小
- **双击天体**:聚焦到该天体
- **单击天体**:查看天体详细信息

### 控制面板

- **重开一局**:生成随机三体系统
- **重新模拟**:重置当前模拟状态
- **第一视角**:切换至第一视角模式
- **显示三体文明历程**:查看已记录的文明历史
- **导出参数**:保存当前系统配置
- **导入参数**:加载外部系统配置

## 技术特点

- **纯前端实现**:使用HTML5 Canvas和JavaScript构建,无需后端支持
- **响应式设计**:同时支持桌面端和移动端访问
- **本地存储**:使用localStorage保存文明历史记录
- **高性能渲染**:优化的3D投影算法,确保流畅的模拟体验
- **物理精确性**:基于真实的万有引力定律计算天体运动

## 在线演示

使用Netlify搭建的Demo站点,与本存储库实时同步:

[三体文明模拟器 - 在线演示](https://3body.netlify.app/)

## 项目起源

起初,这个项目叫做"基于web的在线三体运动模拟器",只有一个按照用户输入的参数模拟三体运动的功能。

但是当"名句轮播"功能加入后,这个项目的内涵就已经改变了。在混沌三体系统中试图求生的文明,在千万次冰雪与烈焰的史诗中毁灭,然后又涅槃重生。

或许只有面对文明一次次的崩塌与重建,我们才能真正领悟到刘慈欣所说的"生存从来都不是理所当然的事情,是我们误把它当成了理所当然。"

## 特别鸣谢

- 《三体》系列作者,雨果奖得主——刘慈欣
- Netlify提供的免费同步github存储库功能
- 在测试程序时毁灭的总计3154个三体文明以及成功飞向新家园的207个三体文明(doge)

## 许可证

由于出现被不合理使用的现象,本项目1.12.2及以后的版本将会由MIT许可证改为Apache-2.0 许可证,如需使用需授权并署名 - 详情请查看[LICENSE](LICENSE)文件

"弱小和无知不是生存的障碍,傲慢才是。" —— 《三体》

愿我们都能在这混沌的宇宙中,找到属于自己的文明之光。