# EvoDevo: Bioinspired Generative Design via Evolutionary Graph-Based Development
## 3 Proposed Method
### Normalising Inputs
The initial two methods employ a single CGP controller, whereas the final method (node-edge) utilizes two interconnected CGP controllers, with each responsible for node position and cross-sectional changes. The structures of the CGP controllers are outlined in Table 5.

\(n_{\text{in}}\) and \(n_{\text{out}}\) denote the numbers of inputs and outputs, respectively. In addition, \(n_{\text{row}}\) and \(n_{\text{col}}\) specify the CGP grid dimensions (rows and columns). Finally, \(L_{\text{back}}\) (levels-back) defines the maximum number of previous columns that a node can take as input. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**Methods** & \(\boldsymbol{n_{\text{in}}}\) & \(\boldsymbol{n_{\text{out}}}\) & \(\boldsymbol{n_{\text{col}}}\) & \(\boldsymbol{n_{\text{row}}}\) & \(\boldsymbol{L_{\text{back}}}\) & **Primitive Set \({}^{\dagger}\)** \\ \hline CGP\_edge & 2 & 1 & 8 & 2 & 3 & \{Add, Sub, Mul, Const\} \\ CGP\_node & 2 & 2 & 8 & 2 & 3 & \{Add, Sub, Mul, Const\} \\ \hline CGP\_node–edge (edge) & 2 & 1 & 8 & 2 & 3 & \{Add, Sub, Mul, Const\} \\ CGP\_node–edge (node) & 2 & 2 & 8 & 2 & 3 & \{Add, Sub, Mul, Const\} \\ \hline \hline \end{tabular} \({}^{\dagger}\) Primitive set abbreviations: \(Add(x,y)=x+y\), \(Sub(x,y)=x-y\), \(Mul(x,y)=x\cdot y\), \(Const=\text{constant float}\).

\end{table} 
Table 5: Cartesian genetic programming parameters used for each method. Figure 9: Hybrid node–edge GNN: The blue path maps edge features and their neighbours to the cross-sectional update (\(\Delta A_{i}\)), and the red path maps vertex coordinates plus node/edge neighbours to \((\Delta x_{i},\Delta y_{i})\). The weight matrices form the evolvable genome. ### Edge-Only EvoDevo

The first experiment investigated how the edge cells (GNN and CGP) could grow to minimise the objectives. The reward metric combined the total strain energy and volume objectives with equal weighting. The strain energy and volume of the edge cell were given as the input to the GRN, and the output was a delta change in the edge's cross-sectional area, where the cross-sectional area of an edge could not decrease by more than 1% of its original value. For each GNN- and CGP-based method, 15 independent runs were applied. ### Node-Only EvoDevo

The second experiment investigated the node (vertex) cell interactions. Although the control variables were changed to the coordinates, the same reward metric was applied. Each cell's GRN took its current \(x\) and \(y\) positions (as input) and generated \(\Delta x\) and \(\Delta y\), which moved the nodes. Similar to the edge experiments, 15 independent runs were carried out for both the GNN- and CGP-based controllers. ### Node-Edge EvoDevo

The third and final experiment employed the node-edge method, in which the node positions and member areas were updated simultaneously at every development step. In the CGP version, two coupled controllers were used: one adjusted the cross-sectional areas, and the other moved the vertices. Therefore, the configuration evolved in a single cycle (single development step). The GNN-based method performed both tasks within a single network. ## 5 Results and Discussion

### Edge-Only Results

Figure 10 shows the final structure that achieved the highest reward in the edge method among the 15 runs. According to the findings in Figure 10, despite the similar structure of these two optimal controllers, the GNN yields slightly lighter components, resulting in a lower volume. Nonetheless, the developmental steps exhibit significant variation. CGP shows a fast reduction in energy and volume, while the GNN represents a gradual decline in all criteria. The CGP controller update rule for each edge is

\[\Delta A=\mathrm{se}^{2}\left(5\,\mathrm{se}-v\right)\left(5\,\mathrm{se}^{2}- \mathrm{se}\,v-v\right)^{2} \tag{13}\]

where \(\mathrm{se}\) is the strain energy in the structure, and \(\mathrm{v}\) is the volume. The linear term \(5\,se-v\) shows the direction of changes (negative or positive).