Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Workspace for new Toolpathing software.
C++ C FORTRAN Objective-C Shell Python Other
Failed to load latest commit information.
configs/eclipse moved VS2010 directory to the project base directory
debian Debian stuff in line with other projects
doc moved some documentation to meet the standards
inputs Add some more stretchlet layers and set the unit test to use one that…
src Pull version from mb_version using mb_install
stl Fix for parent hierarchy object
submodule Pull version from mb_version using mb_install
test_cases Added unit tests for bed align functionality
.gitignore Merge branch 'master' into spurs
.gitmodules Use https clone URL for mw-scons-tools now contains windows cppunit instructions moved some documentation to meet the standards moved some documentation to meet the standards
Makefile Alternate variant-free sconstruct for backwards windows devs Typo fix
SConscript Take jsoncpp out of LIBS
SConstruct Making scons clean up after itself.
SConswinstruct Alternate variant-free sconstruct for backwards windows devs some changes so the svg files look clearer Don't fail if unit_tests.pri doesn't exist Added
end_replicator_dual.gcode [finishes: 29931677] Use start and end gcode from ReplicatorG by default
mb_version Adding version file.
miracle-pla-noaccel.config Stripped out duplicate values from slicerconfig. RegionerConfig now u…
miracle-pla.config Stripped out duplicate values from slicerconfig. RegionerConfig now u…
miracle.config Set maxSpurLength to the filament width so that we're getting all the…
miracle_grue.doxyfile Merge branch 'loop' Removed unnecessary quotes that were breaking some qmake setups Updated to use correct json-cpp qmake file refactors: remove error messages in ctors, file Optionally add M70 at start of layers starting a new test
scons.bat Local scons.bat that invokes scons.bat in Python27/Scripts for window…
start_replicator_dual.gcode [finishes: 30372237] First pass at a volumetric anchor. Requires that…
start_replicator_dual_pla.gcode Update start gcode for PLA.

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 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.

Something went wrong with that request. Please try again.