Kyogijo Stadiums競技場

Guides, the reference, a gallery of every picture it can draw, and how it compares: the pages are made from the package's own files when the site is built.

About the name

The pages are in English; this contents, the search and the buttons are in Japanese.

Gallery: net, racket and court sports

Twelve court sports from their own rulebooks (tennis, volleyball with beach and sitting volleyball, badminton, pickleball, table tennis, padel, squash, racquetball, sepak takraw, teqball, roundnet and netball), wide and tall, in their named looks, with the free zone and the singles sticks, the board of sets and games with its serving ball, and the zones of each side of the net. The pictures share one stylesheet, which is left out of each one's SVG here; drawKyogijo puts it in every drawing unless style: "none" says not to.

Each court#

sport is tennis, volleyball, badminton, pickleball, tabletennis, padel, squash, racquetball, sepaktakraw, teqball, roundnet or netball; beach volleyball is league: "fivb-beach" and sitting volleyball league: "wpv-sitting". They lie wide unless orientation says tall.

Tennis court (ITF)

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis" });

Indoor volleyball court (FIVB)

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

18 by 9 metres: the centre line under the net (white, between the net's edges), the attack lines 3 metres from it with the front zone a shade apart, the attack lines' five-dash extensions beyond the side lines, the service zone's two marks behind each end line, and the antennae.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball" });

Beach volleyball court (FIVB Beach)

FIVB beach volleyball courtDrawn as: a beach volleyball court, 16 by 8 metres, with its boundary lines, the net and its antennae, and no centre line.

The beach court is 16 by 8 metres with four boundary lines and nothing else: no centre line, no attack line and no service marks (Beach Rules 1.3.2). The sand look draws its lines in blue.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", league: "fivb-beach" });

Badminton court (BWF)

Badminton courtDrawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "badminton" });

Pickleball court (USA Pickleball)

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "pickleball" });

Table tennis table (ITTF)

Table tennis tableDrawn as: a table tennis table, 2.74 by 1.525 metres, with its side lines, end lines, centre line and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tabletennis" });

Sitting volleyball court (World ParaVolley)

World ParaVolley sitting volleyball courtDrawn as: a sitting volleyball court, 10 by 6 metres, with its centre line, attack lines, the net and its antennae.

10 by 6 metres, the attack lines 2 metres from the centre line, a 7 metre net 1.15 metres high (1.05 for women): the free zone is 4 metres beside the side lines and 6 behind the end lines for World ParaVolley's competitions.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", league: "wpv-sitting" });

Padel court (FIP)

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.

20 by 10 metres inside its walls: the service lines 6.95 metres from the net, the central service line running under the net and 20 centimetres past each service line. The end walls and the 4 metre walls at the ends of the sides are drawn solid, the metal fence between them lighter.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "padel" });

Squash court (World Squash)

Squash courtDrawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.

9.75 by 6.4 metres, the front wall at the left laid flat beside the court as if hinged on its foot: the tin (480 mm), the service line (1.78 m up) and the front wall line (4.57 m up). On the floor the short line, the half court line and the two service boxes.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "squash" });

Squash doubles court

World Squash doubles courtDrawn as: a squash court, 9.75 by 7.62 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.

7.62 metres wide; `wsf-doubles-wide` is the international competition width, 8.42 metres, with a tin of 330 mm.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "squash", league: "wsf-doubles" });

Racquetball court (IRF)

Racquetball courtDrawn as: a racquetball court, 40 by 20 feet, with its short line, service line, service boxes, drive serve lines and broken receiving line, and the walls round it.

40 by 20 feet, the front wall at the left: the short line at the middle, the service zone in front of it with its service boxes and drive serve lines, and the broken receiving line 5 feet behind it. The IRF recommends red lines.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "racquetball" });

Sepak takraw court (ISTAF)

Sepak takraw courtDrawn as: a sepak takraw court, 13.4 by 6.1 metres, with its centre line, quarter circles, service circles and the net.

