My technique doesn’t do infinite generation. =)
The tiles (and their data) are limited by a specified GridSize. If you connect something to the “false” execution pin on the IsInBounds-Branch you can even set up end-tiles. But you can still look into Async tasks.
By the way, it was quicker for me to just create the graphs than to explain what I mean =)
EDIT: If you want the GridSize to be different in X and Y you can use a Vector and connect the X and Y respectively.
EDIT2: You can also still optimise my code, as it does not check whether the tiles around the splines, are outside of bounds. It only checks for the spline tile itself.
EDIT3: The check for the spline tile should probably be done before running the for-loops, for performance reasons. Check the x and y values of each for-loop separately, just don’t connect anything to the “false” execution pin.