QRepRap is a full featured 3D printer host driver (slicer, connection manager, ...) I made from scratch with Qt and QtSerialPort in order to drive my home made RepRap.
A RepRap is an opensource self-replicating 3D printer, see
http://www.reprap.org.
It supports common features such as:
variable infill ratio
support
automatic dead link detection
loading common mesh formats (STL, OBJ, PLY, 3DS)
save and restore GCode
And less common ones:
minimal support generation
lower material density for support parts
first layers speed can be set to lower/higher than regular extrusion speed
estimate print duration
Slicing is multithreaded with OpenMP for faster processing on multicore CPUs.
NB: you will need a firmware on the client side to use QRepRap. I have mostly played with the TeaCup firmware until now.