Towards a Conceptual Notion for a Universal Printing Machine

This work is concerned with 3D printing. It's main goal is to establish a conceptualsetting in which the theory of 3D printing can be developed. Following the analogy that aUniversal Turing Machine, in a veryprecise and specific way, computes everything that is computable, we propose to the development for the notion of a Universal PrintingMachine. It is an abstract notion that will simulate any 3d printer, either in existence or to be invented. In theory, it canproduce anything which can be printed. In other words, we areproposing to develop a theoretical model of a 3d printer which will serveas a reference to the current and future developments in the area.


Introduction
Our main goal is to establish a conceptual setting in which the theory of 3D printing can be developed. As far as we know, there has never been made any attempt to achieve such a goal. The results in [1] are somehow related but not in the same direction. The need for such a theory and frame work has been slowly developed in our minds during the last 15 years.
In simple terms the idea of 3d printing is not difficult to pose, see for example [2]. The idea of a Universal Printing Machine on the other hand is not so easy to explain. For that reason we will use an analogy which was in fact our inpiration. The analogy is with the theoretical concept of a Turing Machine (see for example [3] and references therein).
A Turing Machine can be thought of as consisting of a tape, with cells, in which there are written symbols, and a read-write head that moves along the tape. At each time the head can read the tape, overwrite it, and move to the left or to the right. It also has a collection of inner states which may change and determine different behaviours. This is an intuitive interpretation of the concept. Formally, from a purely mathematical point of view, it consists of five sets and a transition map, generalizing thus the notion of an automaton. This conceptualization is the base of all the theory of computation because everything that can be computed is computed by a Turing Machine (see for example the chapter on computability in [4], p. 262-265).
We have identified the need for a similar conceptualization of 3D printing. We aim at achieving a theoretical model for a 3D printer. The model will be based on the notion of multilink, see [5]. A multilink is a mathematical structure which arose as a solution to encode many aspects of 3D printing. In particular, some specific algorithms that are fundamental for 3D printing, such as slicing, scanning, offsetting, segmentation, are suitably described using some special cases of multilinks (see [5] for some concrete examples). Other parts of the model shall include a collection of base materials that can be printed, and a collection of assembling strategies. These requirements are yet to be better understood and they will be useful in specifying the theoretical model. Indeed, the notion of a multilink (see Appendix) is simply a mathematical structure and it requires the identification of certain restrictions and specifications that allow a concrete interpretation.
In proceeding in this way we have several advantages over the established knowledge on 3D printing, thus overpassing some of the main difficulties which occur when not having a good mathematical model, namely: 1. redundancy of data (STL files are still used as a standard, in spite of all the attempts that have been made during the last three decades to establish a new one) 2. data not being efficiently encoded (the notion of multilink and an appropriate file format to encode it has the potential to solve both the problem of efficiently encoding information and defining a standards for its exchange) 3. dependency from one machine to another (a theoretical notion of a Universal Printing Machine is by definition independent of any particular printing machine, and moreover it can be used to simulate any particular concrete printing machine) 4. ad hoc algorithms (the notion of multilink, [5], see also the Appendix, can be used not only to encode information but it also has the potential to unify the algorithms that are needed in handling and transforming information) 5. not a clear distinction between geometry, logic, topology and functional data (in the sense that when modelling a physical object to be printed, a designer should take into account that it is not merely a geometrical entity with some physical properties but rather something that will be produced in a printing machine) 6. complexity of algorithms and debugging (with unification of concepts into a single theory, the complexity of algorithms can be split into simpler components thus facilitating the process of debugging) These challenges have led us to identify the need for a standardization of the whole process of 3D printing which we have called the Universal Printing Machine.

