Why does yielding intermediate results makes this notebook much slower?

That would also have been my suspicion. If nanomorph updates an attached element then it will probably still trigger layout (which is expensive)?

You could try to

  • detach the parent element prior to updating the tiles, then reattach it
  • give render hints via will-change
  • switch to canvas

Do you have your nanomorph version published somewhere?