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

pip3 install build twine
cd peerprint && ./build_multiarch.sh
cd .. && 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.3.1.tar.gz (79.6 MB view details)

Uploaded Source

Built Distribution

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

peerprint-0.3.1-py3-none-any.whl (79.8 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: peerprint-0.3.1.tar.gz
  • Upload date:
  • Size: 79.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for peerprint-0.3.1.tar.gz
Algorithm Hash digest
SHA256 cfdd5f73c082bec6ac96d470f7aa9c844473e4845e99ceadf1887c386ce62400
MD5 d4ae6364d15a6ab5dc77c3b08fb0d523
BLAKE2b-256 dbcd81821253f59fe82464aaba655a86028494d93d4b3ffdf5aa3bdf9ce930c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: peerprint-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 79.8 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.16

File hashes

Hashes for peerprint-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0e1184f800cc0e53536fe7095e05dfa1a3458f0122a9de7604f7a849c6e9f9d5
MD5 ffa2cde496bbe22cc09f92b04f0c772b
BLAKE2b-256 ed830660e4af5bed03571bb5d485089064592ce8fb707fcd73a9b753306be291

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