If you ever thought cleaning would be infinitely more fun if it could be done with unicorn vomit, you’ve come to the right place. I’m going to show how to 3D print and build your own soap dispenser that looks like a unicorn.

The horn can be unscrewed to add soap. There’s a pushbutton hidden in the right nostril that turns the sensor on and can be used to increase the amount of soap dispensed. Another pushbutton hidden in the left nostril turns the sensor off or reduces the amount of soap dispensed. The battery compartment is hidden in the right foot.

I’d wanted to make something with a unicorn for quite some time. Originally I planned to build a wine bottle opener but decided against it, since I don’t drink wine. I always loved Sam Elder’s Pooping Reindeer Candy Dispenser on Instructables, and thought about turning it into a unicorn, but decided that since his version is already so great, turning it into a unicorn wouldn’t add much (and I’m allergic to chocolate). Finally, after walking into my kitchen and seeing my Deadpool Knife Block, I decided that a unicorn vomiting Ajax would go perfectly with it.

Project Steps


I tried to find a unicorn I could use but sadly, the one I really liked was way too small. So I decided to design and 3D print my own version.

I wanted the electronics to be hidden as well as possible, so I went through a few design iterations. The unicorn was designed in Autodesk Fusion 360. It was my first time trying the Sculpt feature and I absolutely loved it. I used it for the head, horn, ears, and mane. Simply select Create Form and you’ll be in the sculpting environment, where you’re able to create forms and edit points as well as edges.

This way you can design more complex objects than in the Model feature. I highly suggest you give it a shot.

Once I was happy with the shape of the unicorn, I cut off its snout (wow, that sounds harsh) and hollowed the unicorn by using the Shell tool. I left out the snout because I didn’t want to turn it into a shell; I later cut slots into it to fit my dispenser’s pump and pushbuttons.

If you use a different dispenser, you may need to adjust the design to fit.

Next I designed a divider so the soap wouldn’t get in contact with the electronics, and I placed the battery compartment in one of the feet.

As you might have guessed, the threads were designed with the Thread feature, which works really well. All that was left to do was to change the inside so that the electronics would fit into it.

I decided to hold the feet and the snout in place with magnets. I was a bit nervous that water might get into the battery compartment, but so far it has worked really well.


To print the body, I used a Support Overhang Angle of 70°. This way there aren’t any support structures in the middle of the soap dispenser. The ones in the top thread can easily be removed.

Print each part once, except Nostril.stl; print that one twice. I used a layer height of 0.15mm in order to save time, and I knew I would smooth the parts later anyhow.

I printed everything with a 0.4mm nozzle. Depending on your printer, you might have to print TubeConnector.stl using a finer nozzle to get a good fit with the silicone tubing.


To smooth the unicorn, I started by filling the bigger uneven areas with auto body filler.

Once it was cured, I wet-sanded the parts I had filled. After cleaning them I applied two more thin layers of auto body filler and wet-sanded everything again. To learn more, check out my tutorial on smoothing prints.







I also taped off the thread of the horn to make sure that it would still fit later on.

After you’ve smoothed all the parts, glue the magnets in place.


I used a white primer on everything except the horn, and then airbrushed the parts with Createx Wicked Colors White.

Then I ran into troubles. Since I was too lazy to tape everything, I decided to use a brush to paint the mane, but the paints I chose didn’t work too well.

So I decided to paint it white again and tried using masking putty, but that didn’t work too well either.

I couldn’t apply it thin enough and so there was a gap that annoyed me. So I painted everything white again and tried using liquid masking tape. Once again I failed, because it stuck extremely well to the white paint and when I tried using a toothpick to get it off I scratched the paint.

Finally, I decided to paint the mane and tail with a high-pigmented pink paint, which I could apply with a brush so I wouldn’t have to mask anything!


Before painting the horn I covered the thread with tape to make sure it would fit later. In my experience, metallic paint ends up looking a lot better if you prime the parts with black paint, so I used The Army Painter Matte Black primer and then Createx Pearlized Satin Gold airbrush paint, which I love. After it dried I used a glossy varnish to protect it.







It was hard for me to decide how big I wanted the eyes to be and where to position them, so I printed a few in different sizes and held them to the side of the unicorn.

I ended up going with 8mm (0.315″) eyes placed 5.5cm apart. As you can see I went a bit overboard and used my plotter to cut a stencil.


Disassembling the soap dispenser is quite easy. Just remove the screws that are hidden in the battery compartment and the screw that’s next to the opening where the soap is dispensed.

Then remove the two screws holding the PCB and the screws holding the motor. Once you’ve done that you can pull all the electronics out of the metal tube.


Unsolder the LED next to the pushbuttons. Then make sure the two 3D-printed Nostril.stl pieces fit onto the pushbuttons and into the nostrils. You’ll have to turn them to the outside.

Place the prints and the PCB into the snout and secure the PCB in place with hot glue. Be careful and don’t use too much hot glue, since heat and 3D prints tend to not mix well.


Extend the power wires if necessary by soldering short lengths of hookup wire. Push the wires through the head, pull them through the foot, and then solder them to the battery compartment . Now glue the battery compartment to the left foot, Foot02.stl.







Next, use TubeConnector.stl to connect the hole in the right foot to the silicone tube. Zip-tie the tube tightly onto the connector, then glue the connector into its hole.


Push the silicone tube through the body and the sensor PCB into its hole. Admittedly this is a bit fiddly.

Then solder the pump motor wires back in place. Make sure you get the polarity right.

Place the silicone tube into the pump body, screw it closed, and push the end of the tube though the unicorn’s mouth.

Now put the pump into the snout and pull the silicone tube further through the mouth. Test your unicorn, then trim the tube.






Congratulations, you’re done!


Positioning your unicorn is key, otherwise it will start dispensing soap even though you just wanted to get some water or somebody walked by too close. If I were to redesign it I’d make the assembly a bit less fiddly, but otherwise I’m happy with it. Even after a year it’s still fun to use and a great conversation starter.

See more fun projects from Britt Michelsen at on her instructables.