Inspiration
I tried to attach the video I recorded but it takes so long to download. but here is a picture instead 🙂

Reason for Choosing This Visual
I chose Massless Suns and Dark Suns because it looks simple at first, but the more you observe it, the more complex it becomes. The installation is built from glowing spheres of light, yet it feels immersive and almost physical. What interested me most was how interaction affects the space. When someone approaches a sphere, it responds, and that response spreads to nearby spheres.
I was drawn to how minimal the elements are, but how much atmosphere they create. There is no complex geometry or detailed objects, just light, spacing, and behavior. That made it a strong candidate to recreate in code because the challenge is not modeling objects, but recreating a feeling.
Highlight of Code
The part of the code I am most proud of is the “energy propagation system.”
if (a.energy > 0.55 && b.cooldown <= 0) {
if (a.absorbing) {
b.energy -= a.darkness * influence * 0.7;
} else {
b.energy += a.energy * influence;
}
b.cooldown = 7;
}
Instead of triggering all spheres at once, each sphere influences nearby ones based on distance. This creates a ripple effect that moves through the system rather than a flat reaction. I also modified this logic so that once a sphere becomes a dark sun, it reverses the behavior and starts removing energy instead of spreading it.
This small change made the interaction feel more dynamic and gave the system two different modes of behavior.
Embedded Sketch
First Prototype

The first prototype focused only on basic glowing circles and mouse interaction. At that stage, the spheres would brighten when the mouse was nearby, but there was no propagation or system behavior. Everything reacted individually.
This version helped me understand how to create the glow effect using layered transparency, but it felt flat and disconnected. That is what led me to introduce interaction between the spheres.
Milestones and Challenges
Milestones
1. Visual Breakdown
I started by analyzing the installation and identifying the key elements I wanted to recreate: glowing spheres, soft pulsing, and spatial interaction.
2. Orb System
I created a class for the spheres so each one could store its own position, size, and energy. This made it easier to control them individually.
3. Glow Effect
I experimented with multiple layered circles to simulate light. This was important because a single circle did not create the same visual depth.
4. Interaction
I added mouse proximity detection so the spheres respond when the viewer moves near them.
5. Ripple Behavior
I introduced energy propagation between nearby spheres, which created the chain reaction effect.
6. Creative Twist
Finally, I added the dark sun transformation, where some spheres change behavior after repeated activation.
Challenges
One of the main challenges was making the spheres feel like they emit light rather than just being colored shapes. This required layering multiple transparent shapes and adjusting opacity carefully.
Another challenge was controlling the ripple effect. If the energy spread too quickly, everything would activate at once and lose the sense of flow. If it was too slow, the interaction felt unresponsive. Finding the right balance took multiple iterations.
The biggest conceptual challenge was adding a twist without losing the original inspiration. I wanted the system to evolve, but still clearly relate to the original installation.
Reflection and Future Improvements
This project helped me understand how much of an artwork can be recreated through behavior rather than exact visuals. The installation is not defined by specific shapes, but by how those shapes respond and interact. Translating that into code required focusing on motion, timing, and relationships between elements.
The addition of dark suns made the system feel less predictable and more alive. Instead of always returning to a stable glowing state, the system changes over time based on interaction. This made the piece feel more dynamic and slightly unstable.
For future improvements, I would like to explore adding depth, possibly by introducing a 3D space or parallax movement. I would also experiment with more complex interaction, such as tracking multiple users or using sound input to influence the system.