Lithophane

TL;DR: For Valentines Day, I made a lithophane—a 3D object which reveals an image when light is shined through it. The operating principle is basic—different “pixels” are created since thicker areas block more light.

Lithophanes are really cool. Essentially, they’re 3D photos that physically encode pixels of an image by varying the amount of material. Thinner sections of the lithophane allow more light to pass through. I discovered a simple to use, yet highly customizable online lithophane generator at http://3dp.rocks/lithophane/. Upon making this discovery, my mind immediately went to the perler project I worked on last year… I saw I could reuse most of the components (back plate, switch, LED backlight), only making a new front plate. Since I designed the perler project housing in Onshape using top-down design principles, all the modifications only took a few minutes to complete and export for printing.

It took me three tries to finetune my print settings. In the first print, I inadvertently made the image inverted:

My first attempt resulted in a scary looking inverted image… oops!

For the second print, I ended with a lot of blobs on our faces. Clearly this was because the nozzle dwelled a bit too long on the top surfaces since I printed this part flat on the bed:

My second attempt turned out nicer looking with the proper color inversion… but the blobs all over the place were less than ideal.

To correct for this, I reoriented the part on the print bed. I was worried about the part falling over (hence my original print orientation), so I added a really large brim to keep it rooted:

The 12mm brim I added, along with copious glue, helped keep the print from falling over

The third time really did turn out to be the charm, and I was very pleased with how it turned out:

Success! Third time’s the charm 🙂

There’s a ton of ways in which the lithophane idea can be expanded and improved upon. First, I need to redesign the housing unit to incorporate the switch and battery. Others on the internet have wrapped lithophanes around objects like cylinders to make custom lamps, trophies, and other neat projects. The possibilities are endless… as you can see in the summary photo below, you can use pretty much any light source and have the images turn out well:

It was very easy to progress pretty quickly since the parts were fast to print.

I’m excited to play around more with this type of stuff!

Star Wars Joycon Holders

TL;DR: I made custom Nintendo Switch Joycon Controller holders in the shape of Star Wars Y-Wing and A-Wings.

I’ve been traveling quite a bit this year, and my Switch has been a great companion surprisingly easy to bring around. However, the biggest gripe I and everybody else has with the device is that it is no fun to use the controllers in single joy-con mode. I found and printed some neat grips that make it a bit easier to use them in this mode, but I’ll cover them in a future post.

In this project, I made some ridiculously tardy birthday presents for two of my Switch-owning friends: Y-Wing and A-Wing Joycon holders. Honestly they aren’t that practical, but they technically *are* functional, and I think they look pretty cool. I started by downloading STL files from thingiverse of various Star Wars ships and a simple dual-joycon holder.

In Fusion 360, I chopped off the joycon rails and saved the bodies as separate components so I can reuse them in multiple projects. Next, I started processing the Y-Wing by simplifying a lot of unnecessary mesh details, cutting off the engines, then making the mesh into a solid body. I inserted the joycon rails where the engines used to be and played around with the scaling of the Y-Wing body to fit well. From there, it was a simple merge bodies, slice, and print… or so I thought.

Unfortunately, I messed up some of my slicing settings in my first attempt, and part of the print fell over. Even though part of the print had failed, I was still able to do a geometry check, and I was pleased with how well the joycon and strap both fit into this model.

My slicing error was in a boneheaded misconfiguration of adaptive layer settings. Using adaptive layers in slicing software allows for faster prints since the printer is programmed to use larger z-steps if it is safe to preserve model details. The base layer height for this was 0.12mm, and by entering the deviation to 0.2mm, for some reason I thought I was setting the absolute height limit for the print to 0.2mm, but this was not the case, and my printer was trying to print with 0.32mm layers, which it just was not able to do. On my subsequent attempts, I dialed the deviation back and was able to get a really nice print.

Y-Wing gallery here:

The A-Wing model took a bit more pre-print processing. First, I noticed a small hole in the surface, so I used meshmixer to mirror the better half of the model. Second, the model I had was hollow (there was an internal surface), which would have caused issues later on in combining with joycon holders and printing. The hollow body was simple to rectify—I created a block larger than the A-Wing then used combine to cut the A-Wing from the block. This left several bodies, including one that was the ship model cavity, which was added back into the main ship model. Just as for the Y-Wing model, I imported the Joycon rails, scaled the Awing body, and moved everything in place before combining the bodies.

I’ll admit the joycons on the A-Wing are less than ideal, but I still think it looks cool. 😛

Mario Kart Princess Peach Print

