A Semi-Automatic Method to Create an Affordable Three-Dimensional Printed Splint Using Open-Source and Free Software

Three-dimensional (3D) printed splints are becoming more feasible in recent years, showing promising lightweight, waterproof, and hygienic designs. A typical procedure to create 3D printed splints is obtaining the geometry of a body segment using a 3D scanner, creating a 3D printable splint model based on the geometry of the body segment, and 3D printing the splint. As technologies of 3D scanning and 3D printing become mature gradually, the main challenge to fabricate 3D printed splint is to create 3D printable splint models. To solve this challenge, researchers have proposed various methods to design 3D splint models. However, most methods require extensive 3D modeling skills that medical professionals are lacking. In this work, a semi-automatic method is proposed to create a 3D printable model. Given the geometry of a body segment obtained through a 3D scanner, the method includes three key steps: (1) create a draft splint lattice structure, (2) optimize the splint structure, and (3) create a 3D printable model based on the optimized structure. All the software adopted for this method is free and readily available, and thus, there is no additional cost to convert from a scanned geometry of a body segment to a 3D printable splint model. Because the majority of the work is done automatically, with initial training, a medical professional should be able to create a 3D printable model using the proposed method, given the geometry of a body segment. The proposed method is demonstrated by creating a 3D printed wrist splint and the demo is uploaded into GitHub, a popular open-source platform.


