Print |it!

Introduction
3D printing (additive manufacturing — AM) is a relatively young technology, rapidly gaining popularity. It is based on the principle of layer-by-layer creation (growing) of a physical object on a digital 3D model.

There are different technologies for layer fabrication (laser stereolithography, layer-by-layer fusing, etc.) using a variety of materials, but in general the process of 3D printing looks like this. The digital model created in the 3D modeling program must be transformed into a code that can be interpreted by printer. In order to do so, the 3D model in .stl format is loaded into a specialized program called a slicer, where it goes through the process of layering and conversion to binary G-code which is understandable to the printer. This process is called slicing. Then this code is run on the printer with special computer software or written to a portable memory card for subsequent direct printing without a PC.
Despite technology growing popularity and its general availability, you can hardly find these printers in every home around the world. Probably, this also will not happen in the coming years. There are several reasons. The main of them are the relative complexity of digital model creation, settings and printing process managing, that require special knowledge and experience, as well as the lack of universal solutions that combine the full range of printing technologies and materials used. Besides, technologies are being constantly improved and more advanced ones are always available at higher prices. Thus, for some household needs or even small-scale production in most cases it is impractical to buy a printer, if the use frequency does not soon cover the cost of its purchase and maintenance. According to statistics, about 90% of time the printers stand idle.

In order to overcome these limitations the market offered solutions such as marketplaces of 3D models and platforms that unite printer owners and those who need the 3D printing service (they are also called hubs). There are not so many such projects and they are well known among the target audience. The idea is to make 3D printing a simple and more accessible service for consumers providing a wide range of technologies and materials. This also creates additional opportunities for private printer owners to reach higher production capacity.
However, this approach has its own disadvantages. In the majority, hubs and marketplaces are simply sites where the customer can find a contractor (hubs) or a model (marketplaces), but the transaction between them is usually carried out on a trust basis and the guarantees are either absent or not obvious. Moreover, the sites are stakeholders and charge their commission (on average 15−20%) for the transaction, which falls on customer's shoulders. In their turn, marketplaces do not provide copyright protection for modelers. In addition, all such sites contain the drawbacks inherent in all centralized systems, the most obvious among them is insufficient data security. There are also some problems with fake ratings and reviews in such services. We decided to go beyond the usual site that provides stakeholder services.

We offer applied solutions based on blockchain technology to accompany process participants at all production stages (from digital model creation to the delivery of the finished product to the customer).

Print-it! is a complex of decentralized systems of distributed 3D-printing and a platform for service providing in the sphere of additive technologies.
The site carries the functions of the 3D printers hub and also contains its own marketplace 3D models.

The complex includes:
  • A transaction protection system based on smart contracts;
  • Decentralized slicer;
  • 3D modeler copyright protection system based on blockchain technology;
  • Decentralized file storage.
In the long term, each system can be treated as a separate product.

The main project objectives are:
• Incorporation of 3D printer owners (individuals and companies) providing 3D printing services, 3D modelers, potential customers who need 3D printing services;
• Exemption or significant minimization of commission fee (traditionally, similar sites-hubs take stakeholder commission) due to the smart contract presence;
• Transaction protection with smart contracts;
• Modelers' copyright protection with the help of blockchain technology;
• Secure storage of digital 3D models in the decentralized file storage;
• 3D models decentralized slicing to eliminate the "weak computer" factor and optimize the printing process;
• File transfer to the contractor (the printer owner) in the form of a ready-made G-code, as a way for printing process optimization and further protection of modeler work;
• The ability for the customer to remotely start printing on the contractor's printer even in abeyance, as well as video process control (via web camera);
• Inability to replicate fake ratings and reviews;
• Provision under the smart contract control of SLA (Service Level Agreement) on the order execution time for a more deliberate choice from the customer.
General process description
There are 3 parties involved in the process:
• The customer;
• The 3D printer owner;
• The 3D modeler.
Conceptually the process looks like this:
• Modeler creates a 3D model;
• The model is encrypted in a special way and loaded into the decentralized file storage;
• The customer selects the 3D model and printer which they want to use, creates an order and sends it to the contractor;
• Service payment means are frozen in a smart contract;
• The selected model is uploaded from the storage and transferred to decentralized slicing;
• The result of the decentralized slicing operation is a driving G-code which is loaded into contractor’s printer;
• The printing process starts;
• The contractor sends the finished product to the customer;
• After the customer receives the finished product or after a certain time, the smart contract pays the contractor and the modeler the agreed amount of money;
• Intermediate and secondary processes are also controlled by a smart contract.
Smart contract transaction
To begin with, the customer selects the 3D model they want to print in the marketplace. Having decided upon the model, they go on to select the printer which they would like to use (1). The choice of the printer is based on various criteria: the cost of the printing service, geolocation, technology and print quality, the estimated order execution speed (see below), ratings and reviews, SLA, printer ready state for taking the order, etc. The system calculates the total order cost taking into account the cost of the 3D model and printing.

