## 2 Material and Methods
### L-Systems' Generation along PSLs  
L-systems are rewriting systems that use several strings with different designations [55]. Specific characters are used for the graphical interpretation using turtle graphics, i.e., each character or string commands the turtle to achieve an action. As a matter of example, the string F commands the turtle to draw a line of length \(l\) and angle \(\alpha\) while string X commands the turtle to skip a line of length \(l\) and angle \(\alpha\). Among the numerous shapes and possibilities that L-systems offer, Table 1 shows the list of strings constituting the grammar used in the proposed geometric growth modeling (see Figure 4a). It is inspired by the context-free OL systems (denoted as an axial tree) illustrated in Figure 4b according to [PERSON] and [PERSON] [54]. In the proposed study, the production rule has been slightly modified to reduce the geometric complexity and to adapt symmetrical tree growth. Table 2 enumerates and describes each input used in this study.  
\begin{table}
\begin{tabular}{c c} \hline \hline
**L-Systems Structure** & **Turtle Command** \\ \hline F & Draw a segment of length \(l\) and angle \(\alpha\) \\ X & Skip a segment of length \(l\) and angle \(\alpha\) \\ + & Turn left \\ – & Turn right \\ [ & Store the turtle’s current position \\ ] & Retrieve the turtle’s current position \\ \hline \hline \end{tabular}
\end{table}
Table 1: L-systems’ structure and related turtle commands.  
Figure 4: (a) L-systems axioms and production rules used in this study based on (**b**) the context-free OL systems defined by [PERSON] and [PERSON] [54].  
Figure 3: First (in blue color) and second (in red color) directions of PSLs for the three load cases: (a) CL, (b) SL, and (c) CSL.  
To construct the aforementioned L-systems along the PSLs within the design space, an algorithm has been proposed in Figure 5. The first step consists in recovering the PSLs' data (points and vectors coordinates) with the design space. In a second step, the intersection points between the PSLs and the design space boundaries are determined. At each intersection point, the first generation or recursion of the L-systems is initiated. The geometric growth is governed by the production rules of the L-systems (see Table 2 and Figure 4a) according to several recursions. At each recursion, the algorithm fits the L-systems to be aligned with the PSLs' direction. The L-systems and PSLs' lines are discretized into a precise number of points in a way to allow the algorithm to undergo neighboring points' research. The number of points that discretize the different lines and L-systems is specified by the user: increasing the discretization of the L-systems and PSLs increases the fitting precision. The algorithm continues until the L-systems reach the boundary of the design space. However, in the process, a few branches either slightly surpass the design space boundary or float inside it. Hence, the very final step of the algorithm consists in extending the floating branches linearly until reaching the nearest design space boundary or the nearest neighboring branch of other L-systems. This process necessitates the calculation of the branch angle and direction to ensure its extension linearly. This step also includes trimming the branches that surpass the design space boundary. The algorithm stops when all the L-systems are connected and delimited by the design space boundaries. An implementation of the algorithm has been made within a Rhinoceros/Grasshopper environment via dedicated components developed in C# language.