Introduction: 3D Printed Floating Ornaments

About: I like to make things for the internets. I also sell a pretty cool calendar at You'll like it.

This ornament appears to have the middle parts floating in air when placed on a tree. The secret is black tulle fabric that gets sandwiched in the middle of the print.

This Instructable wouldn't be possible without this great Instructable by Penelopy Bulnick. To be honest, I got a bit confused about the instructions last year (my fault for skimming) and ended up with this variation. Standing on the shoulders of giants here.

Step 1: Stuff

What you need

  • 3D Printer. I'm using the Prusa MK2.5 and recommended here since these instructions involve PrusaSlicer
  • White PLA
  • Black tulle
  • Scissors
  • Magnets. (I'm using 10mm x 2mm disc neodymium magnets)
  • Hair clippers (highly recommended)

Step 2: Design Your Ornament

The designs that I've done are all 2.5D designs. That is, basically an extruded flat design without any fillets or chamfers or anything else. You can get fancier, but I don't think it's needed.

Here are two options:

Design it entirely in CAD

I'm a big fan of Tinkercad. It's web-based, free, and quick to use.

Design it as a vector and extrude it in CAD

For those who are comfier with vector programs like Illustrator or Inkscape, this is a great option and easier to add detail to. Export an SVG, then import it into CAD software. I use Fusion 360, but Tinkercad can handle this as well.

For the outer ring the size is up to you. I like 3" for an outside size, but when making multiple ornaments I often make them 2.75" wide. It's easier for setting up printing 4 at a time on my printer.

About the design itself

Make two rings for the main shape and the loop. After that, do whatever you want. None of the pieces on the inside need to connect so have fun.

As for thickness, I like it to be 2mm and that's what the following instructions are for, but those can be modified as well.

Step 3: Working With PrusaSlicer

For this, I am adding some custom G-code in PrusaSlicer. Go to Printer Settings > Custom g-code and enter the code into the Before layer change G-code section. This code is thanks to this post, which I've slightly modified.

The key parts to look at is

{if layer_z==1.2}; Pause to insert objects

This pauses after 1mm and before the 1.2mm layer. Change the "1.2" value fo a different midway point if you made a thicker ornament design.

G1 Z20; move up 20mm to avoid collisions when restarting

This is my addition. With thicker magnets the hot end can collide with them when returning to the printed piece to continue printing. Raising it up gives it clearance for the magnets. Feel free to make this larger or smaller.

Here it is:


G92 E0.0


{if layer_z==1.2}; Pause to insert objects

M400 ; wait for movement buffer to empty

M300 ; beep

M104 S0; Turn off extruder heater to avoid too much oozing

; code snippet originally Prusa forums joantabb here:

G1 X10.000 Y200.000 E0; parking position GET THE PRUSA TO STICK IT'S TONGUE OUT! (edited to revise Y coordinate)

M400; wait for bed to stop moving

M300; beep again

M84; disable motors (may not be necessary)

M0; user stop

G28 X Y; Home X and Y (only) to correct for accidentally moved bed or extruder (it is assumed Z didn't move because that is a harder axis to manually move).

M109 S[temperature]; return nozzle to printing temperature

G1 Z20;


Step 4: Print the First Half

Now that you have a g-code file, you can start printing. I use Octopi for printing and monitoring remotely.

Once the print hits the pause code the extruder will move to the side and beep twice.

Step 5: Lay on the Tulle

Cut a piece of tulle and lay it across the ornament. Use the magnets to secure the tulle to the bed.

Make sure that there is at least a little bit of tension in the tulle. If it is just laid on it will have a bit of slack and make the result look a little wobbly.

Also be sure to watch out for the tulle getting snagged on the printed piece. This can also create some pockets of slack.

Step 6: Unpause the Print

Now for the magic!

I assume that when printing off of an SD card, this is the regular process of pushing in on the knob to unpause. For Octopi, you need to click on the "resume" button.

Super important: If there is no resume button, refresh the page. If you closed your laptop and opened it again, it may need a refresh to show the correct controls. Hitting the pause button a few times will not work and fail the print. I may or may not have done this a half dozen times before I remembered to refresh.

Step 7: Clean Up

Now that the print is done, it's time to remove it and clean off the excess tulle.

Since the tulle is black and the plastic here is white, it's important to get as much of it off as possible or it will look a bit gross.

Scissors or an X-Acto blade will get you pretty far, but the final cleanup is pretty difficult. I've found the most success in using hair clippers to get all the tiny little stray bits off.

Step 8: Hang It Up and Enjoy!

Now you're done! You've made something float on the tree! Now think of maybe some modification or other design you'd like to try for the next one.