TL;DR: I printed and painted Peach from Mario Kart for a friend’s birthday. The model came from the video game and I think it turned out pretty well.

Back in the ancient days of Sophomore year of undergrad, my drawmates and I spent hours playing MarioKart 64. My roommate would always grab Peach before anybody else, so I decided to make him one for his birthday. I got surface models from a Mario Kart video game then did a bit of patching work to make everything into a nice solid model. The Kart and Peach came as two separate files which I combined into a single model for printing.

During support clean-up, I had an unfortunate accident with our dear Princess, and she pulled a Marie Antoinette on us. This actually turned out to be advantageous since I’m not sure how I would have accessed a lot of the body for painting without the decapitation. The only truly custom parts I made for this project were the wheels, which were printed in black and simply hot-glued on.

I already missed the birthday of the other drawmates, and I feel bad… but I have prepared the racer models for both him and the last of the drawmates… We’ll all be getting together in June 😀

Totoro and Snorlax Ocarinas

TL;DR: I printed and painted a Totoro Ocarina for my girlfriend’s birthday. There are 4 finger holes and is actually tuned to play notes correctly. After that, I created a positive model of the cavity so I can use a Boolean subtract to make ocarinas out of custom models :D.

I came across this amazing model on Thingiverse (https://www.thingiverse.com/thing:1798728) while looking for inspiration of things to make for my girlfriend’s birthday. She loves Studio Ghibli films, and this is a cool application of 3d printing I had not really seen nor tried before.

In 2016, Autodesk research developed a software package called “PrinTone” which analyzes any arbitrary 3D model to add a cavity and holes so you can play tuned notes. Unfortunately, they have yet to release the software, so I couldn’t use it to transform any custom model into an ocarina. Luckily, the only customization I wanted to make was the addition of a birthday message through an extruded text cut.

The poor settings on my initial print attempt led to some underextrusion on some of the walls, and some small gaps in the head, which is no good for a wind instrument. I also tried printing a larger version at 1.5x scale, but the holes became too big for my fingers. I’m very happy with how the present came out after painting J.

After I finished this part, I still wanted a way to design and print custom ocarinas. Inspired by physical molding techniques, I was able to use CAD tools to create a digital model of the cavity, finger holes, and mouthpiece. I am now able to subtract this new “core” model from any custom model, as long as it has a similar-ish shape. The very first custom ocarina model I created was Snorlax. I admit… it looks kinda disturbing since the air inlet is basically his butthole, but I still think it’s a neat idea. Unfortunately I probably need to bring the cavity closer to the surface since this ocarina is broken as a PokéFlute.

Infinity War Masks

I waited 10 years and 18 movies for Infinity War, and as a superfan with a movie club, I obviously needed to watch it opening night. I bought 22 tickets in the center of the theater within 15 minutes of their availability, but unfortunately, Alamo Drafthouse’s site wasn’t ready when I was. Alamo is by far my favorite movie experience, and the moviegoers there are true fans. It’s pretty normal for opening night premiers to be filled with people dressed up (scroll down far enough and you might see a familiar face :P).

I managed to cajole a few members of my movie club to join in geeking out and dress up for the premiere at AMC. As somewhat expected, we were like the only group dressed up there, but whatever. We had fun and that’s all that matters.

I continue to be pleasantly surprised at the utility of my cheap little 3D printer. This was the first project I completed that involved painting post-print. I found some decent STL’s for Ironman and Black Panther on Thingiverse. While these base STLs worked, there were some changes I wanted to make but didn’t have time to do so, cause of course I procrastinated. I didn’t start making the masks for Abaho and I until 5 days before the movie.

The first part I printed was the faceplate for the Ironman MK50 (Bleeding Edge armor that debuted in Infinity War) helmet. I measured the space between my eyes and scaled everything accordingly. I tried it on and it seemed to fit well, so I continued with the rest of the helmet. It turns out that my head does not have the same proportions as that of the guy who originally designed the model, so I couldn’t get the skullcap on:

At this point, I only had 3 days to print and paint 2 masks, so I decided to cut and print only the front part of the Ironman helmet to save time and ensure wearability. It was pretty easy to make planar cuts of the mesh files using Fusion 360, which was good.

I noticed that the STL I was using was not perfectly symmetric, and the parts didn’t actually fit perfectly together. It’s definitely something I’m going to address before I make my next print.

I needed to do a decent amount of work to prepare the Black Panther mask for printing. First, the raw STL had a ton of unnecessary detail and sharp edges on the inside of the mask, which would have increased the print time and made the helmet more uncomfortable to wear, so I did lot of simplification and smoothing of the inner surfaces. Next, I needed to slice the helmet into a bunch of parts to both fit on my printer, and print in time (I only had about 36 hours cause I ended up printing TWO Ironman masks). Initially, I was worried about having visible weld lines in this mask, but luckily, I bought some BLACK GLUE STICKS a few weeks earlier at Daiso (I didn’t know these were even a thing) to hide them perfectly.

Here’s a gallery of the build process:

Painting the Ironman masks was a huge pain since I needed to cover quite a bit of surface area using three different colors of paint (gold, silver, shiny red). To make the shiny red, I needed to mix a metallic copper paint with the basic red I bought (the red was too flat and bright to match the gold). The Black Panther mask in contrast was ridiculously easy to paint… the mask was already printed in black, so only a few raised areas needed to be highlighted in silver.

I was incredibly happy with how the finished helmets turned out. I added a fabric strap to the back of the Ironman helmet with some hot glue for wearability. It turns out that Abaho’s head fit perfectly within the Black Panther helmet with no additional modifications needed.

Next up, I’m going to be printing out and attaching parts of the Black Panther mask we removed earlier. I’m also going to fix the model symmetry and adjust the dimensions to fit the proportions of my head.

Printer Mods and Cubone Dog Mask

My friends James and Cat found photos of dog owners putting Cubone masks on their doggos like this online, and asked if I could help them make one for Cat’s shiba, Azuki. I searched and found this STL file graciously uploaded to thingiverse to use as a baseline, so I agreed to help.

Here’s the finished product on a very dapper looking, but unhappy dog:

For the uninitiated, here’s the inspiration for the mask:

Since this was my inaugural long print (previous record was about 5 hours) on my 3D printer, I had a number of upgrades I wanted to complete to ensure a smooth print. I found all of these mods on this very useful site.

  • By far the most time saving mod I completed and by I, I mean my roommate did most of the work, was setting up an Octoprint server onto a spare Raspberry Pi I had. This lets me monitor print status from any computer on my network and allows me to send gcode wirelessly rather than need to futz around sending files with physical SD cards.
  • Next, I swapped out the stock cooling fan for a radial blower using the diicooler mod. This mod cools the part from all directions around the hotend, which greatly improves the print finish and dimensional accuracy. I ended up needing to change the wiring on my new fan’s connector. It was a bit of a pain, but I ended up non-destructively disassembling the connector by pushing the pins in and pulling the wires out.
  • After I swapped the cooling fan, I realized that I would need to recalibrate the heating element PID parameters. Unfortunately, the stock firmware did not make this super accessible.
  • In order to calibrate the PID parameters more easily (and add a number of cool new functionality) I changed the firmware running on my printer. I’m currently running the open source ADVi3++ v2.1. Octoprint proved to be incredibly useful here since it let me flash the firmware on the printer from my laptop. Seriously, how cool is that??
  • After installing new firmware, I went and recalibrated the X, Y, Z, and Extruder motors using tools built into ADVi3++ and by printing a calibration cube.

All of the printer setup above took about 2 nights of work. I’m not gonna lie, it ended up being more involved than I originally anticipated. I made the mistake of thinking I obtained all the required hardware, but this ended up not being the case. Oh well, all things considered, it was well worth it.

With all of the printer mods out of the way, I was able to focus on modifying the base STL to fit Azuki better. I asked Cat to take a bunch of photos of Azuki from the profile, top, and front views as best she could. I imported the photos directly into Fusion 360 and used the tape measure she included in the photo (genius move) to scale them exactly. I imported the base file, simplified the mesh, and converted it to a solid for edit-ability. The biggest modification I made other than scaling was the addition of ear cutouts, since Azuki’s head structure was a bit different from that of the base dog’s. I should have added nostril cutouts and could have added additional thru holes for string attachments to hold the mask on more securely, but those can be added after the fact with a regular drill.

The total print time was about 20 hours, using approximately 220g of material. Additional print settings in Cura were as follows: 0.3mm layer height, 30% infill, supports from base only. Cleanup of the supports was pretty simple, I was able to clear almost all of it by hand in less than 2 minutes.

The resulting mask fit Azuki pretty well. The ear holes were in a pretty good location, but the eyes sat a bit closer to his face than ideally desired. The fix for this is pretty simple though, foam padding can be added to the top of his head and along his snout to move the entire mask up a bit. Making the mask sit a bit further from his face will also give his nose a bit more room to breathe as well. From a distance of 2 feet away you can’t see any layer lines or notice any triangular surfaces. I’m incredibly happy with how this print turned out and hope that Azuki won’t hate me too much for making it 🙂