Skip to main content

f1verse

The story layer for Formula 1 data. Data libraries fetch and tidy — f1verse tells you what happened: lead changes, laps led, event timelines, stint strategy, true race pace, and the live championship projection that broadcasts never show.

Zero dependencies. Standard library only, seasons 2023+.

pip install f1verse
import f1verse

race = f1verse.load(2026, 12)        # year, round — no other library needed

race.laps_led()      # {'ANT': 32, 'NOR': 31, 'HAM': 9}
race.leader_runs()   # [{'abbr': 'NOR', 'from': 1, 'to': 4}, ...]
race.results()[7]    # {'abbr': 'HUL', 'gap': '+1 LAP', ...}
race.race_pace()     # median pace — pit/SC/VSC laps excluded by default
race.story()         # one call, whole story, plain JSON

race.championship_prediction()   # per-lap "if it ended now" title projection
race.team_radio()                # timestamped clip URLs (nothing downloaded)

Using FastF1 already? Keep your workflow — the adapter takes a loaded session (pip install f1verse[fastf1], adds telemetry & pre-2023 seasons):

story = f1verse.analyze(fastf1_session)

Why this exists

Everyone who builds on FastF1 rediscovers the same traps, and each fixes them slightly differently:

  • results['Time'] is not a gap for lapped cars. The raw value can be smaller than a car that finished ahead (P7 +1:19.915 vs P8 +36.049). No error, no warning — naive tables are silently wrong. → f1verse.format_gap applies the broadcast convention (+1 LAP).
  • There is no API for "who led the race". Lead changes, laps led, overtake-for-the-lead moments — every notebook reinvents them. → leader_runs, laps_led, timeline.
  • Race pace needs domain rules, not just a quicklap threshold: in/out laps, SC/VSC laps, and laps failing FastF1's own 4-way accuracy check must go. → race_pace applies all of it by default.
  • numpy scalars break json.dumps. Every f1verse output is plain JSON-safe Python. → pipe results straight into web or video pipelines.
  • Data-quality warnings are only logged as text.integrity_report returns them as structured data your pipeline can act on (hold publication, exclude laps, annotate).

The feeds FastF1 throws away

The official live-timing archive contains more than FastF1 parses. f1verse harvests three of the dropped feeds (through FastF1's own cache, same rate-limit etiquette):

f1verse.championship_prediction(session)
# per-lap "if the race ended now" projection of both championships,
# including the moments the projected champion changed

f1verse.team_radio(session)
# timestamped team-radio clips: [{'t', 'utc', 'driver_number', 'url'}]
# URLs only — nothing is downloaded or redistributed

f1verse.timing_stats(session)
# personal bests, best sectors, speed-trap figures

Design rules

  1. Zero required dependencies. The native loader speaks to public REST endpoints (OpenF1) and the official live-timing archive directly, with its own on-disk cache and polite pacing.
  2. FastF1 is respected, not replaced — optional adapter for telemetry, qualifying segments and pre-2023 history.
  3. Everything returned is plain JSON-safe Python.
  4. F1 domain rules are defaults, not options.
  5. Cross-checked where possible — e.g. lapped-car gaps are computed by convention and confirmed against a second source.
  6. Code only. No timing data, media, or images are bundled or redistributed; data is fetched by the end user.

Roadmap

  • Full cross-validation layer (publish only when two sources agree)
  • Overtake timeline (OpenF1 /overtakes) & undercut/overcut detection
  • Circuit & driver metadata joins (Jolpica, f1db)
  • Korean localization package (f1verse-ko)
  • Chart & vertical-video templates consuming f1verse JSON

Unofficial fan project. Not affiliated with, endorsed by, or associated with Formula 1, FIA, FOM, or any F1 team. F1, FORMULA 1 and related marks are trademarks of Formula One Licensing BV. This library contains code only — no timing data, media, or images are included or redistributed; data is fetched by the end user from publicly accessible endpoints, subject to the respective providers' terms. Built on FastF1 (MIT).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

f1verse-0.3.0.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

f1verse-0.3.0-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file f1verse-0.3.0.tar.gz.

File metadata

  • Download URL: f1verse-0.3.0.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for f1verse-0.3.0.tar.gz
Algorithm Hash digest
SHA256 9169a4421bd2b53cda561778317498ed60993b9360da42133e96f15944e6618c
MD5 151d70e6721431e467d4afeb24c35a1d
BLAKE2b-256 fa0e6688d987d0800d69160ffdff3bfb5f7b6f42eb98c9de7f67badee6d6286e

See more details on using hashes here.

Provenance

The following attestation bundles were made for f1verse-0.3.0.tar.gz:

Publisher: publish.yml on jinsim/f1verse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file f1verse-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: f1verse-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for f1verse-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c63a125fa2ab270729a6dec527535d614e719f3a131038666400a4dcb2e8c62b
MD5 6cd85be3c12a3ed2ab4c2e11c2d7bc6b
BLAKE2b-256 3f4c3fb5d89f6af9aead00e9323ce1fb165acf2611860ce47b175b6d6d583cc8

See more details on using hashes here.

Provenance

The following attestation bundles were made for f1verse-0.3.0-py3-none-any.whl:

Publisher: publish.yml on jinsim/f1verse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.1

2 files

0.9.0

2 files

This release

0.3.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page