13.4 by 6.1 metres: the centre line under the net, a quarter circle of 0.9 metres at each end of it and a service circle of 0.3 metres on each side.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "sepaktakraw" });

Teqball court (FITEQ)

Teqball courtDrawn as: a teqball court, 16 by 12 metres at the least, with the table and its net in the middle, the halfway line, the service lines and the court surrounds.

At least 16 by 12 metres, with the 3 by 1.5 metre table in the middle, the net across it, the halfway line and a service line 3.5 metres from each side of the table.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "teqball" });

Roundnet court (International Roundnet Federation)

Roundnet courtDrawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions.

A square of 10 metres with no out of bounds, the set in the middle, the no hit zone line (0.9 metres) and the serving line (2.6 metres), with a mark at each of the four service positions. The court is square, so it lies the same tall or wide.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "roundnet" });

Netball court (World Netball)

Netball courtDrawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.

30.5 by 15.25 metres: two transverse lines in thirds, the centre circle, two goal circles of 4.9 metres and a goalpost with its ring at each goal line, inside a court surround of 3.05 metres.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "netball" });

Squash court, tall

Squash courtDrawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "squash", orientation: "portrait" });

Padel court, tall

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "padel", orientation: "portrait" });

Netball court, tall

Netball courtDrawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "netball", orientation: "portrait" });

Tennis court, tall

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", orientation: "portrait" });

Pickleball court, tall

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "pickleball", orientation: "portrait" });

Tennis court, dark

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", theme: "dark", net: { look: "clay" } });

Named looks#

net.look is the colour of the court and of the ground round it. The lines and sizes are the rulebook's whatever the look.

Tennis court: hard-blue

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { look: "hard-blue" } });

Tennis court: hard-green

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { look: "hard-green" } });

Tennis court: clay

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { look: "clay" } });

Tennis court: grass

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { look: "grass" } });

Volleyball court: wood

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", net: { look: "wood" } });

Volleyball court: blue

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", net: { look: "blue" } });

Volleyball court: sand

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", net: { look: "sand" } });

Badminton court: green

Badminton courtDrawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "badminton", net: { look: "green" } });

Badminton court: blue

Badminton courtDrawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "badminton", net: { look: "blue" } });

Badminton court: wood

Badminton courtDrawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "badminton", net: { look: "wood" } });

Pickleball court: blue-green

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "pickleball", net: { look: "blue-green" } });

Pickleball court: green

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "pickleball", net: { look: "green" } });

Pickleball court: red

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "pickleball", net: { look: "red" } });

Table tennis table: blue

Table tennis tableDrawn as: a table tennis table, 2.74 by 1.525 metres, with its side lines, end lines, centre line and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tabletennis", net: { look: "blue" } });

Table tennis table: green

Table tennis tableDrawn as: a table tennis table, 2.74 by 1.525 metres, with its side lines, end lines, centre line and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tabletennis", net: { look: "green" } });

Padel court: blue

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "padel", net: { look: "blue" } });

Padel court: green

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "padel", net: { look: "green" } });

Padel court: terracotta

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "padel", net: { look: "terracotta" } });

Squash court: wood

Squash courtDrawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "squash", net: { look: "wood" } });

Squash court: blue

Squash courtDrawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "squash", net: { look: "blue" } });

Racquetball court: wood

Racquetball courtDrawn as: a racquetball court, 40 by 20 feet, with its short line, service line, service boxes, drive serve lines and broken receiving line, and the walls round it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "racquetball", net: { look: "wood" } });

Racquetball court: convertible

Racquetball courtDrawn as: a racquetball court, 40 by 20 feet, with its short line, service line, service boxes, drive serve lines and broken receiving line, and the walls round it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "racquetball", net: { look: "convertible" } });

Sepak takraw court: blue

Sepak takraw courtDrawn as: a sepak takraw court, 13.4 by 6.1 metres, with its centre line, quarter circles, service circles and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "sepaktakraw", net: { look: "blue" } });

Sepak takraw court: green

