This is a submission for the June Solstice Game Jam
What I Built
Solstice Balance is an interactive 3D calibration simulator where the player stabilizes Earth's obliquity (target 23.44°) and rotational speed to prevent a simulated thermal collapse.
Players use thruster-style controls to correct tilt and spin while reacting to procedurally generated cosmic disturbances (solar flares, gravitational tides, meteors).
The goal was to make a tactile, physics-driven experience that ties to the June Solstice theme—balancing seasonal geometry with emergent hazards.
Game Demo
Play the live demo: https://solstice-game.vercel.app/
(Recommended: open in a desktop browser for best WebGL and audio support.)
Code
Full source code and development history: https://github.com/gaurav101/solstice-game
How I Built It
- AI Assistance: Utilized Google Gemini to pair-program, debug complex WebGL contexts, and rapidly iterate on the core physics calculations and WebGL Sound generation.
- Framework: React + TypeScript with Vite for fast iteration.
-
3D & Physics: Three.js for rendering and
cannon-esfor rigid-body physics to simulate tilt, spin, and meteor impacts. - Audio: WebAudio-based synth engine and sampled effects for real-time atmospheric feedback.
- UI: Tailwind CSS for a clean, rapid HUD layout; React state syncs real-time telemetry (score, alignment, RPM) seamlessly with the WebGL loop.
- Performance Optimization: Employed procedural textures, batched particle systems, and defensive resource disposal to prevent memory leaks across scene restarts. ## How to play the game Below is your official flight manual to successfully calibrate Earth's rotation and orientation, countering severe space weather, and maintaining life-supporting equilibrium.
Notable design choice: The game loop runs inside a single requestAnimationFrame driven effect that cleanly tears down Three/Cannon resources when switching game states to completely avoid leaking WebGL contexts.
How To Play the Game (https://solstice-game.vercel.app/)
🛰️ 1. The Core Objective
Your active task is to guide and maintain Earth's planetary parameters in specified target alignment zones:
- Target Axial Obliquity: 23.0° to 23.9° (aiming precisely for the natural June Solstice angle of 23.44°).
- Target Rotational Velocity (Spin): 1.0 to 2.5 RPM (Revolutions Per Minute).
- Planetary Ecosystem Integrity: Must remain above 0%. Integrity decays rapidly any second Earth remains outside optimal thresholds.
🎮 2. Control Layout
Counter-act deep space gravitational pull and harsh solar winds by applying immediate corrective torque.
| Keyboard Input | Control Board Thruster | Operational Action |
|---|---|---|
W or ▲ Up |
Pitch Forward | Tilts Earth's axis forward pointing towards the Sun |
S or ▼ Down |
Pitch Backward | Tilts Earth's axis backward away from the Sun |
A or ◀ Left |
Spin Faster | Speeds up the Earth's west-to-east spin velocity |
D or ▶ Right |
Spin Slower | Applies electromagnetic dragging to slow rotation down |
☀️ 3. Key Calibration Rules
📍 The Solstice sweet spot (23.44°)
When Earth is tilted at 23.44°, the North Pole is angled perfectly toward the Sun. In this position, you will see a bright circular sunlit ring over the Arctic region (the Midnight Sun) while the Antarctic Circle remains in winter shadow. This is the June Solstice Threshold.
- Maintaining the axis inside the green 23.0° - 23.9° band raises your Calibration Accuracy.
- Every second spent inside optimal zones awards Equilibrium Points.
🌀 The Rotational Band (1.0 to 2.5 RPM)
- Static Risk (Spin below 0.3 RPM): If the Earth stops spinning, one side of the planet is cooked under permanent radiation, and the other freezes in absolute darkness. Ecosystem integrity will drop exponentially!
- Erosion Risk (Spin above 3.5 RPM): Rotating too fast generates cosmic atmospheric drag that will tear away the ozone layers. Ecosystem integrity drops rapidly.
🚨 4. Galactic Disturbance Hazards
The orbital field is subject to unexpected external solar interferences that will knock you out of alignment:
- Coronal Mass Ejections (Solar Flares): Strong electromagnetic storms that apply extreme pitch forces, abruptly throwing off the planetary tilt obliquity.
- Atmospheric Gravitational Tides: Tidal fluctuations that can speed up or slow down Earth's spin speed.
- Meteor Incursions: Direct strikes that transfer kinetic momentum, rotating or tipping Earth suddenly.
Listen for the Audio Synth’s pitch and tempo: The onboard audio system uses warning buzzers and frantic tempo modulation to signal when parameters are entering danger thresholds.
🏆 5. Tips for Pro-Commanders
- Pulsed Thrusters over Static Holding: Do not hold down thruster buttons endlessly. Tap controls in short bursts to counteract drift, letting the friction settle the planet in the optimal zone.
- Balance First, Tilt Second: If you are knocked completely off-course, prioritize bringing the planetary spin back into the 1.0 - 2.5 RPM band first to stop thermal decay, then nudge the obliquity to the target solstice angle.
- Observe the Shaders: Watch the gorgeous daytime sunlight and glittering nightly city light shaders. If you see city light configurations rotating either too fast or not at all, immediately act!
Initialize engine calibration, steady the core, and save the Solstice!
Prize Categories
- Best Google AI Usage: Google Gemini was instrumental in prototyping the initial graphics setup, debugging tricky 3D coordinate transformations, and ensuring the physics-driven gameplay integrated perfectly with React's state management.
Top comments (0)