Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.


This is currently a work in progress, see the caveats below

A fork of Enrique's Skeinforge, taken from ahmetcemturan's SFACT.


  • Simplify codebase in order to make the algorithms clearer.
  • Seperate core Skeining functions from GUI.
  • Remove dependency on TKinter.
  • Simplify and consolidate configuration and profiles.
  • Identify performance improvements.


  • Currently a work in progress - no guarantee the program will work nor produce identical results to Skeinforge/SFACT.

  • Functionality has been removed as part of the simplification process. For a fully developed modular system with a working GUI please refer to the original Skeinforge or SFACT derivative.

    • The following plugins are currently available: carve,bottom,preface,inset,fill,multiply,speed,dimension,cool,comb,support (from raft),export
  • Only python 2.7 is supported.

  • No GUI Minimal GUI written in wxPython. Features:

    • Profile selection
    • Profile copying, including effective profile (values from both the default profile and the selected profile)
    • Basic profile editing
    • Skeining
    • Gcode visualisation (using Gviz module from Kliment's Printrun)
  • Supports only stepper extruders and volumetric extrusion.


  usage: [-h] [-c config] [-p profile] [-o output] [-r reprocess] file

  Skeins a 3D model into gcode.

  positional arguments:
    file          The file to skein. Files accepted: stl, obj, gts, and svg or
                  pickled_slicedmodel files produced by SkeinforgeEngine.

  optional arguments:
    -h, --help    show this help message and exit
    -c config     Configuration for skeinforge engine.
    -p profile    Profile for the skeining.
    -o output     Output filename (including path). Overrides other export
                  filename settings.
    -r reprocess  Comma seperated list of plugins to reprocess a pickled sliced model
                  file. The export plugin is automatically appended.  

GUI Usage



  • Configuration is divided into two files: skeinforge_engine.cfg for core program settings and a profile for the runtime plugin settings.
  • If no profile is given on the command line then a default profile is used: fallback.profile. The default profile can be specified in skeinforge_engine.cfg.
  • Profile settings are cummulative, that is the default profile is always read first, and then the given profile. Any settings not defined in the given profile will be picked up from the default.


  • Reprocessing allows you to use a pickled_slicedmodel file (if this is turned on in the export settings) to reload the underlying data structure and then reapply specific plugins. For example, the following command would load an existing gcode object and reapply the fill plugin from the specified profile:
    • -r fill -p new.profile test.pickled_slicedmodel

Further Documentation

  • The wiki contains some notes about the design and process.
  • The Api Docs are generated by Epydoc are most likely out-of-date but can be browsed for an idea of the code.


  • Credit to Enrique and the original contributers in making Skeinforge available, and to Ahmet for his contributions through SFACT.
  • SimpleEditor and GViz classes taken from Kliment's Printrun


GNU Affero General Public License


Stripped down Skeinforge






No releases published


No packages published