An AI Anti-Cheating System That Made Online Chess Tournaments Trustworthy, and Led to an Acquisition

SzuperChess logo

The Challenge

During the COVID-19 pandemic, chess moved online almost overnight. Thousands of tournaments were organised on platforms like Lichess and Chess.com, many of them with real prize money. There was one big problem: cheating. A player with a chess engine on a second screen, a phone on the desk, a bot running in the background or a friend whispering moves from across the room could win with very little risk of being caught.

Most organisers tried to control this with Zoom or Skype. Those tools are built for meetings, not for watching dozens of competitors at once. A referee could not track every player's eyes, screen and surroundings at the same time, and there was no record to review when a result looked suspicious. Honest players lost trust in online events, and many cheaters were never penalised because there was no evidence.

The founder of SzuperChess came to us with a clear idea: a "Zoom for chess tournaments". Each player would join through a link. The system would record their camera, microphone and screen separately, and AI would flag anything suspicious. Referees would still make the final decision, but with far more data and far less manual watching.

The first version (MVP) had to:
  • Record each player's camera, microphone, system audio and screen, and stream them live to referees
  • Guide players through a short onboarding (face in frame, good lighting, show both ears)
  • Detect suspicious behaviour with AI: eyes off the screen, forbidden software on screen, voices in the room, the player leaving the camera
  • Give referees a single view of all players, with a live feed of alerts they can check in seconds
  • Handle registration, tournaments and player profiles on a public website in English and Spanish
  • Support at least 64 players at the same time, on Windows and macOS

The first tournament date was fixed, so the MVP had to be ready in about ten weeks.

The "Our story" page of the SzuperChess website
The "Our story" page on the SzuperChess website explains the problem the company set out to solve
The SzuperChess homepage
The SzuperChess homepage, designed and built by our team

The Solution

We started with a core team of five: two developers (one on the AI and streaming side, one on the web platform), a graphic designer, our operations manager and our CEO. In the second phase we added a UX/UI designer, more Laravel developers and a cloud engineer. We worked in two-week sprints with regular demos, and the founder was involved at every step.

Architecture. The system has four parts that work together. A desktop client on the player's computer captures video and audio. A streaming server receives the streams, stores them and cuts them into short segments. A set of AI analyzers checks each segment. The SzuperChess web platform shows everything to players, referees and admins. The parts talk to each other through clear APIs, so each analyzer can be improved or replaced without touching the rest.

Player client and onboarding. We built a cross-platform desktop client in .NET with Avalonia. The player logs in with their SzuperChess account, and the client walks them through onboarding. It checks that the face is visible and the light is good, then asks them to turn their head to show each ear, using computer vision to confirm each step. It then streams the webcam, screen, microphone and system audio to our server over gRPC. Referees can send messages to players during the game, and they appear on the player's screen.

AI analyzers. Each analyzer is a separate Python service that looks for one kind of risk:
  • Gaze tracking: Facial landmark detection locates the eyes and pupils in every frame. The system raises an alert when a player looks away from the screen for about four seconds, keeps glancing in the same direction, or disappears from view.
  • Screen blacklist (OCR): The player's screen is read with optical character recognition and checked against a blacklist the organiser can edit. It includes chess engines such as Stockfish, Komodo, Houdini and Fritz, as well as messaging apps and bots.
  • Voice activity and speech detection: The audio is checked for human speech, which may mean someone in the room is helping. Speech-to-text then tries to capture what was said.
  • Stress and emotion analysis: A convolutional neural network classifies facial expressions and combines them with facial landmark measurements into a stress score. Referees can use it to see how a player reacted at key moments of a game.
  • Presence checks: Alerts are raised when the face is missing, more than one face appears, or the player disconnects.

Every alert includes the exact time it happened and links to the matching camera, screen and audio recordings, so a referee can check the evidence right away.

Web platform and referee dashboard. The SzuperChess website is built in Laravel. Players register, fill in a chess profile (FIDE rating, club, country, nicknames on the host sites) and join tournaments hosted on Lichess, Chess.com or Chess24. Admins manage tournaments, partners, referees and players from one dashboard. Referees get a purpose-built view. It shows a grid of live players and a real-time feed of alerts, and for any player they can open camera, screen and audio in sync. Alert markers on the timeline let them jump straight to the moment in question. They can also mark videos as seen or for later review, log incidents, chat with players, send announcements and export all alerts to a spreadsheet after the event.

Fewer, better alerts. The first live tournaments showed that raw AI output can overwhelm referees. Based on the founder's feedback from those events, we reworked the alert system around three severity levels. Red alerts, such as forbidden software on screen or a player missing for over a minute, are shown by default. Orange and green alerts are available through filters. Referees can sort players by number of serious alerts, so their attention goes where it matters.

