Pixar's Luxo Jr. Lamp (1986 Original Version)

Pixar Luxo Jr.


Creative Commons Attribution Share Alike

Commercial use is allowed, you must attribute the creator, you may remix this work and the remixed work should be made available under this license.

Learn more or download attribution tags


My Version of Pixar's original 1986 short, "Luxo Jr."


One of the first things I tried printing when I received my Ultimaker 2 four years ago was the Luxo Jr. lamp from Pixar's 1986 animated short, "Luxo Jr.". I found one or two models back then and printed the base from one. The model didn't have a hole to thread a cable through and some of the brackets and braces didn't seem to match what was in the original short, so I never finished printing all of the parts.

Fast forward to today and I noticed the Pixar logo, which is the Luxo Jr. lamp, connects to the base differently than the original. In the logo, the lowest, back screw hinge was moved to be centered on the shaft going into the base. Originally, the middle of the lower brackets were centered over the shaft going into the base. I can understand why they moved it; without a screw, it looks like it's connected magically and not physically. But that tiny little change made all the difference in how Luxo looked to me. So I decided to model my own Luxo Jr. after the original from 1986 in Solidworks. If I have the time, I'll revisit this model and create a base shaft that can snap into the base and connect to the lower back screw hinge, like the current Pixar logo.

The cable hole in the base is large enough to fit a USB cable/wire nicely & the slotted hole in the back of the head/shade fits standard lamp twist switches.

I hope you have as much fun printing & assembling Luxo Jr. as I had creating it!


