Exploration of data-driven midsole algorithm design based in biomechanics data and Voronoi 3D to digital manufacturing

This study proposed the creation of an algorithm for the elaboration of a midsole customized by functional parameters and generative systems, with production through digital manufacturing. The computational resources used are the Rhinoceros® program and the Grasshopper® extension. The primitives are given in a ".asc" format for the plantar pressure distribution test; the position of the insole sensors (.jpeg); 3D geometry of the midsole parameterized from the outline of a common insole. The developed algorithm operates by converting midsole geometry (brep) into point cloud complemented with a point cloud based on the position of the sensors and the remapped values of maximum pressure into integer numbers. Voronoi 3D component cell structure is generated by the overlapping point clouds. Based on the incorporation of an external algorithm, it was possible to obtain an open cell mesh structure. The digital manufacturing of the geometry was tested through three-dimensional printing similar to the Fused Deposition Modeling (FDM) process in rigid lactic acid (PLA) and flexible thermoplastic polyurethane (TPU). It was observed in the model printed on flexible material that the increase in the density of cells in the regions of greater pressure contributes to the increase in local stiffness, which may imply the individualization of the functional requirements of footwear. Nine customization possibilities are presented by changing three different variables, related to the density of points of the base geometry and the conversion of pressure values. The third variable was the thickness of the final structure as a function of the volume scale and faces of the three-dimensional cells generated by the 3D Voronoi. It is concluded that the import of real data from biomechanical testing for parametric modeling in Grasshopper® could contribute to the design of shoes individualized by the aesthetic and functional requirements of each consumer.


INTRODUCTION
Vision prospects of the industry future path indicate to product customization by individual attributes, with economic feasibility achieve by efficient and modular manufacturing systems applied on demand (FETTKE et al., 2014). The advanced growing demand for custom products besides life-cycle market time reduction were resulting in complexity problems and opportunities for structural change of industrial sector (BRETTEL et al., 2014). An opportunity are smart products and machines, designs based in computational innovate technology applied to project development phases as analysis, simulation, optimization, manufacturing and remote control (VOLPATO, 2007;FETTKE et al., 2014). Volpato (2007), orients of product market success is correlated to clarify capacity in identification of user demand as equal to project good quality solutions for their needs.
The footwear industry has been changing by combine technologies of software or digital development and traditional manufacturing (RAFFAELI, GERMANI, 2011). Feijs et al. (2016), researched the technical feasibility to customize footwear sole, based in user collaboration, generative algorithms and digital manufacturing. Footwear brands as Adidas, New Balance and Under Armor ( Figure 1) have been developing similar technologies to functional midsole design. The Adidas midsole (Figure 1a) was data-driven designed using biomechanical data from athletes and a process that possibility control almost 20.000 lattice structures as possible to optimize foot stability on running activity (ADIDAS, 2018). The New Balance midsole applied an open cellular multivariable size geometry focused in optimize flexibility, stiffness, weight and extend lifetime (NEW BALANCE, 2016). The Under Armor technology applied to midsole is composed by a dynamic lattice structure, designed to improve cushioning and user foot support (UNDER ARMOR, 2018).
In this horizon of technology applications, refer Feijs et al. (2016) article that 3D modeled a custom sole through generative algorithm to achieve conceptual geometry inspired on Voronoi diagram. In the article, the 3D model was submitted to digital manufacturing process by Fusion Deposition Modeling® (FDM) technology with flexible filament (FEIJS et al., 2016).

Plantar Pressure Data
Footwear consumers have been presenting feet healthy concerns, demand understood by specialists as crossing biomechanics and aesthetic parameters (SANTOS; ÁVILA, 2007). Footwear sole as fundamental component of shoes has propose to protect the feet by absorbing ground forces generated by the impact on ground in run or walk movement (PALHANO, 2013). Footwear biomechanics studies target the correlation between reduce plantar pressure distribution peaks as relevant improve to prevent disease, when provided correct support to feet anatomy (CHEUNG; ZHANG, 2006). The evaluation of plantar pressure distribution depends of footwear usability, low pressure values are positive to impact force dissipation and contribute to cushiness and support, however, high pressure values are positive when related to feeling and performance attributes in running or trail events (IBTEC, 2018).
According of CHATZISTERGOS et al. (2017) analysis, reduce plantar pressure by material selection are in general guided by material stiffness, although this method is strongly influenced by magnitude of the applied forces. The applied forces maximum values are obtained in biomechanics analysis are divided in two main peaks, the first is measured in the first half time and indicates the maximum vertical force of ground reaction; the second peak measured in the second half of time of contact are result of muscular activity generated to lift the feet (PALHANO, 2013 apud NIGG & HERZOG, 2007). The data generated in biomechanics analysis of feet plantar pressure are provided by sensor insoles, the values are correlated to each sensor position and collected at specify time frequency (CEZAR et al., 2003). CEZAR et al. (2003), indicates that custom insoles could be applied to maintain an homogenic pressure distribution, as way to reduce feet stress derivate by magnitude values higher than 2800 g/cm².

