Skip to content

Search JudoNet

Search JudoNet documentation.

How JudoNet works

This page explains what JudoNet is, what problem it solves, and how the pieces fit together. Read it first — the rest of the documentation assumes you know the concepts introduced here.

You do not need a technical background to read this page. Every term is explained the first time it appears, and the Glossary repeats all of them in one place.

What problem does it solve?

At a judo competition, each mat has a scoreboard — the big screen showing the clock, the scores and the competitors' names. Somebody operates it: they introduce the two judoka, start the contest, award scores and penalties, and declare the winner.

Everything that operator does is interesting to somebody else:

  • The results system needs to know when each contest started and ended.
  • The website and JudoTV need the live clock and score to show spectators.
  • CG - JudoGraphics needs the same data to put scores on the broadcast picture.
  • The video system needs the timings so it can cut each contest out of the recordings.
  • The archive needs all of it kept, so a contest can be looked up months later.

Without something in the middle, each scoreboard would have to talk to all of them separately, and nothing would agree about what happened when.

That is what JudoNet does. It sits on one PC at the venue, connects to every scoreboard on the local network, and takes everything they report. Then it hands that data on — to the online systems, to CG - JudoGraphics, to the video recorders — and keeps a copy of its own.

   scoreboard mat 1  ─┐
   scoreboard mat 2  ─┤                              ┌─► the online platform
   scoreboard mat 3  ─┼──►   JudoNet   ──────────────┼─► CG - JudoGraphics
   scoreboard mat 4  ─┤    (one PC at             │  ├─► FairReplay Recorder
   scoreboard mat …  ─┘     the venue)            │  └─► its own local database
                                                  │
                                          Video CutterV2 asks
                                          JudoNet for contest
                                          timings

Why it is called "packets"

Throughout JudoNet, and throughout this documentation, the unit of data is a packet.

A packet is one snapshot of what a scoreboard is showing at a moment in time: which contest, which screen is displayed, the clock, the scores, the penalties, the competitors' names. The scoreboard sends a new one whenever something changes. A single contest produces hundreds of them.

Everything JudoNet does — storing, sending, broadcasting — it does to packets.

The programs JudoNet works with

ProgramRuns onIts relationship to JudoNet
ScoreboardOne PC per matProduces the packets. JudoNet connects to each one and listens.
JudoManager desktopThe results PCHolds the draw and the competition. JudoNet asks it which competition is running.
CG - JudoGraphicsThe graphics PCReceives live data from JudoNet to put on the broadcast picture. JudoNet's own switches call it just Graphics.
FairReplay RecorderThe recording PC(s)Receives markers and live data from JudoNet, so recordings are tagged with what happened.
Video CutterV2The cutting PCAsks JudoNet when each contest started and ended, so it can cut the recordings into clips.

Two programs, not one

This is the part that confuses people first, so it is worth being clear.

JudoNet itself is a Windows service. A service is a program with no window that runs quietly in the background. You cannot click on it, and it does not appear on the taskbar.

JudoNet Monitor is a small desktop application that starts and stops that service, and gives you a few buttons. It is what the desktop icon opens.

The JudoNet web page is the actual interface — everything you do with JudoNet, you do in a web browser at http://localhost:5220.

You want to…Use
Start or stop JudoNetJudoNet Monitor
See what is happening, change settingsThe web page
Back up and clear the databaseJudoNet Monitor
Give someone else full accessJudoNet Monitor (copy the token), then the web page

So a normal day begins in the Monitor — press START SERVICE, press Open In Browser — and continues in the browser.

The master switches

Along the top of the web page sit five switches. They decide what JudoNet does with the packets it receives, and they are the single most important control in the program.

SwitchWhat it does when on
Store LocallyKeeps every packet in JudoNet's own database on this PC.
Store OnlineSends contest times to the online archive, so contests can be looked up later.
Display OnlineSends live data to the platform, so the website and JudoTV can show the contest as it happens.
Broadcast UDP to GraphicsSends live data to CG - JudoGraphics for the broadcast picture.
Broadcast UDP to FRSends markers and live data to the FairReplay Recorders.

Receiving packets from the scoreboards is not a switch — JudoNet always listens. The switches only control what happens next.

What the scoreboard tells JudoNet

The scoreboard is always showing something — a competitor's name, the running contest, the winner. Each of these screens has a number, called a display mode:

ModeNameWhat is on the screen
1LogosSponsor or event logos.
2CountdownA countdown to the start.
3WhiteThe white competitor is being introduced.
4BlueThe blue competitor is being introduced.
5Both CompetitorsBoth judoka together, with the round of the contest.
6ContestThe live scoreboard — clock and scores.
7WinnerThe winner has been declared.
8PauseThe contest is paused.
9Category / RoundThe category or round.
10Team BothBoth teams, in a team event.
11Team WinnerThe winning team.
12CategoryThe category.
13No-WinnerThe contest ended with no winner declared.
14Team No-WinnerA team tie with no winner.
15Doctor CallA doctor has been called to the mat.

The bold ones are the six that matter to the rest of the system: JudoNet records the exact moment each of them appeared, and those timestamps are what the Video CutterV2 later uses to find each contest inside the long recordings.

Time, and why it matters so much

JudoNet's job is to say when things happened. If its clock is wrong, everything downstream is wrong — contests are archived at the wrong time and the Video CutterV2 cuts the wrong part of the recording.

So JudoNet takes time seriously:

  • On startup it sets time.cloudflare.com as the PC's time server and forces a synchronisation — provided it is running with administrator rights, the PC is not part of a Windows domain, and the internet is reachable.
  • Every minute it checks itself against trusted time, taking ten samples and discarding the two highest and two lowest before averaging.
  • It considers the clock correct while the difference is under 300 milliseconds. Beyond that, the left-hand menu says so and an alert is raised.

The left-hand menu of the web page always shows the current state, in plain words — JudoNet server time is correct, or how many seconds it is ahead or behind.

What JudoNet keeps, and where

Everything JudoNet owns lives in C:\JudoNet:

WhatWhere
The database of packetsC:\JudoNet\data\db.sqlite
Database backupsC:\JudoNet\data\backup\
SettingsC:\JudoNet\settings.json
The access tokenC:\JudoNet\authtoken.json
Log filesC:\JudoNet\logs\

The database grows as the competition runs. It is meant to hold one competition at a time — see backing up and clearing.

How other machines find JudoNet

Nothing at a venue is configured with addresses by hand. Everything announces itself over the local network and everything else listens.

Who announcesHowWho listens
JudoNetUDP broadcast on port 8888, saying "I am JUDONET" and which competition is loadedThe Video CutterV2, other JudoNets
Scoreboards and JudoManager serversUDP on port 8888JudoNet
FairReplay RecordersUDP multicast group 239.225.89.212, port 18918JudoNet, the Video CutterV2

Once JudoNet has found a scoreboard, it connects to it properly — a WebSocket on the port the scoreboard announces, 855 by default — and that connection is what carries the packets.

What JudoNet does not do

Being clear about the boundaries saves time when something goes wrong:

  • It does not run the scoreboard. The operator on each mat does that. JudoNet only listens.
  • It does not decide the result of a contest. It records what the scoreboard showed.
  • It does not record video. That is the FairReplay Recorder.
  • It does not cut video. That is the Video CutterV2.
  • It does not upload video. That is the Video Ingester.
  • It cannot correct another machine's clock — only report on it.
  • It does not start by itself. The service is set to start on demand, so after a PC restart somebody must open JudoNet Monitor and press START SERVICE.

Where to go next