Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Does anyone here work on Superslicer?

    Scheduled Pinned Locked Moved
    General Discussion
    14
    87
    8.5k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dc42undefined
      dc42 administrators
      last edited by

      Does anyone here know their way around the Superslicer/PrusaSlicer source code well enough to make a change? The change I have in mind is that when RepRapFirmware output is selected, the thumbnail images embedded in the GCode file would be in QOI image format (see https://github.com/phoboslab/qoi) instead of .png format. That would enable us to display thumbnail images on PanelDue, because QOI format doesn't need a large RAM buffer to decompress the images.

      Duet WiFi hardware designer and firmware engineer
      Please do not ask me for Duet support via PM or email, use the forum
      http://www.escher3d.com, https://miscsolutions.wordpress.com

      hestiahuangundefined merillundefined 2 Replies Last reply Reply Quote 2
      • oliofundefined
        oliof
        last edited by

        That would be @bot

        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

        1 Reply Last reply Reply Quote 0
        • hestiahuangundefined
          hestiahuang @dc42
          last edited by

          @dc42 said in Does anyone here work on Superslicer?:

          able us to display thumbnail images on Panel

          Sounds great! Only SS and PS? How about S3D and IdeaMaker?

          arhiundefined 1 Reply Last reply Reply Quote 0
          • Macgyverundefined
            Macgyver
            last edited by

            @dc42 that's an awesome idea. I work almost exclusively in Super slicer but nothing in the development side of it. I wish I could help on that one.

            PCRundefined 1 Reply Last reply Reply Quote 0
            • PCRundefined
              PCR @Macgyver
              last edited by

              @dc42 like @oliof said. @bot is the man

              1 Reply Last reply Reply Quote 0
              • oliofundefined
                oliof
                last edited by

                It probably would be something you could do with a plugin in Cura.

                <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                oliofundefined 1 Reply Last reply Reply Quote 0
                • oliofundefined
                  oliof @oliof
                  last edited by

                  I filed a feature request with Cura https://github.com/Ultimaker/Cura/issues/11120

                  oliof created this issue in Ultimaker/Cura

                  closed QOI format for image preview #11120

                  <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                  oliofundefined 1 Reply Last reply Reply Quote 2
                  • oliofundefined
                    oliof @oliof
                    last edited by

                    I did check with the Cura main dev and he said QOI image support could be done in a Cura plugin. So anyone with a bit of holiday break time and decent python knowledge could try to give this a cut (-:

                    <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                    resamundefined 1 Reply Last reply Reply Quote 0
                    • resamundefined
                      resam @oliof
                      last edited by

                      @oliof throwing my plugin https://github.com/Kriechi/Cura-DuetRRFPlugin/ into the mix as a well-known and popular Duet RRF plugin for Cura.

                      @dc42 would you mind pointing me towards a spec on how PanelDue wants to read the QOI data from the gcode file? Or is this yet to be defined?

                      resamundefined 1 Reply Last reply Reply Quote 3
                      • merillundefined
                        merill @dc42
                        last edited by merill

                        @dc42 said in Does anyone here work on Superslicer?:

                        Does anyone here know their way around the Superslicer/PrusaSlicer source code well enough to make a change? The change I have in mind is that when RepRapFirmware output is selected, the thumbnail images embedded in the GCode file would be in QOI image format (see https://github.com/phoboslab/qoi) instead of .png format. That would enable us to display thumbnail images on PanelDue, because QOI format doesn't need a large RAM buffer to decompress the images.

                        Hi
                        I'm the dev of superslicer.
                        I encourage you to post an issue on the gihub for feature request.
                        (https://github.com/supermerill/SuperSlicer/issues/new/choose)

                        For changing the output format, currently we use zlib and a better version of https://gist.github.com/908299
                        Adding the QOI format shouldn't be too hard, from what i can read from their page. Just hoping it will compile without problem on windows, linux & macos.

                        the line to change is Gcode.cpp:941

                        1 Reply Last reply Reply Quote 4
                        • resamundefined
                          resam @resam
                          last edited by

                          I believe I have a working Cura integration that takes a 320x240 snapshot of the scene, encodes it as QOI, and puts it at the beginning of the gcode file before uploading it.

                          @dc42 just let me know where or how you want to parse it: special M-code? magic comment?

                          1 Reply Last reply Reply Quote 3
                          • botundefined
                            bot
                            last edited by bot

                            I appreciate the references very much! 🙂

                            But, yeah, merill might be much better at constructing this architecturally. While I'm definitely getting comfortable with the PrusaSlicer codebase, merill has much more experience.

                            I'd be happy to help with any grunt-work, though. Testing, fixing things up, doing things that dc42 and merill tell me to, etc.

                            @dc42 if you have any interest in setting up an IDE for working on PrusaSlicer, they use VS 2019, community edition is free and works. I've also got it working under Visual Studio code, with a bunch of cmake plugins and stuff. I'm sure it wouldn't be hard to get it into your IDE of choice, as long as it integrated with cmake to some extent.

                            Setting the project up in VS 2019 is dead simple, tho. Microsoft aside, the experience of working on PS for the past year and a bit has been fantastic, due largely in part to intellisense guiding me around.

                            I digress, you know this I bet. But I'd be happy to answer any questions you have about the codebase or do any tedious tasks you need done for features you want.

                            *not actually a robot

                            1 Reply Last reply Reply Quote 3
                            • arhiundefined
                              arhi @hestiahuang
                              last edited by

                              @hestiahuang said in Does anyone here work on Superslicer?:

                              @dc42 said in Does anyone here work on Superslicer?:

                              able us to display thumbnail images on Panel

                              Sounds great! Only SS and PS? How about S3D and IdeaMaker?

                              Both s3d and IdeaMaker are closed source so none of us can add anything to them. When at least one other slicer support this and the paneldue is parsing this we can request on the s3d and ideamaker forums for them to support this feature too.

                              Now, s3d is dead so nothing will happen there for sure, IdeaMaker is awesome (my slicer of choice) but they are pretty slow to implement features that are totally unusable for their own printers. They only recently added octoprint integration (they had network upload and network printing with their own custom printers for years) .. but since they already embed some image in gcode if I remember correctly for their own printers this might go faster than octoprint integration 🙂

                              1 Reply Last reply Reply Quote 0
                              • oliofundefined
                                oliof
                                last edited by oliof

                                @dc42 @resam Ultimaker Cura dev has answered on my feature request, I will copy that here:

                                I think PNGDec is a much more friendly option for PanelDue. It requires even less memory and the PNG format actually has more than a month of battle-testing behind it. There's a decent chance that this image format gets forgotten as "that nice one from December 2021" like most new image formats. But of course, it's not up to us to decide for them. We just need to try to integrate with all of these printers and their formats where feasible.

                                Since this is only going to be relevant to support certain printers (if those printers start needing it) and we can't test with those printers, we're not likely going to be implementing this at Ultimaker. What's more, Ultimaker itself will not allow us time to implement this since they don't benefit from it either. So we'll have to defer this. It's not going to get any priority, though it would be nice to have (as long as it doesn't increase complexity of code maintenance too much).

                                So maybe consider pngdec and the png format?

                                <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

                                dc42undefined 1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @oliof
                                  last edited by dc42

                                  @oliof my developers tell me that unfortunately .PNG format needs a 32K RAM buffer to decode it, because it uses LZW compression. That's why we can't use it for this purpose.

                                  For example, the documentation of PNGDec for Arduino says it only works on processors with at least 49kb of RAM. Also, the PNGDec Arduino library is several thousand lines of C++, compared to 300 claimed for a QOI decoder.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  resamundefined 1 Reply Last reply Reply Quote 1
                                  • resamundefined
                                    resam @dc42
                                    last edited by

                                    @dc42 Here is a QOI and a PNG of the same Cura scene (=sliced model) rendered in 320x320 pixels generated by my Cura-DuetRRFPlugin:

                                    snapshot.png

                                    snapshot.qoi.txt (just renamed to .txt for uploading here)

                                    And here my changes to make it happen on the next branch: https://github.com/Kriechi/Cura-DuetRRFPlugin/tree/next

                                    It is not embedding anything yet into the gcode file (@dc42 did you settle on a file spec for that yet?), so instead it just creates a few files in your ~/Downloads/ folder.

                                    The plugin also logs extensively to the usual cura log file - in case you get an error, please attach it.

                                    dc42undefined 1 Reply Last reply Reply Quote 2
                                    • dc42undefined
                                      dc42 administrators @resam
                                      last edited by dc42

                                      @resam thanks for that! What I would like is for the QOI thumbnail image to be base64-encoded and added to the GCode file as a specially formatted comment - just like PrusaSlicer/SuperSlicer do except that they start from PNG format. Both PNG and QOI have (different) magic bytes at the start of the file, so we can use them to check whether the format is QOI.

                                      The SuperSlicer code that does the base64 encoding and writing to file is at line 921 of https://github.com/supermerill/SuperSlicer/blob/master/src/libslic3r/GCode.cpp.

                                      PS - here is an example of thumbnail comment blocks generated by SuperSlicer (these are still encoded in PNG format). SuperSlicer puts it close to the start of the file, after the "generated by" comment.

                                      ;
                                      ; thumbnail begin 16x16 844
                                      ; iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACPklEQVR4AYVT32vTUBTOP6KFqaC+C2
                                      ; Pbi/+CvyZ7moiPysA9CGotdqtx7di6pjRNm9r0l41Lmy5p2rWElrYECgGh4lOf8uZr/oNrvsCROSY+
                                      ; XM65957zne/e8x2u3++rs9lMMQyjJcuyPRqNalf5w+Hwa7vd1uv1es+yrG+TyaSCXM627QYuVFU1YR
                                      ; H8Lx/JpmlqBA4QDodwHMf5Ah+VkHSVDwswxBIoR7RAFUCwT3ne+yTLjqZpnXK5POArldBH9fF4XEUM
                                      ; gLEPAXAAEBzuqOqPDUnyI/v77Fk6vUzk8856NutXLMvEmxFP1WFDAFwQvU1R9FayWbaWyfg7krRAla
                                      ; iuz9dOTnwUooVisCEAaBIy/EgiwW4KAlvP5fyHkuTdi8X8t8fH84/5/DyjqvZfANul0hKUN/b2/OeF
                                      ; whLJm7Wat3V66t3K5diDTMZrdDrmowBoNZXy76TT7LGm/XqlKD9fx+MLLmiu8eboyH2vKO4TQfBeiu
                                      ; JC63ZbW4WCd79a9VcODthqMul/7nan9V6vE+ohuE/p+tQ6P1c5QRCm+AOIA3a32fx+LRplt4Mn3Dg8
                                      ; ZHdLJXY9HmfNszOduoRY/FnYRnwSDtEe+C+CJ6EDjVbLeJdKubvF4iLC8+yDKLpIGAwGTQBR6zlUxQ
                                      ; G1BhS3k8kl+byiOACE8i5LOdQBpAwkCAVgJF+agVix6PKiOCUpk2bAGLl/pEy0/jdM2GP4iA1H1InW
                                      ; RV1cHiaSOyWH00hVKREBtCfB0Mhf/CdYrN/5dKVwK+5qBwAAAABJRU5ErkJggg==
                                      ; thumbnail end
                                      ;
                                      
                                      ;
                                      ; thumbnail begin 220x124 12368
                                      ; iVBORw0KGgoAAAANSUhEUgAAANwAAAB8CAYAAAACRt5vAAAkAUlEQVR4Ae2dSZdcxZXH32cAGzcaql
                                      ; RVGhASGGNxjt3GbYNtZhvMoEIWAolJQqiQSmgGyoAEEqZAwggQNni2z/HGvWs2vfI5XvVKW69q3av8
                                      ...(lots more lines here) ...
                                      ; +5EYPU6Oqjuf08VWO1wzxcz7fJ63JSyppUeuqIGoq3czTCxqlRCxfeaPB5rkmpx1CCqabG2POYJRpD
                                      ; faHKYR6xbJDv87EbDDVoqkapM1bmlaQRQN345JMdGRLSHGxS6rHWsklNjSnZ8xoam9iFsS/Ldc98hP
                                      ; Gtj6SGJKEKSamsK00jPJcvJPyyHvVlhRxGTkjr0qEGjiqOyE31aj6TYUdOg/o08v+XlPmlxsnXiJ9L
                                      ; NPrWimseOIKy/g8uwR/l/+4AzAAAAABJRU5ErkJggg==
                                      ; thumbnail end
                                      ;
                                      

                                      Duet WiFi hardware designer and firmware engineer
                                      Please do not ask me for Duet support via PM or email, use the forum
                                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                                      resamundefined 1 Reply Last reply Reply Quote 0
                                      • resamundefined
                                        resam @dc42
                                        last edited by resam

                                        @dc42 Here the file beginning with a 320x320 QOI (about 37kB, so only the first few lines):

                                        ;FLAVOR:RepRap
                                        ;TIME:4199
                                        ;Filament used: 3.57983m
                                        ;Layer height: 0.15
                                        ;MINX:69.693
                                        ;MINY:92.957
                                        ;MINZ:0.2
                                        ;MAXX:174.818
                                        ;MAXY:152.057
                                        ;MAXZ:7.55
                                        ;POSTPROCESSED
                                        ;Generated with Cura_SteamEngine 4.12.1
                                        ;Exported with Cura-DuetRRF by Thomas Kriechbaumer 1.2.5
                                        ; thumbnail begin 320x320 37140
                                        ; cW9pZgAAAUAAAAFABAAA/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f
                                        ; 39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
                                        ; /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f
                                        ; 39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
                                        ; /f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f
                                        ; 39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39
                                        ; /f39/f39/f39/f39/f39/f396P8aFQYa/4BnHYIA/f39/f3F/xoVBRr/06sw1/+DaiCnAP39/f39xP
                                        ; 8aFQYb/9auMNr/+so5//9xXBp7AP39/f39wz//06sw2P/6yzn/wP9hTxduAP39/f39wgoWKcH/OzAR
                                        ; bgD9/f39/cEK/9SsMNgpwv83LxdVAP39/f39wP85Lg06FinCnnn/EA4GNQD9/f39/f86Lw07/+y/Nf
                                        ; Apw//3yDj+/wQEBCkA/f39/fz/OzANPP/uwTbzKcT/5rs2+wD9/f39/P86Lw08AinF/8WhMfsA/f39
                                        ; /fsQ/+/BNvMpxv+7mCzQAP39/f36EP/tvzXx//vLOf/H/450JMMA7/9CNQ9D/yoiCSv/AAAAAP39/f
                                        ; 3G/zwwDT09LMj/jHIisADs/wcFAQf/RTgPRv/AnCvE//nKOP7/IhwKRwD9/f39xf9HORBI/+3ANfEs
                                        ; yf9nVBqKAOr/AwIAA/9hThZj/9WtMNkpwP7bsjT/CAgFLgD9/f39xP9pVRdq//rKOP7/+8s5/8r/Vk
                                        ; cYigDo/xANAxD/c10adf/asDHeKcL+pYct/wICAQ4A/f39/cP/aFQXav/4yTj8LMv/RjkRWADm/w8M
                                        ; Aw//emMbfP/pvDXtLMT/b10k9v8BAQELAP39/f3C/2lVF2sS//vLOf/M/x4aC1EA5P8iHAcj/5Z5Ip
                                        ; n/6r017izFnXr/Ny8YwgD9/f3L/xcTBRj/Ix0IJADxEzEszf8cFwg5AOL/HxkHH/+ZfCKc//LEN/Ys
                                        ; ... snip
                                        ; thumbnail end
                                        
                                        T0
                                        M190 S60
                                        M104 S215
                                        M109 S215
                                        ...
                                        

                                        Latest changes pushed to https://github.com/Kriechi/Cura-DuetRRFPlugin/tree/next

                                        1 Reply Last reply Reply Quote 4
                                        • botundefined
                                          bot
                                          last edited by bot

                                          I'm working on getting this up and running in PrusaSlicer. It's not going smoothly so far but that is my fault. I'll keep trying and let you know if I give up.

                                          *not actually a robot

                                          1 Reply Last reply Reply Quote 0
                                          • botundefined
                                            bot
                                            last edited by bot

                                            Ok so I have what appears to be a working first version.

                                            But, I have not figured out a way to verify that the encoded base64 is indeed the QOI image...

                                            ; generated by PrusaSlicer 2.4.0+n8 on 2022-01-02 at 07:14:16 UTC
                                            
                                            
                                            ;
                                            ; thumbnail begin 32x32 1332
                                            ; cW9pZgAAACAAAAAgBAD+WVlZrIj+kJCQsYj+eHh4hYidiMB/wSiuiKeIIP53YFOb1QrBO8CliKSIKD
                                            ; ssVcOsiLiImohAs4iSiIeICsGjiBHAQP6UZ07+xmw5/qdcMP6BW0UKwCgzwJqIO8Aswwr+fn5+iogZ
                                            ; CiAXp4gNGRUgFf5qXlj+q2hCMsAGwP6dXDX+aF9ZERUZCjvBLMA7pIijiBU7wArAFQG1iDkNN/6RZE
                                            ; sywgbB/p9dN/6DXUcZCsI7wBmliBU7KDvACsEkAR7+iH13/q1qQzLDBsP+lFw7/mVcVv5bW1vBGaOI
                                            ; AjcswLeIMwrAGTMgFf58Zlkyxf6nXDDE/p5cNf6BXEYZKDMCGTvALCAFmYgVETM3/pFkSjLGBsYAER
                                            ; UKwDvBCiSxiD2OiDH+uWo9MscGx/6eXDb+ZVtWCsA7wRkzIDr+nG9VMskGyA7+gVtFCsA7GQKciBn+
                                            ; q2hBMsr+p1wwyHrADhmjiAIZOwodMsr+p1wwyAnAFRECGTvBHTLKBscJwf6hXzn+bm5uNzvC/rhqPT
                                            ; LKBscJwf6gXjgkwDcsChkaMsmhmJkbBsUJwhUKKKOILAqoiP66bD8yyKKXo5fAGwbECcFr/p5cNgo7
                                            ; GTumiKKI/rlqPjLGfqOoNcKdaf6wYTMGwnrBEP6eXDY7wKaIf0A7GjLFDDXFnWkb/qdcMMB6wRDA/p
                                            ; 5cNhmriDkKLMAaMsM6o5c1yJ1p/qxfMZ16wRDAFf5zc3OsiC+SiMH+uGk9/sZsOcIMNcudaRuWDMAQ
                                            ; wP6lYj3+lJSUESxAwB0VMsA6IzXOmCsQwf6lYz3+fX19p4iDiA7BFTIENdGdapYMmCz+nlw2KLOItY
                                            ; j+VlZWCsAaDDXUGxUdLCCQiCwC/qZsTDXW/qFoRh3ALMA3nYj+Z1tU/pNlSjXOZsT+lGZMDsA7pogo
                                            ; DkDB/mVZU/6/bkA1wWbN/r5tP/6Bal3+bW1tkogZJAqZiMJ/wP5nXFX+mGlP/s1wPM7+oWdGDiwvr4
                                            ; iXiDs/nYjCIX8sp4j+e2NW/r9uQP7NcDzK/r5tP/50XVA/wCwVEaiIQDuZiFXAEqKIChk/MP5lWVL+
                                            ; kWNJ/s1wO8j+r2pCP8AOCjcdMCwRCQMOP8AZHRLAIcH+k2RKKcb+kWJIPxnAfxk/MCHAMDeTiCE3FT
                                            ; ADwBLBIaeI/n9zbP7Ec0Qpwv6+bD7+cltOITAKAjcwIcISIRIsHT8wA8ISKLmIAf5pXVb+kmRJKcD+
                                            ; kGFHIcA/ChkwwSESwSEOo4ghnIjAf8ADNDCxiLSILxIDwP5iV1D+c1tOEsAOGR0SwiE/EjAdLAAAAA
                                            ; AAAAAB
                                            ; thumbnail end
                                            ;
                                            ; 
                                            

                                            https://github.com/n8bot/PrusaSlicer/commit/e087f3bf78d6822d36900bcd53b0a0df6d00b24d

                                            0 n8bot committed to n8bot/PrusaSlicer
                                            First try QOI

                                            *not actually a robot

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA