Lithophane with PIXEstL

Im going to have to give this a try, your progress so far looks great

1 Like

That looks truly amazing!


This looks great!
You have a bat code for using 7 colors but with 1AMS.
I was able to create the STLs, but would you be able to give specific instructions about how to use this in Bambu Studio? Presumably to pause at some point and swap filaments?



Yes exactly.
What size nozzle do you use? 0.2 or 0.4?

0.2 mm nozzle


So in first, you have to put only 7 active filaments (white included) in the palette (json file).

Then you can run this command:

java -jar PIXEstL.jar -p filament-palette-0.10mm.json -w 150 -i mypicture.png -l 4 -c 4

then the program will show you something like this:

Palette generation... (554 colors found)
Calculating color distances with the image...
Nb color used=360
Generating previews...
Generating STL files...
Layer[0.0] :Beige[PLA Basic], Magenta[PLA Basic], Yellow[PLA Basic], White[PLA Basic]
Layer[0.7] :Beige[PLA Basic]-->Black[PLA Basic], Magenta[PLA Basic]-->Cyan[PLA Basic], Yellow[PLA Basic]-->Matte Sakura Pink[PLA Matte]

This means that you should start putting the Beige, the Magenta, the Yellow and the White in the AMS and in the slicer

Then, you will have to pause BambuStudio at layer 0.7 (in mm).
If you leave 0.1 in Layer height and 0.1 in First Layer Height, this should correspond to layer number 7.

Then, when the printer has finished the first layers and pauses, change the filaments.
In this example, change the Beige for the Black, the Magenta for the Cyan and the Yellow for the Matte Sakura Pink.

If a filament you need to change and loaded in the extruder, you just have to resume printing and achieve that the printer unloads the current filament and loads the white filament. (Layer 7 is a white layer on purpose to be sure that we can change the other filaments, because it is unfortunately not possible to unload an “active” filament during the pause).
You can also change the filament while the printer prints the 7th layer in white.

You should know that the result will not be as good as with 7 colors made with 2 AMS. But in my opinion it will be better than with only 4 colors.

Thanks so much with your detailed response!!!

I’ll give it try.

I have a second AMS on order :).

1 Like

I keep getting errors like so:
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread “pool-3-thread-9”

Here is the command:
java -XX:+UseParallelGC -Xss60m -Xms4096m -XX:ErrorFile=hs_err_pid.log -jar pixestl-0.0.9.jar -p filament-palette-0.10mm.json -w 150 -b 0.07 -M 1.6 -l 5 -f .1 -cW .2 -tW .05 -i Bretl.png

regardless if I use the options, it still crashes. I am on a Apple M2 Max using temurin-21.jdk. It seemed to compile fine however. If I dont include all the options for pixestl-0.0.9.jar except for the minimum needed it does work.

i think it is the line height causing the issue.

Seems -tW and -b cannot be less than .1


In theory, these arguments can go below 0.1. But this will require a huge amount of memory, because the smaller the value, the more you will ask programs to generate polygons.

In practice, there is no point in descending too low, because you are limited by the size of your nozzle.

For me, “-cW” should be no smaller than 2 times the size of your nozzle (e.g. “-cW 0.4” for a 0.2 nozzle), and “-tW” no smaller than what your memory will allow (but 0.2/0.25 is already a not bad value for printing with a 0.2 nozzle).

Hi all,

Just wanted to let you know that I’ve released tutorial videos for PIXEstL in French. Sorry for English speakers, but my spoken English isn’t good enough for me to create them in English. Nonetheless, I hope the YouTube translation option will be helpful if you don’t speak French.

I have therefore made 4 videos:

Thanks! - just got my p1s (Friday) and I have been lurking in this thread. Perfect timing for me, it looks like you are taking this to another level. Appreciate all you are doing.

1 Like

These look great! any way to have YouTube generate English subtitles?

1 Like

@Chickenlittle, Just click the … to start the subtitles and then click the gear icon next to it to change from french to english.

1 Like

Magic. Thanks! that worked

1 Like


Is there a way to set the height of the stl layers? I don’t see one and if not I would like the ability to do that in your next release…

Love the project.

1 Like


Do you want to be able to set the height instead of the width? Or do you want to be able to set both the width and height at the same time?

The risk with setting both values simultaneously is that the image ratio may no longer be guaranteed.

Yes, I can add the height parameter, but it will be at your own risk :stuck_out_tongue:

Yes the ability ( optional, of course ) to be able to set the height along with the width. I accept the image ratio may not be the same… I want to see how it works. I have been resizing them in the slicer to my desired h and w and it seems to work fine. Just wanted to know if it would work using the program and save me a step… :slight_smile:


Implemented in the version 0.0.9


I am having a hard time with Skin tones. How did you get Marilyn’s so nice?? Any hints or tips would be great.