jschoubben 6eb693203d f1-circuits: become a nox mesh module
The mesh builds the CDN from this repository and a commit (novox/hq ADR
0069); registry-api.novox.be, where HAL's image came from, is retired, so
the running container can no longer be re-pulled. The HAL module.yml and
service/docker-compose.yml retire with HAL.

The Kometa metadata links every poster to this service's own address,
which was the literal https://f1-circuits.zurag.be. It is now
F1_CIRCUITS_BASE_URL, written by the mesh from the route's name
(${bound:route:name}, mesh-controller #149) - falling back to the old
address, so HAL's deployment behaves as before. The tile user agent
follows it.

The poster cache is a placed directory mounted at /app/cache, as HAL's
/services/f1-circuits/cache was. The image was built from unpinned pip
installs; service/requirements.txt now pins the exact set the running
container has (pip freeze), and the base is python 3.12.13-alpine3.24 by
digest (a later alpine 3.24 patch than the running build's 3.24.0 - the
older digest is no longer tagged). The slug "f1" keeps the route login
within 20 characters on any machine.

Verified: the manifest parses on mesh-controller main and #149 and
renders for a zurag.be node (F1_CIRCUITS_BASE_URL=https://f1-circuits.
zurag.be). Built from this commit and run on an empty cache: /circuits,
/circuits/<country> and a rendered Spa track are byte-identical to what
ace serves today; the base URL comes from the variable, and without it
falls back to the old address.

Depends on mesh-controller #149.
2026-09-30 12:05:36 +02:00
2024-01-16 10:17:45 +01:00
2024-02-08 12:38:34 +01:00

Formula 1™ circuits

A repository of Formula 1™ circuits in GeoJSON format (using .geo.json extension).

Location Name Grand Prix
Austin Circuit of the Americas United States Grand Prix
Baku Baku City Circuit Azerbaijan Grand Prix
Barcelona Circuit de Barcelona-Catalunya Spanish Grand Prix
Budapest Hungaroring Hungarian Grand Prix
Estoril Autódromo do Estoril Portuguese Grand Prix
Hockenheim Hockenheimring German Grand Prix
Imola Autodromo Enzo e Dino Ferrari San Marino / Emilia Romagna Grand Prix
Istanbul Intercity Istanbul Park Turkish Grand Prix
Jacarepaguá Autódromo Internacional Nelson Piquet Brazilian Grand Prix
Jeddah Jeddah Corniche Circuit Saudi Arabian Grand Prix
Las Vegas Las Vegas Street Circuit Las Vegas Grand Prix
Le Castellet Circuit Paul Ricard French Grand Prix
Lusail Losail International Circuit Qatar Grand Prix
Magny-Cours Circuit de Nevers Magny-Cours French Grand Prix
Melbourne Albert Park Circuit Australian Grand Prix
Mexico City Autódromo Hermanos Rodríguez Mexican Grand Prix
Miami Miami International Autodrome Miami Grand Prix
Monaco Circuit de Monaco Monaco Grand Prix
Montreal Circuit Gilles-Villeneuve Canadian Grand Prix
Monza Autodromo Nazionale Monza Italian Grand Prix
Nürburg Nürburgring German Grand Prix
Portimão Autódromo Internacional do Algarve Portuguese Grand Prix
Sakhir Bahrain International Circuit Bahrain Grand Prix
Sao Paulo Autódromo José Carlos Pace - Interlagos Brazilian Grand Prix
Scarperia e San Piero Autodromo Internazionale del Mugello Tuscan Grand Prix
Sepang Sepang International Circuit Malaysian Grand Prix
Shanghai Shanghai International Circuit Chinese Grand Prix
Silverstone Silverstone Circuit British Grand Prix
Singapore Marina Bay Street Circuit Singapore Grand Prix
Sochi Sochi Autodrom Russian Grand Prix
Spa Francorchamps Circuit de Spa-Francorchamps Belgian Grand Prix
Spielberg Red Bull Ring Austrian Grand Prix
Suzuka Suzuka International Racing Course Japanese Grand Prix
Yas Marina Yas Marina Circuit Abu Dhabi Grand Prix
Zandvoort Circuit Zandvoort Dutch Grand Prix

Summary

Currently, the repository holds 35 out of 77 circuits that have hosted a Formula 1™ Grand Prix.

Altitude

Altitude data was mostly collected from the Highs and lows - which F1 track has the most elevation changes? article and reference the start/finish point. For other tracks, official websites and wiki pages were used as sources, or the nearby city's altitude, if no other and more accurate data were available.

Acknowledgment

Disclaimer

This repository is unofficial and is not associated in any way with the Formula 1 companies. F1, FORMULA ONE, FORMULA 1, FIA FORMULA ONE WORLD CHAMPIONSHIP, GRAND PRIX, and related marks are trademarks of Formula One Licensing B.V.

Formula 1™ circuits data are not official, and they are not approved nor endorsed by Formula One Licensing B.V.

License

The MIT License (MIT) - Copyright (c) 2019-2024 Tomislav Bacinger

S
Description
F1 circuit layouts with year-by-year SVGs — manually traced track variations
Readme
832 MiB
Languages
Python 99.3%
Dockerfile 0.7%