README

Readme

MightyScape for Inkscape 1.0+

In short: A maintained extension collection for Inkscape 1.0+, working on Windows and Linux. There are 237 extension folders with 411 .inx files inside. We also take part at https://inkscape.org/gallery/=extension/ (with single extension uploads).

About MightyScape

Looking to get more productive we started using some more special Inkscape extensions. We love Inkscape. And we love things like 3d printing, laser cutting, vinyl cutting, pen plotting, maths, physics, geometry, patterns, 2D drawings, 3D CAD , embroidery and more stuff. All this you can do with Inkscape! We recognized that there is no good source to pull extensions in a quick and clean way. Each developer puts his own code on his hidden/unknown repository and often without enough documentation or visible results for common understanding. Many plugins are completely unknown that way, and a lot of extensions are forked x times or are unmaintained. So many of them do not work with recent Inkscape or were never tested with newer versions so far.

What and why?

This is a one-to-bundle-them-all collection of hundreds of additional functions to Inkscape (extensions) for the new Python 3 based version 1.X including documentation, made for makers and artists. All plugins where sorted into custom categories (to avoid overloading the standard extension menu of Inkscape). You can find most of them in sub menu "FabLab Chemnitz". We renamed and cleaned a lot of *.inx files and *.py files. We applied some function renamings, id changes (for preferences.xml clean-keeping), spelling fixes, formattings and parameter corrections.

It took years to search and find all them on the web (so much different possible sources where to find!), to read, to comment (report issues), to fix problems, to test, to document and to provide them online. Many extensions were nearly lost in translation.

At least this repo will help to bring alife some good things and will show hidden gold. It meshes things together in a fresh and bundled way - with ease of use and minimum installation stress. A lot of code is not at the optimum. A mass of bugs has to be fixed and different tools should be improved in usage generally. This package will show errors more quickly. So hopefully a lot of new code fixes is result from this package. Maybe some people help to make all the stuff compatible with Inkscape 1.0 and newer.

Credits / Help to develop

  • This is not a repository to steal the work of others. The credits go to each developer, maintainer, commiter, issue reporter and so on. Please have a look at the meta.json in each directory to get information about licenses and authors.
  • All plugins are open source licensed and are GNU GPL compatible. See https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses for more details.
  • All plugins were taken from each git repo's master branch (if git/svn available). There might exist some development branches, fork branches or issue comments which might resolve some issues or enhance functionality of provided plugins. To check for recent github forks use https://techgaun.github.io
  • A lot of plugins were fixed by ourselves in countless hours
  • If you find bugs or have ideas please push them directly to the corresponding root repository of the developer or put it to https://github.com/vmario89/mightyscape-1.X/issues
  • Credits for creation of this big package: Mario Voigt / FabLab Chemnitz

Used software for development

  • Gitea and Github for hosting this
  • LiClipse for code and git committing
  • regular Python installation (both Linux and Windows)

Requirements / Tested environment

  • tested with Inkscape
  • tested using Python 3.8.5 64 Bit and 3.9.4 64 Bit
  • some extensions require custom Python installation/modules. See documentation at our FabLab Chemnitz Wiki (see below).
  • some extensions require additional commands, packages or other installers (see documentation too).

Alltime ToDos

  • clean code
  • make more precise documentation with more examples
  • check out command line handling of extension. This was totally ignored yet

Installation, documentation and examples

The structure of this repo is intended the be easy. Just copy the complete MightyScape folder or the folders you want to your Inkscape's extension directory. You will find redundancies in this repo like node.exe (NodeJS). We did it this way to give easy possibilty to only pick the extensions you want (instead creating ~200 repositories). MightyScape does not work with any releases or feature branches. Just use "git clone" to get the recent commit from master branch. Please see at https://y.stadtfabrikanten.org/mightyscape-overview for installation tips like required python modules, file locations and other adjustments.

Donate