Sepak takraw courtDrawn as: a sepak takraw court, 13.4 by 6.1 metres, with its centre line, quarter circles, service circles and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "sepaktakraw", net: { look: "green" } });

Sepak takraw court: wood

Sepak takraw courtDrawn as: a sepak takraw court, 13.4 by 6.1 metres, with its centre line, quarter circles, service circles and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "sepaktakraw", net: { look: "wood" } });

Teqball court: grey

Teqball courtDrawn as: a teqball court, 16 by 12 metres at the least, with the table and its net in the middle, the halfway line, the service lines and the court surrounds.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "teqball", net: { look: "grey" } });

Teqball court: blue

Teqball courtDrawn as: a teqball court, 16 by 12 metres at the least, with the table and its net in the middle, the halfway line, the service lines and the court surrounds.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "teqball", net: { look: "blue" } });

Teqball court: green

Teqball courtDrawn as: a teqball court, 16 by 12 metres at the least, with the table and its net in the middle, the halfway line, the service lines and the court surrounds.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "teqball", net: { look: "green" } });

Roundnet court: grass

Roundnet courtDrawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "roundnet", net: { look: "grass" } });

Roundnet court: sand

Roundnet courtDrawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "roundnet", net: { look: "sand" } });

Roundnet court: indoor

Roundnet courtDrawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "roundnet", net: { look: "indoor" } });

Netball court: wood

Netball courtDrawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "netball", net: { look: "wood" } });

Netball court: blue

Netball courtDrawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "netball", net: { look: "blue" } });

Netball court: green

Netball courtDrawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "netball", net: { look: "green" } });

Free zone, posts and sticks#

net.free is official (the default), least or none; net.sticks draws the tennis singles sticks; detail: "simple" leaves out the small marks.

Volleyball: the FIVB's free zone and attack line extensions

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

5 metres beside the side lines, 6.5 behind the end lines, posts 1 metre out.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", net: { free: "official" } });

Volleyball: the least the rules allow

Volleyball courtDrawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.

A free zone of 3 metres, posts 0.5 metre out and no extension of the attack line.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "volleyball", net: { free: "least" } });

Tennis: a club's run-back

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

18 feet behind the baselines and 10 beside the sidelines (Appendix X).

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { free: "least" } });

Tennis: no free zone

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { free: "none" } });

Tennis: singles sticks

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.

A doubles net held up for singles by two sticks 3 feet outside the singles court.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "tennis", net: { sticks: true } });

Badminton: simple

Badminton courtDrawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({ sport: "badminton", detail: "simple" });

The board and the badge#

Each team's score in each set (sets), the points of the game in progress (points) and a tie-break (tiebreaks) in tennis, the sets or games won, and a ball beside the team that is serving. A set or a game is the status: set-3, game-2, tiebreak.

Tennis, in the third set

Harbour City Gulls 1, Prairie Ridge Bison 1, Set 3Final, Set 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By set, Harbour City Gulls: 6 (5), 6, 2. In the current game, Harbour City Gulls has 40. By set, Prairie Ridge Bison: 7, 3, 3. In the current game, Prairie Ridge Bison has 30. Drawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.Final123PtsSetsHARBOURCITY GULLS6562401PRAIRIERIDGE BISON733301Set 3

The first set went to a tie-break, 7-6 (5): the 5 is written small beside the games of the team that lost it.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "tennis",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [6, 6, 2],
    tiebreaks: [5, null, null],
    points: "40",
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 1,
    color: "#a8452c",
    sets: [7, 3, 3],
    points: "30",
  },
  status: "set-3",
  competition: "Final",
});

Volleyball, in the fourth set