Generative Systems
In recent years, project innovative methods are feasible by development of new tools and computational technologies. Technology is disrupting new paths toward to multiple shape generation in product design (AGKATHIDIS, 2016). The generative system is part of techniques collection, in the path were searches to explore and resolve problems of the initial or final ideation process, oriented to manipulate algorithms as mean to produce unique shapes (MARTINO, 2015).
The product or output of a generative system are not constrained by a singular tool application (FISCHER; HERR, 2001). The output of generative process converges a collection of parameters, basically correlated each other by predetermined conditional rules (MARTINO; CELANI, 2014). The processing transformation are feasible by implementing parametric tools, as examples the Rhinoceros® software and Grasshopper® plug-in. Complementing collection of digital tools of both software, is possible to generate a high degree complexity of surfaces or shapes. The topological complexity is variable by mutation of the initial collection of geometry described as primitives, an example, point and curves objects (FLORIO, 2011).

Digital Manufacturing
Our society is living the vanguard of the 4th industry revolution, the rapid prototyping defined the application of new technologies to make feasible to manufacture complex geometries, further, recent advances in 3D printing are contributing to achieving near on-demand production level as This process requires support structure to manufacture void geometries, the structure should have mechanical properties to support the principal element, as weak to be removed by hand tools or dissolution by immersion (VOLPATO, 2007). Advantages of AM process area feasibility to produce on-demand for customization, heterogeneous composition, and complex structures design, decreasing of material waste production, and mechanical properties performance as 85% to achieved by injection molding technology (VOLPATO, 2007;HUANG et al., 2015).
In this article, the research objective was improving Feijs et al. (2016) concept through the development of a new generative algorithm to 3D modeling a data-driven custom midsole, inspired in Voronoi diagram and manufacturing by a digital process similar to FDM®. The opportunity to combine feet plantar pressure data and the generative system would contribute to individualize performance attributes in custom midsoles designs.

MATERIALS AND METHODS
The algorithm design was performed in Rhinoceros® software and Grasshopper® plug-in tools. In the develop process was necessary insert an external pre-existent algorithm "voronoi test.gh" created by Michael Pryor, the file was freely downloaded from Grasshopper online forum (GRASSHOPPER3D, 2012).

Primitives
The start step to algorithm design is to define primitives, as references that are imported to Grasshopper® visual programming environment. To create the midsole was defined as primitives a generic insole edge curve, was drawn a contour based on referenced image ( Figure 2a) of a digitalized an 40 French scale or 9 in US scale, insole sample extracted directly by the shoe last manufacturer. The second primitive was raw data (.asc) from biomechanics analysis of plantar pressure distribution (Baropodometry) with pressure values (KPa) as function of frequency rate (0.2 seconds). At end, the third primitive is an image (.jpeg) of the referenced position of 99 pressure sensors (Figure 2b) per insole.

3D Printer
To materialize the output midsole geometry from the generative process, was performed two phase of Fused Deposition Modeling techniques. At first was made reduce scale model in Polylactic Acid (PLA) filament, 1.75 mm diameter, in 3DCloner® DH equipment and print area of 320 x 200 mm, disponible at workshop of the Architectural Faculty (UFRGS). The second phase was contract third party print services by PrintUp 3D company, when a real scale model was printed by FDM process in white-translucent TPU filament, 90 Shore A hardeness. In Zortrax® Equipment.

RESULTS AND DISCUSSION
The presentation of result is segmented in two phases, first the algorithm development and second the materialization process. The algorithm development is subdivided in plantar pressure data import to grasshopper environment, parametrization of the insole sensors position, generic midsole geometry, primitive's conversion to point cloud, 3D cellular geometry based in Voronoi 3D component and refine lattice 3D mesh. The materialization process was performed inhouse first, in PLA and second in TPU by a commercial partner.

The Contour Primitive
To define the midsole top view curve contour (Figure 3) was imported a generic jpeg image with the background bitmap Rhinoceros® tool in the top viewport and drawn on the image, by interpolate curve the desired contour. In Grasshopper® environment creates a primitive curve component referenced on that curve