<img src="./extensions/fablabchemnitz/000_about_fablabchemnitz.svg">

We are the Stadtfabrikanten, running the FabLab Chemnitz since 2016. A FabLab is an open workshop that gives people access to machines and digital tools like 3D printers, laser cutters and CNC milling machines.

You like our work and want to support us? You can donate to our non-profit organization by different ways: https://y.stadtfabrikanten.org/donate

Thanks for using our extension and helping us!

Locations

This repo has two remotes:

Zip Archives Mirrors

If you only want to download single parts of MightyScape, use one of the following mirrors:

QUICK OVERVIEW (POSTER)

Download Poster

SUPPORTED INKSCAPE VERSIONS

MightyScape supports

  • Inkscape portable (from zip or tar.gz)
  • regular installation with MSI Setup on Windows
  • regular installation from package manager like dnf/yum or apt

    sudo apt install inkscape #Ubuntu
    sudo dnf install inkscape #Fedora

UNSUPPORTED INKSCAPE VERSIONS

MightyScape does not support the snap version and also no AppImage version of Inkscape. The snap edition comes with restrictions letting a lot of extensions fail to work. The reason is the missing access to external python interpreter. So libraries like openmesh or pyclipper cannot be used. The AppImage version will fail for a lot extension too because subprocesses from the AppImage have no acccess to /tmp directory. You can still install MightyScape with snap or AppImage version but beware to get different errors. Feel free to contribute solutions to fix those issues.


INSTALLATION

Get the files

MightyScape project is located at github and gitea. See the readme at section "Remotes" to clone or download the files. If you want some single extensions only check out the official Inkscape Extension Gallery or our zip file mirrors.

There are two places where Inkscape extensions can be located by default, either install (global) directory or user directory. We put the extension in the user's appdata directory because if we would put it to the installation folder of Inkscape we would risk deletion by upgrading. If we put them to the user directory we do not lose them. MightyScape is a all-on-one bundle.

Locations:

OSUser directoryGlobal directory

Linux (Ubuntu, Fedora)

~/.config/inkscape/extensions/ (if installed with apt)
~/.var/app/org.inkscape.Inkscape/config/extensions/ (if installed as snap package) → We do not support snap yet
/usr/share/inkscape/extensions/ (if installed with apt)

Windows%appdata%\inkscape\extensions\C:\Program Files (x86)\inkscape\extensions\ (32 Bit)
C:\Program Files\inkscape\extensions\ (64 Bit)

You can install MightyScape by two ways. Using git is the preferred one. Adjust the target to your needs, as described above

#Windows example
cd %appdata%\inkscape\extensions\
git clone https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X.git

#Linux example
cd  ~/.config/inkscape/extensions/
git clone https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X.git

Alternatively you can download the bundle as .zip or .tar.gz archive and then place it to your target directory (you can convert that zip dir to the git-way using the upgrade extension later)

Install Python3 + modules and configure Inkscape

This is usually a required step for Windows systems or Linux systems which use an AppImage instead a regular installation. Else, if you use regular Linux OS and install Inkscape using the package manager and if you have a recent python 3 there is no need to do anything. This step is especially required if you need to use Python libraries with C bindings, like scipy or pyclipper. Some extensions in the MightyScape package require those. Have a look at MightyScape 1.X - Extensions Overview to check what is needed.

Depending on your operation system, please edit your preferences.xml which usually is located at

  • %appdata%\inkscape\preferences.xml (Windows)
  • ~/.config/inkscape/extensions/preferences.xml (Linux)

You need to adjust the following line to add a custom python-interpreter like this:

  <group
     id="extensions"
     python-interpreter="C:\Users\youruser\AppData\Local\Programs\Python\Python39\pythonw.exe"
...

(warning) If you get a nasty popup windows each time you are executing an extension, please check if you really use pythonw.exe. Do not use python.exe  because this one will be visual.

