Important! I forgot to mention 2 things in the video. If you have problems running the script, install numpy and pillow to your python environment. You should use a displacement map that is at least 4000x4000 pixels to get good results. You can also just upscale smaller ones. This is due to me not adding a size parameter I will have that fixed in the next version.
Wow! Thank you for contributing this to the community! Im trying to learn Blender but it doesn't like me very much. Tell me... How can I make this work on my Qidi printers? I'm not versed in Python. Sorry.
It's an idea that's been batted around for about a year+ or so, there was another developer that made a feature fork of PrusaSlicer with it. I don't think he ever finished to the point where it could be merged back. That one was slightly different as I believe everything was done in the slicer (displacement map applied and adjusted, no post-processing script).
I think you had no idea of the monster you created. When you made the localized fuzzy skin I jumped out of my chair, now, what you did was simply something that thousands of people have wanted and would pay to use as an extension in some app or website for years. I may be wrong, but I can generate a moon with my photo if I want to make a lithophane, right? But I can also make anything in any shape like that, that is, the possibilities are endless. I'm already thinking about how I'm going to make external textures on food (yes, I print food at a research level, but at an advanced stage), so I'll be able to texture food without needing very complex modeling. Are the textures maintained through boolean operations? Once again, congratulations on your work, I saw today that Prusa launched the slicer, if I were Joseph I would send you one of those Core Ones lmao!
This is far better than doing it in a dcc, far less destructive and no massive files and fighting with the renderer and waiting to bake, just to iterate again.
This is a great proof of concept to get modifier textures out of having to use Blender (or model them in elsewhere). I said elsewhere this idea has been batted around in various places but you're the first to release some form of prototype. Great work. Just for furthering the discussion and going off the issues you discussed, I do think it needs to be done on the 3d side (not the GCode) and in slicer, similar to how text is being handled. From the slicer point of view, the paint-on idea is good, possible with a selector for the displacement, and a depth value (cut or join), from there it would need to be converted to a modifier mesh and rejoined to the base model. Sounds simple to type, but it'd be a pain in the rear to implement because of the edge cases (overlapping textures, odd angle switches, weird intersections, etc.).
Yeah I think it's best to do it as direct displacement to the mesh before slicing and maybe for the toplayers as postprocessing. But as you said, it's not exacly easy to do that because automated UV-unwrapping in the slicer on a triangulated mesh seems to be hard to make to look good.
Impressive content, TenTech. Looking forward to your next upload. I smashed that thumbs up button on your video. Keep up the fantastic work! Your approach to integrating displacement maps into the G-code is fascinating. Have you considered how different patterns might affect the overall print strength or durability?
Thank you! I have thought about this but came to the conclusion that it probably doesn't affect the overall strength very much, because it's only the outer most surfaces. So 99% of the print remains the same. But the durability, if we talk about delamination of the top layer or even walls, is surely worse than on a normal print. But that's something, that should be possible to fix.
Can we also investigate non-repeating procedural patterns? I'd for example be very interested in a wood texture as I've seen people do this manually before and it looked awesome, but prohibitively annoying to create.
Can't you do this at the displacement map level? I'm sure there are procedural algorithms for 2D wood texture generation. Just generate a large texture that can cover the entire model, and use UV unwrapping to map your model onto the texture
@@polycrystallinecandyyes, you could just make a large displacement map (and there's plenty of tools to generate or convert from image) and then move it around.
If you make the wood texture big enough, you should be able to just use it with this script. And I will have a size modifier ready on the next release, so you can just configure it as you want.
Thank you! I thought about it because the patent seems to be invalid. But they would probably still sue me and win because I can't afford a lawsuit against a company.
Sadly I just cannot get it to work in Bambu. I'd love to be able to use these to get detail on the sides of prints where loads of co or changes would cause it to take an impractically long time.
@@tengertechnologies Post-processing script "C:\Users\----\AppData\Local\Programs\Python\Python312\python.exe" "E:\Bambu\Scripts\Fuzzyficator-main\Fuzzyficator_pattern.py" -run 1 -displacement_map E:\Bambu\Scripts\Fuzzyficator-main\MangekyoDM.png on file C:\Users\----\AppData\Local\Temp/bamboo_model/Fri_Dec_27/12_25_40#29700#85/Metadata\. 29700.0.gcode failed. Error code: 1 i have no idea what this means, but your github page's explanation suggests that that syntax should work. all other ;Statements are in place as they should be, so it HAS to be the way the post processing script is being called.
On macOS I had to install pillow and numpy via brew in order to get this to work. Very interesting concept but I haven't quite been able to achieve your great results. Can you upload some of your displacement maps to Github, please?
Unfortunately I can't upload the maps used in the video, because they are part of a package I bought. I just checked the resolution of them and did some testing. Make sure to use a map that is at least 4000x4000 pixels. I haven't programmed a size parameter yet. But you should also be able to use an upscaled map.
not sure if you had already considered that, but how about increasing the flow relativ to the magnitude of the outwards displacement to mitigate adhesion problems?
The really old method (stood out in games because dark portions of a texture would be unnaturally indented) is with Photoshop and some clever blending layers. The new method would be to either model texture in some form and then "bake" the depths onto an image or use something like Substance Painter. I think there's also a few AI model based scripts which help convert from image to heightmap.
Hello, everything is working fine so far and Bambu Studio also shows that the G-code has been changed. Unfortunately, the pattern is not displayed for me.
To you mean that the pattern parts are in a different color? For that you'd need to modify the code but it's totally possible and an easy modification.
I wonder if you could have the script call a blender command line function to modify the model. since blender is just meshes, they should have solved these problems already
@@tengertechnologies I am not getting any error messages. I followed your steps and when I sliced, only the areas I painted were sliced for color printing, no texture was applied.
Important!
I forgot to mention 2 things in the video. If you have problems running the script, install numpy and pillow to your python environment.
You should use a displacement map that is at least 4000x4000 pixels to get good results. You can also just upscale smaller ones. This is due to me not adding a size parameter I will have that fixed in the next version.
I guess Material-Maker could be promoted as a good FOSS tool to get those high-res pictures!
Wow! Thank you for contributing this to the community!
Im trying to learn Blender but it doesn't like me very much.
Tell me... How can I make this work on my Qidi printers? I'm not versed in Python. Sorry.
That's awesome! Great work.
I can already see you printing an object with your logo all across using filament also with your logo inside 😂
Or the famous subscribe?
Thank you Stefan!
When will you make a video about all his awesome scripts?
What the hell this is so insane that you did this before the voron or bambu guys did, this is next level man thank you for sharing this
Voron guys do not work on slicers
It's an idea that's been batted around for about a year+ or so, there was another developer that made a feature fork of PrusaSlicer with it. I don't think he ever finished to the point where it could be merged back. That one was slightly different as I believe everything was done in the slicer (displacement map applied and adjusted, no post-processing script).
I think you had no idea of the monster you created. When you made the localized fuzzy skin I jumped out of my chair, now, what you did was simply something that thousands of people have wanted and would pay to use as an extension in some app or website for years. I may be wrong, but I can generate a moon with my photo if I want to make a lithophane, right? But I can also make anything in any shape like that, that is, the possibilities are endless. I'm already thinking about how I'm going to make external textures on food (yes, I print food at a research level, but at an advanced stage), so I'll be able to texture food without needing very complex modeling. Are the textures maintained through boolean operations? Once again, congratulations on your work, I saw today that Prusa launched the slicer, if I were Joseph I would send you one of those Core Ones lmao!
Very good way to hide or minimize layer lines. Wood grain is especially good for this
Uuuh haven't tried wood grain yet, great idea!
Prusa need to include this into their slicer
I'm working on a Pullrequest
Finaly, they do.
Very cool, need more of these modifier type actions when it comes to slicers!
Production quality is soooo good!!!
This is far better than doing it in a dcc, far less destructive and no massive files and fighting with the renderer and waiting to bake, just to iterate again.
Finally. Rubberized Multi-Material Texturized grips
Wow the work you're doing on this is amazing!
Thanks
Need to comeback to this when Im not trying to sleep! Great job.
lmao
This is a great proof of concept to get modifier textures out of having to use Blender (or model them in elsewhere). I said elsewhere this idea has been batted around in various places but you're the first to release some form of prototype. Great work.
Just for furthering the discussion and going off the issues you discussed, I do think it needs to be done on the 3d side (not the GCode) and in slicer, similar to how text is being handled. From the slicer point of view, the paint-on idea is good, possible with a selector for the displacement, and a depth value (cut or join), from there it would need to be converted to a modifier mesh and rejoined to the base model. Sounds simple to type, but it'd be a pain in the rear to implement because of the edge cases (overlapping textures, odd angle switches, weird intersections, etc.).
Yeah I think it's best to do it as direct displacement to the mesh before slicing and maybe for the toplayers as postprocessing. But as you said, it's not exacly easy to do that because automated UV-unwrapping in the slicer on a triangulated mesh seems to be hard to make to look good.
Thanks for explaining why you made it. I didn't understand. Hopefully, this will help people.
Looks awesome! Thanks for all the work.
WOW that's exacly what I needed to find! Kudos from Brazil
You are a wizard!
This is amazing! I’ve been looking for a good way to do this!!!
Amazing! It looks so easy to use too! It's super cool how it's able to add texture to even the top surfaces!
You are the man, thanks for teaching me something new! Just subbed
Great WorK!
Hope they can include it into orcaslicer and bambustudio.
So, cool!
Impressive content, TenTech. Looking forward to your next upload. I smashed that thumbs up button on your video. Keep up the fantastic work! Your approach to integrating displacement maps into the G-code is fascinating. Have you considered how different patterns might affect the overall print strength or durability?
Thank you! I have thought about this but came to the conclusion that it probably doesn't affect the overall strength very much, because it's only the outer most surfaces. So 99% of the print remains the same. But the durability, if we talk about delamination of the top layer or even walls, is surely worse than on a normal print. But that's something, that should be possible to fix.
Thanks thanks thanksssssss :)
Onshape has „feature scrips“ and could work with mash and also step files - this would be great to have -> love this feature - thanks for your work!
Awesome!
Good thanks 💕
Can we also investigate non-repeating procedural patterns? I'd for example be very interested in a wood texture as I've seen people do this manually before and it looked awesome, but prohibitively annoying to create.
Can't you do this at the displacement map level? I'm sure there are procedural algorithms for 2D wood texture generation. Just generate a large texture that can cover the entire model, and use UV unwrapping to map your model onto the texture
@@polycrystallinecandyyes, you could just make a large displacement map (and there's plenty of tools to generate or convert from image) and then move it around.
If you make the wood texture big enough, you should be able to just use it with this script. And I will have a size modifier ready on the next release, so you can just configure it as you want.
thats great
Outstanding work! Congratulations
Please make "brick" printing anomimusly please
Thank you! I thought about it because the patent seems to be invalid. But they would probably still sue me and win because I can't afford a lawsuit against a company.
@@tengertechnologies The entire 3d printing community wants this ability and getting your legal fees crowdsourced would be extremely easy
Carbon fibre pattern everything 😂
I didn't even think of that lol. Need to try a carbon fiber pattern haha!
Sadly I just cannot get it to work in Bambu. I'd love to be able to use these to get detail on the sides of prints where loads of co or changes would cause it to take an impractically long time.
What problems did you experience?
@@tengertechnologies Post-processing script "C:\Users\----\AppData\Local\Programs\Python\Python312\python.exe"
"E:\Bambu\Scripts\Fuzzyficator-main\Fuzzyficator_pattern.py" -run 1 -displacement_map
E:\Bambu\Scripts\Fuzzyficator-main\MangekyoDM.png on file
C:\Users\----\AppData\Local\Temp/bamboo_model/Fri_Dec_27/12_25_40#29700#85/Metadata\.
29700.0.gcode failed.
Error code: 1
i have no idea what this means, but your github page's explanation suggests that that syntax should work. all other ;Statements are in place as they should be, so it HAS to be the way the post processing script is being called.
@@tengertechnologies Post-processing script "C:\Users\xxxxx\AppData\Local\Programs\Python\Python312\python.exe"
"E:\Bambu\Scripts\Fuzzyficator-main\Fuzzyficator_pattern.py" -run 1 -displacement_map
E:\Bambu\Scripts\Fuzzyficator-main\MangekyoDM.png on file
C:\Users\xxxxx\AppData\Local\Temp/bamboo_model/Fri_Dec_27/16_29_16#29700#1127/Metadat
a\.29700.5.gcode failed.
Error code: 1
Can you try to install pillow and numpy? For further troubleshooting you can find the log file at C:/users/yourUser/fuzzy_script.log
Wow
Flow competition to increase wall adhesion?
On macOS I had to install pillow and numpy via brew in order to get this to work. Very interesting concept but I haven't quite been able to achieve your great results. Can you upload some of your displacement maps to Github, please?
Unfortunately I can't upload the maps used in the video, because they are part of a package I bought. I just checked the resolution of them and did some testing. Make sure to use a map that is at least 4000x4000 pixels. I haven't programmed a size parameter yet. But you should also be able to use an upscaled map.
not sure if you had already considered that, but how about increasing the flow relativ to the magnitude of the outwards displacement to mitigate adhesion problems?
nice, how can i add my own patterns? i saw this before but i cant remember where? some software calle meshmixer? could it be?
The really old method (stood out in games because dark portions of a texture would be unnaturally indented) is with Photoshop and some clever blending layers.
The new method would be to either model texture in some form and then "bake" the depths onto an image or use something like Substance Painter. I think there's also a few AI model based scripts which help convert from image to heightmap.
You can just use your own images as input for this script. But yeah you can add textures to your model directly with Meshmixer too.
Hello, everything is working fine so far and Bambu Studio also shows that the G-code has been changed. Unfortunately, the pattern is not displayed for me.
Make sure to use a map that is at least 4000x4000px this is an issue I haven't fixed yet
Okay, thanks!
Think it would work with QIDI slicer- since it's based on (basically is) prussia slicer?
You can try it, but the script would probably need some small modifications
Is there any way to make this work with a printer that has an MMU?
To you mean that the pattern parts are in a different color? For that you'd need to modify the code but it's totally possible and an easy modification.
I wonder if you could have the script call a blender command line function to modify the model. since blender is just meshes, they should have solved these problems already
great, make it so I can run a script and have it fill all this in and I'll be able to follow it.
Please create brick layers and voxelfill plugins
Bambu v1.10.1.50 seems to paint as usual, failing to use the input.png file. Searching for a solution. Tried a different png, didn't help.
🌹
Still no cura 😢
Yeah, sorry :(
Does it work on curved surfaces?
Kind of, but nut perfect
Your work is great, but I couldn't install it in Orca, can you help me? The script doesn't work.
Thanks, sure did you get an error message?
@@tengertechnologies I am not getting any error messages. I followed your steps and when I sliced, only the areas I painted were sliced for color printing, no texture was applied.
@@Tulpar42 Is there a log at C:users/youruser/fuzzy_script.log
@@tengertechnologies unfortunately such a file has not been created
If you have reddit, you can send me a dm (u/tentech_yt) and we could arrange a discord call
having trouble finding the displacment app?? help thank u
but my 3d printers are my loved ones
lmao same!
All those guys putting hours into their stippling work have been replaced. Poor guys
That is super cool, great work.