Harbour City Gulls 2, Prairie Ridge Bison 1, Set 4Semifinal, Set 4. Harbour City Gulls 2, Prairie Ridge Bison 1. Harbour City Gulls is serving. By set, Harbour City Gulls: 25, 22, 25, 18. By set, Prairie Ridge Bison: 21, 25, 20, 20. Drawn as: a volleyball court, 18 by 9 metres, with its centre line, attack lines, the net and its antennae.Semifinal12345SetsHARBOURCITY GULLS252225182PRAIRIERIDGE BISON212520201Set 4

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "volleyball",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [25, 22, 25, 18],
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 1,
    color: "#a8452c",
    sets: [21, 25, 20, 20],
  },
  status: "set-4",
  competition: "Semifinal",
});

Beach volleyball, two sets

Harbour City Gulls 2, Prairie Ridge Bison 0, FinalFinal. Harbour City Gulls 2, Prairie Ridge Bison 0. Harbour City Gulls won. Harbour City Gulls is serving. By set, Harbour City Gulls: 21, 23. By set, Prairie Ridge Bison: 18, 21. Drawn as: a beach volleyball court, 16 by 8 metres, with its boundary lines, the net and its antennae, and no centre line.123SetsHARBOURCITY GULLS21232PRAIRIERIDGE BISON18210Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "volleyball",
  league: "fivb-beach",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [21, 23],
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 0,
    color: "#a8452c",
    sets: [18, 21],
    serving: false,
  },
  status: "final",
});

Badminton, in the third game

Harbour City Gulls 1, Prairie Ridge Bison 1, Game 3Final, Game 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By game, Harbour City Gulls: 21, 18, 11. By game, Prairie Ridge Bison: 17, 21, 9. Drawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.Final123GamesHARBOURCITY GULLS2118111PRAIRIERIDGE BISON172191Game 3

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "badminton",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [21, 18, 11],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [17, 21, 9] },
  status: "game-3",
  competition: "Final",
  orientation: "landscape",
});

Pickleball, tall

Harbour City Gulls 1, Prairie Ridge Bison 1, Game 3Final, Game 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By game, Harbour City Gulls: 11, 8, 5. By game, Prairie Ridge Bison: 7, 11, 4. Drawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net.Final123GamesHARBOURCITY GULLS11851PRAIRIERIDGE BISON71141Game 3

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "pickleball",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [11, 8, 5],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [7, 11, 4] },
  status: "game-3",
  competition: "Final",
  orientation: "portrait",
});

Table tennis, final

Harbour City Gulls 3, Prairie Ridge Bison 2, FinalFinal, Final. Harbour City Gulls 3, Prairie Ridge Bison 2. Harbour City Gulls won. By game, Harbour City Gulls: 11, 9, 11, 7, 11. By game, Prairie Ridge Bison: 7, 11, 8, 11, 6. Drawn as: a table tennis table, 2.74 by 1.525 metres, with its side lines, end lines, centre line and the net.Final12345GamesHARBOURCITY GULLS119117113PRAIRIERIDGE BISON71181162Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "tabletennis",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 3,
    color: "#1d4f91",
    sets: [11, 9, 11, 7, 11],
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 2,
    color: "#a8452c",
    sets: [7, 11, 8, 11, 6],
  },
  status: "final",
  competition: "Final",
});

Sitting volleyball, in the fourth set

Harbour City Gulls 2, Prairie Ridge Bison 1, Set 4Semifinal, Set 4. Harbour City Gulls 2, Prairie Ridge Bison 1. Harbour City Gulls is serving. By set, Harbour City Gulls: 25, 22, 25, 18. By set, Prairie Ridge Bison: 21, 25, 20, 20. Drawn as: a sitting volleyball court, 10 by 6 metres, with its centre line, attack lines, the net and its antennae.Semifinal12345SetsHARBOURCITY GULLS252225182PRAIRIERIDGE BISON212520201Set 4

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "volleyball",
  league: "wpv-sitting",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [25, 22, 25, 18],
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 1,
    color: "#a8452c",
    sets: [21, 25, 20, 20],
  },
  status: "set-4",
  competition: "Semifinal",
});

Padel, in the third set