A lot of Inkscape extensions require additional python modules. In this case we need to switch from Inkscape's default Python interpreter to a custom one (mostly on Windows).Especially the Windows built of Inkscape is a little bit different than the Linux Inkscape's, because it does not use MSVC compiled CPython. Instead it uses GCC compiled Python using MSYS2. This leads to uncompatible components with the default Inkscape's Python. If you want to use the shipped Python env you might need to install pip into the /bin directory of Inkscape to install additional non C bound libraries. You can install pre-compiled (C bindings) libraries from https://repo.msys2.org/mingw. Otherwise just install the official Python 3 version from python.org mirror → https://www.python.org/downloads/windows

The following extra libraries are required for some of the extensions within the MightyScape package:

cd %AppData%\..\Local\Programs\Python\Python39\Scripts
#upgrade pip
python -m pip install --upgrade pip 

#install packages. we put each package on a separate line because if something fails between, the complete command fails
pip3 install debugpy
pip3 install lxml
pip3 install moderngl
pip3 install numpy
pip3 install networkx 
pip3 install openmesh
pip3 install opencv-python
pip3 install pyclipper
pip3 install pillow 
pip3 install scipy 
pip3 install scour 
pip3 install shapely 
pip3 install svg-to-gcode 
pip3 install svgpathtools 
pip3 install vpype 
pip3 install vpype-dxf 
pip3 install GitPython 
pip3 install wheel 
pip3 install pytesseract
pip3 install cairosvg
pip3 install PyQt5

#if openmesh fails to install please see https://stadtfabrikanten.org/display/IFM/Paperfold for more details about installing it

#vpype occult plugin setup
pip3 install git+https://github.com/abey79/occult.git#egg=occult

#boxes.py setup (Linux only; already integrated as sub bundle for Windows users)
git clone https://github.com/florianfesti/boxes.git
cd boxes
sudo python3 setup.py install #we need to do as superuser

#plycutter
pip install git+https://github.com/tjltjl/plycutter.git

#to list and upgrade outdated modules:
pip list
pip list --outdated

#warning: that might be dangerous.
#Linux: pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U 
#Windows: for /F "delims= " %i in ('pip list --outdated') do pip install -U %i

#Fedora
dnf install python3-devel

(warning) Using a custom Python environment on Windows wil make official Extensions Manager impossible to run because it cannot be properly installed because the library "pygobject" will fail.

UPGRADING

There are two ways to upgrade MightyScape. Choose from:

  1. if you installed MightyScape using git clone, just go to the git directory and run "git pull" or use the extension "Upgrade MightyScape", which can be found in Extensions → FabLab Chemnitz → Upgrade MightyScape
    • There is some special updater extension which allows to update the complete MightyScape package once it was properly pulled by git. You need to install GitPython library to use the updater:
  2. if you previously downloaded a bulk zip file from github or gitea, just replace the content of the containing folder with the new files

About Inkscape extensions in general

Extension calls are possible in different ways. You may find some description at http://wiki.inkscape.org/wiki/index.php/Extension_requirements. Inkscape can run extension from a lot of different interpreters and executors like Python, Ruby, Perl, binary executables, bash scripts and so on.

The "..." dots indicator

Please note that extensions with "..." indicate the extension will have some GUI / menu to use. Extensions with out will perform action directly on current selection or the whole document!

Not integrated due to errors / obsolete

The following plugins were checked but were sorted out due to errors or less use.

Removed due to errors / not integrateable

ExtensionReason
1

https://github.com/izaklast/INKSCAPE_spiral_GENERATOR

2https://github.com/butesa/ink-generator-python
  • obsolete - replaced by NextGenerator
3

path_autonotch

  • not working at all. seems that it was never finished
4

ink2canvas

  • already included in Inkscape 0.92.4 as native tool
5https://github.com/vovythevov/inskcape_extensions
  • native function in Inkscape 0.92.4 (and earlier) - transforms menu
