@johnmorrisdotca/kyogijo-stadiums 0.40.2 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/NOTICE.md +22 -0
  3. package/README.md +1 -3
  4. package/dist/cityctx-entry.d.ts +3 -0
  5. package/dist/cityctx-entry.js +3 -0
  6. package/dist/cityctx.d.ts +19 -0
  7. package/dist/cityctx.data.d.ts +11 -0
  8. package/dist/cityctx.data.js +7139 -0
  9. package/dist/cityctx.js +34 -0
  10. package/dist/context.d.ts +175 -0
  11. package/dist/context.js +369 -0
  12. package/dist/crowd.d.ts +9 -0
  13. package/dist/district-entry.d.ts +16 -1
  14. package/dist/district-entry.js +9 -0
  15. package/dist/district.d.ts +99 -4
  16. package/dist/district.dom.d.ts +31 -0
  17. package/dist/district.dom.js +52 -0
  18. package/dist/district.js +103 -25
  19. package/dist/district.turn.js +89 -19
  20. package/dist/gates.d.ts +56 -0
  21. package/dist/gates.js +95 -0
  22. package/dist/halls.d.ts +2 -0
  23. package/dist/halls.js +1 -1
  24. package/dist/kodokan.d.ts +116 -0
  25. package/dist/kodokan.data.d.ts +61 -0
  26. package/dist/kodokan.data.js +20 -0
  27. package/dist/kodokan.js +92 -0
  28. package/dist/osm-entry.d.ts +2 -0
  29. package/dist/osm-entry.js +2 -0
  30. package/dist/osm.context.data.d.ts +10 -0
  31. package/dist/osm.context.data.js +1107 -0
  32. package/dist/outside.d.ts +43 -0
  33. package/dist/outside.dom.d.ts +44 -0
  34. package/dist/outside.dom.js +203 -0
  35. package/dist/outside.js +227 -0
  36. package/dist/outside.paint.d.ts +57 -0
  37. package/dist/outside.paint.js +88 -0
  38. package/dist/plateau-entry.d.ts +3 -0
  39. package/dist/plateau-entry.js +3 -0
  40. package/dist/plateau.credit.d.ts +5 -0
  41. package/dist/plateau.credit.js +7 -0
  42. package/dist/plateau.data.d.ts +7 -0
  43. package/dist/plateau.data.js +757 -0
  44. package/dist/stadiums.d.ts +14 -0
  45. package/dist/stadiums.data.js +2 -1
  46. package/dist/stadiums.js +2 -0
  47. package/dist/strings.d.ts +3 -1
  48. package/dist/strings.js +4 -4
  49. package/dist/turn.dom.d.ts +10 -0
  50. package/dist/turn.dom.js +21 -0
  51. package/dist/turn.kit.d.ts +12 -3
  52. package/dist/turn.kit.js +7 -0
  53. package/dist/turn.markup.js +15 -3
  54. package/dist/turn.model.d.ts +3 -0
  55. package/dist/turn.style.js +20 -3
  56. package/dist/venue.real.d.ts +22 -1
  57. package/dist/venue.real.js +76 -7
  58. package/dist/venues.d.ts +9 -1
  59. package/dist/venues.data.js +2 -1
  60. package/dist/venues.js +1 -1
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.js +1 -1
  63. package/dist/walk.d.ts +56 -0
  64. package/dist/walk.data.d.ts +4 -0
  65. package/dist/walk.data.js +1295 -0
  66. package/dist/walk.js +120 -0
  67. package/package.json +25 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,78 @@ All notable changes to this project are written here. The format follows
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.44.0] - 2026-10-22
11
+
12
+ ### Added
13
+
14
+ - **Seattle among its streets, buildings, water and trees, and Vancouver's water, green and trees** ([the district page](./docs/district.md#among-its-streets-buildings-water-and-trees-vancouver-and-seattle)): `context: contextFor(venues)` (new entry `@johnmorrisdotca/kyogijo-stadiums/cityctx`) puts a district in its city. Four areas in the format of downtown Vancouver's: Seattle's SoDo (Lumen Field and T-Mobile Park), Seattle Center (Climate Pledge Arena), the city view of all three, and `VANCOUVER_NATURE` beside `VANCOUVER_CENTRE`. The `streets` layer is the one `pnpm osm-context` makes (carriageways, viaducts, railways, sidewalks and paths with a width); new are `landCover` (water, green and wood, from the grid VoxCity, run locally with no account, makes from OpenStreetMap) and `trees` (the Cities' inventories and OpenStreetMap's tree nodes), and Seattle's buildings carry the City's measured heights (Building Outlines 2015 with USGS 3DEP ground levels). The water, green and trees lie flat on the floor under the streets and add no plane to the 3D view; the 130 biggest buildings stand as blocks. Each area is 12 to 150 KB of data (a third of that gzipped); a district that does not ask carries none. Every layer is credited in English and in Japanese, once, in the description. The raw answers are kept, dated, in `data-sources/cityctx/2026-10-22/`.
15
+ - **The district page** has a Seattle Center preset beside Rogers Arena alone, surroundings on for the Seattle venues too, and the choice is "Surroundings: buildings, streets, water and trees" (it was "Surrounding buildings and streets"); `context=0` turns them off.
16
+ - `pnpm cityctx:fetch`, `pnpm cityctx:vox` and `pnpm cityctx` make the data; the City of Seattle's 3D Buildings, VoxCity and Sat3DGen are in [the references](./docs/references.md) with what each may be used for.
17
+ - **A floor chooser for the Kodokan's building** ([the district page](./docs/district.md#the-floors-of-the-building)): `floor: 0 to 8` (0 is the basement) shows one floor of the building: its plate picked out at its level, in 3D and on the plan, inside the see-through walls, with the floor's name over it; what is drawn on the other floors is left out. The floors are those of the Kodokan's own floor guide, which lists them from the 8th floor to the basement: the 8th the spectators' gallery (the great dojo's gallery, drawn), the 7th the great dojo, the 6th the school dojo (240 jō) and the international dojo (192 jō), the 5th the women's dojo (240 jō), the boys' dojo (114 jō) and a special dojo (no count given: drawn at 40 jō, ours), the 4th to the 2nd plain plates with what the guide lists, the 1st English Wikipedia's (the guide lists nothing), the basement under the ground. No plan of any floor is published: the rooms are the dojo builder's shape for their counts, laid out in rows and put where they stand farthest from the building's walls (ours, and said). The new `KODOKAN_FLOORS` has every floor's words in English and Japanese, `DistrictMember.parts` lets a venue be several surfaces (the rooms of a floor) and `DistrictMember.plate` the floor's plate. The demo's district page has a Kodokan floor choice (kept in the address as `floor=6`, `floor=b1`) and a table of the floors with the chosen one marked; a picture of the 6th floor in the docs.
18
+ - **Every floor of the Kodokan is a slab with an edge**: the great dojo's floor and every storey of the building have a top and sides shaded by the way they face, 0.6 metres thick (ours: a floor and its beams) and never thinner than ten pixels at the page's own size or thicker than half a storey, so that from the side a floor is no longer a sheet a pixel thick. The other storeys are faint slabs, the one chosen picked out. The walls on the eye's side of the room are cleared at every turn and tilt, checked in steps of fifteen degrees at seven tilts and at yaw -121.5, pitch 84, zoom 0.83, and a picture from the side is in the docs.
19
+ - A plate that other planes stand on is drawn under them (`Plane.under`), and a see-through wall of a tall building is placed by its foot when it is behind what stands in it and by its top when it is in front, so that a far wall is never painted over the rooms and a near one never under them.
20
+
21
+ ### Changed
22
+
23
+ - A `ContextPlan` has `land` and `trees` beside `streets`, and `contextFloor` draws water, green and wood, the streets, the trees as dots and then the buildings; a layer whose credit is empty adds none to the description.
24
+ - **The demo's browser tests run in Playwright's own image and in six jobs** (`demo (chromium-phone 1/1)`, `demo (chromium-desk 1/1)` and `demo (webkit-phone 1/4)` to `4/4`): installing the browsers with their system packages had taken 55 minutes of a 70-minute run, and WebKit, three times slower than Chromium, was a whole shard of its own. A whole run is about 16 minutes. `src/ci.test.js` holds the image's tag to the Playwright version of the lockfile. A desk's gallery is allowed 860 pixels instead of 820, which the Linux of the image sets 8 pixels over.
25
+
26
+ ## [0.43.0] - 2026-10-22
27
+
28
+ ### Fixed
29
+
30
+ - **A see-through building's walls now fade by the side the eye is on, at every turn and tilt** (`Plane.fadeSide`): the Kodokan's near walls gave way only when the eye was low, and at some angles and tilts a near wall was drawn opaque over the dojo. Every wall between the eye and the room is now clear, a wall on the far side stays whole behind it, and a test turns the view in steps of 15 degrees at six tilts and finds no wall over the dojo's floor that is not clear. The roof is clearer too.
31
+ - **The district page's seven presets pushed the crowd bar off the first screen on a phone** (the new preset made the chips wrap into one more row): on a narrow screen the chips are 44 pixels high with a smaller gap, so that the bar and the plan stay in view.
32
+ - **Auto-turn could not be kept stopped on the district, stadiums, venues and halls pages**: pressing the button to stop the turn worked, but the pointer coming back over the view turned it again by hover. A reader who has used the Auto-turn button (or the Space key) is left alone by the pointer for the rest of the page; the button toggles every time. A new test presses it on each page, with and without yaw, pitch and zoom in the address, by mouse, keyboard and tap.
33
+
34
+ ### Added
35
+
36
+ - **The Kodokan in the Tokyo district** ([the district page](./docs/district.md#the-kodokan-the-great-dojo-in-the-air)): `"kodokan"` is a venue of a district. Its main dojo (the great dojo, on the 7th floor, 420 mats, four contest areas at once, a gallery of about 900 on the 8th) is drawn in the air on its real floor, 31.9 metres up, in Project PLATEAU's building (8 storeys, 43.1 metres, its real outline), with the package's judo dojo inside: the four areas, the gallery, the seat of honour. No source gives the floor's shape or the room's place in the building: the floor is a square of 420 jō and the room is put where it stands farthest from the walls (ours, and said). `building: "xray" | "solid" | "none"` draws the building with walls that give way to the eye as it looks in (the default), whole, or not at all. The building is the venue's own, so the surrounding `context` leaves its copy out. A district with the Kodokan carries PLATEAU's credit without any context. New in the Tokyo district of the demo: a Kodokan choice, a Kodokan building choice kept in the address (`building=solid`, `building=none`), and a preset "Tokyo Dome City and the Kodokan". A picture of the dojo in the docs.
37
+ - A member of a district can stand on a floor above the ground (`DistrictMember.elevation`, in feet): its planes are lifted, its floor is drawn in the air as a plane of its own and the ground under it is left bare in 3D.
38
+ - **Downtown Vancouver among its streets** ([the page](./docs/district.md#among-the-streets-of-downtown-vancouver)): `context: [VANCOUVER_CENTRE]` (new entry `@johnmorrisdotca/kyogijo-stadiums/osm`) draws the carriageways, viaducts, SkyTrain guideway, sidewalks and paths flat under BC Place and Rogers Arena, and the buildings round them flat and, for the biggest 130, standing in 3D, with the heights OpenStreetMap maps (else its levels, else 10 metres, ours). The district's `context` takes a `streets` layer beside the `buildings` one and a `landmark` height of its own. OpenStreetMap, ODbL 1.0, kept apart from the PLATEAU data of Tokyo; `pnpm osm-context` makes it from the raw answer the walkable mask is made from.
39
+ - **BC Place's 36 masts**, each 47.5 metres over the rim and leaning out, two crossed strips to a mast (STRUCTURE magazine's count and height, cited; the lean is ours), and the walls in two bands, a podium, a ledge and glazing, for BC Place and Rogers Arena (ours).
40
+ - **Rogers Arena's roof closed in the middle by a cap with a long skylight** along the rink (ours, from the brief).
41
+ - **The gates of a venue** ([the page](./docs/gates.md)): `venueGates("bc-place")` gives eight gates, one of them Gate G on the south side (Wikipedia's), and `venueGates("rogers-arena")` four on the Pat Quinn Way side and at the north-west, each a point on the building's outline with the way it faces, a name in English and Japanese and how it is known (`documented` or `plausible`); `gates: true` on a district marks them on the plan and the 3D floor. The data the crowd's walk in and out will use for its queues.
42
+ - **The district page** has Surrounding buildings and streets for Vancouver (on by default), Retractable roof open (3D, for BC Place and T-Mobile Park, kept in the address as `roofopen=1`) and Gates (`gates=1`).
43
+
44
+ ### Changed
45
+
46
+ - **The demo's browser tests run in four shards in CI** (`demo (1/4)` to `demo (4/4)`, each building the demo and playing a quarter of the tests in the three projects), and a test that fails on the runner is played once more (`retries: 1` in CI only, the report saying "flaky" for one that passed the second time): the job took 45 to 95 minutes on one runner.
47
+
48
+ ## [0.42.1] - 2026-10-22
49
+
50
+ Not published on its own; shipped in 0.43.0.
51
+
52
+ ### Fixed
53
+
54
+ - The README no longer carries the grey "Renamed" box about the package's old name (the 0.4.0 entry below keeps the history).
55
+ - **The demo's 3D views keep the camera when the choice changes** (the district, stadiums, venues and layouts pages): another venue or district, another stadium or configuration, another layout, the roof, or the flat view and back used to open the view afresh on its viewpoint, taking away the turn, tilt and zoom the reader had chosen and stopping the auto-turn. The view is now opened where the last one was (turn, tilt, zoom, and Play if it was turning) and only the frame it fits changes. A turn made by hand is in the address as `yaw`, `pitch` and `zoom` (under the home page's `f` prefix for its featured arena), and an address that names them opens on them; a viewpoint chosen from the list or the view's own buttons takes them out again and says itself. A box that is not the viewpoint (the boards, the labels, the language) no longer sends the view back to the viewpoint, and the district and stadiums pages now write `viewpoint=` for every viewpoint but their own default, overhead (a reload used to lose a chosen low corner).
56
+
57
+ ## [0.42.0] - 2026-10-22
58
+
59
+ Not published on its own; shipped in 0.43.0.
60
+
61
+ ### Added
62
+
63
+ - **A district among its buildings, from Project PLATEAU** ([the district page](./docs/district.md#among-its-buildings-project-plateau)): `drawDistrict`, `planDistrict` and `buildDistrictTurn` take `context: [TOKYO_DOME_CITY]` (new entry `@johnmorrisdotca/kyogijo-stadiums/plateau`), the 734 buildings within 500 metres of the middle of Tokyo Dome City from the Ministry of Land, Infrastructure, Transport and Tourism's 3D city model of Bunkyo ward (2025 edition). They lie flat on the floor in four tones by height, and the 130 biggest and tallest stand in the 3D view at their real heights, walls lit by the way they face and hip roofs where the model has them: Tokyo Dome Hotel at 155 metres, Bunkyo Civic Center at about 139. The frame takes in the streets round the venues (150 metres) and grows to any landmark of 100 metres or more within 400. A building that is a venue's own (the Dome's stands and roof) is left out; the building Korakuen Hall stands in is a ghost. The data is cut down at build time (`pnpm plateau:fetch` reads the ward's CityGML by range requests, `pnpm plateau` writes `src/plateau.data.ts`: 40 KB, 16 KB gzipped) and nothing is read at run time; the raw fields are in `data-sources/plateau/2026-10-22/`. A district that does not ask is drawn as before and carries none of it. The credit (PLATEAU's site policy: free, commercial use included, compatible with CC BY 4.0; credited, and said to be edited) is in each description in English and in Japanese and in `NOTICE.md`. The data file is one frame with separate layers (`ContextArea.layers`), so trees and land cover can be laid beside the buildings.
64
+ - **A Surrounding buildings choice on the district page**, on for Tokyo Dome City (`context=0` in the address turns it off), and a 3D picture of the district among its buildings in the docs.
65
+ - The three links John sent (jeantimex/tokyo, mkturkcan/valdrada and a Tokyo Tower model on Printables) in [the references](./docs/references.md), with what each may be used for.
66
+
67
+ ### Changed
68
+
69
+ - A plane of the 3D view can belong to no building (`APART`): the view stacks such planes by depth among themselves and weaves them into the buildings' (which keep their building-by-building order), so a district's surrounding blocks need no group of their own.
70
+
71
+ ## [0.41.0] - 2026-10-22
72
+
73
+ Not published on its own; shipped in 0.42.0.
74
+
75
+ ### Added
76
+
77
+ - **The crowd outside the venue** ([the page](./docs/outside.md)): `outside: { level: 0 | 25 | 50 | 75 | 100 }` on a [district](./docs/district.md) puts that share of the venues' seats' worth of people on the sidewalks, plazas, parks, platforms and grounds round them, in 2D (`mountDistrict`, new) and in the 3D turn (`mountDistrictTurn`, whose view has `setOutside(level)` and `outsideCost()`), never on a carriageway, a railway, water or a building. The crowd is one ordered list, so a level is a prefix of it (nobody moves when the level does), each venue's share is exact to a person at every level and the same options give the same list (`outsideCrowd`, `outsideCount`). It is drawn with no element for a person: two typed arrays, one loop and one `putImageData` on one canvas, laid over the plan or on the 3D floor, where the floor's own matrix carries it round; a district seen whole shows density and a near view shows each person, and nothing is painted again when the view turns. Measured at 100 percent for BC Place and Rogers Arena together (73,371 people): a paint of 2 to 17 ms on a level change (the first about twice that), 0.3 ms more of the main thread a frame while the view turns, 60 frames a second with it as without, and 250 ms once for the mask and the crowd.
78
+ - **The walkable mask of Vancouver** (BC Place and Rogers Arena, one mask shared): made from OpenStreetMap's own answer (Overpass, ODbL 1.0, kept raw in `data-sources/walk/2026-10-22/`, credited "(c) OpenStreetMap contributors") by `pnpm walk:fetch` and `pnpm walk` (`scripts/walk-rules.mjs` says what a person may stand on and what stops a crowd) into `src/walk.data.ts`, apart from the CC0 data. `src/outside.raw.test.js` holds all 73,371 people to the raw answer. Only Vancouver has a mask; every other venue comes in a later release, and so do the entrances and the walk in and out.
79
+ - **A bar of the five levels** on the demo's [district page](https://johnmorrisdotca.github.io/kyogijo-stadiums/district.html?outside=50), over the plan and the 3D view, kept in the address (`outside=50`), in English and Japanese, with the number of people said in words.
80
+ - `pnpm outside:cost` prints the cost of a crowd; `DistrictPlan.origin` is the point the plan's metres are measured from.
81
+
10
82
  ## [0.40.2] - 2026-10-21
11
83
 
12
84
  ### Fixed
package/NOTICE.md CHANGED
@@ -47,6 +47,14 @@ picture or code of the sources is copied; each source is named here so that the
47
47
  | `venues`: each venue's seats for ice hockey, number of seating tiers and kind of roof (`VENUE_DATA`, `src/venues.data.ts`) | The item of Wikidata (the capacity P1083 and the sport it applies to P641) and the English Wikipedia article of each arena, at the revision cited below, in `data-sources/venues/2026-10-20/` as read; the facts are numbers and words of our own, with what was read in a few words | Wikidata's data is CC0; the facts read from the articles are facts, with the articles credited here (CC BY-SA 4.0) |
48
48
  | `stadiums`: the outline of each stadium's building, the roof OpenStreetMap maps over it (its heights, the opening in it or its canopies), the pitches or the infield, and how the field lies, worked out from the opening, the pitches or the infield and the outline (`STADIUM_OSM`, `src/stadiums.osm.data.ts`) | OpenStreetMap, through the Overpass API: the closed way tagged with the stadium's Wikidata item and the multipolygon of its roof (BC Place), or the way or relation of the building, the roof parts, the pitches, the infield or the grass of the field named in `scripts/stadiums.data.json` (Lumen Field, T-Mobile Park, Tokyo Dome, Korakuen Hall, Koshien Stadium), read on 2026-10-20, with the raw answers kept in `data-sources/stadiums/2026-10-20/`; the outline is simplified to a metre, and the way the field lies is worked out from the opening, the pitches or the infield (`smallestBox`, `src/venues.geo.ts`; a ballpark's way out to centre field is the one of four where its fence lies inside the outline, or the heading and home plate at which its published fence lies nearest the mapped grass of the field (Koshien Stadium), or, where nothing maps it, not known, and the heading is the one in which fence and stands fit the outline best (Tokyo Dome)) | ODbL 1.0, (c) OpenStreetMap contributors (https://www.openstreetmap.org/copyright): a derived database, kept in its own file and offered under the ODbL; a drawing made from it is a produced work and carries the credit (`VENUE_ATTRIBUTION`) |
49
49
  | `stadiums`: each stadium's seats for each configuration, number of seating bowls, kind of roof and the size of its opening (`STADIUM_DATA`, `src/stadiums.data.ts`) | The item of Wikidata (the capacity P1083, the coordinates P625 and the labels in English and Japanese that name a hall) and the English Wikipedia article of each stadium, at the revision cited below, and the Japanese article of the three stadiums of Japan, at the revision cited in [NOTICE.ja.md](./NOTICE.ja.md#実在のスタジアム), in `data-sources/stadiums/2026-10-20/` as read; the facts are numbers and words of our own, with what was read in a few words (and, for a fact leaning on a sentence, the phrase the archive must hold) | Wikidata's data is CC0; the facts read from the articles are facts, with the articles credited here (CC BY-SA 4.0) |
50
+ | `walk`: the ground a crowd outside a district's venues may stand on and what stops it (`WALK_DATA`, `src/walk.data.ts`): paths and sidewalks, plazas, squares, parks and platforms, and carriageways, cycle tracks, railways, water and buildings, as lines with a width and as rings | OpenStreetMap, through the Overpass API: every way and relation of the highways, buildings, railways, water, squares, parks and platforms within 350 metres of the district's venues, read on 2026-10-22, with the raw answer kept in `data-sources/walk/2026-10-22/`; laid flat in metres, simplified to 30 centimetres and written in quarter-metres, by the rules of `scripts/walk-rules.mjs` (no name, id or tag is copied) | ODbL 1.0, (c) OpenStreetMap contributors (https://www.openstreetmap.org/copyright): a derived database, kept in its own file and offered under the ODbL; a crowd or a drawing made from it is a produced work and carries the credit (`VENUE_ATTRIBUTION`) |
51
+ | `plateau`: the buildings round Tokyo Dome City (`TOKYO_DOME_CITY`, `src/plateau.data.ts`): each building's roof-edge outline simplified to 0.6 metres on a half-metre grid, its height and, for a pitched LOD2 roof, the rise of the roof | Project PLATEAU, the Ministry of Land, Infrastructure, Transport and Tourism's (MLIT) 3D city model of Bunkyo ward, 2025 edition (product specification 5.0, CityGML, https://www.geospatial.jp/ckan/dataset/plateau-13105-bunkyo-ku-2025), read on 2026-10-22: the buildings within 500 metres of the middle of the district, with the raw fields kept in `data-sources/plateau/2026-10-22/` (`pnpm plateau:fetch`, `pnpm plateau`) | PLATEAU Site Policy (https://www.mlit.go.jp/plateau/site-policy/), clause 3: free use, commercial use included, compatible with CC BY 4.0 and the Public Data License 1.0; the source is credited and the data says it was edited and not made by MLIT (`PLATEAU_ATTRIBUTION`: "Project PLATEAU, Ministry of Land, Infrastructure, Transport and Tourism (MLIT), https://www.mlit.go.jp/plateau/ (3D city model of Bunkyo ward, 2025 edition), simplified and edited by Kyogijo Stadiums; not made by MLIT"); the copyright of a ward's data belongs to its local government. Kept in its own file, apart from the OpenStreetMap data (ODbL) and the CC0 files |
52
+ | `cityctx`: the surroundings of the venues of Seattle (`SEATTLE_SODO`, `SEATTLE_CENTER`, `SEATTLE_CITY`) and the land cover and trees round Vancouver's (`VANCOUVER_NATURE`), in `src/cityctx.data.ts`: buildings (outline, height, for a pitched roof its rise), streets, railways, sidewalks and paths as lines with a width, water, green and wood outlines, and single trees | OpenStreetMap, through the Overpass API: the buildings (with their `height` and `building:levels`), the highways and railways, the tree nodes and rows within the radius of each area, read on 2026-10-22, the raw answers kept in `data-sources/cityctx/2026-10-22/` (`pnpm cityctx:fetch`, `pnpm cityctx:vox`, `pnpm cityctx`); laid flat in metres, simplified and put on a grid of half a metre (two metres for Seattle's city view) | OpenStreetMap's data is ODbL 1.0 (https://opendatacommons.org/licenses/odbl/1-0/), credited "(c) OpenStreetMap contributors, ODbL 1.0, openstreetmap.org/copyright"; the file is a derived database kept in its own file, apart from the CC0 files and from PLATEAU's data |
53
+ | `cityctx`: Vancouver's trees | The City of Vancouver's open data, "Public trees" (place and diameter), read through the portal's API on 2026-10-22 and kept in `data-sources/cityctx/2026-10-22/` | The Open Government Licence - Vancouver (https://opendata.vancouver.ca/pages/licence/): free to use, with the City credited, in each layer, in English and in Japanese |
54
+ | `cityctx`: the heights of Seattle's buildings and its trees | The City of Seattle's open data: "Building Outlines 2015" (the roof outlines the City's 3D building shells are made from; the roof apex elevation in feet, from which the height above the ground is worked out), "Combined Tree Point" (street and park trees: place and diameter), and the ground under each building from the USGS 3D Elevation Program (the National Map's `3DEPElevation` image service), read on 2026-10-22 and kept in `data-sources/cityctx/2026-10-22/` | The City of Seattle's Open Data Policy (V1.0, 1 February 2016: a dataset on its portal is made available without registration, licence requirement or restriction on its use, and a third party that publishes it identifies its source and version and what it changed); the City makes no warranty of the data's accuracy, and says so in each dataset (the credit says it too); the 3D shells' own item gives only that disclaimer, and the outlines are what its shells are made from; the USGS 3DEP elevation is a US Government work in the public domain, credited |
55
+ | `cityctx`: the land cover (water, green, wood) of Vancouver and Seattle | The grid of land cover that VoxCity (https://github.com/kunifujiwara/VoxCity, version 1.7.0, run locally, with no Earth Engine or other account) makes from OpenStreetMap with `get_land_cover_grid(source="OpenStreetMap")`, kept as it was made in `data-sources/cityctx/2026-10-22/voxcity-*.json` and vectorized by `scripts/cityctx_vox.py` | VoxCity's code is MIT (not copied or shipped: only run at build time); the land cover is OpenStreetMap's data and so ODbL 1.0, credited "Land cover made with VoxCity (MIT) from OpenStreetMap" |
56
+ | `district`: the Kodokan (`KODOKAN`, `src/kodokan.ts`, `src/kodokan.data.ts`): its building's outline (simplified to 0.3 metres), height (43.1 metres) and storeys (8), and where the main dojo's room lies in it | The building is Project PLATEAU's, as the `plateau` row above (the same credit, `PLATEAU_ATTRIBUTION`; the building's id in the file is in `src/kodokan.data.ts`); OpenStreetMap's way 170598646 (8 levels) was read on 2026-10-22 as a check that it is the same building, and nothing of it is copied. The main dojo is on the 7th floor with 420 mats, four contests at once, a gallery of about 900 on the 8th, in a building of eight floors and a basement: the Kodokan's own page (facilities), English Wikipedia (the article as last edited on 2026-04-20) and the IJF's article "Kodokan: an institution, a legendary place and a training venue", read on 2026-10-22; facts, no text copied | PLATEAU's terms as above for the building; facts for the rest. The shape of the floor, the room's place in the building, the wood (none) and the height of the 7th floor are ours, and the pages say so |
57
+ | `district`: the Kodokan (`KODOKAN`, `src/kodokan.ts`, `src/kodokan.data.ts`): its building's outline (simplified to 0.3 metres), height (43.1 metres) and storeys (8), and where the main dojo's room lies in it | The building is Project PLATEAU's, as the `plateau` row above (the same credit, `PLATEAU_ATTRIBUTION`; the building's id in the file is in `src/kodokan.data.ts`); OpenStreetMap's way 170598646 (8 levels) was read on 2026-10-22 as a check that it is the same building, and nothing of it is copied. The main dojo is on the 7th floor with 420 mats, four contests at once, a gallery of about 900 on the 8th, in a building of eight floors and a basement: the Kodokan's own floor guide (the facilities page: the rooms of each floor from the 8th to the basement, with the count of jō of each dojo where it gives one), English Wikipedia (the article as last edited on 2026-04-20) and the IJF's article "Kodokan: an institution, a legendary place and a training venue", read on 2026-10-22; facts, no text copied | PLATEAU's terms as above for the building; facts for the rest. The shape of the floor, the room's place in the building, the wood (none) and the height of the 7th floor are ours, and the pages say so |
50
58
  | `atlas`: the clubs that played in each park, ground and arena (`tenants`: the club, its Wikidata item, its league, the years) | The occupants (P466) and home venues (P115) Wikidata lists for each place, with the start (P580) and end (P582) times of each statement, and the clubs' labels in English and Japanese, sports (P641) and leagues (P118), read with the Wikidata API and query service by `scripts/fetch-tenants.mjs` into `scripts/tenants.wikidata.json`; and the `tenants` line of the infobox of each place's English Wikipedia article, at the revision that `source.wikipedia` names for each club (155 articles, read on 2026-10-13) | Facts. Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/), and the articles are CC BY-SA 4.0 as above; the names of clubs and the years are facts, no text, table or image of an article is used. Which clubs are tenants, and the league each is filed under, are our reading, in docs/atlas.md ("Tenants") |
51
59
  | `parks`: the walls, quirks, backstop, warning track, dugouts and extra points of a ballpark (`walls`, `quirks`, `backstop_ft`, `track_ft`, `dugouts`, `labels`) | The infobox and the text of the same English article of each park, at the same revision as its fence (the Japanese article for the heights of the walls of the parks of Japan): the height of the wall along a stretch of the fence and the seasons it stood, the hill, overhang, poles, bullpens, ivy and basket the text describes with figures, the infobox's backstop distance, the warning track's width, the sides of the dugouts, and the further distances the text gives (Wrigley Field's wells, Sportsman's Park's and Milwaukee County Stadium's markers). The stretch each figure covers and the angle of each extra point are our reading of the article's words | Facts. The articles are CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); none of their text, tables or images is used |
52
60
  | `parks`: the coordinates of each ballpark (`lat`, `lon`) and the years it opened and closed (`opened`, `closed`) | The item's coordinate location (P625), its date of official opening or inception (P1619, P571) and of official closure or dissolution (P3999, P576), read with the Wikidata API by `scripts/fetch-park-coordinates.mjs` and checked by `scripts/check-parks.mjs` (ES CON Field's opening, 2023, is read from its article) | Wikidata's data is CC0 (https://creativecommons.org/publicdomain/zero/1.0/) |
@@ -463,6 +471,20 @@ BC Place, Lumen Field, T-Mobile Park, Tokyo Dome, Korakuen Hall and Koshien Stad
463
471
  | Korakuen Hall | Q4389857 | way/45977418 | Korakuen Hall, 1372211318 |
464
472
  | Koshien Stadium | Q959811 | relation/9845926 | Koshien Stadium, 1374217766 |
465
473
 
474
+ ## The context's and the gates' sources
475
+
476
+ Downtown Vancouver's buildings and streets (`VANCOUVER_CENTRE`, `src/osm.context.data.ts`) are OpenStreetMap's, ODbL 1.0, (c) OpenStreetMap contributors, made by `pnpm osm-context` from the same raw answer as the walkable mask (`data-sources/walk/2026-10-22/osm-vancouver.json`): each building's outline simplified to 60 centimetres with the height OpenStreetMap maps (else its levels at 3.2 metres, else 10 metres, which is ours) and each street as a line with a width; no name, id or tag is copied. It is kept in its own file, apart from every CC0 and CC BY-SA file and from the PLATEAU data of Tokyo.
477
+
478
+ BC Place's masts (`scripts/stadiums.data.json`, `roof.masts`: 36, 47.5 metres) are a fact read from STRUCTURE magazine's article on the roof (https://www.structuremag.org/article/bc-place-revitalization/, 2026-10-22); its words are not kept. The gates (`src/gates.ts`) are ours, placed on OpenStreetMap's outlines; the one fact is that BC Place has a Gate G on the south side, from the English Wikipedia article (revision 1372065649, CC BY-SA 4.0, our own words).
479
+
480
+ ## The walkable masks' sources
481
+
482
+ The ground round the venues of a district, read on 2026-10-22 (`pnpm walk:fetch`; the file is `data-sources/walk/2026-10-22/osm-<district>.json`, as Overpass returned it, with the query and the time of OpenStreetMap's data) and made into `src/walk.data.ts` by `pnpm walk`. It is OpenStreetMap's, ODbL 1.0, (c) OpenStreetMap contributors, and lives in that file alone. Nothing of Wikidata or Wikipedia is in it.
483
+
484
+ | District | Venues | Radius | OpenStreetMap data of |
485
+ | --- | --- | --- | --- |
486
+ | `vancouver` | BC Place, Rogers Arena | 350 metres | 2026-10-22T07:58:28Z |
487
+
466
488
  ## The World Cups' articles
467
489
 
468
490
  The grounds each World Cup used, and where its final was played, were read from the venue section of the tournament's English Wikipedia article at the revision named (32 tournaments), by the same address. FIFA's own pages are not used.
package/README.md CHANGED
@@ -13,8 +13,6 @@ The surfaces of forty-three sports, from football and curling to the budō and t
13
13
 
14
14
  <p align="center"><a href="https://johnmorrisdotca.github.io/kyogijo-stadiums/"><strong>Open the demo →</strong></a> · <a href="https://johnmorrisdotca.github.io/kyogijo-stadiums/docs/">Documentation</a> · <a href="https://johnmorrisdotca.github.io/kyogijo-stadiums/docs/gallery.html">Gallery</a> · <a href="./docs/compare.md">How it compares</a> · <a href="https://johnmorrisdotca.github.io/kyogijo-stadiums/api.html">API reference</a></p>
15
15
 
16
- > **Renamed.** Previously `@johnmorrisdotca/kyogijo`; renamed in 0.4.0 to `@johnmorrisdotca/kyogijo-stadiums`. The product is still Kyogijo Stadiums (競技場); only the package and the repository names changed. See the [changelog](./CHANGELOG.md).
17
-
18
16
  <table align="center">
19
17
  <tr>
20
18
  <td align="center" valign="top">
@@ -163,7 +161,7 @@ console.log(svg.startsWith("<svg"), svg.includes("USA 3, Canada 2"));
163
161
  | `./geometry`, `./frames`, `./layers`, `./charts`, `./replay` | The dimensions in any unit; the providers' frames; data layers; charts; tracking data played on a surface. |
164
162
  | `./athletics`, `./budo`, `./skating` | The athletics stadium, the budō (areas, dohyō, kyūdōjō, the dojo builder `drawDojo`, the 82 kimarite) and the skating rinks: plans, races and charts. |
165
163
  | `./parks`, `./grounds`, `./arenas`, `./atlas`, `./eras`, `./leagues`, `./events` | The ballparks, grounds, arenas, every place, a season's markings, each league's rulebook, the special games. |
166
- | `./venues`, `./stadiums`, `./district` | Real arenas and stadiums in their buildings' outlines; districts of venues on one plan. |
164
+ | `./venues`, `./stadiums`, `./district`, `./plateau`, `./osm`, `./cityctx` | Real arenas and stadiums in their buildings' outlines; districts on one plan, among PLATEAU's buildings or the streets of Vancouver and Seattle. |
167
165
  | `./turn` | A surface as a 3D view that turns, with the net, basket, goal or posts standing on it. |
168
166
  | `./scene`, `./canvas`, `./d3`, `./plot`, `./geojson`, `./png` | The drawing as data, on a canvas, in d3, as an Observable Plot mark, as GeoJSON, as a PNG (the optional peer `@resvg/resvg-js`). |
169
167
  | `./multi`, `./judging`, `./layouts` | `drawMulti` (several surfaces for one event, [docs](./docs/multi.md), [demo](https://johnmorrisdotca.github.io/kyogijo-stadiums/halls.html)); `drawJudging` (who judges where, [docs](./docs/judging.md)); `drawGrid` (small multiples, backgrounds). |
@@ -0,0 +1,3 @@
1
+ export { CITYCTX_AREAS, SEATTLE_CENTER, SEATTLE_CITY, SEATTLE_SODO, VANCOUVER_NATURE } from "./cityctx.data.ts";
2
+ export { CITYCTX_VENUES, contextFor } from "./cityctx.ts";
3
+ export type { ContextArea } from "./context.ts";
@@ -0,0 +1,3 @@
1
+ // The surroundings of the venues of Vancouver and Seattle (streets, buildings, water, green, trees), as data a district takes in its `context` option, from OpenStreetMap (ODbL 1.0) and the Cities' open data, with their credits; `contextFor` says which go with some venues.
2
+ export { CITYCTX_AREAS, SEATTLE_CENTER, SEATTLE_CITY, SEATTLE_SODO, VANCOUVER_NATURE } from "./cityctx.data.js";
3
+ export { CITYCTX_VENUES, contextFor } from "./cityctx.js";
@@ -0,0 +1,19 @@
1
+ import type { ContextArea } from "./context.ts";
2
+ /** The venues each area is drawn round, by their ids (the part of a district's key before the colon). */
3
+ export declare const CITYCTX_VENUES: Readonly<{
4
+ vancouver: string[];
5
+ sodo: string[];
6
+ center: string[];
7
+ }>;
8
+ /**
9
+ * The areas of context that go with some venues, for a district's `context` option: downtown Vancouver's buildings and streets (`VANCOUVER_CENTRE`, of `./osm`) with its water, green and trees (`VANCOUVER_NATURE`) for BC Place and
10
+ * Rogers Arena; Seattle's SoDo for Lumen Field and T-Mobile Park, Seattle Center's for Climate Pledge Arena, and the city's own, with streets and the buildings that matter from far, for a district that holds venues of both (they are
11
+ * three kilometres apart, so the detail of either would be a speck). A venue of neither city has none.
12
+ * @example
13
+ * ```ts
14
+ * import { contextFor } from "@johnmorrisdotca/kyogijo-stadiums/cityctx";
15
+ * console.log(contextFor(["bc-place:cfl", "rogers-arena"]).map((area) => area.key));
16
+ * // [ 'vancouver', 'vancouver-nature' ]
17
+ * ```
18
+ */
19
+ export declare function contextFor(venues: readonly string[]): ContextArea[];
@@ -0,0 +1,11 @@
1
+ import type { ContextArea } from "./context.ts";
2
+ /** Vancouver: water, green and trees round BC Place and Rogers Arena: 0 buildings, 0 street lines, 28 land cover outlines and 1370 trees within 450 metres of the middle, read 2026-10-22. */
3
+ export declare const VANCOUVER_NATURE: ContextArea;
4
+ /** Seattle: SoDo, Lumen Field and T-Mobile Park: 230 buildings, 1134 street lines, 8 land cover outlines and 1385 trees within 650 metres of the middle, read 2026-10-22. */
5
+ export declare const SEATTLE_SODO: ContextArea;
6
+ /** Seattle: Seattle Center and Climate Pledge Arena: 449 buildings, 1340 street lines, 47 land cover outlines and 1400 trees within 550 metres of the middle, read 2026-10-22. */
7
+ export declare const SEATTLE_CENTER: ContextArea;
8
+ /** Seattle: the city between the three venues: 1300 buildings, 2392 street lines, 49 land cover outlines and 0 trees within 3000 metres of the middle, read 2026-10-22. */
9
+ export declare const SEATTLE_CITY: ContextArea;
10
+ /** Every area, by key. */
11
+ export declare const CITYCTX_AREAS: Readonly<Record<string, ContextArea>>;