Satellites: Algorithmic Light Sculptures




Introduction: Satellites: Algorithmic Light Sculptures


Satellites was designed as physically executable procedure for making light sculptures that manifests differently every time it is made.

The final result is system for making intended to empower the end user as an active and necessary participant in the design process rather than a passive consumer.

Each satellite contains two different kinds of algorithmically-generated 3D-printed joints, each made by spinning hollow cylinders around a point. The cylinders are rotated according to lunar positioning data at the time of 3D printing. The mobiles are then manually-assembled.

Here are the instructions for making your own personal Satellite.

Step 1: Materials

3D Modeling Program (I used Rhino)

3D printing resource (I used my Makerbot Replicator 2x)

Adobe Illustrator (or other vector editing software)



Scotch Tape

6 Sided Dice

.03” Clear Acrylic Sheets

6/32, ¼” Button Cap Screws

Two-Way Mirror Window Tinting Film

Spray Bottle

Window Tinting Squeegee

New Utility Blade or Exacto knife

Straight Edge


¼” Drill Bit

Hex Wrench

Lamp Wire & Socket


½ Chrome Light Bulb

3, 48” x ⅜” Wooden Dowels

Step 2: Prepare Your Joint Files

You can use my enclosed Rhino file to skip to the next step or prepare the cylinders on your own. (note: If you’re not using Rhino, some of the commands might have different names)

If you’re modeling your own cylinders, draw a line .65” long starting at the origin. Use the “pipe” function to extrude a pipe around your line with a .175” radius and another pipe around the same line with a .1” radius. Next, draw a sphere around one of the line’s endpoints that also has a .175” radius. Use the “BooleanUnion” function to merge the sphere and the larger pipe. Then use the “BooleanDifference” function to subtract the smaller pipe from sphere + larger pipe. Copy and past the tube so you have 3 copies on different layers.

Step 3: Rotate Cylinders for Joint #1

To get your the lunar positioning data you need for the next step head to:

Take a screenshot of the current data do it doesn’t change while you’re doing your calculations.

Select the first cylinder and use the rotate function to rotate it around the center of the sphere (aka the endpoint of your line). We will be rotating all the cylinders around this same point. Rotate the cylinder on the xy-plane according to the moon’s current “Right Ascension.” Ascension is measured in hours, minutes, and seconds so you’ll need to convert that into an angle like on a clock face using this equation: (h/12) + ([1/12] * [min/60]) + ([1/12] * [1/60] * [sec/60]) = X deg

Select the same cylinder and rotate it on the xz-plane according to the moon’s current “Declination.”

Select the second cylinder and rotate it on the xy-plane according to the moon’s current “Moon Sun Elongation.”

Select the third cylinder and rotate it on the xy-plane according to the moon’s current “Ecliptic Latitude,” and again on the xz-plane according to its “Ecliptic Longitude.”

Use the “BooleanUnion” function to join the three cylinders you just rotated and export the result to a .stl file.

Step 4: Rotate Cylinders for Joint #2

This next joint is the “control” joint and is made according to earth orbit data that stays relatively consistent over time. You can download my .stl file for printing or make your own.

Make two more cylinders just like the first except make them using a .75” line instead of a Take one of the cylinders and rotate it on the xz-plane according the the earth’s “Inclination to the Ecliptic” (this is a constant 5.145 deg.). Then rotate it on the xz-plane according to the earth’s maximum inclination to the equator (28.58 deg). Use the “BooleanUnion” function again to merge the two cylinders and delete the weird little bit that gets left in the middle. Export joint #2 as a .stl file.

Step 5: Printing

Roll your die to see how many of joint #1 to print.

Roll your die again to determine how many of joint #2 to print.

Print 1 more of the mirror attachment joint than joint #1 using the .stl I’ve provided.

Print 1 copy of the light bulb socket using the .stl I’ve provided.

I used my Makerbot but you can also use a service like Shapeways or Ponoko. Just make sure you print in plastic because some of the pieces need to flex.

Step 6: Mirroring the Acrylic

To make the mirrors you’ll need to laminate the mirror film to your acrylic sheets. It’s easiest and cleanest way is to laminate the whole sheet at once, and cut the shapes out after the adhesive is dried.

Follow the video instructions here but ignore the parts about pushing the film into the corners of the windows since you’ll be using a loose sheet of acrylic:

