This is the update of my project to create stereographic lampshade using the Blender API.

Above is the 3D printed lampshade projecting the snowflake pattern I made.

It measures approximately 4 inches across and 1.7 inches high.

I’ve updated my code to reflect what I’ve learned from this project.

Previously, I generated dome-like lampshades, based on the original formula for height:

$z_{new} = a \cos \alpha$

where:

• $z_{new}$ is the height of the vertex on the lampshade, computed from the point on the pattern,
• $a$ is the radius of the spherical lampshade, and
• $\alpha$ is twice the angle from the light source (top of the sphere).

However, to more accurately reflect the interplay of the lampshade and the light source, I’ve changed the formula for height:

$z_{new} = h - a \cos \alpha$

where $h$ is the distance from the plane of the projection of the pattern to the center of the spherical lampshade.

This new formula produces bowl-like lampshades. This makes sense, since the lampshade sits between the projection of the pattern and the light source, curving towards the light.

Decreasing the distance between the center of the sphere and the plane of projection results in a more spherical lampshade. This distance could even be negative.

Conversely, the greater the distance to the center of the lampshade, the flatter the lampshade will be.