The new structures are generated by replacing the building blocks in the MOFs with new ones, compatible with the topology of the parent MOF. This process is carried out by the NSGA, which guides the evolution towards MOFs optimized for carbon capture. Specifically, the NSGA is implemented using the open-source Python toolkits within Pymoo . Within the NSGA representation, the NBBs and EBBs are the genes of a MOF. The algorithm then searches for optimal offspring through crossbreeding and mutation, where crossbreeding mixes building blocks (genes) from two parents, and mutation randomly replaces building blocks (genes) of a parent.