Skip to main content
Back

GlideComp logo About GlideComp

About me

I want to learn from better pilots, and ultimately out compete them!

Gliding competitions are a unique experience where you can fly in the same air as the best pilots in the world. After the day's task, you can talk to them, and analyse their flight data.

I built GlideComp to figure out which line they took, how fast they flew, how well they climbed, and ultimately how they scored in the task!

— Tushar Pokle (Summer 2026)

Acknowledgements

These libraries, tools, data sources and resources made GlideComp possible.

Mapping & Geospatial

  • Mapbox GL JS — Interactive vector maps, terrain elevation and satellite imagery (Mapbox Terms of Service)
  • OpenStreetMap — The base map data behind the Mapbox styles, © OpenStreetMap contributors (ODbL 1.0)
  • Turf.js — Geospatial analysis (distance, bearing, bounding boxes) (MIT)
  • Threebox — Three.js integration for Mapbox GL (MIT)
  • tz-lookup — Timezone from coordinates, so each task reads in its own local time. Its database is built from Evan Siroky's timezone-boundary-builder, itself derived from OpenStreetMap (CC0 1.0)

3D & Rendering

Competition Data

GlideComp did not score the past competitions on this site first. Pilots flew them at real events, the organisers scored them, and the organisers published the results. GlideComp scores the same tracks again, so it can show its working. Anyone can then compare its scores against the official result.

  • xc.highcloud.net — The AirScore instance the Australian competitions here were scored on, and the source of their tasks, track logs and official results. Those flights remain the work of the pilots who flew them and the organisers who ran the events
  • AirScore — The GAP scoring software behind that site. GlideComp's scoring is checked task by task against the results AirScore published, so a score here can be traced back to the one that was flown for (GPL 2.0)
  • FAI / CIVL Sporting Code Section 7F — The GAP cross-country scoring specification that GlideComp implements and explains

Weather Data

The field analysis of each task shows the conditions: the wind through the day, the cloud cover, and the height of the thermals. These come from an outside meteorological archive. They are modelled figures, sampled at a grid point near the task, and not readings taken at launch. The organiser's weather notes on each task are therefore the local ground truth.

UI & Styling

Backend & Auth

  • Hono — Web framework for Cloudflare Workers (MIT)
  • Better Auth — Authentication library (MIT)
  • Kysely — Type-safe SQL query builder, with kysely-d1 for Cloudflare D1 (MIT)
  • Zod — Schema validation for the API request bodies (MIT)
  • Sqids — Short, non-sequential public ids for competitions and tasks (MIT)

Build & Platform

  • Vite — Build tool and dev server (MIT)
  • Astro — Static site builder for the content pages (MIT)
  • TypeScript — Typed JavaScript (Apache 2.0)
  • Bun — JavaScript runtime and package manager (MIT)
  • Vitest — Unit test runner for the engine and the workers (MIT)
  • Playwright — End-to-end browser tests (Apache 2.0)
  • Cloudflare — Pages, Workers, D1 and R2 hosting

AI

Design Resources