State-of-the-Art and our Particular Motivation
New printing processes and techniques are being developed almost everyday; there is a clear need for standardisation. Standardization is the focus of this article. First of all, the results of such an ambitious project, will only be fully understood and possibly measured several years from now when there has been widespread adoption of the standard. To achieve this standardisation we propose the development of a theoretical model for an ideal printing machine which will consist of a suitably refinement of the general abstract notion of a multilink (see Appendix). The concept of a universal printing machine is not intended to be a real printer. Rather it aims at a conceptualization of what it means to print a physical object, as well as to handle all the information that is necessary to achieve that goal.
We have always looked for a conceptual and mathematical setting which would provide a clear, simple and organized way of thinking and reasoning about the practical problems that arise. As new methods, technologies, strategies, processing tools and materials evolve, our view has evolved and it is still evolving. So, whenever it was possible, we attempted to anticipate the future and to be ready for new challenges. We illustrate this evolution with the notion of triangulation.
The idea of 3D printing assumes the existence of an oriented closed surface whose interior describes a physically realisable object. This object is then printed layer by layer in an additive manner which in the first cases was by stereolithography (see e.g. [6]). For that reason, the file that is used to encode the information describing the closed and oriented surface is called an STL format file. An STL file a disjointed collection of arbitrary triangles in euclidean 3D-space (and as such some careful is needed to ensure that they describe a closed and oriented surface). The orientation of each individual triangle is specified by its normal vector. A first trivial observation is that this normal vector is not necessary. Indeed, the direction can be computed at the point of use with the so called right hand rule and the order in which the three vectors of a triangle are stored in the file. Another simple observation is that instead of considering a family of disjointed triangles it would be more efficient to consider a collection of unique vertices over which the collection of triangles would be incident to, thus describing a triangle as a triple of pointers indicating the positions of the vertices rather than its geometrical coordinates. Thus avoiding the redundancy originated by the fact that a vertex is always incident to more than one triangle.
Over the years, while trying to keep pace with the development of new technologies for 3D printing, we have also been adapting old systems and computing tools to build more robust and more efficient algorithms. The new methods and algorithms would arise by taking advantage from the progress

62
Direct Digital Manufacturing and Polymers in scientific computing which was also taking place. For example, the need for the redundant normal vectors in the earlier systems was not because researchers were not aware of the fact that the order would determine the direction. It was rather due to computing limitations, indeed it was a time consuming task to compute the normal vectors. As new systems and new technologies arise and are developed, we also need to develop clearer and simpler theoretical structures, which are more appropriate models for the real world. Martins-Ferreira [5,8] has described the passage from the concept of a triangulation into the more sophisticated one of double link. Martins-Ferreira et al [6,10] has shown the evolution and the development of the methods and algorithms that we see as a key part of the standardisation for 3D printing. The Universal Printing Machine, will simulate any 3D printer in existence or to be invented in the future. It will be capable of printing everything that can be printed. It will have the advantage of defining standards and allowing developers not to be concerned with the current limitations of actual printers, but rather be imagining what will be printed in the future, as new printing strategies and technologies arise. We expect this to stimulate the development of new printers and printing processes, in order to address the reality of the theoretical possibilities of virtual printing in a universal way.
The notion of multilink [5], briefly recalled in the Appendix, seems to have the potential to become a generic mathematical structure to be used as a standardization for the whole process involved in 3D printing.

