Skip to content

Latest commit

 

History

103 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

三体文明模拟器

License Platform Status Tech

English Version Here

Русская версия здесь

项目介绍

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

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

核心功能

3D三体运动模拟

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

文明兴衰模拟

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

恒星碰撞与爆炸系统

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

碎片系统

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

交互式体验

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

三体名句轮播

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

使用指南

基本操作

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

控制面板

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

技术特点

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

在线演示

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

三体文明模拟器 - 在线演示

项目起源

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

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

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

特别鸣谢

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

许可证

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

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

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

Releases

Packages

Used by

Contributors

Languages