Skip to main content

proof_engine/relativistic/
mod.rs

1//! Relativistic physics module for Proof Engine.
2//!
3//! Provides implementations of special and general relativistic effects
4//! for game rendering: Lorentz contraction, time dilation, Doppler shifts,
5//! gravitational lensing, black holes, wormholes, and spacetime diagrams.
6
7pub mod lorentz;
8pub mod time_dilation;
9pub mod doppler;
10pub mod searchlight;
11pub mod terrell;
12pub mod lensing;
13pub mod grav_time;
14pub mod black_hole;
15pub mod wormhole;
16pub mod spacetime;
17
18pub use lorentz::{
19    lorentz_factor, FourVector, LorentzBoost, LorentzContractor, LorentzRenderer,
20    contract_length, proper_time, velocity_addition, rapidity,
21    four_momentum, relativistic_energy, relativistic_momentum, invariant_mass,
22};
23pub use time_dilation::{
24    time_dilation_factor, DilatedClock, TimeDilationRenderer, ClockComparison,
25    twin_paradox, muon_lifetime, gravitational_time_dilation,
26};
27pub use doppler::{
28    relativistic_doppler, transverse_doppler, wavelength_shift, redshift_z,
29    color_from_wavelength, doppler_color_shift, DopplerRenderer, cosmic_redshift,
30};
31pub use searchlight::{
32    relativistic_beaming, aberration_angle, headlight_factor, SearchlightRenderer,
33    apparent_brightness, solid_angle_transform,
34};
35pub use terrell::{
36    terrell_rotation_angle, apparent_position, retarded_time, TerellRenderer,
37    render_moving_cube, finite_light_speed_positions,
38};
39pub use lensing::{
40    deflection_angle, einstein_radius, lens_equation, image_positions,
41    magnification, LensingField, apply_lensing, LensingRenderer,
42    microlensing_lightcurve,
43};
44pub use grav_time::{
45    schwarzschild_time_dilation, gravitational_redshift, proper_time_rate,
46    gps_correction, GravTimeDilationField, GravTimeRenderer,
47};
48pub use black_hole::{
49    schwarzschild_radius, photon_sphere_radius, isco_radius, BlackHole,
50    ray_trace_schwarzschild, ray_deflection, AccretionDisk, disk_emission,
51    render_black_hole, shadow_boundary, tidal_force, hawking_temperature,
52    BlackHoleRenderer,
53};
54pub use wormhole::{
55    EllisWormhole, proper_distance, embedding_diagram, ray_trace_wormhole,
56    render_wormhole, WormholePortal, transform_through_wormhole,
57    wormhole_stability, WormholeRenderer,
58};
59pub use spacetime::{
60    MinkowskiDiagram, SpacetimeEvent, Worldline, light_cone,
61    is_timelike, is_spacelike, is_lightlike, proper_time_along_worldline,
62    boost_diagram, PenroseDiagram, penrose_transform, SpacetimeRenderer,
63    causal_structure,
64};