ReadStar

⭐ — (8 endorsements) 📥 2,059 downloads 📌 v0.3.7_beta_neoforge_mc1.21.1 📅 8/19/2025
🟡 Updated this year

By FrozenStream · decoration

⬇ Download Mod Source: Modrinth ↗ 📅 Updated: 7/16/2026 📅 Created: 8/19/2025
⚠️ Install Order · 2 steps
1🛠️ Forge — Minecraft Forge (mod loader) Download ↗
2🛠️ Fabric — Fabric Loader Download ↗

Install in this order, then this mod last — most mods fail to load without their framework and dependencies in place.

🔍 Analysis

  • 👍 0.4% endorsement rate
  • 🏆 #26 of 274 decoration mods in this game by downloads

📋 About This Mod

# ReadStar — NeoForge Astronomy Mod !(https://cdn.modrinth.com/data/cached_images/2af8e0a314076124c824884df31c5ea5a25edc68_0.webp) A Minecraft sky mod driven by real celestial mechanics and star catalog data, featuring planetary orbital systems, star catalogs, FOV-aware rendering, and server-synchronized celestial configuration. **Author**: FrozenStream ## Features - **Real Star Catalog** — 12,000+ real stars from Gaia DR3 (color) + BSC5 (bright star fallback), with per-star brightness and glow - **Real Celestial Mechanics** — Keplerian orbital system with unlimited nesting depth - **Atmospheric Scattering** — HSV-based atmosphere color & glow computation with full-sky overlay and stellar halo - **Comet Rendering** — Bézier dust + ion dual-tail structure with dynamic wobble - **FOV-Aware Rendering** — Custom shader keeps star screen size constant across FOV changes - **Zero-Code Customization** — Add 8 moon phases to any body by simply placing PNGs - **Server Sync** — Celestial config managed server-side, auto-synced to all clients --- ## Quick Start ```bash ./gradlew build # Build ./gradlew runClient # Run client ./gradlew runData # Data generation (atlas config) ./gradlew runServer # Run server ``` The celestial system is defined via **data pack** at `data/readstar/celestial/system.json`, and the star catalog via **resource pack** at `assets/readstar/custom/stars/stars.json`. Config changes take effect with F3+T. Data pack changes require `/reload` or restart. --- ## Configuration Config file: `run/config/readstar-common.toml` | Option | Default | Description | |--------|---------|-------------| | `starCoreSize` | `0.648` | Star core quad size multiplier | | `starGlowSize` | `1.5` | Bright star glow quad size multiplier | | `starFovCompensationStrength` | `0.8` | Star **size** FOV compensation. `1.0` = full, `0.0` = none | | `starFovBrightnessStrength` | `1.0` | Star **brightness** boost when zoomed in. `0.0` = none | | `celestialApparentSizeFactor` | `4000.0` | Celestial body apparent size factor | | `celestialApparentSizeMin` | `1.024` | Minimum apparent size clamp | ### FOV-Aware Rendering Stars use a custom shader that separates each point into **position** and **offset**: | Attribute | Meaning | Behavior | |-----------|---------|----------| | `Position` (vec3) | Celestial sphere coordinate, shared by 4 vertices | Transformed by MVP, naturally affected by FOV | | `Offset` (vec3) | Billboard corner offset, unique per vertex | Multiplied by `FovCompensation` for size correction | Formula: `FovCompensation = tan(fov/2) / tan(35°) × strength + (1 - strength)` Shader: `worldPos = Position + Offset × FovCompensation` ### Per-Star Brightness Based on Vmag with independent decay thresholds: | Parameter | Formula | Notes | |-----------|---------|-------| | Alpha | `clamp(1 - max(0, Vmag-3)/12, 0.4, 1)` | Full brightness at Vmag ≤ 3 | | RGB | `clamp(1 - max(0, Vmag-1)/19, 0.7, 1)` | Full brightness at Vmag ≤ 1 | | Size | `clamp(1 - Vmag/12, 0.5, 1) × starCoreSize` | Larger Vmag = smaller dot | Glow quads only for Vmag < 2.0: `< 0.5 → high / < 1.5 → medium / < 2.0 → low`. --- ## Data Pack — Celestial System **Path**: `data/readstar/celestial/system.json` Place at `saves/<world>/datapacks/<pack>/data/readstar/celestial/system.json` or server `world/datapacks/`. ### Structure ```json { "System": { "<name>": { "mass": <double>, "radius": <double>, "luminance": <int>, "unstableDirtySnowball": <bool>, "hasAtmosphere": <bool>, "atmosphereHSV": <int>, "starHSV": <int>, "axis": , "orbit": { "semiMajorAxis": <double>, "eccentricity": <double>, "inclination": <double>, "argumentOfPeriapsis": <double>, "longitudeOfAscendingNode": <double>, "initialMeanAnomaly": <double> }, "children": { "<name>": { ... } } } } } ``` ### Field Reference | Field | Description | |-------|-------------| | `mass` | Mass (kg). 0 = fixed at parent position | | `radius` | Radius (m). Apparent size = `max(1.024, radius / distance × factor)` | | `luminance` | Self-luminosity 0~15. >0 = star; children auto-resolve `hostStar` upward | | `unstableDirtySnowball` | Comet flag. `true` renders dual-tail structure | | `hasAtmosphere` | Has atmosphere (controls overlay and glow rendering) | | `atmosphereHSV` | Atmosphere HSV color, packed int (H<<16 \| S<<8 \| V). H=hue, S=saturation, V=density (0~255) | | `starHSV` | Body's own color, same encoding. Luminous = emission, non-luminous = surface reflection | | `axis` | Rotation axis. Zero vector defaults to `(0,0,-1)` | | `orbit.semiMajorAxis` | Semi-major axis (m). 0 = no orbit | | `orbit.eccentricity` | Eccentricity. 0 = circular | | `orbit.inclination` | Orbital inclination (radians) | | `orbit.argumentOfPeriapsis` | Argument of periapsis (radians) | | `orbit.longitudeOfAscendingNode` | Longitude of ascend

