PeerPrint is a framework for sharing 3D printing tasks across a peer-to-peer network of 3D printers.
PeerPrint's mission is to facilitate coordination of a diverse network of 3D printers to enable efficient, reliable, and scalable 3D printing.
According to the US EPA, industry and transportation contribute over 50% of all greenhouse gas emissions.
While 3D printing (particularly filament) is not emissions-free, networked printing through peerprint can provide:
More 3D printers coordinating on the same work also means more parallelism in printing, and less disruption when one or more printers develops a problem and stops printing.
PeerPrint is not intended to be used directly, although it can be for development and monitoring purposes. Instead, it's imported as a dependency of other 3D printing software.
Integration in Octoprint via the Continuous Print plugin is tracked here. There is not currently a guide for integration, but one will emerge as part of that effort.
Installation for development requires Docker and docker-compose. Install these first, then get the repository with
git clone https://github.com/smartin015/peerprint
Start the test servers:
docker-compose build && docker-compose run
In a new console, run this to start a debug shell into one of the servers:
docker-compose run cli --volume=./peerprint/networking/testdata/server1/
Type help
to see a list of all commands, or see how they're implemented in peerprint/peerprint/server.py
in the Shell
class.
See .travis.yml
for CI testing configuration
All tests can also be run manually via docker-compose run test
python3 -m build
python3 -m twine upload --repository testpypi dist/*