How do we tell a visitor from another star from a solar-system comet? Its energy is positive: it moves faster than the Sun's escape speed at its distance, so its orbit is a hyperbola (e > 1).
Sun at the focus. Dashed lines: asymptotes; the offset between the incoming asymptote and the Sun is the impact parameter b.
The science
Energy decides. In the Sun's field the specific orbital energy is ε = v²/2 − μ/r, μ = GM☉ = 1.327×10²⁰ m³/s². It is constant along a gravity-only path. If ε > 0 the object is faster than the local escape speed v_esc = √(2μ/r) everywhere, it is unbound and it came from outside: e = 1 + 2εh²/μ² > 1 (here e = 1 + q v∞²/μ).
Excess speed. Far away the speed tends to v∞ = √(2ε). At any r: v² = v∞² + 2μ/r. Semi-major axis a = −μ/v∞² (negative), perihelion speed v_p = √(v∞² + 2μ/q).
Geometry. Hyperbolic Kepler equation M = e·sinh H − H, M = n·t, n = √(μ/|a|³); r = |a|(e·cosh H − 1). The impact parameter is b = |a|√(e²−1) = q√((e+1)/(e−1)) and the incoming direction (the radiant) lies at true anomaly −arccos(−1/e) from perihelion. An object at rest in the local standard of rest seems to arrive from the solar apex (ecliptic λ≈270°, β≈+53°); real visitors have their own velocities, so the radiant is only near it on average.
Non-gravitational acceleration. Comets are pushed by outgassing. Marsden–Sekanina–Yeomans (1973) write a = g(r)·(A₁ r̂ + A₂ t̂ + A₃ n̂). ʻOumuamua showed an unexplained push (Micheli et al. 2018, Nature) of roughly A₁ ≈ 5×10⁻⁶ m/s² at 1 AU, falling roughly as r⁻², without a visible coma. Proposed explanations (hydrogen or nitrogen ice, a fluffy dust aggregate, …) are still debated; this lab only lets you apply such a push and see the orbit change. With any non-zero A the energy is not conserved, by design.
Coma & tails. Ice sublimates when it is warm; gas production falls roughly as r⁻² inside a few AU. The ion tail is carried by the solar wind (~400 km/s) so it points almost straight away from the Sun, tilted a little by the comet's own motion. Dust grains feel radiation pressure, a force β = F_rad/F_grav that weakens the Sun's pull to (1−β)μ; each release time and grain size gives a different Kepler orbit, so the dust tail is curved and fans out (syndynes/synchrones). Here the grains are propagated exactly with a universal-variable Kepler solver.
Brightness. m = H + 5·log₁₀Δ + 2.5·n·log₁₀ r. A bare rock has n≈2 (reflected sunlight only); active comets typically n≈4 or more. Δ is the distance from Earth (circular 1 AU orbit assumed), phase angle ignored.
How often? The flux of objects passing within q is Γ = n_ISO · π q² (1 + 2μ/(q v∞²)) · v∞. The second factor is gravitational focusing: the Sun bends paths inward. With n≈0.1 AU⁻³ (order of magnitude; Do, Tucker & Tonry 2018 derive values of this size from ʻOumuamua) several objects per year cross Earth-orbit distance, but nearly all are too faint to detect; surveys such as Pan-STARRS, ATLAS and Rubin/LSST find few.
Objects (approximate, as reported). 1I/ʻOumuamua (Pan-STARRS, 2017; Meech et al. 2017): e≈1.20, q≈0.26 AU, v∞≈26 km/s, elongated, no visible coma. 2I/Borisov (2019; Guzik et al. 2020): e≈3.4, q≈2.0 AU, v∞≈32 km/s, a clear coma. 3I/ATLAS (2025): e≈6, q≈1.36 AU, v∞≈58 km/s, retrograde near-ecliptic path; its elements here are rounded and the brightness parameters are illustrative, not fitted.
Simplifications. Only the Sun's gravity (no planets); Earth on a circular orbit; no phase function; elements rounded; the nucleus, Sun and planets are drawn enlarged; dust ejection speeds and the size distribution are artistic; the ion tail is a straight, schematic cone. Experiment A fits positions in a known plane with Gaussian noise (real astrometry measures angles). The model is a teaching tool, not an ephemeris.
Models: Blender 5.2 (procedural, baked, Draco GLB). Three.js r160 + WebGL.