Make sure you allow at least 24 hours for the adhesive to set before cutting, but the longer the better (the video says it can take up to 30 days but I cut mine the day after)

Step 7: Cutting the Mirror

Take one of these 6 .ai files and enlarge 6 of the largest shapes from it.

Make each shape so that it can fit on an 8.5” x 11” piece of paper, but you can be flexible. If a shape ends up a little bigger than one piece of paper you can always tape the sheets together. Next, use the command Object>Path>Average>Both to find the center of each shape and mark it with a ¼” circle. This will collapse your shape so you’ll need to make a duplicate the layer before you find the center so you dont lose your shapes. Number the shapes 1 through 6.

Now you’ll need to roll the die again to pick which shapes you’ll actually be using. You’ll need to roll the die 1 more time than the number of three pronged joints you ended up with.

Ex: If you have 5 of Joint 1 then you’ll need to roll the die 6 times to pick 6 mirrors For each number you roll, pick that number mirror shape for your set. You might end up with something like this (6, 6, 5, 3, 3, 1)

Print out the shapes and place them under the mirror. Try to place them in a way where you waste the least amount of material and tape them down so they dont move around. When you cut the shapes out, use straight edge and make a light score with your knife first. Do that a few times to make a nice groove and DONT TRY TO CUT ALL THE WAY THROUGH AT ONCE. Your blade will be very likely to slip and ruin your mirror’s edge. Once you have all the shapes cut out, you’ll have to drill a ¼” hole in each mirror at the point that you marked earlier. Put a scrap piece of wood or something under your mirror so you don’t drill through the table.

Step 8: Assembling the Mirrors and Joints

Once you’re done cutting and drilling your mirrors you’ll need to attach them to the mirror attachment joints you made. The cylinder and the U-shaped pieces will have to be assembled. The cylinder is slightly wider than the U, but the plastic should flex a little and snap around the dimples in the cylinder to lock into place. It should be a tight fit, but be careful not to crack the plastic in the U. If it seems like it’s not flexing enough, try shaving some of the little buttons on the inside of the U with your knife.

After you have your joints assembled, use the 6-32, ¼” button cap screws to attach each of the mirrors to the joints. Use the hex wrench to tighten the screws.

Step 9: Wire the Lamp

Next you’ll need to wire your lamp socket. I took apart a hanging lamp cord from ikea and pulled out the cord and the plastic part holding the copper contacts.

Unscrew the wires from the contacts. Cut the cord from the old socket and strip your lamp wire (if you dont have wire strippers you can use your teeth) so you have a open + and ground end with some of the sheathing left in between so you don’t get a short. Take note that the ground wire (black) is on the long contact.

Pull the wires through the back end of the socket and then attach the contacts on the other side. Fit the contacts into the grooves in the back end of the new socket. Once the contacts are in place, attach the top of the new socket. It should slip fit together.

Screw in the bulb and plug it into an outlet to make sure everything is working.


Get your 3, 48” wooden dowels. You’ll need to use all of the dowel. No more. No Less.

You’ll need to attach all the joints and mirrors to the bulb making sure to use up all the joint holes. I made sure the number of mirrors and joints you get will always be able to fill all the joint holes and fit together. It’s up to you how you want to assemble the parts, but you’ll need to leave 1 open joint hole and one piece of dowel to attach your assembly to one of the holes in the bulb socket at the end. You also need to BE CAREFUL NOT TO CUT THE RODS TOO MANY TIMES. If you make too many cuts, you’ll end up with some rods and no holes to attach them to, so slow down toward the end.

Don't worry about making any specific shape. Every Satellite is different and it's nearly impossible to make the same one twice and that's the beauty of it.

I recommend attaching all the two and three pronged joints together first, leaving the appropriate open spaces for mirrors. Attach the assembly to the hanging bulb socket, and then put the mirrors on at the end. If any of the joints feel a little loose, wrap a piece of clear scotch tape around the dowel to make a tighter fit.

When everything is assembled and you’ve made sure you’ve connected all the holes, you can position your mirrors to diffuse the light or reflect it in any way to like. When you light it up, you should put it on a dimmer so the 3D printed plastic doesn't get to hot and deform.

If you make one, send me a picture! I wanna see how different other people's Satellites come out.

Be the First to Share


    • For the Home Contest

      For the Home Contest
    • Game Design: Student Design Challenge

      Game Design: Student Design Challenge
    • Make It Bridge

      Make It Bridge