6

https://github.com/LeMinaw/removeDuplicates

7

https://github.com/ThoreMehr/inkscape-DrawerCabinetMaker

8https://github.com/dustinandrews/InkscapeExtensions/blob/master/MeasureAllPaths
  • native function in Inkscape 0.92.4 (and earlier)
9https://github.com/lis-epfl/inkscape_pattern_extensions
  • not that useful
10https://github.com/pmosakowski/inkscape-extensions/roland.inx / csv_to_vinyl.inx
  • did not work as expected. does nothing
11https://translate.google.com/translate?hl=de&sl=ja&tl=en&u=http%3A%2F%2Fdp48069596.lolipop.jp%2Fsd%2Finkscape_script.html
  • closeoff → what does it do?
12place-randomly
  • nearly the same as "Scatter" or "Pattern along path" extension except the random feature
13inkscape_kerf_correction
  • it did something but did not work as expected
14https://github.com/br3ttb/inkscape-kerf-adjuster
  • it did something but did not work as expected
15combine_touching
  • native functionality in Inkscape 0.92.4 (and earlier)
16

psd_import

  • failed on nearly every tried PSD file. It's too outdated
17fillstroke.inx
  • failed
18https://github.com/Pseudomanifold/polyhedron-3d-vertex-colours-plugin
  • native functionality in Inkscape now
19https://bitbucket.org/daviddamerell/inkscapesaveasicoextension
  • not that useful
20https://github.com/fsantini/inkscape_LinkSVG
  • not that useful
21https://github.com/aureleduda/defs-remove-duplicate
  • seems to be useless in Inkscape 1.1
22https://github.com/nrarmen/drawer-divider-ext
  • what does it? how to use? failed with Inkscape 1.1
23

https://github.com/RainyDayHiker/Inkscape_Jigsaw_Puzzle

24

https://github.com/minirevollo/Inkscape-Puzzle-Generator

25

https://github.com/THX2112/Eurorack-Panel-Designer

  • tested in Inkscape 0.92.5 - works but not that useful
26

https://github.com/kkliebersbach/inkscape-mdshadow

  • tested in Inkscape 0.92.5 - works but not that useful
27

https://github.com/Adiaphora/inkscapeExtens to swatches

  • tested in Inkscape 0.92.5 - works but not that useful
28

https://github.com/dustinandrews/InkscapeExtensions/tree/master/MeasureAllPaths

  • native function in Inkscape (Visualize Path → Measure Path)
29

https://github.com/AntumDeluge/inkscape_simple_path_optimize

  • not that useful
30

https://github.com/fomenal/PointSellier

  • tested in Inkscape 0.92.5 - works but; migration to Inkscape 1.0 failed; based on Scatter / Pattern on Path; effect seems to be very useful!
31

https://gitlab.com/lramage/inkscape-glitch-effect-extension

  • empty repository
32

https://github.com/mrsalo/inkscape_glue_extension

  • native function in Inkscape (Align and Distribute)
33

https://github.com/mdtopham/inkscape_cricut

  • tested in Inkscape 1.0 - works after migration, but not that useful
34

https://github.com/hacktoon/split

  • native extension in Inkscape 
35

fablab-inkscape-plugins

  • most features can be done with other extensions / not that useful
36

https://github.com/makejs/inkscape-laser

  • not that useful
37Pattern randomly along Path
  • see Scatter extension
38Script to export an SVG file to PDF, EPS and PNG
39Create Sketch Layer
40

https://gitlab.com/Jeremy.Chardon/analysis_stroke

  • does not work; whats the use?
41

https://github.com/jbruce12000/inkscape-extension-target

  • seems to be useless unless we deal with weapons ...
42

https://github.com/clara-kang/pattern_triangle_mapping

  • functionality available as Live Path Effect (LPE)
43

https://github.com/pluveto/Mathink

  • Windows only extension
44

