A light cone is the reachability boundary from one event. A future signal moving no faster than light can only reach events inside or on the future light cone. This makes causality a data constraint: before adding a signal or interaction edge to a simulation graph, classify the separation of its endpoints.
timelike, lightlike, or spacelike. Downstream code can allow a message only for the first two categories. Do not encode causality as blue versus red pixels in a diagram; an accessible status and a pure function must carry the real decision.For s² > 0, the separation is timelike; a massive traveler moving below c could connect the events. For s² = 0, it is lightlike; an ideal light signal could connect them. For s² < 0, it is spacelike; the required speed would exceed c. The exact zero branch needs a tolerance in floating-point code because a mathematically lightlike calculation may round slightly above or below zero.
function canSendSignal(source: Event, destination: Event) {
const separation = classifyCausalSeparation(source, destination);
return separation === "timelike" || separation === "lightlike";
}
At Δt = 1 s, destinations Δx = 0, c, and 2c classify as timelike, lightlike, and spacelike. These three cases make a compact regression suite. Apply a Lorentz boost afterward: the coordinates change, but the classification must not.
Prediction: No inertial-frame boost can make a spacelike signal legal.
Classify the three one-second cases above. Predict the boolean result fromcanSendSignal, then consider a 0.6c boost. Explain which value changes in the transformed records and which reachability result does not.Encode causal reachability as a checked interval classification. The light cone is not merely a picture: it is a constraint that keeps a simulated event graph from accepting faster-than-light edges.
Treat the lesson as a small function before treating it as a fact to memorize. Give every value a unit, keep only the state needed for the next step, and make the output easy to inspect.
\[\text{observable output} = f(\text{inputs},\,\text{state})\]For Causality and Light Cones, write down the quantities you can control, the values your program must retain, and the result a reader could inspect. In Relativity, the useful program is not the drawing: it is the smallest explicit model that makes a prediction you can test.
Prediction: changing one declared input while holding the others fixed should change only the outputs that the model connects to that input. Choose one input, predict the direction of change, then check a limiting case such as zero, a symmetric arrangement, or a familiar low-speed or small-change approximation.
This lesson is a teaching model, not a complete simulator. Before using it outside the stated question, check which interactions, scales, uncertainties, boundary conditions, and measurement limits it leaves out.
Treat Causality and Light Cones as a contract: named inputs and units enter a rule, the rule produces an observable result, and a known limit or invariant checks whether the implementation deserves trust.
Classify event reachability with light-cone constraints before permitting simulated interactions.