Yes it’s most probably the garbage collector as your are creating a line system each frame.
You should instead create it a single time and pass the instance you create the first time to all subsequent re-creations: the system will reuse the same system and will simply update the vertex positions with the array you pass in.
Also, don’t do
new BABYLON.Vector3(...) for your 100+ vertices each frame. Create a fixed array of 100
Vector3 instead and update this array.
… not really clear but update lines without disposing them! ^^
… wondering why CreateLines() does not need a scene!
If you don’t pass a scene, it will automatically use the last scene created.