**This PR implements a new layout for the visualizer, but the dimensions of the nodes will change soon. I used hard-coded dimensions, like `40px`, but I'll update them when I work on fixing the nodes' design. I think we can merge this PR first and then fix the nodes' design.** https://github.com/user-attachments/assets/580fa812-ee8e-4452-b6ac-ca55ecb31759