Eight jackets read off the sprites, 6 patterns the card renderer draws, and the design around a simulated race — broadcast graphics, results typography and the cosmetics sold in the games.
8Liveries
6Patterns
5Features
3Guides
Colours & Silks is the cultural half of a racing paper, and here that means design rather than dress. The base brief gave this slot to Fashions on the Field, a real Victoria Racing Club competition with judges, entrants and a start date in 1962. A simulated circuit has no analogue for it and inventing one would be the only dishonest thing on the site, so the slot keeps its purpose and changes its subject: liveries, broadcast graphics, the cosmetics people buy in the simulation games, and the typography of a results board.
The liveries come first, because they are the one part of this circuit that is not arithmetic. Eight pacers race at Kurrajong Paceway, which is the demo track, and their colours were read off the sprites in the game bundle rather than drawn up afterwards. That is why the free play-credit game at play/, the livery cards and the runner tables on the race pages all show the same eight jackets. Each entry below carries the pattern, the hex codes, the sulky colour and a note on how that livery reads at speed on a screen.
Sprites are stacked in index order, runner_0 first, so No 1 is drawn highest on the screen and smallest and No 8 is drawn last, nearest the camera and largest. The track is pale limestone rather than turf and the cycle is twilight, which pulls every dark tone towards the same near-black. Those three facts decide whether a livery works here, and they are why the notes below talk about white, yellow and magenta more than about taste.
Nothing in this section is for sale and nothing in it reaches a result. A livery holds no numbers in the draw: it identifies a runner on a screen, and that is the whole of its job. What does decide a result is set out at how a virtual race is decided, and the terms are defined in the glossary. Every claim about the real world below names its source and the date the desk read it, in the sentence. As at 18 October 2026, engine GP-Draw 4.2.
Drawn by the renderer from the hex codes below, in saddlecloth order, which is sprite
order. A livery identifies a runner on a screen and holds no numbers in the draw.
No 1
· Emerald and white halves, emerald cap · Bay coat · sprite runner_0
#0E7C4AEmerald#FFFFFFWhite
Cap #0E7C4A
Emerald · Sulky #2B4FD6
Blue
Drawn first in the stack, so No 1 sits highest on the screen and smallest, and the white half is the only part of this jacket that holds at that size. Emerald would sink into turf; Kurrajong is pale limestone, so the green stays a dark block and the jacket splits cleanly down the middle at any speed. The blue sulky is easier to track than the cap, which is the same emerald as the body and merges with it from the front.
No 2
· Red and white quarters, navy cap · Light bay coat · sprite runner_1
#D7262FRed#FFFFFFWhite
Cap #13214A
Navy · Sulky #D7262F
Red
Quarters are the pattern motion blur destroys: two blocks of red beside two of white average to one pink field at racing speed, which is exactly what the screen shows. The navy cap is therefore the identifier, because it sits above the blur and is the only navy in the eight. The red sulky repeats a body colour, so No 2 reads as a single warm smear with a dark dot on top.
No 3
· Black, red sash, chequered cap · Dark bay coat · sprite runner_2
#141821Black#D7262FRed
Cap #FFFFFF
Chequered black and white · Sulky #D9A61C
Gold
A black jacket on a dark bay horse in the twilight cycle is close to no jacket at all: the body falls to the same tone as the inside rail and the shadow under it. The red sash survives because it crosses the body diagonally and stays visible whichever way the sprite leans. The chequered cap exists for this runner and no other reason — a high-frequency check does not average to grey at this size, it flickers, and a flickering patch is the quickest thing in the field to find.
Renderer. The cap is a chequered black and white and the renderer draws a cap as one swatch, so the card takes the lighter of the two and the pattern is named in the field rather than drawn.
No 4
· Royal blue, white band · Dun coat · sprite runner_3
#1D4ED8Royal blue#FFFFFFWhite
Cap #1D4ED8
Royal blue · Sulky #C9B18A
Natural
The dun coat is the palest animal in the field after the grey, so royal blue on it is the highest jacket-to-coat contrast on the card. The white band holds at every size and is the fastest read of the eight. The natural sulky is the one fault the desk has not fixed: unpainted timber against pale limestone is the same tone as the track, and No 4's wheel is effectively invisible.
Renderer. ROSTER gives this runner no cap colour, so the cap takes the body royal blue.
No 5
· Yellow, red and orange cap · Bay coat · sprite runner_4
#F2C21BYellow#D7262FRed
Cap #E8661A
Red and orange · Sulky #1E8C8C
Teal
Yellow is the highest-luminance colour in the eight and the only one that needs no second colour to be found: it is readable at the top of the screen, inside the blur and against the limestone. The red and orange cap does not survive, because two warm colours at that size average to one orange dot, so the body does all the work. The teal sulky is the cold complement of the jacket and reads at a glance, which makes No 5 the easiest runner in the field to follow.
Renderer. The jacket is solid yellow, so the renderer draws the first colour only; the red belongs to the cap, which the card prints as its orange.
No 6
· Purple and white, purple cap · Black coat · sprite runner_5
#6B3FA0Purple#FFFFFFWhite
Cap #6B3FA0
Purple · Sulky #D0208C
Magenta
A black horse in a purple jacket in the twilight cycle is two dark tones stacked, and the purple falls almost to the colour of the animal under it. What identifies No 6 is the white, which survives everything, and the magenta sulky, which is the brightest moving block of colour anywhere in the eight. The purple cap adds nothing on screen and is kept because it is what the sprite carries.
No 7
· Blue, magenta pad, teal cap · Grey coat · sprite runner_6
#1B4FA8Blue#D0208CMagenta
Cap #1E8C8C
Teal · Sulky #2E8B4A
Green
Salt Pan is the only grey in the eight, so the animal identifies the runner before the silks do, which is a luxury no other livery here has. Magenta on blue over a pale grey coat is the strongest three-colour pairing on the card, and the pad keeps its shape longer than any stripe or quarter because it is one large block. The teal cap and the green sulky are close in hue and read as one colour at small scale — a known fault, printed rather than quietly recoloured.
Renderer. The renderer has no pad primitive, so the magenta pad is drawn as a horizontal band. That is a limitation of the card, printed rather than designed around.
No 8
· Red and white stripes, striped cap · Chestnut coat · sprite runner_7
#D7262FRed#FFFFFFWhite
Cap #D7262F
Red and white stripes · Sulky #D9A61C
Gold
Drawn last in the stack, so No 8 is nearest the camera and largest, which is the only reason these stripes work at all: narrow vertical stripes alias to solid pink the moment the sprite is scaled down, exactly as No 2's quarters do. The striped cap fails for the same reason, which leaves the chestnut coat and the gold sulky doing the identifying. That gold is shared with No 3, so the two are separated by jacket — red and white stripes against black and red.
Renderer. The striped cap is drawn as flat red, because a cap is one swatch; the stripe is named in the field instead.
Hex pairs are the values the card renderer is given, not a reading off a
photograph: a simulated runner cannot be photographed, so the colours are the identity.
Livery is defined in the glossary.
Features
5 pieces · anchored, so a link lands on the article
Culture
Eight liveries, read off the sprites
The Kurrajong eight were not designed. They were recorded: eight sprites, eight patterns, sixteen hex codes, and three conditions that decide which of them survive a screen.
The eight Kurrajong liveries were not designed. They were read off the sprites in the demo bundle, one at a time, and written down: runner_0 to runner_7 against saddlecloths 1 to 8, with the pattern, the two body colours, the cap and the sulky recorded as hex codes. The game, the livery cards and the runner tables on the race pages agree because all three read the same eight rows.
The card renderer draws eight patterns and nothing else — halves, quarters, sash, band, stripes, hoops, chequer and solid — and each card is 600 by 400 with the saddlecloth, the pattern, a coat swatch and the engine id on it. No photograph of a real horse stands in for a simulated one anywhere on this site. One livery does not fit the renderer: Salt Pan's magenta pad is drawn as a horizontal band, because there is no pad primitive. That is a limitation, and it is printed as one.
Three conditions decide whether a livery works here. Eight runners share a 300 m straight. The surface is pale limestone rather than turf, so cool colours hold their tone and warm colours compete with the track. And Kurrajong races in the twilight cycle, which pulls every dark tone towards the same near-black. Sprites stack in index order, so No 1 is drawn highest and smallest and No 8 nearest the camera and largest.
What survives all of that is a short list: white, yellow and magenta. White does the work on No 1, No 2, No 4, No 6 and No 8. The yellow of No 5 needs no second colour at all. The magenta sulky of No 6 is the brightest moving block in the field. What fails is just as short: black on No 3 against the rail, the stripes of No 8 and the quarters of No 2, which both alias to one pink at small scale, and the natural timber sulky of No 4, which is the same tone as the limestone it rolls on.
Two collisions are left in deliberately. No 3 and No 8 share a gold sulky, so the jacket settles which is which. No 7 carries a teal cap over a green sulky, and at small scale they read as one colour. Neither was recoloured, because the sprites are the source and the point of this section is to record what the screen does.
The chequered cap on No 3 is the piece of this set doing real work. A black jacket with a red sash, on a dark bay horse, at twilight, is almost nothing on screen; a high-frequency check flickers instead of averaging to grey. Find the flicker and you have found the third runner. The eight rows are listed in this section, each runner's own page in horses/ carries its card, and the same eight jackets are in the demo at play/.
Drones over Aintree, fences built to break apart, horses written to tire, and a field drawn without blinkers because there was no time to draw them. What the broadcast virtuals of 2020 show about drawing a race.
Four simulated horse races were made for television in 2020, and one supplier built all four. Inspired Entertainment produced the Virtual Grand National for ITV, the Triple Crown Showdown for Churchill Downs and NBC, a Cox Plate centenary race for 7Two, and the Lexus Melbourne Cup Race of Dreams for the Victoria Racing Club and Network 10 (company releases and contemporaneous reporting, read 18 October 2026). None of the four published the weighting the result came out of.
The Aintree environment was not drawn from imagination. The course was filmed the day after the 2016 Grand National using drones, tracking cameras and cherry pickers, then rebuilt as a free-camera 3D course with fences that break apart when they are jumped (TVBEurope, 12 April 2018, read 18 October 2026). Jockeys who had ridden the course were consulted during development; that account names AP McCoy, Richard Pitman and Katie Walsh. The animation team is Manchester-based and was led by Steve Rogers.
One design problem in that build is worth a paragraph. Standard virtual horses are built for races of two to three minutes, and a four-mile National runs nine to ten, so new horse algorithms were written to shift movement over the life cycle of the race and tire the field towards the end; the horses also run on built-in AI with a forcefield so they do not collide (TVBEurope, as above). In the 2020 edition Tiger Roll led into the final circuit and faded to fourth under 11st 10lb as reported, which is that tiring model doing visible work (Racing Post full result, April 2020, read 18 October 2026).
The audience was the largest a simulated race has drawn. ITV reported a peak of 4.8 million for the broadcast of 4 April 2020, about 30 per cent of the television audience, and an average of 4.3 million across the 30-minute programme (ITV and trade reporting, April 2020, read 18 October 2026). Nick Luck presented, Alice Plunkett and Richard Pitman sat on the panel, Stewart Machin called it. The race was pre-recorded, as all of these were.
The most useful line for anyone drawing racing on a screen comes from the Churchill Downs race. The production had a limited timeframe, so the graphics could not show equipment such as blinkers, and Larry Collmus recorded his call in advance (americasbestracing.net, 2020, read 18 October 2026). The race still read as a race. A dramatisation can leave out what it cannot draw, which is why the eight liveries on this circuit carry no gear at all.
The Australian one was the quietest and the best handled. Twenty-four past Melbourne Cup champions were chosen from more than 100 by a panel that included Gai Waterhouse and Greg Miles, and the race ran on a 3D recreation of Flemington on Network 10 on 3 November 2020, where Makybe Diva beat Phar Lap with Carbine third per secondary coverage (Inspired and Victoria Racing Club releases, 2020, read 18 October 2026). No betting was offered, because the result was already known to the people who made it. That is the integrity question in one sentence, and it is why this paper prints the seed and the full weighting table for every race it runs: see how a virtual race is decided.
Across the simulators, the layer the player controls most directly is the layer the engine never reads. That is fine until appearance and advantage are sold through the same till.
In every simulation examined for this section, the part of a horse the player controls most directly is the part the engine does not read. Rival Stars Horse Racing lets a player customise a jockey's face, silks and helmet, and the console editions added a Photo Mode (PikPok press release of 18 April 2019 and its console launch post of April 2026, read 18 October 2026). None of it reaches the result.
The pattern repeats across the category. Phar Lap: Horse Racing Challenge shipped a horse creator on its Australian release of 22 March 2019 (publisher materials, read 18 October 2026). Newturf, a browser stable game that ran flat, hurdles and harness racing, offered customisable silks and is now listed as permanently closed (onlinesportmanagers.com game profile, read 18 October 2026). horseracesim.com still lets a visitor customise up to ten horses and race them on an oval with no download and no account (read 18 October 2026). The cosmetics outlive the engines they were drawn for.
What that costs is documented best by Howrse, which has run since 8 September 2005 and has belonged to Ubisoft since it acquired Owlient in July 2011. Players buy passes, and passes are spent both on items that change a horse's appearance and on items that boost skills and alter its life cycle (Wikipedia's account of the game and the sources it cites, read 18 October 2026). A consumer advice centre in North Rhine-Westphalia named the game in 2009, and the television magazine Frontal21 reported in 2011 that a girl had bought passes 267 times without her parents' knowledge. When appearance and advantage come through one till, appearance is not decoration.
ZED RUN, built by the Australian studio Virtually Human, inverted the arrangement. A horse's traits were set by a contract and not fully revealed until it raced, so the look was public and the ability was hidden, and an owner had to learn each horse's distances and conditions by running it (Yahoo Finance Australia, 13 January 2022, read 18 October 2026). The Polygon version closed on 28 February 2025 (Decrypt, 28 April 2025, read 18 October 2026). The liveries are still visible on the secondary market. The engine that read the traits is not.
The eight liveries on this circuit are fixed, free and not for sale, and the site has no second currency to sell them in. A livery holds no numbers in the draw: it tells a reader which runner is which on a screen, and that is all it does. The demo at play/ is play credits only — no money, no deposits, no prizes, nothing to win or lose — and what decides the race it shows is printed at how a virtual race is decided.
A proportional 1 is narrower than a 0, and a reader checking eight implied percentages against a book total needs the column to line up. Why every figure on this site is monospaced, and what the alternative looks like.
Every figure on this site is set in IBM Plex Mono and every heading in Oswald, and the reason is a results board. Prices, times, margins, ratings, seeds and implied percentages are read down a column, not along a line. A proportional 1 is narrower than a proportional 0, so a column of proportional numerals does not align, and a reader checking eight implied percentages against a book total needs it to align.
The cost of monospace is width, so it is used only where there is a number. Body text is Source Sans 3. Headings are Oswald at 500 and 600, and the large numerals in a card header are Oswald too, because those are display rather than data. Three sizes and one accent carry the whole board.
The field this paper entered gets this wrong in ways worth naming. betvirtual.co renders finishing positions as rosette graphics with no alt text, so a result is unavailable to a screen reader and to anything parsing the page; one aggregator prints No runners found. above a list of runners and carries a Stats column that is empty on every row; portmanparkresults.com promises finishing orders, winning margins and jockey statistics and publishes none of them (all read 18 October 2026). The authoritative source is no better: 49's holds the data and serves it through a client-side application whose results endpoint refuses unauthenticated requests, so nothing there can be quoted or linked.
So the rules on this board are short. A finishing position is text. A margin is text and carries one decimal. A mile rate is printed as minutes, seconds and a tenth. A seed is sixteen hexadecimal characters in mono, at a size that can be read and copied, because a reader who cannot copy the seed cannot reconstruct the race.
Colour is a second channel and never the only one. The win green and the error red each sit beside a word that says the same thing, and the amber accent that marks the live race in the cycle strip sits beside the time. A reader who sees no colour at all should lose nothing from the board. That is the test, and the terms on it are defined in the glossary.
A day of a commercial virtual feed is 179 races under one heading, three each-way tiers and rider names cut at 13 characters. None of that is laziness.
A full day of a commercial virtual feed, read on 18 October 2026, came to 179 race blocks on a single page. Every block carried the same heading: the time, the track, and the words HANDICAP FLAT. From the first race to the last, only the clock and the market number changed.
The furniture around it is as repetitive and as deliberate. The each-way terms across that day fell into three tiers — 1/4 odds places 1-2-3-4 on 81 races, 1/5 odds places 1-2-3 on 51, and 1/4 odds places 1-2-3 on 47 — which is field size printed as a line of text rather than explained. Nothing on the page said what the tiers were keyed to.
The reason is cadence. Inspired Entertainment publishes its horse product in three lengths, a 30-second sprint on all-weather, a 45-second flat race on turf and a 60-second jumps race (V-Play Horses product page, read 18 October 2026), and a title serving a 30-second animation that runs again a few minutes later cannot afford to be read. A generic heading holds the card header at a fixed width and leaves the time as the only field the eye has to work on. The day becomes one object with 179 rows.
The same discipline shows in the field widths. Rider names arrive cut at 13 characters — Martin Painte, Chris McCurre, Richard Cruis, Francis Trium — so the column never wraps. It is worth measuring your own names against a constraint like that. All four Kurrajong drivers fit: Marnie Kessel, Dale Prentice and Ange Vuletich are 13 characters each and Sam Oyelaran is 12. Two of the six jockeys on this circuit do not, and a feed built to that width would print Ruby Nankervi and Eli Vandermee.
Named races exist in the commercial product only where a broadcast paid for one, which is what the 2020 one-offs were. This circuit names ten, one per venue, out of 1,626 races a day, and uses the plain style for the rest: Handicap Pace, Class B Mobile, Maiden Plate. A name on every race would be 1,626 names nobody reads. None of them carries a Group grade either, because group status is conferred by a principal racing authority and this circuit has none; the classes are Feature, Class A, Class B, Class C, Maiden and Trial. The cards are at races/ and the method behind them at how a virtual race is decided.
A livery card is 600 by 400 and carries six fields. It exists because a simulated runner cannot be photographed, so the colours are the identity and they are drawn rather than stood in for. Read it in this order.
The six fields
1. The saddlecloth. One to eight at Kurrajong, and it is also the sprite index plus one: No 1 is runner_0, No 8 is runner_7.
2. The pattern. One of eight the renderer draws — halves, quarters, sash, band, stripes, hoops, chequer, solid. The name beside the card is the full livery as the sprite carries it, which is sometimes longer than the pattern drawn.
3. The body colours. Two hex codes, printed in the order the renderer uses them: the first fills the jacket, the second draws the pattern on top.
4. The cap. One swatch. Where the sprite's cap is chequered or striped, the card prints one colour and names the pattern in the field, because a cap is drawn as a single block.
5. The sulky. The wheel and shafts. This is the largest block of flat colour on a harness sprite and usually the first thing you will find at speed.
6. The coat swatch and engine id. The coat is the animal, not the silks. The engine id is the build that drew the card, currently GP-Draw 4.2.
A worked example
Take No 3, Black Stump. Pattern: sash. Body colours: #141821 then #D7262F, so a black jacket with a red sash over it. Cap: chequered black and white, printed as #FFFFFF. Sulky: gold, #D9A61C. Coat: dark bay. Read together, those six fields say that almost nothing on this runner will be visible in the twilight cycle except the red diagonal and a flickering cap, which is exactly what the screen shows.
What the card will not tell you
It carries no information about the draw. A livery holds no numbers, a cap holds no numbers, and a sulky colour has never shortened a price. If you want to know why a runner won, the weighting table and the seed are printed on its race page, and the method is at how a virtual race is decided. There is no prizemoney field on any card, because nothing is staked on this circuit and nothing is won.
Tagged: liveries, guide
Explainer
Telling eight runners apart on a small screen
At phone width, eight sprites share about 360 pixels, so a runner is roughly 40 wide and the saddlecloth is unreadable. Work down the list instead.
At phone width the eight Kurrajong sprites share about 360 pixels, so a runner is roughly 40 pixels across and the number on the saddlecloth is not readable until the field strings out. Stop trying to read it. Work down this list instead, in this order.
The order to look in
1. The sulky. It is the largest block of flat colour on the sprite and it moves with the runner. Five of the eight are settled here and nowhere else: red is No 2, teal is No 5, magenta is No 6, green is No 7, blue is No 1.
2. The cap. It sits above the blur. Navy is No 2 and nothing else. A cap that flickers rather than holding a colour is No 3.
3. The coat. Two animals are pale: the grey is No 7, the dun is No 4. Everything else is bay, dark bay, black or chestnut, and at this size those four are one colour.
4. Discount the pattern. Quarters and narrow stripes average to a single pink at this scale, so No 2 and No 8 cannot be told apart by jacket on a phone. Use the navy cap for No 2 and the gold sulky for No 8.
5. Gold twice. No 3 and No 8 share a gold sulky. The jacket separates them when the field opens up: black with a red diagonal against a pink blur.
6. The hard one. No 4's natural timber sulky is the same tone as the limestone, so there is nothing to find there. Use the dun coat and the white band instead.
If you lose the field
Wait for the straight. Kurrajong has 300 m from the home turn to the post, the sprites separate across it, and the saddlecloths become readable as they do. The finishing order on the results board is text and will still be there afterwards, which is the point of printing it as text.
The eight rows above carry every colour named here, each runner's page in horses/ carries its card, and the field itself is at play/, on play credits only.
Tagged: liveries, guide, mobile
Explainer
What the colours on a results board encode
Six colours, one job each, and every one of them repeated in words. Here is the key, and the one thing colour never means here.
Six colours do the work on a Gallop Post board, and each of them encodes one thing. None of them encodes it alone: every colour below is repeated as a word in the same row, because a reader who sees no colour should lose nothing. Here is the key.
The key
Amber #F2A93B. The accent, and the sulky wheel in the masthead. On a board it marks the race in the cycle strip that is live now, and the time is printed beside it.
Cyan #4FD1C5. Anything you can act on — a link, a sort control, a runner name that opens a profile. If it is cyan, it goes somewhere.
Win green #35C47B. A finishing position inside the each-way tier printed on that card. It is a restatement of the tier line, never a new fact.
Error red #F2555A. A figure that failed its own check. The common one is a book total more than 0.2 away from the sum of the implied percentages in the field, which means the row and the table disagree and the row is wrong until the desk says otherwise.
Ochre #B4662F. Track dirt, used for codes, classes and tags — Harness, Mobile, Class B, Feature. It is category, not quality.
Void grey #8A93A6. A field the engine did not produce, printed as an em dash. Prizemoney is the permanent example: it is grey on every row on this site, because nothing is staked here and nothing is won.
What colour never means here
It never means a price moved. There is no starting price on this circuit and no market to drift or firm: the field is fixed when the card publishes, the prices are the ones shown, and a price is the weighting written in another notation. So nothing on the board is shaded to say a runner was backed, and no arrow appears beside a figure.
It also never ranks a class. Feature and Maiden carry the same ochre tag, because one is a programme slot and not a grade; there are no Group races here, since group status is conferred by a principal racing authority and this circuit has none.
Checking a board yourself
Add the implied percentages down the field and compare the total with the book figure in the header; they should agree to 0.2. Then take the seed and the weighting table from the same page and reconstruct the draw. If either disagrees with what is printed, the figure is wrong and the correction runs in the first line of the column that carried it. The arithmetic is explained at how a virtual race is decided, the terms are in the glossary, and the form desk's reads of the published weights are at tips/.
Tagged: results, guide, figures
Every claim about the real world in this section names its source and the date the
desk read it, in the sentence. Nothing here is for sale, and nothing here reaches a result:
how a virtual race is decided sets out what does.
The circuit wrap
Friday mornings: the week's results, the weightings that moved, and anything the industry did
worth reading about.