Harbour City Gulls 1, Prairie Ridge Bison 1, Set 3Final, Set 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By set, Harbour City Gulls: 6 (5), 6, 2. In the current game, Harbour City Gulls has 40. By set, Prairie Ridge Bison: 7, 3, 3. In the current game, Prairie Ridge Bison has 30. Drawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure.Final123PtsSetsHARBOURCITY GULLS6562401PRAIRIERIDGE BISON733301Set 3

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "padel",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [6, 6, 2],
    tiebreaks: [5, null, null],
    points: "40",
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 1,
    color: "#a8452c",
    sets: [7, 3, 3],
    points: "30",
  },
  status: "set-3",
  competition: "Final",
});

Squash, best of five

Harbour City Gulls 3, Prairie Ridge Bison 2, FinalFinal, Final. Harbour City Gulls 3, Prairie Ridge Bison 2. Harbour City Gulls won. By game, Harbour City Gulls: 11, 9, 11, 7, 11. By game, Prairie Ridge Bison: 7, 11, 8, 11, 6. Drawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it.Final12345GamesHARBOURCITY GULLS119117113PRAIRIERIDGE BISON71181162Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "squash",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 3,
    color: "#1d4f91",
    sets: [11, 9, 11, 7, 11],
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 2,
    color: "#a8452c",
    sets: [7, 11, 8, 11, 6],
  },
  status: "final",
  competition: "Final",
});

Racquetball, best of five

Harbour City Gulls 3, Prairie Ridge Bison 1, FinalFinal, Final. Harbour City Gulls 3, Prairie Ridge Bison 1. Harbour City Gulls won. By game, Harbour City Gulls: 11, 8, 11, 11. By game, Prairie Ridge Bison: 7, 11, 9, 5. Drawn as: a racquetball court, 40 by 20 feet, with its short line, service line, service boxes, drive serve lines and broken receiving line, and the walls round it.Final12345GamesHARBOURCITY GULLS11811113PRAIRIERIDGE BISON711951Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "racquetball",
  away: { name: "Harbour City Gulls", abbr: "HCG", score: 3, color: "#1d4f91", sets: [11, 8, 11, 11] },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [7, 11, 9, 5] },
  status: "final",
  competition: "Final",
});

Sepak takraw, three sets

Harbour City Gulls 2, Prairie Ridge Bison 1, FinalFinal, Final. Harbour City Gulls 2, Prairie Ridge Bison 1. Harbour City Gulls won. Harbour City Gulls is serving. By set, Harbour City Gulls: 21, 17, 15. By set, Prairie Ridge Bison: 18, 21, 12. Drawn as: a sepak takraw court, 13.4 by 6.1 metres, with its centre line, quarter circles, service circles and the net.Final123SetsHARBOURCITY GULLS2117152PRAIRIERIDGE BISON1821121Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "sepaktakraw",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [21, 17, 15],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [18, 21, 12] },
  status: "final",
  competition: "Final",
});

Teqball, three sets

Harbour City Gulls 2, Prairie Ridge Bison 1, FinalFinal, Final. Harbour City Gulls 2, Prairie Ridge Bison 1. Harbour City Gulls won. Harbour City Gulls is serving. By set, Harbour City Gulls: 12, 9, 12. By set, Prairie Ridge Bison: 10, 12, 7. Drawn as: a teqball court, 16 by 12 metres at the least, with the table and its net in the middle, the halfway line, the service lines and the court surrounds.Final123SetsHARBOURCITY GULLS129122PRAIRIERIDGE BISON101271Final

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "teqball",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [12, 9, 12],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [10, 12, 7] },
  status: "final",
  competition: "Final",
});

Roundnet: the board lies below the circles

Harbour City Gulls 2, Prairie Ridge Bison 1, FinalFinal, Final. Harbour City Gulls 2, Prairie Ridge Bison 1. Harbour City Gulls won. Harbour City Gulls is serving. By game, Harbour City Gulls: 21, 18, 21. By game, Prairie Ridge Bison: 15, 21, 17. Drawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions.Final123GamesHARBOURCITY GULLS2118212PRAIRIERIDGE BISON1521171Final

