Nice visualization! 2 suggestions if I can nitpick :)
1. Make the grid render as a square when rows == columns
2. Default to the largest number of rows and columns that would still avoid page scrolling