Repolode
qunabu

qunabu/Gravity

Интерактивный симулятор Солнечной системы на TypeScript и Three.js показывает, как гравитация формирует орбиты, и предлагает экскурсию с реальными астрономическими данными.

Звёзды
220
Форки
17
Открытые issues
0
Последний коммит
29 дней назад

Что это?

Gravity — браузерный симулятор Солнечной системы на TypeScript, Three.js и Vite. В нём используются реальные астрономические данные о размерах и массах небесных тел, а также их орбитальные элементы на эпоху J2000.0, поэтому планеты, Плутон и крупнейшие спутники движутся по настоящим орбитам. Масштабируется только визуализация: переключатель позволяет выбрать истинный масштаб или наглядный, при котором Солнце и крошечный Меркурий видны одновременно.

При запуске проекта начинается экскурсия из 43 шагов: она объясняет, почему существуют орбиты, начиная с законов Ньютона и переходя к системе Земля—Луна, точкам Лагранжа, приливам и общей теории относительности. Для каждого шага есть прямая ссылка, а язык текста можно переключать между английским и польским. После экскурсии можно перейти в режим свободного исследования и работать с симуляцией самостоятельно.

Можно переключаться между двумя физическими моделями: аналитической кеплеровской моделью и N-body-моделью, которая рассчитывает ньютоновскую гравитацию между всеми парами тел с помощью интегратора leapfrog и отображает текущее изменение энергии. Текстуры создаются процедурно на canvas, поэтому приложение работает офлайн и не требует файлов изображений.

Ключевые возможности

  • 01Реальные размеры и массы небесных тел, а также орбитальные элементы на эпоху J2000 для Солнца, планет, Плутона и крупнейших спутников.
  • 02Переключение между истинным и наглядным масштабом, при котором небольшие небесные тела остаются видимыми.
  • 03Переключение между аналитическими кеплеровскими орбитами и симуляцией гравитации N-body в реальном времени.
  • 04Экскурсия из 43 шагов с прямыми ссылками и текстом на английском и польском языках.
  • 05Процедурно созданные текстуры планет и спутников, работающие офлайн.

Сценарии использования

  • Обучение студентов небесной механике и законам Ньютона.
  • Наглядное изучение точек Лагранжа, приливов и орбитального резонанса.
  • Использование кодовой базы на TypeScript и Three.js как примера 3D-визуализации научных данных.

Быстрый старт

  1. 1

    Установите зависимости

    npm install
  2. 2

    Запустите сервер разработки на localhost:5173

    npm run dev

Что важно знать

  • Значения орбитального узла Луны, аргумента и фазы являются приблизительными; реальными являются только большая полуось, эксцентриситет, наклонение и период.
  • Для визуального масштаба используется нелинейное преобразование, поэтому в этом режиме орбиты лишь приблизительно имеют форму эллипсов.
  • Для режима N-body с включёнными спутниками нужен более мелкий временной шаг, а при очень высоких множителях времени точность может снижаться.

Темы

Частые вопросы

Что такое Gravity?
Интерактивный симулятор Солнечной системы на TypeScript и Three.js показывает, как гравитация формирует орбиты, и предлагает экскурсию с реальными астрономическими данными. Gravity — браузерный симулятор Солнечной системы на TypeScript, Three.js и Vite. В нём используются реальные астрономические данные о размерах и массах небесных тел, а также их орбитальные элементы на эпоху J2000.0, поэтому планеты, Плутон и крупнейшие спутники движутся по настоящим орбитам. Масштабируется только визуализация: переключатель позволяет выбрать истинный масштаб или наглядный, при котором Солнце и крошечный Меркурий видны одновременно.
Gravity можно использовать бесплатно? Какая у него лицензия?
Gravity распространяется с открытым исходным кодом под лицензией GPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
Gravity всё ещё поддерживается?
Активно поддерживается. Последний коммит в Gravity — 21 сент. 2026 г..
Для чего можно использовать Gravity?
Обучение студентов небесной механике и законам Ньютона. Наглядное изучение точек Лагранжа, приливов и орбитального резонанса. Использование кодовой базы на TypeScript и Three.js как примера 3D-визуализации научных данных.
Как установить Gravity?
Установите зависимости: npm install Запустите сервер разработки на localhost:5173: npm run dev
Где скачать Gravity?
Исходный код и инструкции по установке — на GitHub: https://github.com/qunabu/Gravity

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Браузерный 3D-трекер спутников, использующий реальные модели орбитальной механики и предназначенный для студентов, преподавателей и специалистов по космическим операциям.

1,6 тыс.212TypeScriptAGPL-3.0Обновлён 22 часа назад

Универсальный физический движок для быстрой и точной симуляции контактирующих сочленённых тел, широко используемый в робототехнике и исследованиях машинного обучения.

15,8 тыс.1,9 тыс.C++Apache-2.0Обновлён 8 часов назад