Print Your Own Moon




About: Make it yourself if you cannot buy one!

This instructables show how to made a fully customizable 3D moon model from scratch.


This is the 1st generation of Moon Lamp, please also find next 2 generations here:

2nd generation:

3rd generation:

Step 1: Why Self Make It?

There are various 3D Moon you can found on the web. You can directly buy some on the web or you can download and 3D print the others.

The finished products can break into 2 categories:

I would like to make a Moon that have both details at the same time.

And also self making can fully customize the parameters, such as the size, thickness, resolution, rotation, plane cut location, make a hole to put in light bulb...etc.

Step 2: Existing Cat1: Good Moon Surface Details

But no glowing details when put a light inside.

Step 3: Existing Cat2: Good Glowing Details

But not a Moon surface when the light turned off.

P.S. if you do not have a 3D printer, you can buy this type of Moon Lamp on the web.

Step 4: Software Preparation

Below are the list of software I am using, once you know the technique you can use your familiar tools to do the same thing.

3D Modeling tools

Download my modified version of Banate CAD from GitHub:

If your are not familiar with GitHub, simply click the green button at the right middle and select download ZIP.

Banate CAD is written in Lua, you also require Lua for Windows to run Lua scripts in Windows.

STL edit tools


Step 5: Material Preparation


The above picture capture from one of the PLA filament supplier. Same 3D Model print with different brand White PLA may have different effect. The supplier claim B is the best, but its filament simply stuck my extrude :(

Light Source

There are various method light up the moon model, portable or wired, different size printout also affect select which light source. Since too many variation and out of the 3D print topic, I will not mention it more here. Only one suggestion, warm white light have better effect ;>

Matte Spray Paint

And also most PLA printout have some sort of reflection, it is better to make a matte surface finishing. It is easy to make with a matte spray paint (sometime it call flat spray paint).

Step 6: Moon Images

There are 2 Moon images required for 3D modeling. You can find the required image at BanteCAD/Examples folder. I have shrunk the image to 720x360, it is good enough for 3D modeling. If you insists perfect quality, you may find much larger image on the web.

Moon Bump Map

There are a special image map for modeling 3D surface, usually, it is called bump map. The grey level in each pixel represent the height of the corresponding point at the sphere. You can model a very good detailed surface once you have it's bump map. However, when you direct see the bump map image, it is not very like a moon in the sky.

Moon Visual Map

When you see the Moon in the sky, the details is not only based on it's height on each point. It also based on the material color. Yet we can direct 3D print different colors, fortunately Moon nearly look like in gray scale. We can use the shell thickness to adjust how much light goes out from the model, so that we can project a gray scale image on the 3D model. First of all, we need a Moon visual map to adjust the Model thickness.

Post Processing

  • Moon Surface Map: it simply a bump map. But we need reserve some space for the internal thickness, so I use Level function to shift the value to right hand side (you will see the bump map image brighter).
  • Moon Interior Map: it is the interior shape of the 3D model. This determined the thickness at each point, i.e. the light gray scale value. This map is come from visual map in addition with bump map variation value. (Or in another calculation method, it is bump map subtract inverted visual map.)

Adjustable parameters

  • If you narrow the bump map level, the "hill" on the surface will be shorter, it can help reduce hanging but trade off the surface details.
  • If you shift the visual map level more to the left hand side, the shell will be thicker and vice versa. But remember don't shift to the right too much. The shell should at least 0.4 mm thick (if you are using 0.4 mm Extruder Nozzle Head), or you will make a hole on the shell.
  • The light gray scale range depends on visual map level range.

Step 7: Interior Shape

The interior shape represent the shell thickness, i.e. the grey scale level.

Step 8: Moon Shell Too Thin Introduce Hole

If the shell thickness thinner than your printer extrude size, it simply not print anything there and introduce some unexpected holes.

Step 9: 3D Modeling - BanateCAD

BanateCAD can modeling a 3D shape base on a bump map. I have prepared a script in examples folder. The script read the Moon surface and interior maps and modeling both shape.

Here are the steps for 3D Modeling with BanateCAD:

  1. Open BanateCAD.wlua
  2. In File menu, select Open
  3. Open moonlamp.lua in Examples folder
  4. Optional: edit parameters
  5. In Compile menu, select Compile and Render
  6. Wait a while until show up 3D model
  7. In File menu, select Export -> Export STL
  8. Input STL filename and then save

Adjustable parameters

Sphere output diameter (inches), bump and interior map build on it:

local outputSize = 3 -- inches

Surface height factor:

local heightFactor = 0.3 -- bump map height factor

Resolution (2 occurs), should not over the resolution of the PNG image:

USteps = 720,
WSteps = 360,

Step 10: Building Shell - Meshmixer

Base on BanateCAD built shapes, we can use surface shape subtract interior shape to build the shell.

Here are the steps for building the shell with Meshmixer:

  1. Open the exported STL with Meshmixer
  2. Wait a while until finish loading
  3. Select both model in Object Browser
  4. Select Edit on the left toolbar and then select Boolean Difference
  5. Wait a while until finish calculation
  6. Select accept
  7. Wait a while until finish calculation
  8. Remain 1 model in Object Browser, this is the shell of the Moon
  9. Save the file for backup purpose

Step 11: Adjust & Output - Meshmixer

Now you can make any adjustment before 3D printing.

Here are some of my suggest:

  • If you would like to put the Moon on your desk, I suggest rotate Z axis -45 to -60 degree so that the familiar Moon face can facing you seamlessly
  • If you would like to hang the Moon on the ceiling, I suggest rotate Z axis 120 to 135 degree so that the familiar Moon face can facing you seamlessly
  • If you would like install a light inside, remember make a hole for the wire (if your are not familiar with 3D software like me, just use a drill after print :P)
  • Plane cut the moon at around 90% place, so that you can hide the seams easily but still easily to print without hanging

After the adjustment, export a STL file for printing.

Step 12: 3D Printing

Open with your 3D printer slicer, double check the shell have no holes and then print it.

If you want to print a perfect Moon, you can skip the previous plane cut step and enable support option. But in my opinion, it is a painful task to remove the support.

If you get stuck at previous step and failed to output the STL file you may find my one at thingiverse:

Step 13: Assembly

Stick upper part, light component and lower part together.

Step 14: Matte Surface Finishing

Most PLA printout have some sort of reflection, it is easy to reduce the reflection by a matte spray paint.

Step 15: Techniques & Parameters

I have tried many downloadable model in this 2 years;

And also I have tried many modelling techniques and parameters in this few months this instuctables shared the simplest method I can found.

If you have better techniques or parameters, welcome to share with us in comment area ;>

P.S. I am trying to print a bigger moon lamp with 110 mm diameter. (It is the biggest size I can print with Robo C2) Here is the parameters I would like to try: (It require tens of hours to print once :<)

local r = 52

local h = 3

Step 16: Happy Gifting!

It's time to show off what you have done or give one to your friends!


This is the 1st generation of Moon Lamp, please also find next 2 generations here:

2nd generation:

3rd generation:

Step 17: Optional: Fill Shell Holes

If you want to keep the shell not too thick at the same time don't want thin shell introduce unexpected hole, this is a workaround:

  1. Open STL file generated from BanateCAD in Meshmixer
  2. remove the interior model
  3. Select Edit
  4. Select Hollow
  5. Fill 0.5 mm thickness (for 0.4 mm extrude)
  6. Update Hollow
  7. Accept, now you have a Moon surface with 0.5 mm thick shell
  8. Rotate and plane cut as same as the Moon shell settings
  9. Export STL
  10. Open the Moon shell STL in Microsoft 3d Builder
  11. Repair object if any
  12. Insert the Moon surface 0.5 mm thick shell STL
  13. Repair object if any
  14. Select all
  15. Merge, now you have a Moon shell with at least 0.5 mm thick shell
  16. Export STL

Step 18: Optional Readings: Original BanteCAD

William A Adams's BanteCAD does a great job on 3D modeling, it only have a little bug on modeling circular object. I just modified a few lines to fix it. Hope it does not introduce further bugs. :P

If you are interesting in BanteCAD, one of its old release have more 3D modeling examples, enjoy!

Epilog Challenge 9

Participated in the
Epilog Challenge 9



    • Sensors Contest

      Sensors Contest
    • Paint Challenge

      Paint Challenge
    • Planter Challenge

      Planter Challenge

    34 Discussions


    6 months ago

    Good, you may also want to print the Progressive Detail Moon Lamp next.


    6 months ago on Step 18

    Oh, I love this model! Very nice!. If you ever make any to sell, let me know


    6 months ago

    How can I take a picture to the moon?
    Thanks in advance


    Reply 6 months ago

    0.2 mm for 5 inches; 0.1 mm for below 5 inches.


    6 months ago

    Very impressive. Makes me want to buy a 3d printer now.


    1 year ago

    So...either print it with support OR cut the bottom 10%, did I get that alright?

    4 replies

    Reply 1 year ago

    Hi Nickduino, after subsequent trial and error, both planner cut support are essential for better result.


    Reply 1 year ago

    sorry, it should be plane cut and support.


    1 year ago on Introduction

    Very good work, well documented, liked it very much, looking forward to print one. Thanks for sharing.


    1 year ago

    what light source did you use? Some small led light like a tealight or something?

    3 replies

    Reply 1 year ago

    I am still testing various light source from 3 button cells LED to 220v 4W LED bulb. I may post another instructables after all the testing...


    Reply 1 year ago

    The real trick is how to put leds inside without making a shadow on one side.