Double Slit Lampshade

by marcelrr in Workshop > 3D Design

56 Views, 0 Favorites, 0 Comments

Double Slit Lampshade

Screenshot 2024-04-22 at 10.59.59 PM.png
Screenshot 2024-04-22 at 11.00.13 PM.png

A 3d printed lampshade and light experiment.

Supplies

Screenshot 2024-04-22 at 11.04.23 PM.png

Software: Rhino, Grasshopper, Python, UltiMaker Cura. Hardware: UltiMaker 3D Printer, White PLA 0.4.

Research

Screenshot 2024-04-22 at 11.00.55 PM.png
Screenshot 2024-04-22 at 11.00.38 PM.png

I wanted to incorporate manipulation of light rays into the design of the lampshade. I found and made reference to in my design to an experiment performed by Thomas young in 1801 to prove the wave behavior of visible light. A diffraction patterns occurs when two slits of the same width are spaced apart with a small width between them.

Python: Circles

circles.png
circles_code.png

The python code first generates a variable number of circles. They decrease in size from the bottom to the top according to a sigmoid curve of variable slope and midpoint.

Python: Loft

Screenshot 2024-04-22 at 11.13.19 PM.png
loft.png

A loft function was used to create a Brep surface through the curves.

Python: Points & Planes

points_planes.png
points_planes_code.png

Points were distributed across the surface of the lampshade. For each one a normal was computed from the point in relation to the surface. The normal was used to create a plane on which the slits could be oriented according to the surface of the lampshade.

Python: Extrusion

Screenshot 2024-04-22 at 11.18.36 PM.png
Screenshot 2024-04-22 at 11.17.57 PM.png

The double slits were instanced across and extruded through the surface of the lampshade according to the corresponding point and plane.

Rhino: Boolean Difference

Screenshot 2024-04-22 at 10.59.59 PM.png

The boolean difference tool was used to subtract the extruded slits from the lampshades surface. This part of the process proved to be very difficult in the Python to Grasshopper to Rhino workflow. I tried several different methods, including by converting the breps to meshes and using Mesh Boolean Difference, using GHPython's Geometry library, and the Grasshopper Solid Difference node. I had to settle for hollow slits, which left a ledge which I tried to minimize as much as possible.

Print

The lampshade was printed with UltiMaker Cura, using an UltiMaker UM5 3d printer. The special settings for both Smooth & Spiralized Outer Contour were checked. I also selected a "Normal" 0.15 resolution.