The set is in the middle of the court, so the board lies on the ground below the serving line.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "roundnet",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 2,
    color: "#1d4f91",
    sets: [21, 18, 21],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [15, 21, 17] },
  status: "final",
  competition: "Final",
});

Netball: the usual score, with the teams in the goal thirds

Prairie Ridge Bison 49, Harbour City Gulls 52, FinalFinal, Final. Prairie Ridge Bison 49, Harbour City Gulls 52. Harbour City Gulls won. Drawn as: a netball court, 30.5 by 15.25 metres, with its transverse lines, centre circle, goal circles and goalposts.PRAIRIERIDGE BISONHARBOURCITY GULLSFinalPRB49HCG52–Final

Netball is scored in goals, so it has the usual score, not a board of sets: the home team is on the left.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "netball",
  away: { name: "Harbour City Gulls", abbr: "HCG", score: 52, color: "#1d4f91" },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 49, color: "#a8452c" },
  status: "final",
  competition: "Final",
});

Badge, tennis

Harbour City Gulls 1, Prairie Ridge Bison 1, Set 3Final, Set 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By set, Harbour City Gulls: 6 (5), 6, 2. In the current game, Harbour City Gulls has 40. By set, Prairie Ridge Bison: 7, 3, 3. In the current game, Prairie Ridge Bison has 30. Drawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net.HCG1PRB1Set 3

The serving ball is in the corner of the team that is serving.

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "tennis",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [6, 6, 2],
    tiebreaks: [5, null, null],
    points: "40",
    serving: true,
  },
  home: {
    name: "Prairie Ridge Bison",
    abbr: "PRB",
    score: 1,
    color: "#a8452c",
    sets: [7, 3, 3],
    points: "30",
  },
  status: "set-3",
  competition: "Final",
  size: "badge",
});

Compact card, badminton

Harbour City Gulls 1, Prairie Ridge Bison 1, Game 3Final, Game 3. Harbour City Gulls 1, Prairie Ridge Bison 1. The game is level. Harbour City Gulls is serving. By game, Harbour City Gulls: 21, 18, 11. By game, Prairie Ridge Bison: 17, 21, 9. Drawn as: a badminton court, 13.4 by 6.1 metres, with its singles and doubles lines, short and long service lines, centre lines and the net.HCG1PRB1Game 3

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const svg = drawKyogijo({
  sport: "badminton",
  away: {
    name: "Harbour City Gulls",
    abbr: "HCG",
    score: 1,
    color: "#1d4f91",
    sets: [21, 18, 11],
    serving: true,
  },
  home: { name: "Prairie Ridge Bison", abbr: "PRB", score: 1, color: "#a8452c", sets: [17, 21, 9] },
  status: "game-3",
  competition: "Final",
  size: "compact",
});

Each side of the net#

The net-court zones split each side at the court's own line: tennis's service line, volleyball's attack line, badminton's short service line, pickleball's non-volley zone line, padel's and teqball's service lines. Squash and racquetball have the wall-court zones (the front court and the back court, split at the short line), roundnet the roundnet-rings and netball the field-thirds.

Zones: tennis

Tennis courtDrawn as: a tennis court, 78 by 36 feet, with its baselines, singles and doubles sidelines, service lines, centre service lines, centre marks and the net. Data: Zone chart of 80 balls. Count in 2 zones, from 40 to 40. Highest: Front court (left end) (40), Front court (right end) (40).Zone chart of 80 ballsCount in 2 zones, from 40 to 40. Highest: Front court (left end) (40), Front court (right end) (40).Front court (left end): 40 (40)Back court (left end) (0)Front court (right end): 40 (40)Back court (right end) (0)4040Legend: CountCount40

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const balls = Array.from({ length: 80 }, (_, i) => ({ x: ((i * 53) % 40) - 20, y: ((i * 29) % 16) - 8 }));
const svg = drawKyogijo({ sport: "tennis", layers: [{ kind: "zones", name: "balls", zones: "net-court", from: "tennis", data: balls, labels: true, legend: true }] });