Introduction
Fabric, plaster, wire, elastomers, and low-temperature thermoplastics are the main materials for creating splints [1]. The traditional fabrication process of custom-made splints has remained nearly untouched since the beginning of its use at the end of the 18th century [2]. This process is skill-dependent, and the splints themselves pose numerous problems concerning patient compliance and plaster cracks [3]. To overcome these problems, researchers and engineers have explored additive manufacturing (AM) to create personalized splints. Although fabricating three-dimensional (3D) printed splints are also skill-dependent, a well systematic design process can ensure 3D printed splints conform to the geometry of the human body segment and thus offer comfort to patients. Three-dimensional printed splints using lattice-structures are very popular since they are lightweight, waterproof, hygienic (does not cause a bad odor), and have better air circulation compared with traditional plaster splints. More importantly, few cases are reporting that patients are allergic to common 3D printing materials, such as polylactide (PLA) and acrylonitrile butadiene styrene (ABS).
For example, the Cortex cast was one of the first splints manufactured using a 3D printing technique [4]. Cortex uses a lattice design to stabilize bone fractures and provide immobilization with enhanced air circulation. Recently, this technique is becoming very popular. Palousek et al. explored a general methodology to create a low-cost 3D printed splint for a wrist orthosis [5]. In this method, a 3D splint model is developed based on a 3D scanned geometry of a wrist and is printed using fused deposition modeling technology. This is one of the few 3D printed splints that does not use the lattice style design. Following a similar method, ActivArmor utilizes AM technology to create personalized splints to ensure full immobilization, which is one of the commercial 3D printed products available in the United States [6]. In the work by Cook et al. and Mavroidis et al., 3D printed splints were successfully created for foot orthoses [7,8]. However, these studies did not discuss the detailed process of creating 3D printable models based on 3D scanned geometry.
The arm splint developed by Blaya et al. is one of the few works that has described the process to design a 3D printable structure in detail [2]. The manufacturing process requires in-depth knowledge of the 3D modeling software. Li and Tanaka proposed a semi-automatic design system to create a 3D printable model using Rhinoceros 3D Version 5.0 (Robert McNeel & Associates, Seattle, WA) with a visual programming tool -Grasshopper 3D (Robert McNeel & Associates); however, the software is not free and requires additional costs to create a splint model [9]. All of these factors can be perceived as barriers to the implementation of AM splints into the health care practice.
Today, as many commercial 3D scanners can be used to obtain the geometry of a body segment, the challenge to obtain the 3D geometry of a body segment is mitigated. As the 3D printing technologies become mature, the main challenge to fabricate 3D printing splints is creating 3D printable models of splints. In this work, we propose a semi-automatic method that can create 3D printable splint models based on 3D scanned geometry of human body segment in STL format. The innovations of our work are (1) the process to create 3D printable models is semi-automatic and requires only minimum knowledge in 3D modeling, which is expected to be mastered by frontline doctors or nurses through a short period of training (less than four hours) or even self-directed learning according to the demo submitted in GitHub (available at https://github.com/researchShare/3D-printed-splints-demo-tutorial) and (2) the software used in this work are free and thus the proposed method does not require additional costs.

Technical Report
The proposed method to create 3D printable splint models is demonstrated by fabricating a 3D printed wrist splint shown in Figure 1 below. In the demo, firstly, we obtained the geometry of the wrist (Figure 2a) using an Artec 3D Spider scanner. Following the detailed procedures shown in Figure 2, a 3D printable splint model was created. Lastly, the wrist splint was printed using Ultimaker S5 3D printers. In the following part, we will discuss the details to fabricate the 3D printed splint.

Obtaining wrist geometry
The Artec 3D Spider scanner and Artec Studio 14 Professional software were used to obtain the geometry of the wrist, which is represented as the mesh (in STL file format) shown in Figure 2a. The geometry of the wrist can also be obtained through other 3D scanners. As this work focuses on filling the gap between 3D scanned geometry of human body segments and 3D printable splint models, the details of obtaining the wrist geometry using Artec 3D Spider scanner are not going to be discussed here.

Creating the 3D printable splint model
The method to create a 3D printable wrist model based on the 3D geometry of the wrist is the innovation of this work and includes three major steps: (1) drafting the splint structure, (2) optimizing the splint structure, and (3) designing the 3D printable splint model.

Drafting the Splint Structure
Because the 3D printed splint perfectly covers the wrist ( Figure 1) and the radius of the bars composing the wrist splint is set as 2 mm, the centerline of the bars of the wrist splint can form an offset mesh that is 2 mm over the wrist geometry mesh (Figure 2a). In our proposed method, we first obtain the offset mesh ( Figure  2b) by creating an offset surface of the wrist geometry mesh (Figure 2a) with a distance of 2 mm (equal to the radius of the bars of the 3D printed splint) through the surface offset function of the free software Meshmixer 3.5 (https://www.meshmixer.com/download.html). Next, the unnecessary parts of the offset mesh are removed using the Meshmixer 3.5 plane cut function, and this results in the profile of the 3D printed splint (Figure 2c). Finally, we use the remesh function of the Meshmixer 3.5 to obtain a new mesh (Figure 2d). The details of creating the draft splint structure using Meshmixer 3.5 are shown in Video 1. Note that the edges of the new mesh are the centerlines of the draft splint model shown in Figure 2e. Therefore, the new mesh in Figure 2d is considered as the draft splint structure. Note that in this work, the new mesh is required to be in OBJ format (a geometry definition file format first developed by Wavefront Technologies) created by Meshmixier 3.5. However, in many cases, the air circulation of a lattice structure directly created through Meshmixer 3.5 cannot be guaranteed. For example, the unoptimized splint model of Figure 3a shows different views of the 3D splint model shown in Figure 2e. The parts highlighted in dashed circles of the unoptimized splint model are too dense, and thus the air circulation may be compromised. Therefore, the structure needs to be optimized to ensure good air circulation.

Optimizing the Splint Structure
To optimize the splint lattice structure represented by the initial mesh in Figure 2d, we develop an optimization algorithm based on the mass-spring system employed in DistMesh [10]. Since a pure massspring system can cause continuous vibrations, momentum-based viscous forces are introduced to stabilize the optimization process (see the details of the mass-spring system-based optimization algorithm in the Appendices) [11]. Such a mass-spring system-based algorithm can reduce the size of large triangles and increase the size of small triangles of a mesh. As shown in Figures 2f, 3, it is obvious that the small holes have become bigger, and therefore the air circulation around that area is improved. Additionally, the large triangular holes become smaller, and thus the strength of the splint is improved around this area. The optimization algorithm has been packed into software for Windows 10 system and uploaded into GitHub. Healthcare professionals can use it without requiring any knowledge of programming (Video 2). Note that the optimization algorithm requires initial mesh in the OBJ format exported from Meshmixer 3.5 at present. VIDEO 2: Optimize the draft splint structure. The optimization algorithm has been packed into software uploaded in GitHub.

Designing the 3D Printable Splint Model
The goal of this work is to remove the complex, tedious, and time-consuming 3D-modeling process for designing 3D printable splint models. In this step, we develop an automatic 3D modeling method based on the open-source 3D modeling software Blender 2.8 (https://www.blender.org/download/releases/2-80/). To achieve this goal, a Python script is created to read the structure information of the optimized splint lattice structure obtained in the previous section and draw spheres and cylinders using Python API provided by Once the optimized splint model (Figure 2f) was constructed, six predefined blocks were manually attached to the optimized splint model (Video 4). These blocks include small holes to help secure the splint to the wrist. The resulting 3D printable splint model is shown in Figure 2g. In this step, a user needs to learn basic operations about moving objects to attach the blocks to the splint model in Blender 2.8, and these operations are the only modeling techniques that a user should master. As such modeling techniques are very simple, a healthcare professional can design 3D printable splint models using the proposed method in this work after a short period of training.

VIDEO 4: Attach holders.
The video includes the details to attach holders manually to the optimized splint model (Figure 2f) to obtain the 3D printable splint model (Figure 2g). A user only needs to learn basic operations (moving objects) in Blender 2.8.
View video here: https://www.youtube.com/watch?v=IyG-RvAclYY&list=PLaEzUCLiIDZa7U0yNojkRk8dKdgbiMrrL&index=4 To enable patients with ease, the 3D model is manually separated into two pieces (Figures 2h, 2i) using the plane cut function in Meshmixer 3.5 (Video 5). The two pieces can then be fixed together through the holes on the six blocks.

VIDEO 5: Separate the 3D splint model into two pieces.
The video includes the details to separate the 3D splint model into two pieces using Meshmixer 3.5 to obtain the top and bottom part of the 3D printable models in Figures 2h, 2i.

Printing the splint
The splint was 3D printed on two Ultimaker S5 3D printers (each piece per printer) using black PLA filaments. The material cost was about $8.00 and the printing time was approximate 12 hours (0.2 mm/layer, 100% infills). The 3D printed splint is shown in Figure 4. Such a splint can be printed using other materials and 3D printers. Currently, 12 hours of printing time on an Ultimaker S5 3D printer may limit the applications of the 3D printed splints. However, with the development of 3D printing technologies, the printing speed can be reduced, and the printing time will be no longer a limitation. As the focus of this work is on create 3D printable splint models, the details about the printing tasks are not discussed here.

Discussion
A systematic method is proposed to create a 3D printable splint model based on truss structures. To validate the method, we fabricate the 3D printed splint for a wrist (Figure 1), and the detailed procedure is uploaded in GitHub as a demo/tutorial. The majority of the modeling tasks to create the 3D printable splint model are done automatically. The major manual tasks include creating the draft splint structure in Meshmixer 3.5, attaching blocks to the 3D splint model in Blender 2.8, and separating the model with blocks into two pieces in Meshmixer 3.5. Among these tasks, attaching blocks manually to 3D splint models in Blender 2.8 is the most complicated one, which requires very basic knowledge of 3D modeling in Blender 2.8, such as moving objects. Therefore the entire procedure can be master by a user (without knowledge of 3D modeling) after a short period of training (less than four hours) or even through self-directed learning based on the demo uploaded in GitHub. The 3D printed splint is waterproof, low-weight (compared to traditional plaster splints/casts), hollow, and strong, and proper 3D printing materials can also avoid allergy. As the air circulation of some draft splint structures created by Meshmixer 3.5 is not always good (Figure 3), an optimization algorithm, which has been packed into software for Windows 10 system and uploaded into GitHub, is created to mitigate the issue. The optimization algorithm can open closed holes, and therefore improve the air permeability. Although the proposed method uses Python 3.7 to draw 3D models in Blender 2.8 and optimize the draft splint structure, users do not need to know the programming language, because the optimization algorithm is packed into software and the Python code for drawing 3D models automatically in Blender 2.8 is uploaded in GitHub. Since all the software utilized was either open-source and free, there is no additional cost to creating the proposed 3D splint model, given a scanned geometry of a body segment. It is worth noting that the same process can be used to create personalized 3D printed splints for any part of a body. To keep the profile of the mesh in Figure 2d, the vertices are only allowed to move on the surface of the initial mesh. The direction of the spring force can be outside of the plane of the triangle where the vertex is located, so is considered as the projection of the force on the vertex's current location. As shown in Figure 6a, when the vertex is inside of a triangle of the initial mesh, is the projection of the force on the triangle. When the vertex is on an edge of the mesh or the position of the vertex is the same as the position of a vertex of the initial mesh (Figures 6b, 6c), the projected force is equal to ( ).

Δt
F where is the mass of each vertex.
As shown in Figure 7, if a vertex's position is off the initial mesh surface, we project the vertex's position and velocity onto the initial mesh surface and obtain the updated vertices' positions and velocities at the next time step. The projected point is such a point on the initial mesh that is the shortest distance between the and the initial mesh. If the point is inside a triangle of the initial mesh (Figure 7a), the velocity is also projected onto the plane of the triangle ( is the projected velocity); if the point is on an edge of the mesh (Figure 7b) or locates at a vertex of the mesh (Figure 7c)  Finally, a criterion is created to determine whether the optimization process should be terminated. Assume that is the total distance that all the vertices have traveled from the time step to ; is the maximum value among the distances in all the previous time steps. If , the vertices are assumed to be stable and the optimization process is terminated.

Additional Information Disclosures
Human subjects: All authors have confirmed that this study did not involve human participants or tissue. Animal subjects: All authors have confirmed that this study did not involve animal subjects or tissue.

Conflicts of interest:
In compliance with the ICMJE uniform disclosure form, all authors declare the following: Payment/services info: All authors have declared that no financial support was received from any organization for the submitted work. Financial relationships: All authors have declared that they have no financial relationships at present or within the previous three years with any organizations that might have an interest in the submitted work. Other relationships: All authors have declared that there are no other relationships or activities that could appear to have influenced the submitted work. us improve the paper.