Gravity orbits: initial speed, inclination and ellipses
Open the orbital playground. Change initial speed to turn a near-circle into an ellipse, or change inclination to reveal the orbital plane. NASA’s introduction to gravity and mechanics provides the physical background.
Controls
Drag to orbit the camera and use the wheel to zoom. With the canvas focused, arrow keys rotate the view. Camera interaction uses Three.js OrbitControls and remains available while paused.
Initial speed ranges from to , inclination from to . Either slider relaunches from the same point and clears the trail. Presets use Circular , Elliptic and Polar . Step advances model time units; Reset restores the default circular parameters.
Central gravity
The central body is fixed and does not respond to the satellite. The normalized gravitational parameter is :
Initial radius is 1 and velocity is perpendicular to it, giving circular speed 1. Escape speed is , above the slider maximum, so all selectable trajectories are bound. Inclination changes the orbital plane without changing energy.
Velocity Verlet advances position and velocity with four substeps per simulation update. Initial conditions give the semi-major axis and eccentricity:
Reading the scene
The upper-left readout shows current distance , current speed and eccentricity calculated from the initial state. The arrow indicates velocity direction. The fading trail retains 1,200 update positions; the dashed guide is one orbit precomputed from the initial state with the same integrator, not a second satellite.
Procedural textures, lighting, an atmosphere shell and reference rings provide depth cues. The displayed planet radius does not enter the gravity calculation. There is no surface collision detection, drag, propulsion or multi-body perturbation. The displayed surface is only a visual reference; point-mass gravity determines the trajectory.
As with the double pendulum, physics updates are separate from drawing. A model test checks return error after one unit circular orbit; decorative shading does not affect integration.