Zones: padel

Padel courtDrawn as: a padel court, 20 by 10 metres, with its service lines, central service lines, the net, and the walls and metal fence of its enclosure. Data: Zone chart of 80 balls. Count in 4 zones, from 5 to 35. Highest: Front court (right end) (35), Front court (left end) (30), Back court (left end) (10).Zone chart of 80 ballsCount in 4 zones, from 5 to 35. Highest: Front court (right end) (35), Front court (left end) (30), Back court (left end) (10).Front court (left end): 30 (30)Back court (left end): 10 (10)Front court (right end): 35 (35)Back court (right end): 5 (5)3530105Legend: CountCount102030

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const balls = Array.from({ length: 80 }, (_, i) => ({ x: ((i * 53) % 16) - 8, y: ((i * 29) % 8) - 4 }));
const svg = drawKyogijo({ sport: "padel", layers: [{ kind: "zones", name: "balls", zones: "net-court", from: "padel", data: balls, labels: true, legend: true }] });

Zones: squash

Squash courtDrawn as: a squash court, 9.75 by 6.4 metres, with its short line, half court line and service boxes, the front wall laid flat beside it with its tin, service line and front wall line, and the walls round it. Data: Zone chart of 80 balls. Count in 2 zones, from 27 to 53. Highest: Front court (53), Back court (27).Zone chart of 80 ballsCount in 2 zones, from 27 to 53. Highest: Front court (53), Back court (27).Front court: 53 (53)Back court: 27 (27)5327Legend: CountCount304050

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const balls = Array.from({ length: 80 }, (_, i) => ({ x: ((i * 53) % 9) - 4.5, y: ((i * 29) % 6) - 3 }));
const svg = drawKyogijo({ sport: "squash", layers: [{ kind: "zones", name: "balls", zones: "wall-court", from: "squash", data: balls, labels: true, legend: true }] });

Zones: roundnet

Roundnet courtDrawn as: a roundnet court, 10 by 10 metres at the least, with the set at its centre, the no hit zone line, the serving line and its four service positions. Data: Zone chart of 80 balls. Count in 2 zones, from 36 to 44. Highest: Outside the circles (44), Serving ring (36).Zone chart of 80 ballsCount in 2 zones, from 36 to 44. Highest: Outside the circles (44), Serving ring (36).Outside the circles: 44 (44)Serving ring: 36 (36)No hit zone (0)4436Legend: CountCount3638404244

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const balls = Array.from({ length: 80 }, (_, i) => ({ x: ((i * 53) % 9) - 4.5, y: ((i * 29) % 9) - 4.5 }));
const svg = drawKyogijo({ sport: "roundnet", layers: [{ kind: "zones", name: "balls", zones: "roundnet-rings", from: "roundnet", data: balls, labels: true, legend: true }] });

Zones: pickleball

Pickleball courtDrawn as: a pickleball court, 44 by 20 feet, with its non-volley zones, centre lines and the net. Data: Zone chart of 80 balls. Count in 4 zones, from 12 to 28. Highest: Back court (left end) (28), Back court (right end) (26), Front court (right end) (14).Zone chart of 80 ballsCount in 4 zones, from 12 to 28. Highest: Back court (left end) (28), Back court (right end) (26), Front court (right end) (14).Front court (left end): 12 (12)Back court (left end): 28 (28)Front court (right end): 14 (14)Back court (right end): 26 (26)28261412Legend: CountCount152025

Open in a page loads the published package from jsDelivr, which serves only released versions.

Show the code
import { drawKyogijo } from "@johnmorrisdotca/kyogijo-stadiums";

const balls = Array.from({ length: 80 }, (_, i) => ({ x: ((i * 53) % 40) - 20, y: ((i * 29) % 16) - 8 }));
const svg = drawKyogijo({ sport: "pickleball", layers: [{ kind: "zones", name: "balls", zones: "net-court", from: "pickleball", data: balls, labels: true, legend: true }] });