Developer created a Pong game across 240 Chrome tabs using synchronized icons
Developer Nolen Royalty has created a Pong game that can be played on an array of 240 Google Chrome browser tabs.
Developer Nolen Royalty has created a Pong game that can be played on an array of 240 Google Chrome browser tabs.
Developer Nolen Royalty has created a Pong game that can be played on an array of 240 Google Chrome browser tabs.
The game, called Faviconic Pong, splits the action between the main Chrome window, which occupies the bottom half of the screen, and an array of 240 tab icons that occupy the top half of the screen. All of the game’s objects are not limited by the browser window and can span across a multitude of tiny tab icons, TechSpot reports .
This visual trick is achieved using AppleScript for macOS. The developer took advantage of Google Chrome’s internal capabilities, writing code that can precisely control the icon for each tab and quickly update the tiny icons to animate the ball’s movement.
Ever opened so many tabs that your browser became self-aware?
— GitHub (@github) February 21, 2025
This one learned how to play Pong.
Blog: https://t.co/pyTOdYMiLB
Source: https://t.co/miBQJOa5i8 pic.twitter.com/EW7FiWGINV
You can learn more about Faviconic Pong on the developer’s blog, where he describes everything in detail.
In short, he started by using AppleScript to create a precise grid of Chrome windows and tabs. Then he worked on quickly updating favicons and overcoming browser throttling with web workers. He switched from WebSockets to broadcast channels for tab synchronization. Finally, he improved animations, optimized performance, and implemented Pong, making the ball and paddles move smoothly between the main window and the tab bar.
Although the rendering may be split between the browser window and 240 tabs, the user experience doesn’t seem to suffer too much. Videos in the main browser window play smoothly, although the frame rate in the tabbed section is noticeably lower.
You can find the full source code on GitHub. The developer admits it’s «terrible» because it never made it past the prototype stage.