The generated order is paid by the customer and sent to the print. At this point, smart contract transaction containing the order information is created. In particular, the transaction contains such data as the total order cost and the cost of its individual parts (model, print), the addresses of the customer's, contractor's and modeler's purses, the 3D model ID, the time of order sending and other necessary information. Transaction enters the smart contract (2), the funds are frozen. At the same time, a request to the decentralized file storage is formed for the model to be uploaded and transfered to a decentralized slicer, which parameters were set beforehand by the printer's owner (3). The model goes through the process of conversion to the driving G-code and then comes to the contractor transformed (4, 5). A transaction is formed with the time of order receipt by the contractor and the estimated time for order execution, taking into account the time of printing, the parcel formation and the product delivery. Data is sent to a smart contract (6). Rules for time calculation (see the section "Calculation of order execution time").

Depending on the condition (ready state) predetermined by the contractor, the printing process starts automatically immediately (carried out with the help of a special client) or expects to be started manually. On contractor's side, after printing starts, a transaction with the printing process start time is generated and sent to the smart contract. If during the printing for some reason the process has stopped, then the information about the stop time with the action code is sent to the smart contract. On the basis of action code, the smart contract decides (7) to wait for the process resumption or to terminate the order with a refund to the customer (8).

The information on the time of successful completion of printing is also sent to the smart contract and the contractor starts forming the parcel to send the finished product to the customer (9). The fact of order sending is also reflected in the smart contract.

The payment between with the owner and the modeler is carried out by a smart contract either after the end of the accounting time or if the customer has fixed the fact of product receipt in the system (10).

Differences are resolved by the dispute opening. Prior to the precedent exhaustion (through the service arbitration), the funds remain frozen in the smart contract, the time counters are stopped or updated.
Calculation of order execution time
Order execution time is used in the smart contract as a trigger for making payments to the contractor and the modeler (if the customer has not confirmed the fact of the finished product receipt until this point) and also to calculate SLA by the order execution time at certain process stages.

In the first approximation, the estimated time consists of 3 parts:
  • The printing time;
  • The parcel formation;
  • The product delivery.
The delivery time is a constant, automatically set at the system level, based on delivery methods and postal service and other parameters.

Time for the parcel formation is determined by the contractor at the stage of filling his profile in the personal account. This parameter can be changed. The indicator also appears in SLA calculations of the order formation time.

Print time is calculated based on the printer characteristics, which the contractor indicated at the stage of profile filling, and data on the model obtained after the slicing (the figure size, the presence of overhanging structures support, substrate presence, etc.).

