In case you aren't already aware: using yield will cause your animation to produce at most 60 steps per second since Observable's Runtime uses requestAnimationFrame() to obtain the next value.
If you'd want to speed up the process you'd have to render multiple steps before yielding, but you would also want to measure the time between frames (.e.g. via performance.now()) and adjust the steps accordingly to ensure that you don't accidentally lock up the browser UI as the number of nodes (and calculations) increases.