Recently in my OrcaSlicer fork (OrcaSlicer-ImageMap), I’ve implemented the ability to modulate filament overhang amount based on the model texture, in order to create patterns and images on the surface of 3d prints (the technique is based on a 2018 research paper by Kuipers, et. al, which I’ve been extending to full color surface printing).
Essentially when extruded filament hangs over the edge slightly, it sags and blocks some of the filament below it, allowing the creation of arbitrary colors on the surface.
Here’s a test print, the one on the right is a test with CMYK layers at 0.12mm layer height (the left one is just CMY):
And here’s a 2-inch-tall color calibration test sheet I printed with CMYW filaments (color calibration test image designed by freepik)
With this technique each layer only uses a single filament color, looping through CMYK (or CMY/CMYW) regardless of what colors are on the surface or how many different models are being printed at once. It also won’t have additional seams compared to single color printing (since the outer perimeter is continuous - the outer wall is just modulated to vary the overhang).
I haven’t tweaked all the parameters yet to get perfect results, but I think this technique could have potential
Now becoming available for the top layer as well, this really starts to take shape! Curious what becomes possible, when the hardware manufactures jump on the bandwagon as well… (fusing colors in the hotend? - 1 printhead, with 3 nozzels? - special filament for full color printing / better blending etc).
Or looking at the Creality Filament maker, just one blank filament up on to the nozzle and adding die in the last process to create the wanted color.
Thank you for all this pioneering effort in these early stages, to show the world what is already possible.
It’s been experimented with, but that can’t achieve as high a resolution or control of colour application as keeping the components in separate nozzles. There will always be a latency between the mix point and the deposition, but worse the components don’t blend – they remain separate within the extruded filament. The colour visible at the surface ends up being dependent on the orientation of the surface.
Some more tests, at 0.08mm layer height this time (all of these are on the Snapmaker U1 by the way, with CMYK filaments):
(these flat photos are about 3.2 inches tall, slightly larger than the CMYW test sheet)
Photo/3d model credits:
There was a small bug I’ve since fixed which caused the colors to be reversed on the concave part of the snake model when I printed this (the dark patch you can see at the back).
Is the perceived colour variable with viewing angle?
On the prints with 0.12mm layer height the colors get slightly brighter if viewed from a steep angle (from above or below), but on these 0.08mm prints I don’t really see any variation.
EDIT: actually looking again now, there is a subtle effect on certain colors with the 0.08mm prints, but it is way more obvious on the 0.12mm ones (you can see it over the whole print)
Here are the links to the source code for my slicer fork (OrcaSlicer-ImageMap)
Github: https://github.com/sentientstardust-dev/OrcaSlicer-ImageMap
Gitlab: https://gitlab.com/sentient_stardust/orcaslicer-imagemap
Right now you have to compile it yourself if you want to use this, but I’m working on adding builds for each platform. I’ll add them to the description on gitlab when they’re available
EDIT: Mac and Windows builds are now available
EDIT 2: Updated to the new Github/Gitlab links. Linux builds are also available now
When I was adding jpeg support there was a bug that caused the texture to map to the wrong parts of the model. Thought it seemed like a good stress test of this technique so I printed it alongside the original
Did some tests with non-CMYK filament combinations using this technique
Printed with white, beige, light and dark blue PLA
This is with black, beige and gold:
Greyscale: