Page MenuHomePhabricator

WMF Map WebGL style - Specification
Open, HighPublic


Background information

We will enhance the tile server without the intention to change styles in a way that affects user-facing. We should be able to render the same style with the current vector-tile schema, but if there is any change necessary to the current vector-tile schema, it should be reflected in the osm-bright.tm2 style.


Adapt current WMF map style to mapbox-gl-style renderer specification.


  • The new style should use the current vector-tile schema as a baseline, which can be accessed from, this endpoint will be later replaced with the output in Tegola.
  • The current style is in CartoCSS and should be migrated to mapbox-gl-style spec
  • Work will concentrate on including as much pre-processing as possible in the schema rather than the mapbox gl-js code so as to maximize rendering efficiency on the client. A spriteset and a fontset will be created.
  • It’s worth mentioning that the legacy code using mapnik and the current style will still be available for backward compatibility until we have a plan to phase it down without affecting the static image endpoint.

Open questions

  • Does Tangram suffer from the same problems as mapbox-gl regarding Brahmic scripts not being supported? see T270189#6764054
  • Is the original artwork for the water waves available?
  • Are there any other sprites we need to be aware of other than maki?
    • AFAIK maki and osm-bright.tm2 SVGs are the only ones used
    • It’s worth mentioning that we’re stuck in old versions of maki while we need to keep mapnik around, see T145475

Acceptance criteria

  • Documentation is updated
  • Tiles can be rendered client-side with mapbox-gl-style specification without user-facing changes
  • Code versioning is hosted in the Kartographer extension
  • Changes to the vector-tile schema are applied to the CartoCSS style osm-bright.tm2
  • The new WebGL style will be compared with the current production style, like this
    • The percentage of difference pixels should be minimal and if it happens should be justifiable, e. g. labels placing, font-size slightly changing, etc

Event Timeline

Change 670229 had a related patch set uploaded (by MSantos; owner: MSantos):
[operations/puppet@production] Map tiles for 3rd parties: allow consultant to access maps

Change 670229 merged by CDanis:
[operations/puppet@production] Map tiles for 3rd parties: allow consultant to access maps

Since we are not planning to use client side rendering in this iteration I am leaning towards deprioriziting it @MSantos, thoughts?