Kangaroo2 on a line network, then Skeleton Fattener with some Weaverbird subdivision and smoothing would be my guess. See here:
Biomorpher can then be used to evolve the parameter state, presumably that controls the line network and perhaps further parameters for the fattening, subdivision and smoothing. If the topology of the line network changes, then some graph theory plug-in (there are quite a few these days) could be used for this.
Just to note that as @diff-arch mentions (thanks for the shout out), there is NO machine learning here at all. Lately evolutionary algorithms (biomorpher is an interactive evolutionary algorithm) have been clumped into the wider ‘AI’ term, but machine learning it isn’t - there are no neural networks here.
John.