# ReadStar — NeoForge Astronomy Mod

!(https://cdn.modrinth.com/data/cached_images/2af8e0a314076124c824884df31c5ea5a25edc68_0.webp)

A Minecraft sky mod driven by real celestial mechanics and star catalog data, featuring planetary orbital systems, star catalogs, FOV-aware rendering, and server-synchronized celestial configuration.

Author: FrozenStream

## Features

  • Real Star Catalog — 12,000+ real stars from Gaia DR3 (color) + BSC5 (bright star fallback), with per-star brightness and glow
  • Real Celestial Mechanics — Keplerian orbital system with unlimited nesting depth
  • Atmospheric Scattering — HSV-based atmosphere color & glow computation with full-sky overlay and stellar halo
  • Comet Rendering — Bézier dust + ion dual-tail structure with dynamic wobble
  • FOV-Aware Rendering — Custom shader keeps star screen size constant across FOV changes
  • Zero-Code Customization — Add 8 moon phases to any body by simply placing PNGs
  • Server Sync — Celestial config managed server-side, auto-synced to all clients

## Quick Start

```bash ./gradlew build # Build ./gradlew runClient # Run client ./gradlew runData # Data generation (atlas config) ./gradlew runServer # Run server ```

The celestial system is defined via data pack at `data/readstar/celestial/system.json`, and the star catalog via resource pack at `assets/readstar/custom/stars/stars.json`.

Config changes take effect with F3+T. Data pack changes require `/reload` or restart.

## Configuration

Config file: `run/config/readstar-common.toml`

| Option | Default | Description | |--------|---------|-------------| | `starCoreSize` | `0. 648` | Star core quad size multiplier | | `starGlowSize` | `1. 5` | Bright star glow quad size multiplier | | `starFovCompensationStrength` | `0. 8` | Star size FOV compensation. `1. 0` = full, `0. 0` = none | | `starFovBrightnessStrength` | `1. 0` | Star brightness boost when zoomed in. `0. 0` = none | | `celestialApparentSizeFactor` | `4000. 0` | Celestial body apparent size factor | | `celestialApparentSizeMin` | `1. 024` | Minimum apparent size clamp |

### FOV-Aware Rendering

Stars use a custom shader that separates each point into position and offset:

| Attribute | Meaning | Behavior | |-----------|---------|----------| | `Position` (vec3) | Celestial sphere coordinate, shared by 4 vertices | Transformed by MVP, naturally affected by FOV | | `Offset` (vec3) | Billboard corner offset, unique per vertex | Multiplied by `FovCompensation` for size correction |

Formula: `FovCompensation = tan(fov/2) / tan(35°) × strength + (1 - strength)`

Shader: `worldPos = Position + Offset × FovCompensation`

### Per-Star Brightness

Based on Vmag with independent decay thresholds:

| Parameter | Formula | Notes | |-----------|---------|-------| | Alpha | `clamp(1 - max(0, Vmag-3)/12, 0. 4, 1)` | Full brightness at Vmag ≤ 3 | | RGB | `clamp(1 - max(0, Vmag-1)/19, 0. 7, 1)` | Full brightness at Vmag ≤ 1 | | Size | `clamp(1 - Vmag/12, 0. 5, 1) × starCoreSize` | Larger Vmag = smaller dot |

Glow quads only for Vmag < 2. 0: `< 0. 5 → high / < 1. 5 → medium / < 2. 0 → low`.

## Data Pack — Celestial System

Path: `data/readstar/celestial/system.json`

Place at `saves//datapacks//data/readstar/celestial/system.json` or server `world/datapacks/`.

### Structure

```json { "System": { "": { "mass": , "radius": , "luminance": , "unstableDirtySnowball": , "hasAtmosphere": , "atmosphereHSV": , "starHSV": , "axis": [, , ], "orbit": { "semiMajorAxis": , "eccentricity": , "inclination": , "argumentOfPeriapsis": , "longitudeOfAscendingNode": , "initialMeanAnomaly": }, "children": { "": { ... } } } } } ```

### Field Reference

| Field | Description | |-------|-------------| | `mass` | Mass (kg). 0 = fixed at parent position | | `radius` | Radius (m). Apparent size = `max(1. 024, radius / distance × factor)` | | `luminance` | Self-luminosity 0~15. >0 = star; children auto-resolve `hostStar` upward | | `unstableDirtySnowball` | Comet flag. `true` renders dual-tail structure | | `hasAtmosphere` | Has atmosphere (controls overlay and glow rendering) | | `atmosphereHSV` | Atmosphere HSV color, packed int (H<<16 \| S<<8 \| V). H=hue, S=saturation, V=density (0~255) | | `starHSV` | Body's own color, same encoding. Luminous = emission, non-luminous = surface reflection | | `axis` | Rotation axis. Zero vector defaults to `(0,0,-1)` | | `orbit.semiMajorAxis` | Semi-major axis (m). 0 = no orbit | | `orbit.eccentricity` | Eccentricity. 0 = circular | | `orbit.inclination` | Orbital inclination (radians) | | `orbit.argumentOfPeriapsis` | Argument of periapsis (radians) | | `orbit.longitudeOfAscendingNode` | Longitude of ascend

🤖 AI-enhanced — based on mod data

📊 Mod Details

Game
Minecraft Mods
Author
FrozenStream
Version
0.3.7_beta_neoforge_mc1.21.1
Downloads
2,059
Endorsements
8
Category
decoration
Created
8/19/2025
Updated
7/16/2026
Game Versions
1.21.1
Tags
decoration, library

🔧 How to Install Minecraft Mods Mods

Download from Modrinth. Use Prism Launcher or drop into your mods folder.

📖 Full step-by-step install guide for Minecraft Mods →

Visit the official mod page for specific installation instructions for this mod.

🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Mods commands, item IDs, and more.

❓ Frequently Asked Questions

Which Minecraft Mods versions does ReadStar support?

The author lists 1.21.1. Other versions may work but are untested by the author.

What is the latest version of ReadStar?

Version 0.3.7_beta_neoforge_mc1.21.1, published 2026-07-16 with 2,059 downloads recorded at the source.

Keep browsing — more Minecraft Mods mods await

📋 All Minecraft Mods Mods 🏆 Top 25 📂 More decoration 👤 More by FrozenStream 🔎 Similar Mods 🌐 Best decoration (All Games) 🔀 Check Compatibility ⚖️ Compare Mods 🆕 New Mods