https://github.com/PhocaCz/PhocaInkscapeSaveAs

  • jpg, png, webp, tiff export is native in "Export PNG Image" function dialog of Inkscape
45

https://github.com/gebhardtkevin/HeightMapMaker

  • dead project. generates a scl file, but the output is useless because there is no further processing software for it.
46

https://wiki.evilmadscientist.com/Inkscape_and_WaterColorBot#Snap_Colors_to_Layers_.28beta.29

47https://github.com/monomon/inkscape_rounded_corners_rect
48https://github.com/alejandrogonzalvo/fitscale/blob/main/fitscale.inx
49https://github.com/frank4466/inkscape-tableau
  • we use Live Path Effect "Construct Grid"
50

https://gitlab.com/lramage/inkscape-glitch-effect-extension

  • not functional (no code at all)
51

https://inkscape.org/~RWE2/%E2%98%85frame+2

Not integrated yet / investigating

Not integrated yet
  1. https://github.com/aesuli/toXY
  2. https://gitlab.com/mnesarco/inkscape-pyscript
  3. https://github.com/santhoshtr/inkscape-hyphenation/tree/master/extensions
  4. https://inkscape.org/~mutterer/%E2%98%85ij-macro-panel-and-other-figure-extensions
  5. https://inkscape.org/~doctormo/%E2%98%85import-clipart
  6. https://github.com/raniaamina/inkporter
  7. https://github.com/damienBloch/inkscape-raytracing
  8. https://gitlab.com/EllenWasbo/inkscape-extension-duplicatereversejoin
  9. https://gitlab.com/EllenWasbo/inkscape-extension-calibration-frame

  10. https://gitlab.com/fej/inkscape-mobile-export

  11. https://github.com/burghoff/Academic-Inkscape
  12. https://github.com/fruch7i/inkscape_gif_export
  13. https://sourceforge.net/projects/inkplot
  14. https://github.com/tomlechner/inkscape-stuff
  15. https://github.com/SilentSniperoo/inkscape-extensions
  16. https://github.com/konsumer/inkscape-svgo
  17. https://github.com/sonejostudios/InkscapePreviewLayer
  18. https://github.com/lifelike/countersheetsextension
  19. https://github.com/fsmMLK/inkscapeCreateMarkers
  20. https://github.com/fsmMLK/inkscapeCartesianAxes2D
  21. https://github.com/fsmMLK/inkscapeCartesianPlotFunction2D
  22. https://github.com/fsmMLK/inkscapeCartesianPlotData2D
  23. https://github.com/fsmMLK/inkscapeCartesianStemPlot
  24. https://github.com/fsmMLK/inkscapePolarAxes2D
  25. https://github.com/fsmMLK/inkscapeLogicGates
  26. https://github.com/fsmMLK/inkscapeCircuitSymbols
  27. https://github.com/fsmMLK/inkscapeDimensions
  28. https://github.com/jnweiger/inkscape-silhouette
  29. https://bitbucket.org/matyilona/imagealigner
  30. https://inkscape.org/de/~PacoGarcia/%E2%98%85inkscape-to-povray
  31. https://github.com/Rafafouille/inkscape_liaisons → http://inkscape.allais.e
  32. https://github.com/erichVK5/inkscape2pcb
  33. https://github.com/ahmad-saeed/inkscape-kuka
  34. https://github.com/KawateiHikaru/inkscape-timsav
  35. https://inkscape.org/de/~fdesar/%E2%98%85origami-ext
  36. https://github.com/zxfr/strokefont_cyrillic
  37. https://github.com/mattharrison/Inkscape-Slicer-Extension
  38. https://github.com/lisjump/dopplemaker
  39. https://gitlab.com/Moini/inkscape-guide-tools
  40. https://gitlab.com/su-v/inx-attributelabels
  41. https://gitlab.com/su-v/inx-exportobjects
  42. https://gitlab.com/su-v/inx-modifyimage
  43. https://gitlab.com/marcjeanmougin/inkscape-pdb-input
  44. https://gitlab.com/users/su-v/projects
  45. http://xia.dane.ac-versailles.fr
  46. https://github.com/speleo3/inkscape-speleo/blob/master/extensions
  47. https://github.com/Feuermurmel/inkscape-shape-cli/tree/master/inkscapeshapecli
  48. https://github.com/artemtech/inkscape-multicalendar
  49. https://github.com/junichi11/gimp_psd
  50. https://github.com/xyz2tex/svg2tikz
  51. https://github.com/lee-b/svgslice
  52. https://github.com/Alpt/gdadin
  53. https://github.com/lingo/inkscape_onionskin
  54. https://github.com/utlco/tcnc/tree/master/inkinx
  55. https://github.com/florianfesti/hotwire
  56. https://github.com/mrbeam/mrbeam-inkscape-ext
  57. https://github.com/lansing-makers-network/thlaser-inkscape-plugin
  58. https://github.com/parogers/thlaser
  59. https://github.com/KnoxMakers/KM-Laser
  60. https://github.com/attraktorhh/inkscape_laserplugin
  61. https://github.com/MakeICT/inkscape-lasercut-dxf
  62. https://github.com/justdue/Plugin-inkscape
  63. https://github.com/TobiasBodewig/Inkscape-FormakerLaser-Plugin
  64. https://github.com/ringo2k/laserengraverInkscapeplugin
  65. https://github.com/FlexiLee/laserengraver
  66. https://github.com/roboticseq/laserengraverFor3DPrinter
  67. https://github.com/jed-frey/InkscapeLaserGCode
  68. https://github.com/makejs/inkscape-laser
  69. https://github.com/kallaballa/ctrl-cut
  70. https://github.com/ChrisWag91/Inkscape-Lasertools-Plugin
  71. https://github.com/sonex128/thlaser-inkscape-plugin
  72. https://github.com/guiEmotiv/inkscape-laser-cutter-engraver
  73. https://git.nexlab.net/machinery/laser-gcode-exporter-inkscape-plugin
  74. https://github.com/dapperfu/inkscape_LaserGCode2
  75. https://github.com/florianheller/LaserSVG_Inkscape
  76. https://github.com/yy502/inkscape-laserpecker