What can be Printed?
In this section we give some historical notes on the evolution of the notion of a printer. This will be useful in developing the concept of a Universal Printer Machine, since one of its goals is to be able to print everything which can be printed. Hence, the need to define what do we mean when we use the expression everything that can be printed. Let us then take a quick look at the process of printing, from Gutenberg Bible to the printing of a human heart [1,2,7].
The printing process has started with Gutenberg in 1450s where a bible was printed by the first time using mass-produced movable metal type in Europe. It marked the start of the "Gutenberg Revolution" (). Before that, everything was made by craft, using human hands, in which each single piece was made individually. Nowadays the term 3D Printing has come into our daily life. Nevertheless, there are still some details that are stopping the technology from evolving into the direction of printing human organs such as a heart. This has mainly to do with the complexity of the organ.
Let us suppose that there are no limits in technology and that we will, eventually, be able to print whatever we can imagine and model. We can only print something if we can design a specification for it. In practice there are always some limits to what a conventional printer can produce. This is encompassed with the way the printing process is designed and the way the information to be printed can be encoded. There will always be some limits to what we are able to print at each individual instance by a specific machine. Even if we assume that there are no technological limits. The truth is that we need to first make some specifications and only then state what the specific system is capable of doing. Different systems with different specifications will be able to do different things.
We can use the concept of a universal machine, due to Alan Turing [11], base of what can be actually computed by a mathematical function. It turns out that even at that purely abstract level there are some limits to what can be computed and what cannot be computed, see for example [4], p. 264. Similarly, in the printing domain, we may ask the same question: what is printable and what is not printable. We are interested in printing only the objects that can be defined. To do so we have to specify a collection of attributes (such as shape, material, assembly instructions) prior to the printing of the objects.

Manifold Printing on Manifolds
When we print a logo on a cup, we are printing on a surface but using 3D technology for moving the print head. This can be generalised to the printing design of any part on a given manifold into another manifold. Clearly we need a language in order to specify all the concepts that are suitable to be printed as well as all the technical issues that need to be addressed in order to achieve that goal.
The problem can be addressed from a Mathematical perspective, in the same way as, in a certain sense, it has been done so far for 2D printing. Indeed, the kerning of some characters such as the letter f provides a simple an example of how complex can be the process of printing, see for example [7].
There are two main possible approaches that can be used as a model to encode the printing process in general. A continuous (or vectorized) approach which allows for arbitrary precision, and a discrete approach, allowing a fixed pre-assigned precision, which is directly related with the printer resolution, varying form one machine to another. A discrete theoretical frame work was develpped with the purpose of modelling data acquisition (e.g. MRI images), data manipulation (e.g. extracting iso-surfaces), data processing (e.g. generation of toolpath trajectories) and data realisation (e.g. physically manufacturing). The model comprises a mathematical structure based on the notion of multi-link and uses a cubical-voxelised approach, see [5,9].
For the moment, let us observe that there are three main levels where the concept of a Universal Printing Machine has to be developed. The level of computing and algorithms, the level of material systematization and the level of real printing strategies and technological processes.

Algorithms and computing
Algorithms and more efficient and robust methods of storing the information need to be developed.

Material systematization
Determine which kind of materials can be printed, produce a catalogue with characteristics and properties. This should be combined with the structure of the Universal Printing Machine.

Printing strategies and physical methods
Explore all the possible ways for physically printing a 3D region from space using any methods which are suitable of being technically implemented. These results have to be combined with the structure of a Universal Printing Machine.
The concept of an Universal Printing Machine is obtained by combining all three levels: materials; printing stratgies; storing of information and algorithms; that can be used as a future reference in the area of additive manufacturing and 3D-printing. If we can specify 3D objects following the new mathematical structures described in [5] this will have a direct impact on designers who will specify an object which is independent from context. This has clear advantages as it does not require new skills every time the technology evolves.

Conclusion
The details of an Universal Printing Machine will be developed in future work. Here we have tried to identify a pathway forward. The mathematical structure of cubic link show that there is a great potential for that particular structure to play an important role on the future development of the concept of a Universal Printing Machine.

Appendix: Mathematical structures to be used in defining the notion of a Universal Printing Machine
Here we collect some mathematical structures that have been developed with the purpose of achieving the desired concept of a Universal Printing Machine.

