Skip to main content

Peer-to-peer networked 3d printing

Project description

PeerPrint

build status

PeerPrint is a framework for sharing 3D printing tasks across a peer-to-peer network of 3D printers.

Mission

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:

  • better efficiency (fewer printers that are idle less often)
  • eco-friendly material choices, rather than new plastic which is recycled less than 10% of the time.
  • lower transportation costs (transporting 1kg of filament uses way fewer boxes, packaging, and transportation volume than tens - or hundreds - of small parts)

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.

Integration

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.

Development

Installation

Installation for development requires Docker and docker-compose. Install these first, then get the repository with

git clone https://github.com/smartin015/peerprint

Usage

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.

Testing

See .travis.yml for CI testing configuration

All tests can also be run manually via docker-compose run test

Deploying

python3 -m build
python3 -m twine upload --repository testpypi dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

peerprint-0.2.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

peerprint-0.2.0-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

Details for the file peerprint-0.2.0.tar.gz.

File metadata

  • Download URL: peerprint-0.2.0.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.13

File hashes

Hashes for peerprint-0.2.0.tar.gz
Algorithm Hash digest
SHA256 478e6b944be249edc720aab38349e26abe429d9d25d8fea0d7770109c34f36bc
MD5 e1cc8556feb33af56ed042a06d101ef6
BLAKE2b-256 8fd6cdbe3077c46dc79c88d9b4bcc4e53e1b35bc6f1187c88a6ebbd600c66948

See more details on using hashes here.

File details

Details for the file peerprint-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: peerprint-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 37.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.7.13

File hashes

Hashes for peerprint-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c42641f9d5704cf9fc513705041f7d91a6388a4b20010cf360571066d5962885
MD5 7465d12a6453d7796d856d161abcf179
BLAKE2b-256 fd606ea6ccdd6485fe3e4ce9e6bb01c0170c7fc6266958ec4ca4f7c8085e71ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page