Lamp design based on the potential reflection of light from a sphere


Categories: Tutorials

Tagged with: | | | | |

Lucas Van Melderen

B211-500CAD3+555CAD3 / 2021-22

Design concept :


The idea is to design a spherical lamp whose scale and arrangement of openings would refer to the reflection of light on a potential sphere. Its illumination will therefore be relative to the shading of a potential sphere. The geometry of the openings will be cyclical to maintain the spherical effect of the project. The manufacture of the result will also be considered.



Required plugins for the script:


Step 1 : Perforations related to an attractor point on a plane surface


In order to better understand the rest of the process, we start by applying the concept of perforation to a flat surface.

This manipulation can be approached in two ways : either by working with a surface or with a mesh. It is important to develop these two ways because most of the options that we will have in the next steps can use these two options. However, the process remains the same in both cases:

Step 1




Step 2 : Perforations related to an attractor vector on a sphere surface


Now that the foundations are laid, we can apply the process to a spherical surface. In order to keep the concept based on light reflection as realistic as possible, we will also implement an attraction vector rather than a simple point of attraction.

The process remains the same as before. However, using a vector changes the rule of attraction a bit. The domain must be varied according to the difference in angles between the distributed points and the vector.

Step 2




Step 3 : The different types of sphere and their consequences on this project


As can be seen in the previous step, the result is not very satisfactory because the distribution of points on the spherical surface is not uniform. We therefore see agglomerations of points at the top of the spherical surface. To reach the objective, we will have to move towards another way of creating a sphere. 

Here are 3 common options:


The Geodesic Dome (of Parakeet plugin) is without doubt the one that best meets the criteria of this project. So I will take his script as an example for this step (you can find the other scripts in the gh. file).

When working with the geodesic dome, it is necessary to eliminate the duplicate points that this option can create. An efficient way to do this is to use “CullPt”.As we are approaching the end, we can add the perforation procedure to this step in order to see more clearly. This procedure can be quite heavy to perform in some cases. I have therefore opted for a more fractional procedure, but one that allows for a reduction in calculation time. This consists in asking to isolate the naked edges as well as their length. Sort them according to that and keep only the biggest ones by reversing the list item.

Step 3



Step 4 : Manufacturing – unrolling a sphere


Dealing with a sphere always creates production complexity.We can isolate 2 ways of unrolling a spherical surface in order to produce it.

The idea here is quite rudimentary, we just cut it with vertical planes as we would cut a pie. Then you just have to unroll the slices (Rhino’s “join” and “smash” command being more efficient here than other Grasshopper options). The negative point of this option is that it is not 100% accurate. There is a small percentage of deformation added to the equation so it is interesting to use it for soft and stretchy materials.

Step 4 - A



For this, the Ivy plugin is by far the best option. It first allows you to subdivide your geodesic dome into a graph that takes your current corners as folding corners to optimise the final cut. It then integrates the creation of the flaps to facilitate the assembly of the project. Finally, it proposes to distribute the flattened pieces so that there is no overlap between them.

This seems to be the most optimal option, but it only works on flat surfaces without curves. Indeed, curves of the perforations complicate the mesh and make the optimisation proposed by Ivy impossible. So I went for option A for my project.

Step 4 - B




Final result :


Here is the final script and and render result. For the sake of realism, I added (for the render) a second sphere inside the first one to avoid the direct glare that the lamp could create without this layer.

Final result




Variations : 



Grasshopper file :

Lamp design based on the potential reflection of light

 Rhino file : 

Lamp design based on the potential reflection of light