The general structure of a multi-link
Here we recall the definition of multi-link. This is a new mathematical structure which has many applications such as a geometric model of a surface, a slicing algorithm, a scanning trajectory path [5].
A multi-link is a set A, together with a collection of endomaps (generally isomorphisms) α i , a collection of projection maps (usually surjective) p j , and a geometrical realization map g into a vector space (usually a geometrical algebra, such as the Cayley algebras of the real number, complex numbers, quaternions or octonions) with i = 1, 2, . . . and k = 1, 2, . . .
These maps are often subject to compatibility conditions, accordingly to the interpretation that is given to the elements in A.
A concrete example of a multi-link of dimension 2 is what we called a double-link. It can be used to define any surface and in particular its relation to a triangulated surface is explained in [8]. A Doublelink is a mathematical structure of sets and maps (forming a particular instance of a multi-link) as displayed The simplest example is the case of the tetrahedron which is illustrated in the diagram below. Further details can be found in [12].

Applied Mechanics and Materials Vol. 890
A Square-link is another instance of a multi-link. It is a simpler version of a surface in the sense that every face has to be a quadrilateral face and this forces the surface to be mapped into a patched square array organized by lines and columns. For example, in the pictures displayed below, the lines in the patch are determined by the direction of the indexing map β, while the columns in the patch are controlled by the indexing map α.
A square link is a structure It is interpreted as a patch of oriented squares each square is indexed by and element x in A and identified with its origin vertex g(x), as illustrated The notion of a square-link is easily generalized into the one of a cubic-link and it can further be considered into n-dimensions.
A cubic link is a structure A such that αβ = βα, αγ = γα and γβ = βγ. It may be interpreted as illustrated below.
We now give some more specific details on how to encode the modelling of an extrusion based universal printer.

Brief description of a model for a Universal Printing Machine based on a multi-material variable extrusion head with several degrees of freedom
In this subsection we will give some details on how to encode the shape and position for a filament based extrusion on a Universal Printer Machine.
The theoretical model needed to simulate the result of printing a multi-material, variable extrusion head filament is detailed in the list below: where W is a set of linear indexes, r and s are the successor and reverse successor maps, while p is the geometric realization map. This means that if w ∈ W is an index, then p(w) is a point in the curve while p(r(w)) is the previous point in the curve and p(s(w)) is the following point along the curve, as illustrated 2. A family of cross-sectioned curves with pre-established offsets, interpreted in the following way: g i (y, z) is a point on the cross-sectioned curve i ∈ I, with main index y ∈ Y and offset index z ∈ Z, as illustrated This means that if, for a given i ∈ I, we fix an offset index z ∈ Z we obtain a contour curve which is interpreted as a cross-section of the filament path that is being extruded along the structural curve with direction given as in the following item.

A directional (or displacement) curve
α : X → X; (d, m) : X → (C × S 2 ) × I with the following interpretation. The element d(x) ∈ (C×S 2 ) is a pair, consisting of a complex number and an element on the unit sphere. The complex number defines a rotation angle and a scaling factor for each contour curve on the index patch of cross-sections, while the element in the unit sphere (for example given in spherical coordinates in the form of azimuth and elevation, see [13]) determines the direction orthogonal to the plane containing the indexed curve m(x) ∈ I.
4. An anchoring map (l, n) : X → W ×] − 1, 1[ which anchors each indexed curve m(x) into a point along the structural curve on the space, with the interpretation that if n(x) = 0 then it is placed exactly at position p(l(x)) ∈ R 4 with p the realization map of item 1. If n(x) > 0 then the curve indexed by m(x) ∈ I is anchored at the point which is linearly interpolated with value n(x) ∈]0, 1[ between p(l(x)) and p(s(l(x))).
In a similar way, if n(x) < 0, then the curve indexed by m(x) ∈ I it is placed at the point which is linearly interpolated between with value −n(x) ∈]0, 1[ between p(l(x)) and p(r(l(x))).
All said we are now in position to describe the dynamical process of running the x ∈ X indexes as the positions where a cross-section is defined, with the shape of the curve (g i , β i , γ i ), with i = m(x), at position p(l(x)) ± n(x) with orthogonal direction d(x).
This defines a cubic link,