An Interactive Orbital Shape Playground

An Interactive Orbital Shape Playground

Step into a minimalist digital laboratory where geometry and orbital mechanics collide. Geometric Harmonics is a real-time 3D simulation that allows you to choreograph the relationship between a central mass and its satellite through a sleek, icon-driven dashboard.

Click here to access.

1. The Core Engine

The core engine of this application is Three.js, an abstraction layer built on top of WebGL.

  • Scene Management: It uses THREE.Scene() as the primary container where all objects, lights, and cameras are managed.
  • Animation Loop: The animate() function serves as the engine's "heartbeat," using requestAnimationFrame to update the rotation of the shapes and the orbit pivot roughly 60 times per second.
  • Object Hierarchy: The engine uses a "Pivot" logic (an Object3D acting as a rig). Instead of calculating complex movement for the small shape, the engine rotates the pivot, and the shape—being a child of that pivot—moves in a perfect circle.

2. Rendering Technology

The rendering is handled via WebGL (Web Graphics Library) through the THREE.WebGLRenderer.

  • Lighting & Shadows: It utilizes PCFSoftShadowMap, which calculates soft, realistic shadows cast from the shapes onto an invisible floor plane.
  • Post-Processing/Visuals: * Antialiasing: Set to true to smooth out jagged edges.
    • Fog: A THREE.Fog object is used to blend the shapes into the background color as they move further from the camera.
    • Materials: It renders using MeshStandardMaterial, which reacts to the AmbientLight and DirectionalLight to simulate depth and "pastel" textures.

3. Mathematical Tools

The application relies on several geometric and trigonometric mathematical concepts:

  • Coordinate Systems: Uses 3D Cartesian coordinates (x, y, z) for positioning.
  • Trigonometric Constants: Uses pi number (as Math.PI) for rotations (e.g., Math.PI / 2 to lay the floor and orbit path flat).
  • Angle Conversion: Uses THREE.MathUtils.degToRad(23.5) to convert human-readable degrees into Radians, which the computer requires for the orbital inclination.
  • Transformation Matrices: Behind the scenes, multiplyScalar(scale) is used to calculate the size of the black "outlines" relative to the original shape's geometry.

4. Front-End Environment

The environment is a standard Modern Web Browser (HTML5/CSS3/ES6+).

  • UI/UX Layer: The "Dashboard" is built using CSS Grid for the button layout and SVG (Scalable Vector Graphics) for the icons inside the buttons.
  • Module System: It uses type="module" and an importmap. This allows the browser to fetch the Three.js library directly from a CDN (Content Delivery Network) without needing a complex build tool like Webpack or Vite.
  • Responsive Design: A window.resize event listener ensures the "Camera Aspect Ratio" and "Renderer Size" update instantly if the user changes their browser window size.

Stay in the loop

Get notified when new simulations, tools, and technical deep-dives are published.