I have been painting racing liveries since 1997. It started with Grand Prix 2: back then there was no Photoshop on my desk, just the shareware versions of Jasc PaintShop Pro, from 3 to 5, and I signed my work with my two first names, Fernando César. Some of those cars are still around, on grandprix2.de and in the GP2 section and downloads here. Later came every FormulaDuude car and most of the URL league cars, by then in Photoshop with a skin template.
This time I wanted to find out something else. For the last couple of months Claude has been helping me expand this site, which I built by hand: the Racing sections, the iRacing import from the old site and plenty more. Could it also paint a racing livery? Not by copying an image, and not with a brush, but by working out the design on the 3D car and writing it into the game's texture, the same way it writes code with me.
It took four days and four steps: a test that scored 8 out of 10, a real team livery that ended at 11, a two-car team that got a 12, and this morning the drivers themselves, in matching suits and helmets. This is the story of those four days.
Where it ended up: the Grip Racing Corvette C6-R GT2 team, #84 and #48. Both are on the downloads page, and since this morning both have drivers in team kit.
Painting without a brush
A GTR2 car's paint lives in one flat image, the skin, with every panel of the body unwrapped and laid out side by side like a sewing pattern. A painter works on that flat sheet and keeps checking the car to see where things really land: a stripe that crosses from the door to the rear wing on the car might be split across two corners of the sheet.
Claude works the other way round. It first bakes a map of the car: for every pixel of the skin it works out where that pixel sits on the 3D car, in metres, and which way the surface faces there. With that map, a design is a set of rules about the car itself, like "orange where the body is higher than 30 cm and behind the door". The rules are written straight into the flat sheet, and a stripe crosses the seams of the pattern by itself, because it was never drawn on the pattern in the first place.
Left: the 911 GT1's skin with every pixel coloured by where it sits on the car (red to blue from nose to tail). Right: the first test livery written into that same sheet. Nobody drew it there; the rules did.
The paint then goes through the template's own layers, its shading, highlights and panel lines, combined the way Photoshop does it. Claude checked that against the template's own saved preview, and they matched to a fraction of a colour step. The result is rendered with the renderer we built for the car pictures on this site, and saved in the format I always use for my skins. Only then does it go into the game.
Day one: the test, 8 out of 10
The first livery was only a test: a scheme in the spirit of the Porsche 963, on the Porsche 911 GT1-98 from our URL league, with a white nose, a red body, black sweeps and some sponsor names in stand-in fonts. It loaded in GTR2 at the first try and looked like our renders. I gave it a solid 8/10 for a first attempt, along with a list of notes. The Mobil 1 on the front wings was upside down from the front, because bonnet text has to read from the front of the car. A "46" sat inside the windscreen, carried over from the windows skin Claude had copied from another team. And the rays on the rear haunches looked a bit random.
The proof of concept. It never left my machine, but it proved the whole chain, from the template to the game.
Day two: Grip Racing #84, from 9.99 to 11
Then a real job: Grip Racing on the same 911 GT1, with the real team logo. We settled into a routine that we kept for the rest of the week. Claude shows concepts on the real car; I pick one; then we go in rounds, me writing notes or marking things up in Paint, Claude placing things where I marked them.
Round one: concept A (white top) and concept B (black spine). I picked B.
The rounds taught Claude things a painter learns by doing. A big graphic on a curved wheel arch, projected straight from the side, smears over the top of the fender: our "G" read as a "C" from the side. Projected from above at three-quarters it reads from every angle. Every car has to be measured before designing, so Claude painted a grid in metres onto the car to find the wheel centres, the door and the beltline. One bug was pure comedy: the template's yellow mirror pods were detected by colour, and Grip orange is close enough to yellow that every orange pixel came out black.
The finished car went into the game with door plates, a number roundel, the drivers' names with Brazilian flags on the ledge I had marked, and a clean windows skin. It was the first livery Claude made, and the first that looked like a professional job. I released it the same day.
In the game it was 9.99/10. The missing 0.01 was the logos: their edges were jagged, a little like a late-90s resize. The cause was simple once found. A 2,000-pixel logo squeezed onto 80 pixels of skin was sampled by picking one pixel from each patch instead of averaging them. Claude rewrote that step to filter the logo the way a graphics card does. We compared three sharpness settings side by side and picked one together. At the same time the skins started coming out as layered Photoshop files, so I can open them and keep editing like any of my own. Version 1.1: I called it 11/10.
The same logo on the car before (left) and after (right) the filtering fix.
Grip Racing #84, version 1.1, as it is on the downloads page.
Day three: a two-car team on the Corvette, 12 out of 10
Next came a different car from a different mod: the Chevrolet Corvette C6-R GT2 from North American Gran Prix. Before painting anything, Claude checked every template against the car's real model. One of them, the inner windscreen you see from the cockpit, had been drawn from an older version of the model, about five pixels off. It was still usable, but good to know before trusting it.
Three concepts this time. I already had a two-car team in mind, so I picked two of them: B, and C, the inverted scheme with a black body and a white spine. I marked my changes up on C in Paint with a numbered list, which made the placements easy to compare. Some notes were about placement: move the plate forward, move the G out of the rear wheel housing, put the number on the bonnet square to the front. One was a rule racing cars have followed for as long as I can remember (the McLaren MP4/6 was just the example I sent): the logo on top of the rear wing reads from the front, and the one underneath reads for the car behind. That one had a catch. The template's shading is very dark under the wing and swallowed the logo, so the underside decals now go on top of the shading.
Three concepts on the Corvette. B and C both made the team: B for #84, C for #48.
Then it became the team I had in mind: #84 for Fernando Aorta in the B colours and #48 for Rene Squier in the C colours, each with its own plates, name and flag. The names sit on the door top under the side window, a shoulder at about 45 degrees, so they were projected from 40 degrees above to stay readable. Even the banner on the inner windscreen was mapped through the glass in 3D, so it lines up from the driver's seat. In the game I gave it 12/10.
Round three, the team: #84 (left) and #48 (right).
From the driver's seat of #84: the Grip Racing banner across the top of the windscreen, seen from inside the way a real one is.
Day four: dressing the drivers
A team in matching cars still had drivers in the stock black-and-white Sparco overalls and plain black helmets. So this morning's job was the people. I sent Claude two pictures of the Grip Racing suit: an orange version with a black yoke and a white swoosh, and a black version with orange epaulettes and side panels. I also pointed it at the custom helmets and suits in our URL and F1 1979 mods for inspiration.
GTR2 dresses a driver with three textures: the suit of the driver you see from outside the car, the arms, chest and legs you see from the cockpit, and the helmet. The outside driver is a low-detail seated model. The cockpit one turned out to be a full standing figure, arms out, like a mannequin. The same suit has to work on both, so Claude worked out body coordinates that both models share: which part each patch of fabric belongs to, how high up the torso it sits, how far along the arm or leg, and which way round the limb it faces. The suit is designed once in those terms, and both models get painted from the same design.
The two suit textures coloured by body part: torso orange, sleeves blue, legs purple, collar yellow, gloves green, shoes red. The bands mark the height up the torso and the distance along each limb. Left: the cockpit figure. Right: the outside driver.
The low-detail model had a surprise. Its legs are almost boxes, and each side of a leg is one flat face. A side stripe defined by "where the surface faces outwards" painted the whole face, so the stripes had to be measured by position around the leg instead. The previews had their own surprise, and I spotted that one: our renderer had put the helmet on backwards, and the driver was looking at the rear wing: full-blown The Exorcist, as I told Claude. The game was fine; only our renderer had it wrong, and the previews now turn the helmet the right way round.
The cleverest part is how the two cars get different suits. Both share one team folder, and GTR2 picks the suit by file name, so you would expect both drivers to wear the same one. But each car's settings carry a number that chooses one of eleven stock driver styles, each reading its own suit files. #84 now uses a style no other car in the series uses, and #48 another one, so each car wears its own suit and nobody else on the grid borrows them.
For the helmets, Claude showed three concepts in both colourways: a spine stripe, a swoosh split, and a "heritage" design based on the layout of my old personal helmet. They all looked great, so I asked Claude to choose. It gave Fernando Aorta the heritage helmet, because real drivers keep their personal design when they change teams, and Rene Squier the swoosh, with the big Grip G on the crown for the TV and onboard cameras.
One last lesson came the next morning, in the game: neither helmet showed up. The URL cars I had pointed Claude to keep their helmets in files named after the car number, so it named ours the same way. In fact GTR2 names each helmet after the driver, exactly as the car's settings spell the name; the URL drivers just happen to be named after their numbers. Once I renamed the files to Fernando Aorta_HELMET and Rene Squier_HELMET, both helmets were on.
The helmet concepts, each shown for both drivers. C went to #84, B to #48.
The finished kits: #84 Fernando Aorta in orange, #48 Rene Squier in black. In the game they are perfect.
The kits ship in two ways: fitted to the Corvette team pack (version 1.2), and as a standalone download with both suits and helmets and a guide to putting them on any GTR2 car.
Update: the Two-Face fix
The story did not quite end on day four. A longer test session on the game PC showed two things the first look had missed. Under the visor, one side of each driver's face was dark, as if in deep shadow, so both drivers looked like Two-Face from Batman. And my own driver, #84, was racing in the stock blue overalls, while #48 wore the black Grip kit as planned.
By then my friends at Grip Racing had given Claude a full name: Claudio Horta, a Portuguese take on Claude with my surname. Welcome to the family. So Claudio went looking, and the face came first. GTR2 keeps the driver's face on the helmet texture, drawn sideways next to the visor. Claudio lined our helmet up against the game's stock one and against the helmet model's own map, and our face sat 33 pixels too high (66 on our double-size sheet). Because it is drawn sideways, "too high" on the sheet means "off to one side" on the head, so half of each face landed on the black balaclava. The template was fine: Claudio's own tool had dropped one layer's offset when it read the Photoshop file. A one-line fix, and the visor and chin details, which sit on the same layer, moved back into place with the face.
The suit was a name clash. GTR2 ships every stock suit in one shared archive and keeps one texture per file name. #84 used driver style 02, whose suit file is called BODY_BLUE, and the stock blue one won. My first guess was that the car I drive ignores team suits, but when I drove #48 its suit was there, which ruled that out. #84 moved to style 09, a name no car in the series uses, and the orange kit was on.
Before: the face and visor sat too high, so half the face showed the balaclava. After: everything is where the helmet model expects it.
Both fixes passed in the game the same afternoon. The Corvette team pack (version 1.2) and the driver kit download (version 1.1) carry them.
Results and learnings
| Day | What | New | Score |
|---|---|---|---|
| 1 | 963-style test, 911 GT1-98 | The whole chain: surface map, design rules, template layers, render, game | 8/10 |
| 2 | Grip Racing #84, 911 GT1-98 | Concept rounds, real logo, measuring the car, filtered logos, layered PSDs | 11/10 |
| 3 | Grip Racing #84 and #48, Corvette C6-R GT2 | A new mod, checked templates, wing rules, a two-car team, cockpit banner | 12/10 |
| 4 | Driver kits for both cars | Suits on two body models, helmets, a suit per car in one folder | perfect |
- Design on the object, not on the pattern. Rules in metres on the car cross the template's seams by themselves; drawn on the flat sheet, they break at every seam.
- Measure every car. Placements from the 911 did not fit the Corvette, and a grid painted on the body answers in a minute what guessing gets wrong.
- Real cars carry real rules: bonnet text reads from the front, the top of the wing for the cameras ahead, the underside for the car behind. They look right because people are used to them.
- The last 0.01 is in the details nobody names: jagged logos look cheap long before anyone can say why.
- Rounds work. A concept sheet, a pick, then marked-up notes kept every change small and every decision mine.
- Examples can mislead. The helmets copied a naming pattern from other cars that only looked like a rule; the game decides what a file must be called.
- Check the tools too. A wrong colour test turned orange black, a wrong preview turned a driver's head around, and a layer read 33 pixels too high gave both drivers half a face; all three were found because the work was checked in the game, not only on screen.
This time the roles were swapped. The paint is usually my side of things, and Claude usually works with me on code; here I was the art director: I chose the concepts, marked things up in Paint, set the rules and checked every version in the game. Claude did the painting, measuring, decal placing and exporting, and wrote every tool it needed along the way. Four days ago it had never painted a car.
Like a new livery designer joining a team: the first sketch gets a polite 8, the boss's red pen does the rest, and by the end of the week the drivers are walking out of the motorhome in the new kit.





