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.

Miracle Grue


This project is the basis for a new toolpathing engine to supplement skeinforge in the MakerBot/3D printer community. The engine is C++ based.


This project is laid out in the following directory tree (roughly)

  • documentation/ Documentation
  • configs/ Eclipse project, personal stuff
  • src/ Source Code for the project MiracleGrue
    • json-cpp/ library to read/write JSON text files (configuration)
    • mgl/ the Miracle-Grue library
    • the main file
    • unit_tests/ various test programs (using cppunit)
  • inputs/ Some stl input files for demo
  • test_cases/ unit test input and output files
  • site_scons build files for qt
  • submodule/
    • EzCppLog/
    • json-cpp/
    • libthing/
    • optionparser/
    • toolpathviz/

** miracle.config ** This is the default configuration file for Miracle-Grue. It contains information like the layer height, the nb of shells, and the infill pattern. When miracle-grue executes, it looks for a 'miracle.config' in the current directory, unless -c is used to specify a different config file.

** SConstruct ** This file contains instructions to build the project. It is the Makefile equivalent for the scons tool.

** ** This file contains a guide to install the tools on various platforms and compile the code (using scons instead of makefiles). Please read to get your hacking started.

** Running Miracle-Grue ** There are are few programs generated by the build:

*** bin/miracle-grue ***

this is the skein engine. It needs a config file (-c option) and a 3D model file

Usage: miracle-grue [OPTION] [FILE]

example: bin/miracle-grue c=my_print.config inputs/3D_Knot.stl

Options: c=[configuration file name](default looks for miracle.config in the current directory) f=[first layer height] l=[layer height] w=[layer width] t=[space between infill 'tubes'] s=[angle between slices for infill]

*** tests/xxxUnitTest ***

the tests directory contains unit test programs. The generated output for these tests is sent to the test_case directory.