I had purchased the Luxo Jr. short video via iTunes many years ago. Once I decided on the size of the base (120mm dia) I went through the video frame by frame, looking for head on or 90 degree shots of the model. Once I had a good clear view of a part (very difficult as it's a white-ish model with white connectors and gray-ish shadows) I zoomed in so the base (or any other previously traced part) was the size of my printed base. I then cranked up the brightness of my MacBook Pro, stuck a post-it onto the screen and traced it with pencil. I'd then measure the dimensions of the part with digital calipers and model it in Solidworks. Most parts went through 2 or 3 versions as I'd print, connect and compare to the video, posing Luxo Jr. in various poses. There are a few teeny tiny discrepancies in a few places, but I'm ok with them for now. I'm very happy with the results!


The middle of the lower BaseBracketLeft.stl & BaseBracketRight.stl snap onto the square, "hammer head" top of BaseShaftWClip.stl, which then inserts into the base and snaps into place. That base shaft allows the body to rotate L/R. The snap ring prevents the body from coming out of the base too easily, like when moving it around by holding anything but the base. The grommet hole (black in some images after taking a sharpie to it) is 4.7mm wide and passes through the base up through the center and also through the center of the base shaft. After searching for a 2-conductor white cable that is somewhere rubbery, I stumbled upon an Apple USB cable, which looks exactly like the cable in the video. I am waiting on some hardware to put a working low voltage light bulb in the shade. I can't push the white cable all the way through the base. I'll have to strip the white jacket back maybe 10" or so and thread the individual wires (only need two of them) through the base and up through the shaft. I'll then slide the stripped jacked back over those exposed wires so all you see is the white jacket. I'll then thread the jacketed wires up the inside back of Luxo Jr. and through the hole in the shade swivel connector, then up through the whole in the shade, just under the switch hole. TWO-COLOR BASE: OH! With an earlier version of the base.stl file, I pulled it into Netfabb and created two files that sit on top of one another for printing on a two-color printer (like my Ultimaker 3 Extended). One stl is the main base and the other is the cable grommet. It's challenging to color the grommet with a sharpie. Too easy to slip and mark up the main base. I'll upload a better two-color stl pair soon.


When I tried setting up support in Cura, I couldn't figure out how to limit the support to only render under the connector, so I modeled a support block into the file. You don't need to muck about with support when printing the shade. It should print on it's backside. The support block has a .2mm gap between it and the shade connector to help in removing after printing. The connector sticking out of the side of the shade is similar to the base center hole in that it has a built in snap ring resevoir. It slides onto and snaps together with the ShadeNubConnector.stl which screws into the top of ShadeBracket.stl. If you look closely at my images, you'll notice a tiny gap between the shade connector and the nub. I've shortened the nub's internal shaft to be a little shorter so the two should be mated together much tighter. This nub connection allows the shade to pivot up/down/left/right.


  • BackboneUpperFront.stl has a vertical orientation. The distance between the middle hole and the end holes are different. The end hole that is closer to the middle hole is on the bottom.
  • The width of the middle bracket area looks different at different angles in the video. Again, the gray-ish shadows and similarly colored parts make accurate measurement difficult. I chose to make the area narrower than the top and bottom brackets (as it looks in the head on shot of Luxo Jr., even though the middle section is hidden behind the shade). I made a L & R (BigBraceLeft.stl & BigBraceRight.stl) so I could add a tiny chamfer to the "bottom" for printing, but realize I could have gotten away with just one and add a few Washer2mm.stl's to the back middle brackets.
  • I used #4-40 screws of different length. I love how the philips screw pan head looks but the nuts are a bit "off" as the video looks like Luxo Jr. is revited together with nice rounded heads on both sides. I tried using rounded cap nuts, but they stuck out way too much and made the body look lopsided. I plan on powder coating the screw heads and nuts in the future. Will update pics here if I do.
  • Lengths of screws:
    (3) 2" - 1 for the bottom of the BigBracketLeft.stl & BigBracketRight.stl (washers go, L->R: Washer9mm.stl, Washer11mm.stl, Washer9mm.stl)
    - 1 for the middle of BackboneUpperFront.stl that holds the front of the top spring (use (2) Washer20mm.stl's)
    - 1 for the bottom of BackboneUpperBack.stl that holds the back of the top spring (use (2) Washer18mm.stl's)
    (4) 3/4" - 1 for the back of the BaseBracketLeft.stl & BaseBracketRight.stl (use (2) Washer2mm.stl's)
    - 3 for the ShadeBracket.stl holes (use (4) Washer2mm.stl's for the connections to BackboneUpperBack.stl & BackboneUpperFront.stl. The shade nub doesn't need washers)
    (2) 3/8" - Both connect the fronts of the lower springs to the front top holes of BaseBracketLeft.stl & BaseBracketRight.stl (use (2) Washer4mm.stl's)
    (1) 1/2" - For where the top connection of BackboneLower.stl & the back of MidBracket.stl connect (no washers)
    (1) 1-1/8" - For the top of where both BigBracketLeft.stl & BigBracketRight.stl connect to the top front of the MidBracket.stl's (no washers)

  • QUANTITY OF SOME STL FILES TO BE PRINTED (all others print only once):
    (2) MidBracket.stl
    (2) ShadeBracket.stl
    (2) Washer20mm.stl
    (2) Washer18mm.stl
    (2) Washer9mm.stl
    (2) Washer4mm.stl
    (6) Washer2mm.stl

  • Screws can be found here on Amazon (drop down menu for lengths):

  • 4-40 nuts:


Found a small plastic container with multiple spring types & sizes at Home Depot. I don't know which four I used, I'm sure you can find similar sized ones as well. I wish they were silver instead of black.


I have ordered a few rotating switches and bulb holders. Will update the list here when I decide which hardware works.


  • Ultimaker 3 Extended
  • Colorfabb's Telegrey 4 RAL 7047 PLA (which looks exactly like Faberdashery's Architect's Stone)
  • Hotbed 1st layer: 60c, all other layers: 50c
  • Hotend 1st layer: 230c, all other layers: 224c (I kept getting underextrusion when I printed any cooler)
  • Elmer's glue stick on glass
  • Speed: most lines 24mm/ps, bit faster for infill. 1st layer: 13mm/ps
  • 20% infill
  • Nozzle line width set to .385mm. This causes the slicer to scrunch lines a little bit closer together. Since the nozzle is actually .4mm, the lines are nice and snug with good side-by-side line adhesion and no gaps.
  • .1mm layers (including 1st layer)
  • .3mm bottoms, .8mm tops
  • 1.2mm walls (3 lines per wall) except for the shade which is .77mm thickness in the model, resulting in 2 lines per wall.
  • Most tall parts (tall washers) should be printed with at least 2 on the print bed so the hotend ping pongs between them, allowing each layer to properly cool before the next layer is printed. Makes a huge difference in final quality as no single part gets too hot.

I plan on creating an exploded rendering in Solidworks with each part labeled. Hopefully, you'll be able to figure out where everything goes until then.

Materials and methods

- All .stl files are designed to be printed without support (no area thinner than .4mm, no angle too steep)
- All .stl files are oriented as they should be printed (change if you like)
- I included a small support structure for the shade (head) in the .stl file. It sits just below the 11mm nub that sticks out of the side. If you tweak your retraction settings, you shouldn't get any stringing between any of the 20 slots, including when the tops of those slots are printed.
- Because there are so many parts, I wasn't able to scroll down in the BOM section to add some parts a 2nd time. TODO - UPDATE BOM PART COUNTS



Issues are used to track todos, bugs or requests. To get started, you could create an issue.


Mini que instagram large blueRandy Walker published this design ago