All these data go into a smart contract where the "time counter switches on". In some cases, the "counter" can stop (process pause), reset (process stop) or recalculate (new data occurrence).
Copyright protection and data storage
The system has a three-level copyright protection system for 3D models:
• Special encryption of the model creation history and final result;
• Final result transfer to a third party (contractor) only in the form of G-code, without direct stl file transmission (see the section "Decentralized slicing");
• 3D model public moderation.
Encryption
Each file saving while working on the model is intercepted and encrypted in a special way. Then the file is divided into smaller parts and for each of them a hash code is generated, which is placed in a kind of information block and loaded into the decentralized file storage. The meta-information of such block contains a time stamp, the author's name, some parameters of the program where the model was created, and other identifying information. It also contains the hash code of the previous block. The last block of information in the chain, which is a intermediate result fragmented file, is connected to the first block of the next saved result. Thus, a chain of encrypted blocks, which is the file creation history with identifying information, is created and loaded into the decentralized storage. Access to such history can be obtained only with a private key, which is stored by the 3D model author.
The resulting 3D model file is also divided into parts. For each such part a hash code is generated and an information block containing this hash is created. The meta-information of each such block contains, among other things, the hash code of the neighboring block from this chain and the model creation encrypted history. All these components are loaded into the decentralized file storage. If necessary, all final file parts undergo the reverse conversion process to stl for subsequent slicing or display in the marketplace.
Public moderation
As an additional copyright protection, all models uploaded to the marketplace are moderated publicly by the same modelers registered in the system. The model is moderated for a certain time and the subscribed participants are notified (optional) about the model that has appeared. If any of the participants discovers plagiarism, they can open a dispute. The model will not be uploaded to public access until the dispute is resolved (through service arbitration). As the proof for the authorship to the model, the the model creation history, that was saved in the blockchain, is to be taken. The dispute opening must be supported by the certain number of tokens to protect the system from attacks.
Decentralized slicing
Model slicing (converting a stl file into the printer driving G-code) can be difficult, especially if it is performed on a weak computer. The decentralized operation execution by many network participants will help to significantly accelerate the process of slicing. In addition, decentralized slicing of a fragmented source model, carried out in a distributed manner, serves as another way to protect the model author from the source code transfer to a third party.

Encrypted at an earlier stage, the source file is uploaded from the decentralized storage upon request at the stage of order sending to the contractor. The uploaded file is tested for model errors (intersecting edges, etc.). The testing can be performed in a cloud service, such as Netfabb Online Service or alike (or it can be its own built-in solution).

After a successful testing, the file is divided into several parts and each part is sent to the network for slicing. If for a certain time the slicing of one of the parts for some reason was not performed, it is transferred to another system node for repeated slicing. And so on until all file parts are converted to G-code. The file is split up to fairly small parts, so that the slicing process takes a few minutes or even seconds.

After the slicing completion, the individual parts are merged together into a single G-code and sent to the contractor
SLA, reviews, ratings
The system is protected from deliberate fake reviews and ratings "winding up". Only those users who have internal tokens on their purse accounts can leave reviews and give ratings to contractors and models, and only for those orders that they formed. Thus, it will not be possible to leave a review from outside and of non-existent or another's orders.

Also, there is SLA system on the execution time of separate order stages, controlled by a smart contract. Basing on this system, customers can assess the contractors reliability in terms of SLA level on different aspects.
SLA can be evaluated according to the following conditions:
• The time from the moment the order was received to the start of the printing process (with manual print start);
• Print time (compared with the estimated print time obtained from slicing data and printer characteristics);
• Time of the contractor’s response to the problem;
• Parcel formation time.
The time is set by the user independently (except, perhaps, the printing time).

All user-defined time parameters are sent to the smart contract with the first transaction as constants. Then these constants are compared with the subsequent data on the actual time of different process stages, entering the smart contract on the contractor's part, and the percentage of SLA is calculated.
Conclusion
According to Boston Consulting Group (BCG), the 3D printing market volume in 2017 was $ 5 billion, and according to forecasts by 2020 it will reach $ 15 billion and by 2035 it will be $ 350 billion. Cheaper and better-quality production, as well as the structuring of 3D printing services market are among the main goals in this rapidly developing sphere. The complex of distributed 3D printing decentralized systems Print-it! will contribute to the solution of these tasks, taking as a basis such criteria as safety, reliability, low price and high production speed. We can continue our service development history with the development and implementation of software and hardware for conveyor automated production creation. Complex Print-it! in combination with such means can create conditions for the implementation of autonomous 3D printing systems that do not require constant human participation at any stage of the production cycle. Such approach will open new horizons. For example, the creation of full-value vending 3D printers.
Made on
Tilda