{"id":3337,"date":"2019-06-03T10:00:00","date_gmt":"2019-06-03T15:00:00","guid":{"rendered":"https:\/\/www.foell.org\/justin\/?p=3337"},"modified":"2019-10-21T11:49:32","modified_gmt":"2019-10-21T16:49:32","slug":"cura-creawesome-mod-for-linux","status":"publish","type":"post","link":"https:\/\/www.foell.org\/justin\/cura-creawesome-mod-for-linux\/","title":{"rendered":"Cura Creawesome mod for Linux"},"content":{"rendered":"<p>I recently saw this picture on Facebook &#8211; <strong>amazing<\/strong> 3D printing results from the Creality Ender 3 using the Ultimaker Cura slicer with the &#8220;Creawesome Mod&#8221;:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"3338\" data-permalink=\"https:\/\/www.foell.org\/justin\/cura-creawesome-mod-for-linux\/ender3-keg-shiny-silver-pla\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA.jpg\" data-orig-size=\"960,540\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ender3-keg-shiny-silver-PLA\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA.jpg\" class=\"thumbnail alignnone size-full wp-image-3338\" src=\"https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA.jpg\" alt=\"\" width=\"960\" height=\"540\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA.jpg 960w, https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA-300x169.jpg 300w, https:\/\/www.foell.org\/justin\/files\/2019\/05\/ender3-keg-shiny-silver-PLA-768x432.jpg 768w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/p>\n<p>This photo shows a &#8220;regular&#8221; Cura 4.0 print on the left and a <em>Creawesome<\/em> one on the right. Image courtesy of <a href=\"https:\/\/www.facebook.com\/groups\/Ender3dp\/permalink\/280871659387843\/\">Thirl Thompson from the Creality Ender-3 3d printer user group on Facebook<\/a>. Awesome indeed. Naturally I&#8217;d like to see the same results from my prints, but there were no Linux instructions yet, so I set out to figure out how to do this.<!--more--><\/p>\n<h2>AppImages and mods, wut?<\/h2>\n<p>The <a href=\"https:\/\/ultimaker.com\/en\/products\/ultimaker-cura-software\">Cura downloads you can get for Linux right from Ultimaker<\/a> are AppImages. Basically bundles of software that can run on their own without having to install anything else. Super easy, just download the file, set it to executable, and run it. But how does the Creawesome mod install?<\/p>\n<p>The Creawesome mod is a zip file with a folder in it called &#8220;resources.&#8221; I just needed to figure out where to put it. I tried putting it in <code>~\/.config\/cura\/4.0<\/code> on my Ubuntu system but that didn&#8217;t do anything. The clue that it is working, according to this video, is that I should see a Creawesome mod splash screen.<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"770\" height=\"434\" src=\"https:\/\/www.youtube.com\/embed\/mOn-VNqg2ac?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en-US&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><\/p>\n<p>But I wasn&#8217;t having any luck.<\/p>\n<h2>Deconstructing the AppImage<\/h2>\n<p>Since the AppImage is a bundle, I thought that maybe they need to go inside of it. The AppImages delivered from Ultimaker are &#8220;version 1&#8221; app images. Those types of AppImages can be mounted like a filesystem for further inspection. I used these commands:<\/p>\n<pre>$ mkdir \/tmp\/cura_mnt\r\n$ sudo mount path\/to\/Ultimaker_Cura-4.0.0.AppImage \/tmp\/cura_mnt\r\nmount: \/tmp\/cura_mnt: WARNING: device write-protected, mounted read-only.\r\n<\/pre>\n<p>The Cura 4.0 AppImage is now mounted at <code>\/tmp\/cura_mnt<\/code> and we can look at the contents. It has a &#8220;resources&#8221; directory! (bottom)<\/p>\n<pre>$ ls \/tmp\/cura_mnt\/usr\/bin\r\ncura                libgfortran.so.3              libQt5Qml.so.5              libQt5Xml.so.5\r\nCuraEngine          libgomp.so.1                  libQt5QuickControls2.so.5   libselinux.so.1\r\ncura.sh             libopenblas.so.0              libQt5QuickParticles.so.5   libssl.so\r\nlib                 libpng12.so.0                 libQt5Quick.so.5            libssl.so.10\r\nlibcrypto.so        libpython3.5.so.1.0           libQt5QuickTemplates2.so.5  libxcb-xfixes.so.0\r\nlibcrypto.so.10     libQt5Charts.so.5             libQt5QuickTest.so.5        libXi.so.6\r\nlibfontconfig.so.1  libQt5Core.so.5               libQt5RemoteObjects.so.5    openssl.cnf\r\nlibfreetype.so.6    libQt5DataVisualization.so.5  libQt5Sql.so.5              plugins\r\nlibgeos_c.so        libQt5DBus.so.5               libQt5Svg.so.5              qml\r\nlibgeos_c.so.1      libQt5Gui.so.5                libQt5Test.so.5             qt\r\nlibgeos.so          libQt5Network.so.5            libQt5Widgets.so.5          resources\r\nlibgeos.so.3.6.2    libQt5OpenGL.so.5             libQt5XcbQpa.so.5\r\n<\/pre>\n<p>But, we can&#8217;t just overwrite that folder and unmount the image. The image itself is mounted read-only. So I made a full copy of the directory and then unmounted the original AppImage.<\/p>\n<pre>$ cd \/tmp\r\n$ cp -a cura_mnt cura_image\r\n$ sudo umount cura_mnt\r\n<\/pre>\n<h2>Repackaging the AppImage with the Creawesome mod<\/h2>\n<p>I removed the resources directory so I could copy in the Creawesome mod resources directory.<\/p>\n<pre>$ rm -rf cura_image\/usr\/bin\/resources\r\n$ mv ~\/Downloads\/CreawsomeMod-0.2\/resources cura_image\/usr\/bin\/\r\n<\/pre>\n<p>After some research I found there&#8217;s an <a href=\"https:\/\/superuser.com\/questions\/1301583\/how-can-i-extract-files-from-an-appimage\">easy way to package this directory back up into a new AppImage<\/a>. There&#8217;s a program called <a href=\"https:\/\/github.com\/AppImage\/AppImageKit\/releases\"><code>appimagetool<\/code><\/a> that can help. I downloaded the <code>appimagetool-x86_64.AppImage<\/code> file from their <a href=\"https:\/\/github.com\/AppImage\/AppImageKit\/releases\">github release page<\/a>. Fittingly, it&#8217;s also an AppImage, and will need to be set to executable.<\/p>\n<p>Then use <code>appimagetool<\/code> to package it back up:<\/p>\n<pre>$ appimagetool-x86_64.AppImage -v \/tmp\/cura_image\r\n<\/pre>\n<p>This should create an updated AppImage with the Creawesome mod called <code>Cura-x86_64.AppImage<\/code>. I renamed mine to <code>Ultimaker_Cura-Creawesome-4.0-x86_64.AppImage<\/code> and put it right next to my original <code>Ultimaker_Cura-4.0.0.AppImage<\/code> file in case I need to fall back to the &#8220;vanilla&#8221; version.<\/p>\n<p>And here is the <a href=\"https:\/\/www.foell.org\/justin\/files\/2019\/06\/Ultimaker_Cura-Creawesome-4.0-x86_64.appimage\">x86_64 AppImage for Cura 4.0 with the Creawesome mod pre-installed<\/a>. I hope this helps &#8211; let me know in the comments if you have any issues or had to do things differently.<\/p>\n<h3>Update<\/h3>\n<p>Upon publishing this I was notified that there&#8217;s already this <a href=\"https:\/\/github.com\/probonopd\/CreawsomeMod.AppImage\">fork of Creawesome<\/a> which has automated this process, so you can just <a href=\"https:\/\/github.com\/probonopd\/CreawsomeMod.AppImage\/releases\">download those releases<\/a> there!<\/p>\n<div class='kindleWidget kindleLight' ><img decoding=\"async\" src=\"https:\/\/www.foell.org\/justin\/wp-content\/plugins\/send-to-kindle\/media\/white-15.png\" \/><span>Send to Kindle<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>I recently saw this picture on Facebook &#8211; amazing 3D printing results from the Creality Ender 3 using the Ultimaker Cura slicer with the &#8220;Creawesome Mod&#8221;: This photo shows a &#8220;regular&#8221; Cura 4.0 print on the left and a Creawesome one on the right. Image courtesy of Thirl Thompson from the Creality Ender-3 3d printer&hellip; <a href=\"https:\/\/www.foell.org\/justin\/cura-creawesome-mod-for-linux\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"You can get awesome 3D printing results on your Ender 3 even on Linux using the Cura Creawesome mod.","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,3,123,8],"tags":[160,159,14,75,166],"class_list":["post-3337","post","type-post","status-publish","format-standard","hentry","category-business","category-casual","category-homemade","category-ubuntu","tag-3d-printing","tag-ender-3","tag-git","tag-github","tag-linux"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/comments?post=3337"}],"version-history":[{"count":11,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3337\/revisions"}],"predecessor-version":[{"id":3352,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/3337\/revisions\/3352"}],"wp:attachment":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/media?parent=3337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/categories?post=3337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/tags?post=3337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}