what is this?

Pantograph is a web application that streamlines playing the card game Netrunner with a remote opponent using physical cards. Each player needs paper cards and a camera positioned over their play area. Once you start a video call using the app you can click on your opponent's cards to see higher resolution images.

You can try it out here. This demo uses static video files to simulate a game in progress, and you can click on the video to see the card search in action. Refresh the page to generate a random runner and corp match up.

how does it work?

When you click on the video a cropped snapshot is sent to the server and optical character recognition (via Google's Cloud Vision API) is used to try to match the title of the card with data from NetrunnerDB. The search is based on recognized text, not image recognition based on the art, so should work with alt arts so long as they include the title and do not use a very unusual layout.

why is it called Pantograph?

Pantograph is Tāo Salonga's console, and Tāo's subtitle is "telepresence magician". It's an indirect nod to the app that inspired it. The logo is a reference to a certain video game.

what data is stored or collected?

The software does not use any cookies, and does not collect or store anything other than temporary data. When you create a room, some data is stored to enable connecting to your opponent, but this data is deleted after a room is inactive.

The streaming video is coordinated through a third party API and will usually be sent between browsers using a peer-to-peer protocol, but in some network configurations may pass through their servers.

The image used for card identification (a 300 pixel square portion of the video) is sent to Google's Cloud Vision API.

copyright and trademarks

Netrunner and Android are trademarks of Fantasy Flight Games and/or Wizards of the Coast. Card images are copyrighted by Fantasy Flight Games and/or Null Signal Games. This website is not affiliated with Fantasy Flight Games, Wizards of the Coast, or Null Signal Games.

code

open source under MIT License
pull requests welcome on GitHub

made with 💖 by @okonomichiyaki