1. The 32-Faced Archimedean Solid
The Archimedean solid simulated here is the Truncated Icosahedron (popularly known as the soccer ball geometry or buckyball structure).
It is a semi-regular convex polyhedron composed of 32 faces: 12 regular pentagons and 20 regular hexagons. It contains 60 vertices
and 90 edges. Its vertices are defined using permutations of the golden ratio $\phi = \frac{1 + \sqrt{5}}{2}$ coordinates, resulting in isotropic symmetry.
2. Glenz Vectors & Translucent Glass Effect
The term Glenz vectors originated in 1980s retro demos (e.g., on Commodore Amiga) to describe transparent 3D vector graphics.
Because vintage hardware lacked a z-buffer, transparent objects were rendered using the Painter's Algorithm: sorting all polygons from back to front
and rendering them with translucency.
In this simulation, we achieve a modern "glassy" appearance through:
- Back-to-Front Depth Sorting: Vertices and face centroids are rotated, then sorted along the camera axis ($Z_{cam}$) before rendering.
- Fresnel Effect Approximation: Glass reflects more light at grazing angles. The edge opacity and brightness are scaled dynamically based on $1.0 - (N \cdot V)^4$, where $N$ is the face normal and $V$ is the view vector.
- Phong Lighting Shading: Combining ambient light (deep blue), diffuse light (medium blue based on the moving light direction), and specular reflections (white highlights) creates the glossy finish.
3. Realistic Rigid Body Dynamics
Instead of simple bouncing particles, the Archimedean solid is simulated as a full 3D rigid body:
- Linear Motion: Position $P$ and linear velocity $v$ are integrated using Euler integration, subjected to downward gravity $g$ and viscous air resistance.
- Angular Motion: Orientation is represented as a 3D rotation matrix $R$, updated using angular velocity $\omega$.
- Collision Torque & Friction: When any of the 60 vertices penetrates a bounding wall or the floor, a local contact impulse $j$ is calculated. This impulse resolves linear velocity and creates a torque ($\tau = r \times F$), transferring linear kinetic energy into rotational kinetic energy (spin) realistically, with surface friction $\mu$ causing rolling.
- Dynamic Shadows: The light source casts a real-time flat projection shadow on the bottom floor, which scales and stretches based on the light's coordinates relative to the object's faces.