nx_solar_system_catalog.nx
buildroot/runtime/nx_solar_system_catalog.nx
about
nx_solar_system_catalog.nx -- catalog of solar-system bodies.
Cross-cutting Substrate C foundational data primitive per
nxc2/docs/NISHI_GAME_ENGINE_ROADMAP.md "Solar system macro-
benchmark." Holds physical parameters (mass, radius, orbit,
composition flags) for every major solar-system body the
substrate generates.
FULL CATALOG (per feedback-maximum-capability-no-simplification
cardinal, 2026-05-16): 37 bodies covering all 5 categories:
- 1 star (Sun)
- 8 planets (Mercury -> Neptune)
- 13 major moons (Luna, Phobos, Deimos, 4 Galileans, Titan +
3 Saturn icy, Titania, Oberon, Triton)
- 5 dwarf planets (Ceres, Pluto, Haumea, Makemake, Eris)
- 3 representative asteroids (Vesta, Pallas, Hygiea)
- 3 well-known comets (1P/Halley, C/1995 O1 Hale-Bopp,
2I/Borisov interstellar)
- 3 TNOs (Sedna, Quaoar, Orcus)
Per-body fields: ID, kind, radius_km, mass_e20kg (0 for sub-Phobos
bodies where Q14 underflows), semi-major axis (AU for solar orbits;
thousands-km for moon orbits relative to their parent), orbital
period (days), rotation period (hours), atmosphere flag, rings flag,
PARENT BODY ID (NX_BODY_SUN for planets/dwarfs/asteroids/TNOs;
parent planet for moons; 0 - 1 for the Sun itself).
Data source: NASA JPL Horizons + Wikipedia infoboxes for the
physical parameters. Per cardinal
`feedback-no-third-party-trust-native-or-nothing`: these are
PUBLIC-DOMAIN scientific reference values (NASA is US federal
civil-service work, TIER_0_UNENCUMBERED). No copyrighted
imagery or text absorbed -- only numbers.
Per cardinal `feedback-procgen-causal-growth-not-direct-sampling`:
these parameters are the CAUSAL INPUTS to per-body generators
(atmosphere -> climate -> biome -> surface features). Without
this catalog, the per-body generators would be guessing.
Q14 conventions across the catalog:
dependencies 3 imports · 1 importers
imports: nx_syscalls.nxnx_hal.nxnx_tier.nx
imported by: nx_body_anchors.nx
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 64 | const NX_MAGIC_695700: i64 = 695700 |
| 65 | const NX_MAGIC_2440: i64 = 2440 |
| 66 | const NX_MAGIC_6052: i64 = 6052 |
| 67 | const NX_MAGIC_6371: i64 = 6371 |
| 68 | const NX_MAGIC_3390: i64 = 3390 |
| 69 | const NX_MAGIC_69911: i64 = 69911 |
| 70 | const NX_MAGIC_58232: i64 = 58232 |
| 71 | const NX_MAGIC_25362: i64 = 25362 |
| 72 | const NX_MAGIC_24622: i64 = 24622 |
| 73 | const NX_MAGIC_1737: i64 = 1737 |
| 74 | const NX_MAGIC_1821: i64 = 1821 |
| 75 | const NX_MAGIC_1561: i64 = 1561 |
| 76 | const NX_MAGIC_2634: i64 = 2634 |
| 77 | const NX_MAGIC_2410: i64 = 2410 |
| 78 | const NX_MAGIC_2575: i64 = 2575 |
| 79 | const NX_MAGIC_1353: i64 = 1353 |
| 80 | const NX_MAGIC_1188: i64 = 1188 |
| 81 | const NX_MAGIC_1163: i64 = 1163 |
| 82 | const NX_MAGIC_19890000000: i64 = 19890000000 |
| 83 | const NX_MAGIC_3301: i64 = 3301 |
| 84 | const NX_MAGIC_48675: i64 = 48675 |
| 85 | const NX_MAGIC_59720: i64 = 59720 |
| 86 | const NX_MAGIC_6417: i64 = 6417 |
| 87 | const NX_MAGIC_18981300: i64 = 18981300 |
| 88 | const NX_MAGIC_5683300: i64 = 5683300 |
| 89 | const NX_MAGIC_868100: i64 = 868100 |
| 90 | const NX_MAGIC_1024100: i64 = 1024100 |
| 91 | const NX_MAGIC_1482: i64 = 1482 |
| 92 | const NX_MAGIC_1076: i64 = 1076 |
| 93 | const NX_MAGIC_1345: i64 = 1345 |
| 94 | const NX_MAGIC_1524: i64 = 1524 |
| 95 | const NX_MAGIC_5203: i64 = 5203 |
| 96 | const NX_MAGIC_9539: i64 = 9539 |
| 97 | const NX_MAGIC_19180: i64 = 19180 |
| 98 | const NX_MAGIC_30070: i64 = 30070 |
| 99 | const NX_MAGIC_16000: i64 = 16000 |
| 100 | const NX_MAGIC_6400: i64 = 6400 |
| 101 | const NX_MAGIC_2766: i64 = 2766 |
| 102 | const NX_MAGIC_3948: i64 = 3948 |
| 103 | const NX_MAGIC_4317: i64 = 4317 |
| 104 | const NX_MAGIC_4571: i64 = 4571 |
| 105 | const NX_MAGIC_6778: i64 = 6778 |
| 106 | const NX_MAGIC_2362: i64 = 2362 |
| 107 | const NX_MAGIC_2773: i64 = 2773 |
| 108 | const NX_MAGIC_3140: i64 = 3140 |
| 109 | const NX_MAGIC_1782: i64 = 1782 |
| 110 | const NX_MAGIC_1800: i64 = 1800 |
| 111 | const NX_MAGIC_4348: i64 = 4348 |
| 112 | const NX_MAGIC_3927: i64 = 3927 |
| 113 | const NX_MAGIC_4333: i64 = 4333 |
| 114 | const NX_MAGIC_10759: i64 = 10759 |
| 115 | const NX_MAGIC_30688: i64 = 30688 |
| 116 | const NX_MAGIC_60182: i64 = 60182 |
| 117 | const NX_MAGIC_1669: i64 = 1669 |
| 118 | const NX_MAGIC_1595: i64 = 1595 |
| 119 | const NX_MAGIC_1346: i64 = 1346 |
| 120 | const NX_MAGIC_1681: i64 = 1681 |
| 121 | const NX_MAGIC_90560: i64 = 90560 |
| 122 | const NX_MAGIC_103774: i64 = 103774 |
| 123 | const NX_MAGIC_112897: i64 = 112897 |
| 124 | const NX_MAGIC_203830: i64 = 203830 |
| 125 | const NX_MAGIC_1325: i64 = 1325 |
| 126 | const NX_MAGIC_1686: i64 = 1686 |
| 127 | const NX_MAGIC_2034: i64 = 2034 |
| 128 | const NX_MAGIC_27759: i64 = 27759 |
| 129 | const NX_MAGIC_924795: i64 = 924795 |
| 130 | const NX_MAGIC_4150000: i64 = 4150000 |
| 131 | const NX_MAGIC_11400: i64 = 11400 |
| 132 | const NX_MAGIC_104744: i64 = 104744 |
| 133 | const NX_MAGIC_89530: i64 = 89530 |
| 134 | const NX_MAGIC_1408: i64 = 1408 |
| 135 | const NX_MAGIC_5832: i64 = 5832 |
| 136 | const NX_MAGIC_100000: i64 = 100000 |
| 139 | const NX_SOLAR_Q: nx_int = 16384 |
| 144 | const NX_BODY_SUN: nx_int = 0 |
| 145 | const NX_BODY_MERCURY: nx_int = 1 |
| 146 | const NX_BODY_VENUS: nx_int = 2 |
| 147 | const NX_BODY_EARTH: nx_int = 3 |
| 148 | const NX_BODY_MARS: nx_int = 4 |
| 149 | const NX_BODY_JUPITER: nx_int = 5 |
| 150 | const NX_BODY_SATURN: nx_int = 6 |
| 151 | const NX_BODY_URANUS: nx_int = 7 |
| 152 | const NX_BODY_NEPTUNE: nx_int = 8 |
| 155 | const NX_BODY_LUNA: nx_int = 9 // Earth's moon |
| 156 | const NX_BODY_PHOBOS: nx_int = 10 |
| 157 | const NX_BODY_DEIMOS: nx_int = 11 |
| 158 | const NX_BODY_IO: nx_int = 12 |
| 159 | const NX_BODY_EUROPA: nx_int = 13 |
| 160 | const NX_BODY_GANYMEDE: nx_int = 14 |
| 161 | const NX_BODY_CALLISTO: nx_int = 15 |
| 162 | const NX_BODY_TITAN: nx_int = 16 |
| 163 | const NX_BODY_ENCELADUS: nx_int = 17 |
| 164 | const NX_BODY_RHEA: nx_int = 18 |
| 165 | const NX_BODY_IAPETUS: nx_int = 19 |
| 166 | const NX_BODY_TITANIA: nx_int = 20 |
| 167 | const NX_BODY_OBERON: nx_int = 21 |
| 168 | const NX_BODY_TRITON: nx_int = 22 |
| 171 | const NX_BODY_CERES: nx_int = 23 |
| 172 | const NX_BODY_PLUTO: nx_int = 24 |
| 173 | const NX_BODY_HAUMEA: nx_int = 25 |
| 174 | const NX_BODY_MAKEMAKE: nx_int = 26 |
| 175 | const NX_BODY_ERIS: nx_int = 27 |
| 178 | const NX_BODY_VESTA: nx_int = 28 |
| 179 | const NX_BODY_PALLAS: nx_int = 29 |
| 180 | const NX_BODY_HYGIEA: nx_int = 30 |
| 183 | const NX_BODY_HALLEY: nx_int = 31 // 1P/Halley |
| 184 | const NX_BODY_HALE_BOPP: nx_int = 32 // C/1995 O1 |
| 185 | const NX_BODY_BORISOV: nx_int = 33 // 2I/Borisov (interstellar) |
| 188 | const NX_BODY_SEDNA: nx_int = 34 |
| 189 | const NX_BODY_QUAOAR: nx_int = 35 |
| 190 | const NX_BODY_ORCUS: nx_int = 36 |
| 192 | const NX_SOLAR_BODY_COUNT: nx_int = 37 |
| 196 | const NX_CELESTIAL_KIND_STAR: nx_int = 0 |
| 197 | const NX_CELESTIAL_KIND_TERRESTRIAL_PLANET: nx_int = 1 |
| 198 | const NX_CELESTIAL_KIND_GAS_GIANT: nx_int = 2 |
| 199 | const NX_CELESTIAL_KIND_ICE_GIANT: nx_int = 3 |
| 200 | const NX_CELESTIAL_KIND_DWARF_PLANET: nx_int = 4 // queued S5 |
| 201 | const NX_CELESTIAL_KIND_ROCKY_MOON: nx_int = 5 // queued S2 |
| 202 | const NX_CELESTIAL_KIND_ICY_MOON: nx_int = 6 // queued S2-S4 |
| 203 | const NX_CELESTIAL_KIND_ASTEROID: nx_int = 7 // queued S6 |
| 204 | const NX_CELESTIAL_KIND_COMET: nx_int = 8 // queued S7 |
| 205 | const NX_CELESTIAL_KIND_KUIPER_OBJECT: nx_int = 9 // queued S8 |
| 207 | const NX_CELESTIAL_KIND_COUNT: nx_int = 10 |
functions
| 210 | func nx_solar_body_id_is_valid(id: nx_int) -> nx_int called by 1: main |
| 216 | func nx_celestial_kind_is_valid(k: nx_int) -> nx_int called by 1: main |
| 234 | func nx_solar_body_kind(id: nx_int) -> nx_int called by 1: main |
| 284 | func nx_solar_body_parent_id(id: nx_int) -> nx_int called by 1: main |
| 308 | func nx_solar_body_radius_km_q14(id: nx_int) -> nx_int called by 1: main |
| 370 | func nx_solar_body_mass_e20kg_q14(id: nx_int) -> nx_int called by 1: main |
| 408 | func nx_solar_body_semi_major_axis_au_q14(id: nx_int) -> nx_int called by 1: main |
| 459 | func nx_solar_body_orbital_period_days_q14(id: nx_int) -> nx_int called by 1: main |
| 509 | func nx_solar_body_rotation_period_hours_q14(id: nx_int) -> nx_int called by 1: main |
| 527 | func nx_solar_body_has_atmosphere(id: nx_int) -> nx_int called by 1: main |
| 553 | func nx_solar_body_has_rings(id: nx_int) -> nx_int called by 1: main |
| 567 | func main() -> i64 |