raylib boundary
Rendering adapts physics for human eyes.
The renderer converts meters into readable 3D space and never changes the simulation state it receives.
Boundary files
src/render/renderer.cowns raylib drawing, render-scale conversion, body colors, and grid sizing.src/app/body_trails.crecords synchronized SI-unit trail history for non-star bodies and moving stars. Only fixed stars omit history.
Scale modes
Parent-aware visual separation also applies to the encounter probe, so illustrative Earth cannot hide it. Its parent-relative SI state stays unchanged. Real-scale mode retains physical positions and the explicitly nonphysical unknown-radius wire marker.
Illustrative mode keeps planets readable, renders Vesta as a distinct smaller asteroid, and expands close moon separation only as a visual transform. Real-scale mode uses the same physical scale for positions and radii, so planets and asteroids can become nearly invisible.
Unknown radii are the explicit exception: wire markers in either view are nonphysical symbols, with Unknown shown in the inspector. Individual-body framing lets you inspect a Jovian moon without framing Jupiter and its entire 115-moon family.
Saturn's pale ring lines use NASA's ring-system extent and 26.73-degree axial tilt. They affect drawing and camera framing only; gravity and the inspector retain Saturn's JPL mean radius.
Both modes use the same simulation source. The difference is presentation policy at the raylib boundary.
Camera-relative subtraction takes place in double precision before conversion to raylib floats. This preserves local detail at large heliocentric distances. The 0.1-AU grid is a bounded local patch of at most 512 slices; it does not grow without limit for distant objects.
Reference grid and trails
Absolute history shows motion in the simulation frame. Parent-relative history subtracts synchronized historical parent positions and anchors the result at today's parent position. Neither view changes stored SI history. Optional green velocity and orange acceleration markers have physical directions and explicitly illustrative lengths.
The subdued ground grid is a bounded camera-local patch just below the orbital plane. Solid spheres keep their catalog colors without orange wireframe overlays; each grid cell represents 0.1 AU.
Trail history starts at a 300-second sampling cadence, rounded up to whole configured ticks for lessons. When its 1,025-point budget fills, both historical spacing and future cadence double together, retaining uniform full-run coverage and a current endpoint. Parent and moon histories keep matching sample times, including historical Sun positions in the moving-Sun barycentric lesson.
Longer runs have coarser history: fine satellite loops eventually lose detail. Trails show recorded motion rather than complete predicted orbital ellipses. The Astro runtime reports the historical spacing outside the canvas.