Skip to content

pholmq/TSN

Repository files navigation

The Tychosium 💫

Version License React Three.js

The Tychosium is an interactive 3D astronomical simulation implementing the TYCHOS model of our solar system. It offers a unique perspective on celestial mechanics, featuring real-time orbital calculations, a comprehensive star catalog, and immersive visualization.

Built with modern web technologies to ensure performance and accuracy, this project aims to visualize the binary solar system concepts proposed by the Tychos model.


📑 Table of Contents


🌟 Features

🔭 Astronomical Simulation

  • TYCHOS Implementation: Full realization of the Earth-centered binary system model.
  • Real-time Mechanics: Accurate planetary motions with the ability to traverse time (past/future).
  • Celestial Bodies: Includes the Sun, Moon, planets, major asteroids, and Halley's comet.
  • Star Catalog: Integrated Bright Star Catalog (BSC) containing over 9,000 stars with accurate magnitude and color data.

🎨 3D Visualization

  • Dual Camera System: Switch between a global "Orbit Camera" and a surface-level "Planet Camera".
  • Orbital Tracing: Visualize complex planetary geometric paths (spirographs) over time.
  • Visual Aids: Ecliptic grids, celestial sphere, zodiacal bands, and polar lines.
  • High-Fidelity Graphics: Realistic textures and dynamic solar lighting using post-processing effects.

🎛️ Advanced Interaction

  • Time Travel: Jump to specific historical or future dates instantly.
  • Perpetual calendar: Gregorian dates and support for Astronomical Julian day.
  • Variable Speed: Control simulation speed from real-time up to millennial steps.
  • Smart Search: Search implementation to quickly locate stars by name/HR number.

💫 The TYCHOS Model

This simulation is distinct from standard heliocentric visualizers. It implements the TYCHOS model, which proposes:

  • Earth as Reference: Earth remains relatively stationary at the center of the system.
  • Binary System: The Sun and Mars are binary companions.
  • PVP Orbit: The entire solar system rotates together with Earth in the PVP-orbit (Polaris-Vega-Polaris).

📖 Learn more: tychos.space


💻 Technical Stack

This project leverages the latest ecosystem for 3D web development.

Category Technology Purpose
Core React 18 UI and Component Architecture
3D Engine Three.js WebGL Rendering Engine
Renderer React Three Fiber React renderer for Three.js
Helpers @react-three/drei High-level 3D abstractions
Effects Postprocessing Bloom, glow, and visual effects
State Zustand Global state management
GUI Leva Tweakable control panels

🌍 Getting Started

Prerequisites

  • Node.js: v16.0.0 or higher
  • Package Manager: npm or yarn

Installation

  1. Clone the repository

    git clone [https://github.com/pholmq/TSN.git](https://github.com/pholmq/TSN.git)
    cd TSN
  2. Install dependencies

    npm install
  3. Start development server

    npm start

    Open http://localhost:3000 to view it in the browser.

Building for Production

To create an optimized build for deployment:

npm run build

📂 Project Structure

src/
├── components/
│   ├── Intro/           # Intro animation and text
│   ├── Helpers/         # Celestial sphere, grids, zodiac
│   ├── HoverObj/        # Interaction logic for object selection
│   ├── Menus/           # UI Menus for settings and effects
│   ├── PlanetCamera/    # First-person surface view logic
│   ├── Stars/           # Star rendering (InstancedMesh) & Data
│   ├── Trace/           # Orbital path tracing logic
│   ├── SolarSystem.jsx  # Main scene composition
│   └── UserInterface.jsx# HUD and overlays
├── settings/
│   ├── BSC.json         # Bright Star Catalog Data
│   ├── celestial-settings.json # Planet orbits and constants
│   └── star-settings.json      # Visual configuration for stars
├── utils/
│   ├── celestial-functions.js  # Tychos model math & logic
│   └── time-date-functions.js  # Julian Date conversions etc
└── store.js             # Zustand store for global app state

🔧 Configuration

You can customize the simulation logic by editing files in the src/settings/ directory:

  • celestial-settings.json: Modify orbital speeds, distances, sizes, and starting positions for planets.
  • star-settings.json: Adjust the rendering scale, brightness, and colors of stars.
  • BSC.json: The raw data for the stars.

🤝 Contributing

Contributions are welcome!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.


🙏 Acknowledgments

  • Simon Shack for the creation of the TYCHOS model.
  • Astronomers and scientists throughout the ages for trying to figure out the mysteries of our world. In particular Tycho Brahe.
  • Yale University Observatory for the Bright Star Catalog.
  • The open-source community behind React Three Fiber and so many other useful things.

🎁 Donations

You can donate to this work by visiting tychos.space and selecting "Donate". Your gift is much appreciated since Simon Shack has devoted a decade on the Tychos research and since we currently receive no funds of any kind for this work.

About

Resources

Stars

Watchers

Forks

Packages

No packages published