Cloud and browser client. In the second phase we moved storage to AWS. Recordings are uploaded through short-lived secure links into a separate storage bucket for each tournament, and they are deleted automatically when the retention period ends, in line with GDPR. We also built a browser-based WebRTC client and embedded it in the SzuperChess website, so players could join without installing anything.

From one product to a platform. In early 2021 SzuperChess decided to move to a B2B model. It planned to take the same technology to other sectors, such as online exams and esports, under a new brand called Decoditive. We analysed two architectures for this: separate sites per sector (the "tentacle" model) or one shared platform with sector-specific settings. We compared code quality, scaling, hosting and development cost, and recommended the option that fitted their roadmap.

We then designed the admin controls so each session could have its own analyzers, alert thresholds and alert messages.

Privacy by design. Because the system records faces and voices, data protection was part of the design from day one. The platform includes consent management, a cookie policy, profile anonymisation when a user deletes their account, and automatic deletion of recordings.

Working with the founder. We stayed in close contact throughout the project and treated SzuperChess as if we were its in-house tech team. Beyond the agreed scope, we kept proposing improvements and new features along the way, and many of them made it into the product.

Data flow of the SzuperChess system, from the player client through the streaming server and AI analyzers to the web platform and referees
How the system works: the player client streams four feeds, the streaming server segments and stores them, independent AI analyzers raise alerts, and referees see them on the platform with the evidence attached
Mockup of the SzuperChess referee dashboard with a live player grid, alert feed, synced camera and screen playback, and player chat
The referee dashboard: live player grid, filtered alert feed, synced camera and screen playback with alert markers on the timeline, and a direct chat with the player (illustrative mockup with fictional players)
Comparison of two architecture options: a separate site per sector versus one shared platform
The two architecture options we compared for SzuperChess's move into new sectors, with the trade-offs of each
Platform concept: one shared AI core serving chess, online exams, esports and emotion analysis
Our concept for taking the SzuperChess technology to other sectors: one set of analyzers serving chess, exams, esports and more

The Result

We delivered a working anti-cheating system, and SzuperChess used it in real competitions. Between October 2020 and January 2021 the platform was used in 10 tournaments on Lichess and Chess.com, with up to 36 players per event. More than 250 players from 27 countries registered on the platform, and the AI analyzers raised more than 10,000 alerts for referees to review. The system gave organisers something Zoom never could: a full, time-stamped record of every player's camera, screen and audio, with the suspicious moments already marked.

In the second phase the platform became cloud-ready, browser-based and prepared for new sectors. This helped SzuperChess present itself as a scalable integrity technology, not just a single tournament website.

In the end, the technology proved its value in the market. In April 2023, SzuperChess was acquired by VADR Media, which used its AI gaze-tracking anti-cheat technology for Checkmate.live, an esports-first chess tournament and broadcasting platform with cash prizes. In the acquisition announcement, the founder of SzuperChess described the technology as battle-tested by grandmasters across multiple tournaments.

The real referee dashboard during a live tournament in December 2020, showing tournament status and a feed of AI alerts
The real referee dashboard during a live tournament in December 2020: 22 players joined, and the AI alert feed updated minute by minute (player names blurred)

CEO

SzuperChess (verified Clutch review)

Quote mark

It has been awesome, they have delivered even more features than expected. They are really great and experienced and they came up with many ideas along the way, which have been implemented because they were really good ideas actually. It was very sophisticated technology and they did it very fast and well done. They are very creative and smart, and came up with new features!

Read the verified review on Clutch

Project tech stack

Python programming language

Python

OpenCV logo

OpenCV

Face scan icon for dlib

dlib

TensorFlow machine learning library

TensorFlow

Keras deep learning library

Keras

Text scan icon for Tesseract OCR

Tesseract OCR

Google Cloud logo

Google Cloud Speech-to-Text

.NET Core framework

.NET Core

Arrows icon for gRPC

gRPC

App window icon for Avalonia

Avalonia

FFmpeg logo

FFmpeg

WebRTC logo

WebRTC

Laravel PHP framework

Laravel

MySQL database

MySQL

Amazon Web Services cloud platform

AWS

DigitalOcean logo

DigitalOcean

Long-term Wins

An AI anti-cheating system proven in live international tournaments, later acquired by VADR Media for its Checkmate.live platform
A modular pipeline where each AI analyzer runs on its own and can be tuned or replaced without changing the rest of the system
A referee workflow built around fewer, better alerts, with synced video evidence one click away
A cloud-ready, GDPR-aware architecture with per-tournament storage and automatic deletion of recordings
A platform design that can take the same technology beyond chess, to online exams, esports and other sectors