-
Notifications
You must be signed in to change notification settings - Fork 0
The Physics
You never need the math to play — the Dashboard shows everything as speeds and percentages. But if you want to know exactly what the mod is doing to your ship, here it is. Everything below is special relativity only (no general relativity), applied as a force/rate layer.
-
β (beta) is your speed as a fraction of light speed:
β = v / c. At half light speed β = 0.5. -
γ (gamma), the Lorentz factor, is how much relativity "bites" at that speed:
γ = 1 / √(1 − β²)γ starts at 1 (no effect) and runs away to infinity as β → 1. This runaway is why
cis an unreachable wall.
For a force pushing along your direction of motion, special relativity gives the acceleration as
a = F / (γ³ · m)
so the thrust that actually accelerates you is F_eff = F_nominal / γ³ (this is the "longitudinal mass" γ³m). As β → 1, γ³ explodes and acceleration → 0 no matter how big the engine. No artificial speed cap is needed — the engine simply stops biting.
| β | γ³ | effective thrust |
|---|---|---|
| 0.1 | 1.015 | 98.5% |
| 0.5 | 1.54 | 65% |
| 0.9 | 12.1 | 8% |
| 0.99 | 356 | 0.3% |
The curve is gentle below ~0.5c and steepens hard near c — the "pushing the light barrier" feel.
It is direction-blind. Braking is also an engine burn, so slowing down near c is exactly as feeble
as speeding up. That is the single most important gameplay consequence: you must start arrival
deceleration absurdly early. See Dashboard#brake-authority-cue.
Honesty note. This is a gameplay abstraction, not momentum-conserving SR. The mod burns propellant at
the normal rate while delivering only F/γ³ of force, so fuel→Δv efficiency silently degrades near c —
"the wall costs you fuel too". The dv/dt and the light-wall feel are correct; the momentum bookkeeping
is not exact-SR.
A moving crew's clock runs slow: proper time is dτ = dt / γ. Their onboard processes unfold in their
time, so all onboard resource consumption scales by 1/γ — a fast crew ages and eats slower.
| β | γ | effective thrust (×1/γ³) | resource burn (×1/γ) |
|---|---|---|---|
| 0.5 | 1.15 | 65% | 87% |
| 0.9 | 2.29 | 8% | 44% |
| 0.99 | 7.09 | 0.3% | 14% |
The two effects have opposite sign — thrust is crushed, but a ship that already is fast keeps its crew alive far longer. That is the trade the whole mod is built around.
The gap is permanent. Slow back down and the burn rate returns to normal, but the time already saved while fast is kept for good — the twin-paradox outcome. Decelerating never "catches up".
What is not scaled (excluded from the 1/γ slowdown):
- Engine propellant + oxidizer — burned in coordinate time to make the force (scaling it too would double-reward).
- ElectricCharge — captured externally (solar) in coordinate time.
- Radiation dose — see below.
Radiation is an external flux, not an onboard process, so it is not dilated — dose keeps ticking at
×1.00 while life-support burn drops to ×0.39 at 0.9c. A fast crew ages less but soaks the same dose, so
on a relativistic run radiation, not starvation, is the binding constraint. (An optional
doseBeamingExponent can even raise forward dose at high β to model blueshifted/beamed cosmic rays —
off by default. See Configuration.)
Reorienting the ship — reaction wheels, RCS torque — is an internal proper-time process, so it slows by the time-dilation factor 1/γ (the same 1/γ as resource burn, not the 1/γ³ of translation). At γ = 7 (0.99c) a 180° flip takes ~7× longer. Combined with direction-blind braking, you need lead time just to point retrograde before a decel burn. Wheel/RCS resource use (EC, monopropellant) is not slowed — only the turn rate.
Speed relative to what? The mod measures β against the Solar System barycenter inertial frame, fixed at departure (for KSP that is the Sun-fixed inertial frame). Inside any planetary system your speed is a few km/s ≈ 10⁻⁵ c, so β ≈ 0 and the layer is effectively interstellar-cruise-only — it switches on by itself only when you are actually crossing between stars. Other stars' peculiar velocities (α Cen ≈ 22 km/s ≈ 7×10⁻⁵ c) are negligible, so "at rest at the destination" still reads β ≈ 0.
Under Principia this is free — it already integrates in a barycentric inertial frame and hands over the velocity directly.
Three cheap, fail-safe guards keep the layer honest (see Configuration for the thresholds):
-
Activation gate — below
betaMineverything is identity (no correction, no scaling). This is what makes it interstellar-only for free. -
Warp exemption — warp/jump motion is a metric bubble, not real speed-through-space, so a vessel
under warp has β ≈ 0 and is treated as identity. Warp mods raise a generic
WarpFlagthe layer reads. -
Kraken fail-safe — KSP physics bugs can fling parts to absurd/superluminal velocity (β ≥ 1 → NaN).
Above
betaSanethe layer disables for that vessel and logs a one-liner rather than trying to "fix" the glitch. The thrust correction is inherently bounded (it can never exceed full thrust cancellation), so the mod cannot amplify a kraken.
- Dashboard — where all of this is displayed while you fly.
- Trip Planner — the same physics, run in the editor before launch.
-
Configuration — the tunables (
betaMin,betaSane,attitudeExponent, …).
Relativity v1.0.0 · report a bug · MIT