Wrappers and pre/post processors for Inkscape files

  1. https://github.com/denisri/fdc_catamaps
  2. https://github.com/RobG73/InkscapeFileMaker (create SVG files by command line/scripts)
  3. https://github.com/fpermana/svgbuild-py3 (generate video files from SVG)

Where to find more Inkscape extensions?

Inkscape extensions are spread over the net. Some good soures to find new stuff:

INX Linting and validations

For validation purposes of all inx files we can use the following step:

apt-get update && apt-get install libxml2-utils #install require stuff  

cd ~/.config/inkscape/extensions/mightyscape-1.X/extensions/fablabchemnitz
./000_validate.sh #does not support linting for deeper folders (no recurse)

#or lint a single file in an extensions' dir:
cd <yourExtension>
xmllint --noout --relaxng ../inkscape.extension.rng *.inx

If there is an error message instead of the export/import dialog, check the file or console log from Inkscape:

#Windows
%AppData%\Roaming\inkscape\extension-errors.log

#Linux
~/.config(inkscape/extension-errors.log

Counting INX files and folders:

cd ~/.config/inkscape/extensions/mightyscape-1.X/extensions/fablabchemnitz
find ./ -type f -name "*.inx" | wc -l
ls -d */ | wc -l

Donate

You like our work and want to support us? You can donate to our non-profit organization by different ways: https://y.stadtfabrikanten.org/donate

Thanks for using our extension and helping us!

  • No labels

1 Comment

  1. Anonymous

    This is brilliant ! Thanx - Daniel K. Schneider, http://faclab.ch/