Import Biomechanics Data
The challenge was import result data of biomechanics analysis to Grasshopper® (Figure 3) environment. The Readfile component was capable to read the available .asc file, defined as input the directory and name file (C:\), the component extracts data per line in a list indexes and characters, it could visualize by panel as output. Based in the list, is apply split list component as "10" index to separate the label chart names (A output) and the raw data of each insole sensor (B output). In raw data the to extract sensor data per index, was broke the lists structure by split text component as "" input. In the resultant lists, the null or empty lines was removed by cull pattern component, as pattern input was obtained by compare the list to a number superior of the data in the list, as example was applied "400", by the inequality output is extract the true/false list that defines the cull pattern. The result lists is split on "98" index to separate the left (A output) and right (B output) foot data, resulting in 251 lists with 99 indexes. Finally, to extract the maximum value per sensor is applied the sort list component to reorganize the values in crescent order, as sort list "K" output is inverted for through list item component with index equals to "0" the output of list item is the high pressure value collected (data) per each sensor (index).

Insole sensor parametrize
The maximum pressure values isolated in previous steps, are organized in a specific order and location based in original sensor insole equipment, originally applied to collect the biomechanics data. To match the order and location of each index of the lists with correspond insole sensor, the sensor grid is drawn based an image reference (Figure 2b).
The procedure (Figure 4

Midsole Brep
To create the cloud point that could be combined with the cloud originated by the pressure values and together define an input for Voronoi 3D component, it was parametrize a generic midsole brep. Are not focus made and detailed model, so the process was basic to define a bottom and top view countour by dividing the lateral bounding box edge in 5 points, moving by arbitrary values in Z direction and defining the bottom curve by Interpolate (IntCrv) and top curve from Nurbs Curve (Nurbs). For better grip with the table in 3D print, it was defined a planar bottom, the top contour is referenced in the higher heel to absorb energy and low front to be responsive. To extrude the contours, it was moved 10 points in negative X direction, and as extrude factor use X direction and the length is based in bottom bounding box edge of primitive curve plus 40 points by slider component. The primitive curve is project on both surfaces and used as trim parameter in Surface Split (SrfSplit) to defines the top and bottom surfaces. To end this procedure, it was made a loft surface by bottom and top projected curves, was applied custom options to make a uniform surface. The three resulting surfaces are merged and combined by Brep Join (Join) component to define the midsole brep (Figure 7). Figure 7 Algorithm to obtain the midsole closed brep based in insole primitive curve and the extrusion of parametrized side view curves.

Cloud Points Based in Pressure Values
The primitive curve, 99 grid surfaces, 99 centroid points, the midsole brep and it top surface are organized in primitive components for next steps, all elements are made one time in algorithm running and mirror to define the opposite feet primitives.
For this article we aimed to present the feasibility to transform pressure data in point quantity to define a cloud point, we define a proportional density of points as function of high-pressure values. However as referenced by Palhano (2013), in the step movement are two main peaks of force, first in back region associate to impact energy dissipation (cushiness) and second peak on front relative to muscular energy transmission. Duo the research intention in explore and validate the whole process of modeling a midsole geometry by a data driven algorithm to result in digital manufacturing, it was simplified by applied proportional point density in back and front peaks regions. The applied logics it was a remap pressure values with Remap Numbers component with input value as max pressure list, source as respectively bounds (domain) and target as constructed domain between 0 to 10.
Cloud points are defined by Populate Geometry (PopGeo) component in two steps, first as geometry input is the 99 trimmed surfaces and count input as remap number pressure result converted only in integer values by integer component, to define 99 listed clouds. Second, as input the midsole brep and as quantity a slider, it was defined 100 to balance between a low and higher structure complexity that will be impact in time processing to generate the Voronoi cells and mesh lattice. The populate clouds of the first step created in XY plane is projected to midsole top surface by Project Point (Project) component in Z direction. It is relevant to highlight the primitive curve are applies as guide to sensor parametrization as well the midsole top surface design, allowing to project the cloud point as correct location in the 3D top surface. The 99 clouds output are flattened and merged with the midsole-based cloud in one list (Figure 8), this phase is running separate for each foot, to match with each feet pressure data. .

Voronoi 3D and Mesh Lattice
The Voronoi 3D (Voronoi³) component demands as inputs a point list that will determine the cell quantity, as points defines the centers of each 3D cell and its distribution pattern the cell size and boundaries. As point input it was connected to the cloud points merged previous steps. The voronoi 3D runs creating a 3D box with the respective quantity and distribution of cells based in the point list coordinates. Split in the midsole shape is performed by Solid Intersection (SInt) component as intput A the Voronoi output and input B the midsole brep, this order is important to extract the aimed result. It was faced output difficulties of open Voronoi cells when the Voronoi box are some of the bounding box volume of midsole brep, to avoid it was extracted the midsole brep bounding box and re-scaled to bigger size by a factor equals to "1.1". Is possible to observe in Figure 8 components, the Voronoi original box, re-scaled larger than midsole brep and final solid intersection result (Figure 8).
Initially it was focused in produce some lattice structure inspired by New Balance midsole example referenced at introduction of this article, it was attempted to apply the Pipe and Pipe Variable (VPipe) Grasshopper® native components to add thickness to the edge lines of the Voronoi cells. The attempt faced difficulties as the duplicate curve edges by overlapped faces between the cells as result of deconstruct brep of Voronoi 3D output, this quest was overcome by download of Remove Curve Duplicates component found in Grasshopper online forum and download from MilkBox group. Although achieve success to simplify the edge list count, the pipes are creating as independent tubes geometry and not as network structure resulting in lack of surface continuity. This problem resulted in rhinoceros model file size larger than 100 Mb depending of quantity of cells, higher density comes close to 500 and 800 Mb files. The large file size failed to export in STL format and to be interpreted by 3D print CAM software.
After the related experience, it was found an algorithm designed by Michael Pryor and free download available that was successful applied to resolve the meshing and exporting process. Next, a brief explanation of this algorithm components and running that made possible to connect re-scaled curves extracted from edge and face cell elements. There necessary defines three inputs to run this step, one or more closed polysurfaces, a control thickness factor (slider) with bounds between 0 and 1 with four digits rounding ("0.6000") for the scale faces and other similar control thickness factor for scale volumes. As closed polysurface are input the Voronoi cells as single flatten list, and scale factors equals to "0.6000". The

Digital Manufacturing
The digital manufacturing by FDM technique was performed first at workshop facilities of the Architecture Faculty (UFRGS), and secondly by third partner startup company named Printup3D. To CAM process, the file size was reduced by reducing the mesh face count with Rhinoceros Reduce Mesh tool in 90% less faces than the original count. In this process it was realized the presence of naked edges and manifold edges, it was identified by Rhinoceros Mesh repair wizard and manually removed these elements by the tool resources.
To optimize filament, use and produce time, was defined a nonsupport material structure, that represents no problem at end. Was prototype two models in PLA, first with base support and second with front elevation. Both geometries were successful printed in approximately 8 and 11 hours (Figure 11). Next it tried to print in TPU at Architecture facility, but it was found problems in the feed filament mechanics, as the filament round by the traction wheel. To resolve was determined to use external expertise by the PrintUp3D Startup, they successfully printed in white TPU filament, 90 Shore A hardness, as can be observed at Figure 12. Due open cell structure and absence of support material it is notice some filament trays resulting in medium finish quality.   Figure 13, In three-row (variables) and four columns (values) structure of resulted baked meshes on render preview. Are choose arbitrary values to illustrate nine customizable alternatives.

CONCLUSIONS
The article was conducted as an experimental approach, it was accomplished the objective to design a Grasshopper® algorithm to model a custom midsole driven by biomechanics data primitives. The success to import plantar pressure data and parametrize of sensor insole position accomplished with Grasshopper® native components. This procedure is the main contribution of the article, as the possibility to design geometry based on real biomechanics analysis results. The use of such data and sensor location could be contributed to apply Finite-Element Analysis (FEA) and topology optimization by Milipede Plugin resources as a complement to Grasshopper® component portfolio. The strategy to transform max pressure values in integer numbers as quantity input to cloud populate had an experimental objective to revel the pressure distribution. The authors intended to correlate the local geometry density (cells) as a cause to increase local stiffness, the result that was observed in TPU printed geometry.
The Voronoi 3D component can generate an individualize aesthetic, however, it increases the final geometry complexity and processing time. It was necessary to import a preexistent algorithm to resolve the complexity in on single closed mesh. The main variables of the algorithm are pressure plantar data; insole contour curve, cloud point sizes, and distribution rescale cell volume and face factors. The generative algorithms are a standard reality nowadays with potential do provide feasibility to footwear components customization by functional primitives. The developed algorithm presented in this article is a contribution as an application in midsole design that could improve the general consumer's health.

ACKNOWLEDGMENT
This study was financed in part by Coordenação de