@a2f0/skyline 0.0.0-stage → 0.1.2
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.
- package/NOTICE.md +20 -0
- package/README.md +52 -2
- package/docs/package.md +224 -0
- package/docs/skyline-geography.md +503 -0
- package/lib/models/aon-center.d.ts +4 -0
- package/lib/models/aon-center.js +60 -0
- package/lib/models/aon-geographic.d.ts +9 -0
- package/lib/models/aon-geographic.js +35 -0
- package/lib/models/aon-tower.d.ts +23 -0
- package/lib/models/aon-tower.js +130 -0
- package/lib/models/blue-cross-geographic.d.ts +14 -0
- package/lib/models/blue-cross-geographic.js +248 -0
- package/lib/models/borg-warner-geographic.d.ts +20 -0
- package/lib/models/borg-warner-geographic.js +143 -0
- package/lib/models/buckingham-geographic.d.ts +10 -0
- package/lib/models/buckingham-geographic.js +121 -0
- package/lib/models/building-kit.d.ts +84 -0
- package/lib/models/building-kit.js +358 -0
- package/lib/models/celebrations.d.ts +39 -0
- package/lib/models/celebrations.js +44 -0
- package/lib/models/chicago-athletic-association-geographic.d.ts +32 -0
- package/lib/models/chicago-athletic-association-geographic.js +173 -0
- package/lib/models/crain-communications.d.ts +5 -0
- package/lib/models/crain-communications.js +75 -0
- package/lib/models/crain-geographic.d.ts +10 -0
- package/lib/models/crain-geographic.js +69 -0
- package/lib/models/crain-tower.d.ts +32 -0
- package/lib/models/crain-tower.js +378 -0
- package/lib/models/facade-grid.d.ts +18 -0
- package/lib/models/facade-grid.js +176 -0
- package/lib/models/gage-geographic.d.ts +19 -0
- package/lib/models/gage-geographic.js +154 -0
- package/lib/models/heritage-at-millennium-park.d.ts +3 -0
- package/lib/models/heritage-at-millennium-park.js +284 -0
- package/lib/models/heritage-geographic.d.ts +11 -0
- package/lib/models/heritage-geographic.js +208 -0
- package/lib/models/hyatt-west-tower-geographic.d.ts +26 -0
- package/lib/models/hyatt-west-tower-geographic.js +86 -0
- package/lib/models/keith-ascher-geographic.d.ts +29 -0
- package/lib/models/keith-ascher-geographic.js +110 -0
- package/lib/models/kemper-geographic.d.ts +8 -0
- package/lib/models/kemper-geographic.js +153 -0
- package/lib/models/kemper.d.ts +2 -0
- package/lib/models/kemper.js +78 -0
- package/lib/models/lake-view-geographic.d.ts +15 -0
- package/lib/models/lake-view-geographic.js +134 -0
- package/lib/models/maclean-center-geographic.d.ts +20 -0
- package/lib/models/maclean-center-geographic.js +162 -0
- package/lib/models/michigan-boulevard-geographic.d.ts +12 -0
- package/lib/models/michigan-boulevard-geographic.js +157 -0
- package/lib/models/michigan-plaza-south-geographic.d.ts +7 -0
- package/lib/models/michigan-plaza-south-geographic.js +84 -0
- package/lib/models/michigan-plaza-south.d.ts +2 -0
- package/lib/models/michigan-plaza-south.js +68 -0
- package/lib/models/millennium-park-plaza-geographic.d.ts +9 -0
- package/lib/models/millennium-park-plaza-geographic.js +103 -0
- package/lib/models/monroe-geographic.d.ts +19 -0
- package/lib/models/monroe-geographic.js +177 -0
- package/lib/models/north-michigan-180-geographic.d.ts +14 -0
- package/lib/models/north-michigan-180-geographic.js +117 -0
- package/lib/models/north-wabash-geographic.d.ts +14 -0
- package/lib/models/north-wabash-geographic.js +122 -0
- package/lib/models/on-the-park-geographic.d.ts +11 -0
- package/lib/models/on-the-park-geographic.js +245 -0
- package/lib/models/one-prudential-geographic.d.ts +12 -0
- package/lib/models/one-prudential-geographic.js +55 -0
- package/lib/models/one-prudential-plaza.d.ts +5 -0
- package/lib/models/one-prudential-plaza.js +72 -0
- package/lib/models/one-prudential-tower.d.ts +45 -0
- package/lib/models/one-prudential-tower.js +246 -0
- package/lib/models/peoples-gas-geographic.d.ts +23 -0
- package/lib/models/peoples-gas-geographic.js +250 -0
- package/lib/models/railway-exchange-geographic.d.ts +18 -0
- package/lib/models/railway-exchange-geographic.js +176 -0
- package/lib/models/river-plaza-geographic.d.ts +16 -0
- package/lib/models/river-plaza-geographic.js +104 -0
- package/lib/models/sheraton-grand-geographic.d.ts +24 -0
- package/lib/models/sheraton-grand-geographic.js +112 -0
- package/lib/models/six-north-michigan-geographic.d.ts +16 -0
- package/lib/models/six-north-michigan-geographic.js +180 -0
- package/lib/models/skyline-geography-data.d.ts +44 -0
- package/lib/models/skyline-geography-data.js +607 -0
- package/lib/models/skyline-geography.d.ts +23 -0
- package/lib/models/skyline-geography.js +322 -0
- package/lib/models/swissotel-geographic.d.ts +24 -0
- package/lib/models/swissotel-geographic.js +79 -0
- package/lib/models/three-illinois-center-geographic.d.ts +26 -0
- package/lib/models/three-illinois-center-geographic.js +86 -0
- package/lib/models/trump-geographic.d.ts +14 -0
- package/lib/models/trump-geographic.js +51 -0
- package/lib/models/trump-international-tower.d.ts +4 -0
- package/lib/models/trump-international-tower.js +84 -0
- package/lib/models/trump-tower.d.ts +43 -0
- package/lib/models/trump-tower.js +229 -0
- package/lib/models/two-illinois-center-geographic.d.ts +26 -0
- package/lib/models/two-illinois-center-geographic.js +85 -0
- package/lib/models/two-prudential-geographic.d.ts +25 -0
- package/lib/models/two-prudential-geographic.js +47 -0
- package/lib/models/two-prudential-plaza.d.ts +8 -0
- package/lib/models/two-prudential-plaza.js +55 -0
- package/lib/models/two-prudential-tower.d.ts +53 -0
- package/lib/models/two-prudential-tower.js +441 -0
- package/lib/models/university-club-geographic.d.ts +24 -0
- package/lib/models/university-club-geographic.js +217 -0
- package/lib/models/willoughby-tower-geographic.d.ts +17 -0
- package/lib/models/willoughby-tower-geographic.js +195 -0
- package/lib/models/window-illumination.d.ts +14 -0
- package/lib/models/window-illumination.js +64 -0
- package/lib/package-assets.d.ts +5 -0
- package/lib/package-assets.js +9 -0
- package/lib/skyline-package.d.ts +23 -0
- package/lib/skyline-package.js +25 -0
- package/lib/skyline-scene.d.ts +25 -0
- package/lib/skyline-scene.js +86 -0
- package/lib/study-types.d.ts +49 -0
- package/lib/study-types.js +1 -0
- package/lib/vendor/three-r186.d.ts +1 -0
- package/lib/vendor/three-r186.js +1 -0
- package/package.json +64 -4
- package/site/building-detail.html +54 -0
- package/site/building-detail.js +84 -0
- package/site/building-study.html +58 -0
- package/site/building-study.js +3 -0
- package/site/index.html +407 -0
- package/site/models/aon-center.js +60 -0
- package/site/models/aon-geographic.js +35 -0
- package/site/models/aon-tower.js +130 -0
- package/site/models/blue-cross-geographic.js +248 -0
- package/site/models/borg-warner-geographic.js +143 -0
- package/site/models/buckingham-geographic.js +121 -0
- package/site/models/building-kit.js +358 -0
- package/site/models/celebrations.js +44 -0
- package/site/models/chicago-athletic-association-geographic.js +173 -0
- package/site/models/crain-communications.js +75 -0
- package/site/models/crain-geographic.js +69 -0
- package/site/models/crain-reference.svg +10 -0
- package/site/models/crain-tower.js +378 -0
- package/site/models/facade-grid.js +176 -0
- package/site/models/gage-geographic.js +154 -0
- package/site/models/heritage-at-millennium-park.js +284 -0
- package/site/models/heritage-geographic.js +208 -0
- package/site/models/hyatt-west-tower-geographic.js +86 -0
- package/site/models/keith-ascher-geographic.js +110 -0
- package/site/models/kemper-geographic.js +153 -0
- package/site/models/kemper.js +78 -0
- package/site/models/lake-view-geographic.js +134 -0
- package/site/models/maclean-center-geographic.js +162 -0
- package/site/models/michigan-boulevard-geographic.js +157 -0
- package/site/models/michigan-plaza-south-geographic.js +84 -0
- package/site/models/michigan-plaza-south.js +68 -0
- package/site/models/millennium-park-plaza-geographic.js +103 -0
- package/site/models/monroe-geographic.js +177 -0
- package/site/models/north-michigan-180-geographic.js +117 -0
- package/site/models/north-wabash-geographic.js +122 -0
- package/site/models/on-the-park-geographic.js +245 -0
- package/site/models/one-prudential-geographic.js +55 -0
- package/site/models/one-prudential-plaza.js +72 -0
- package/site/models/one-prudential-tower.js +246 -0
- package/site/models/peoples-gas-geographic.js +250 -0
- package/site/models/railway-exchange-geographic.js +176 -0
- package/site/models/river-plaza-geographic.js +104 -0
- package/site/models/sheraton-grand-geographic.js +112 -0
- package/site/models/six-north-michigan-geographic.js +180 -0
- package/site/models/skyline-geography-data.js +607 -0
- package/site/models/skyline-geography.js +322 -0
- package/site/models/skyline-panorama.svg +3491 -0
- package/site/models/skyline-reference.svg +3090 -0
- package/site/models/swissotel-geographic.js +79 -0
- package/site/models/three-illinois-center-geographic.js +86 -0
- package/site/models/trump-geographic.js +51 -0
- package/site/models/trump-international-tower.js +84 -0
- package/site/models/trump-tower.js +229 -0
- package/site/models/two-illinois-center-geographic.js +85 -0
- package/site/models/two-prudential-geographic.js +47 -0
- package/site/models/two-prudential-plaza.js +55 -0
- package/site/models/two-prudential-tower.js +441 -0
- package/site/models/university-club-geographic.js +217 -0
- package/site/models/willoughby-tower-geographic.js +195 -0
- package/site/models/window-illumination.js +64 -0
- package/site/skyline-3d.html +92 -0
- package/site/skyline-3d.js +333 -0
- package/site/skyline-animated.svg +18795 -0
- package/site/skyline-comparison.js +97 -0
- package/site/skyline-original-fit.svg +18312 -0
- package/site/skyline-scene.js +86 -0
- package/site/skyline-study.html +83 -0
- package/site/skyline-study.js +109 -0
- package/site/skyline-webgl.html +667 -0
- package/site/stars.svg +176 -0
- package/site/study-loader.js +20 -0
- package/site/study-types.js +1 -0
- package/site/study-viewer.js +605 -0
- package/site/study.css +204 -0
- package/site/vendor/THREE-LICENSE.txt +21 -0
- package/site/vendor/three-r186.js +4228 -0
|
@@ -0,0 +1,503 @@
|
|
|
1
|
+
# Geographic skyline comparison
|
|
2
|
+
|
|
3
|
+
`skyline-study.html` has two layouts: the original drawing fit and a geographic
|
|
4
|
+
study of the same eight buildings, plus 330 North Wabash, the Blue Cross and Blue
|
|
5
|
+
Shield Tower, 340 on the Park, The Buckingham, Millennium Park Plaza, Willoughby Tower,
|
|
6
|
+
Six North Michigan, the Michigan Boulevard Building, 180 North Michigan Avenue, the
|
|
7
|
+
University Club of Chicago, the Monroe Building, the MacLean Center, the Lake View
|
|
8
|
+
Building, the Peoples Gas Building, the Borg-Warner Building, the Railway Exchange
|
|
9
|
+
Building, the Gage Building, the Edson Keith and Theodore Ascher Buildings, the Chicago
|
|
10
|
+
Athletic Association, Two Illinois Center, River Plaza, the Hyatt Regency Chicago West
|
|
11
|
+
Tower, the Sheraton Grand Chicago Riverwalk, Three Illinois Center, and Swissôtel Chicago,
|
|
12
|
+
which only the geographic layout maps. The page
|
|
13
|
+
opens on the geographic layout; `?layout=original` opens it on the drawing fit, as the
|
|
14
|
+
browser suites and the dev scripts do. Every geographic building carries a detailed facade
|
|
15
|
+
reconstruction on its mapped outlines. The original factories,
|
|
16
|
+
placement and camera remain intact.
|
|
17
|
+
|
|
18
|
+
Ground plan and height comparison use an orthographic camera. Their shared frame, 1,050 m
|
|
19
|
+
east–west by 1,520 m north–south, is set in ground plan. There it holds the original
|
|
20
|
+
layout's platform and every mapped footprint, with about 50 m east and west where a
|
|
21
|
+
portrait phone's width binds it. North and south it runs from about 100 m past River Plaza,
|
|
22
|
+
across the river, to 127 m past the Railway Exchange at Jackson. The geography
|
|
23
|
+
suite checks that each footprint and its label stay inside the plan at desktop and phone
|
|
24
|
+
sizes. Height comparison sees the same
|
|
25
|
+
frame at an angle, and on a portrait phone it can clip the platform's south-west corner.
|
|
26
|
+
A building added farther out needs the frame moved or widened. Switching layouts
|
|
27
|
+
in those views preserves the camera position, target and zoom, including after an
|
|
28
|
+
orbit. The geographic scene is translated to align Crain's mapped footprint
|
|
29
|
+
bounding-box center with the original Crain model's center. This is a comparison
|
|
30
|
+
registration, not a claim that the original drawing is georeferenced. Other
|
|
31
|
+
buildings keep their measured positions relative to Crain. Switching layouts
|
|
32
|
+
from the skyline view, or from a perspective orbit, opens the other layout's
|
|
33
|
+
skyline view, and Reset restores each layout's skyline view.
|
|
34
|
+
|
|
35
|
+
## Skyline camera
|
|
36
|
+
|
|
37
|
+
The drawing traces a panorama photographed across the harbor from the lakefront.
|
|
38
|
+
The geographic skyline view recovers that photograph's camera rather than
|
|
39
|
+
reusing the original layout's fitted one, which describes the drawing's own
|
|
40
|
+
geometry, not a place. The mapped buildings stay where they are mapped; only
|
|
41
|
+
the camera is fitted.
|
|
42
|
+
|
|
43
|
+
`scripts/fit-geographic-camera.ts` solves the study's orbit camera, aimed at the
|
|
44
|
+
centre of the reference excerpt's frame, against the 26 correspondences in
|
|
45
|
+
`geographicLandmarks` in `tests/skyline-landmarks.ts`. These pair mapped spire
|
|
46
|
+
tips, eaves, roof corners, and Crain's peaks, shoulders, foot and step with
|
|
47
|
+
their drawn points. The eye's height is held at 2 m above the street datum. The
|
|
48
|
+
drawing barely constrains it: a camera hovering about 100 m over the harbor on a
|
|
49
|
+
shorter lens fits the traced heights slightly better, but the photograph was
|
|
50
|
+
taken from the shore. Its ground position is held too, with `--eye`, for the same
|
|
51
|
+
reason: the drawing trades the eye's distance against the lens, and left free the
|
|
52
|
+
eye drifts about 70 m off the walk into the harbor for less than half a layer
|
|
53
|
+
unit. It stands 1472 m east and 1949 m south of Crain, 2.44 km away on the
|
|
54
|
+
lakefront walk about 110 m north of the Adler Planetarium's centre, where an
|
|
55
|
+
earlier free solve put it. The camera's azimuth is 36.12° and it looks up 4.02°,
|
|
56
|
+
with the frame spanning a 10.53° vertical field of view.
|
|
57
|
+
|
|
58
|
+
The fit's RMS error is 30 layer units, about 0.7% of the frame's 4430-unit
|
|
59
|
+
width. Horizontal errors stay within 49 units; the worst landmark, Kemper's west
|
|
60
|
+
roof corner, lies 62 units off.
|
|
61
|
+
|
|
62
|
+
Three sets of landmarks follow the photograph rather than a published or mapped
|
|
63
|
+
figure, and one follows the photograph in naming a different building:
|
|
64
|
+
|
|
65
|
+
- **One Prudential.** Its roof corners stand at the photographed 169.5 m, and its
|
|
66
|
+
tubular mast's top at 259.4 m, where the drawing stops the mast. The slim WGN antenna
|
|
67
|
+
above it, to the 278 m tip, is lost against Trump Tower in the photograph.
|
|
68
|
+
- **Trump.** Its spire's tip stands where the photograph shows it, 4 m west of the mapped
|
|
69
|
+
spire part.
|
|
70
|
+
- **Two Prudential.** Its eaves are the photographed core's corners, at 229.3 m and 8 to
|
|
71
|
+
10 m inside the mapped north and south walls, and its pyramid's apex stands at the
|
|
72
|
+
photographed 280.2 m; see the [Two Prudential reference audit](two-prudential-reference.md).
|
|
73
|
+
The mapped outline's corners at an inferred 240 m eave had been the fit's worst
|
|
74
|
+
landmarks, drawn about 100 units low.
|
|
75
|
+
- **330 North Wabash.** The tower the drawing labels Michigan Plaza South is 330 North
|
|
76
|
+
Wabash. Its mapped roof corners land on the drawn ones, and One Prudential covers its
|
|
77
|
+
east face where the drawing does. The mapped Michigan Plaza South stands 790–930 units
|
|
78
|
+
right of the drawn tower, behind One Prudential; see the
|
|
79
|
+
[330 North Wabash audit](north-wabash-reference.md).
|
|
80
|
+
|
|
81
|
+
With those in place of the published 183.2 m penthouse top, the 278 m tip, the mapped
|
|
82
|
+
spire, and Two Prudential's outline at its inferred eave and 277 m peak, and with 330 North
|
|
83
|
+
Wabash's roof added, the RMS fell from 67 units to 30. The eye moved about 150 m
|
|
84
|
+
north-west, from 45 m off the planetarium's centre to the walk.
|
|
85
|
+
|
|
86
|
+
The view frames the panorama, `src/models/skyline-panorama.svg`: every building the
|
|
87
|
+
drawing shows, from the Railway Exchange Building on the left to the towers
|
|
88
|
+
around The Buckingham on the right. Its frame is the reference excerpt's,
|
|
89
|
+
widened about the same centre to x −1400 to 7978.5 in layer units, 2.65 times
|
|
90
|
+
as wide as it is tall. The camera's eye, aim and lens are the excerpt's, so
|
|
91
|
+
every landmark lands where it did; only the frame's width changes. The page
|
|
92
|
+
stacks the scene over the drawing, each the page's full width and the viewport's
|
|
93
|
+
height, so both contain their frame at the same scale. The drawing switches to
|
|
94
|
+
the panorama with the geographic layout and back to the excerpt with the
|
|
95
|
+
original one.
|
|
96
|
+
|
|
97
|
+
The skyline viewer's full-screen 3D mode, `skyline-3d.html`, uses the same eye,
|
|
98
|
+
aim and pivot with a different frame: `skyline-animated.svg`'s viewBox, which is
|
|
99
|
+
x −1105.59 to 7395.51 and y 87.26 to 2869.30 in layer units once its
|
|
100
|
+
`skyline-position` translate is undone. It holds that frame centred and on the
|
|
101
|
+
canvas's bottom edge, as the viewer holds the SVG on the window's, through a lens
|
|
102
|
+
shift off the panorama's centre, so the mapped buildings stand on their drawn
|
|
103
|
+
places in the viewer too. The canvas ends at the page's docked control bar, so
|
|
104
|
+
the frame stands on the bar. While the canvas is at most 8501 / 2782 as wide as
|
|
105
|
+
it is tall, its width binds the frame, as the window's then binds the drawing's,
|
|
106
|
+
and the frame sits the bar's height above the drawing's. A wider canvas binds
|
|
107
|
+
the frame on its height, which the bar shortens, so the frame is also a little
|
|
108
|
+
smaller than the drawing's.
|
|
109
|
+
`tests/skyline-3d.test.ts` checks the same landmarks there.
|
|
110
|
+
|
|
111
|
+
The view keeps its eye fixed at every viewport. Its field of view, not its
|
|
112
|
+
distance, changes to contain the frame, so each mapped point lands on the same
|
|
113
|
+
drawn spot at every layout. Other perspective views keep the study's 6° lens.
|
|
114
|
+
`tests/skyline-geography.test.ts` checks that each landmark lies on its mapped
|
|
115
|
+
model, and the eye's position. It also checks each landmark's error, the RMS,
|
|
116
|
+
and that the placement is identical across the skyline test's five layouts and
|
|
117
|
+
a wider sixth, 1600×700, whose canvas fits the frame to its height.
|
|
118
|
+
|
|
119
|
+
## Coordinates and footprints
|
|
120
|
+
|
|
121
|
+
`src/models/skyline-geography-data.ts` contains a local extract of
|
|
122
|
+
[OpenStreetMap](https://www.openstreetmap.org/copyright), retrieved September 17,
|
|
123
|
+
2026 through the [map API](https://api.openstreetmap.org/api/0.6/map?bbox=-87.628,41.882,-87.620,41.891).
|
|
124
|
+
330 North Wabash's outline was added on September 27, 2026, from a
|
|
125
|
+
[wider request](https://api.openstreetmap.org/api/0.6/map?bbox=-87.6300,41.8820,-87.6180,41.8920),
|
|
126
|
+
and the Blue Cross and Blue Shield Tower's outline and parts on September 28, 2026,
|
|
127
|
+
from [another](https://api.openstreetmap.org/api/0.6/map?bbox=-87.6212,41.8845,-87.6180,41.8862),
|
|
128
|
+
as were 340 on the Park's and The Buckingham's from [a third](https://api.openstreetmap.org/api/0.6/map?bbox=-87.6198,41.8842,-87.6168,41.8862),
|
|
129
|
+
and Millennium Park Plaza's, Willoughby Tower's, Six North Michigan's, the Michigan Boulevard Building's, 180 North Michigan Avenue's, the University Club's, the Monroe Building's, the MacLean Center's, the Lake View Building's, the Peoples Gas Building's, the Borg-Warner Building's and the Railway Exchange Building's from [a fourth](https://api.openstreetmap.org/api/0.6/map?bbox=-87.6320,41.8760,-87.6150,41.8920).
|
|
130
|
+
The Gage, Edson Keith and Theodore Ascher Buildings' outlines, the Chicago Athletic
|
|
131
|
+
Association's, Two Illinois Center's, River Plaza's with its parts, and the Hyatt Regency West
|
|
132
|
+
Tower's part were added on September 29, 2026, from the same request, and the Sheraton Grand
|
|
133
|
+
Chicago Riverwalk's tower and corner parts the same day, from
|
|
134
|
+
[a fifth](https://api.openstreetmap.org/api/0.6/map?bbox=-87.6250,41.8860,-87.6050,41.8980),
|
|
135
|
+
and Three Illinois Center's outline and the Swissôtel's tower part the same day, from the
|
|
136
|
+
fourth.
|
|
137
|
+
It includes the selected building outlines and parts. The streets come from a separate
|
|
138
|
+
extract retrieved on September 30, 2026 through the
|
|
139
|
+
[Overpass API](https://overpass-api.de/api/interpreter?data=%5Bout%3Ajson%5D%3Bway%5B%22highway%22%5D%2841.8765%2C-87.6310%2C41.8916%2C-87.6158%29%3Bout%20meta%20geom%3B),
|
|
140
|
+
every `highway` way over the full-screen 3D skyline's platform: the roads and their links,
|
|
141
|
+
and the named service ways other than driveways and parking aisles, on the upper or surface
|
|
142
|
+
level, leaving out tunnels, negative layers and ways named Lower. Each keeps its class, lane
|
|
143
|
+
count and direction and only the nodes that reach the platform. The 3D skyline draws each
|
|
144
|
+
as a roadway 3.3 m to a lane about its centreline, with the class's usual lanes where none
|
|
145
|
+
are mapped (a named service way is one 5 m lane), cut at the platform's edges; divided
|
|
146
|
+
avenues such as Michigan are two one-way ways, so they show as two carriageways. These are
|
|
147
|
+
lane widths, not surveyed curbs. The skyline study draws the same ways as centerlines inside
|
|
148
|
+
its 100 m grid. Each record retains its OSM way ID, version and WGS84
|
|
149
|
+
longitude/latitude vertices. The source XML also includes ways crossing the
|
|
150
|
+
request bounds. Only selected features are retained; contact and unrelated tags
|
|
151
|
+
are excluded. The extract is © OpenStreetMap contributors, under the
|
|
152
|
+
[Open Database License](https://opendatacommons.org/licenses/odbl/1-0/).
|
|
153
|
+
|
|
154
|
+
Coordinates are projected to a local tangent plane centered at
|
|
155
|
+
**41.88482645° N, 87.62497155° W**, the center of Crain's mapped bounding box.
|
|
156
|
+
`projectGround` uses WGS84's prime-vertical and meridional radii at that latitude;
|
|
157
|
+
longitude deltas include the cosine-of-latitude factor. Public coordinates are
|
|
158
|
+
east/north meters. Three.js positions are east/up/south, so ground north becomes
|
|
159
|
+
negative z. Over this approximately 1 km area, linearization is sub-meter; map
|
|
160
|
+
tracing and the interpretation of podium boundaries dominate the uncertainty.
|
|
161
|
+
Street elevation and terrain are not modeled: all buildings share a zero datum.
|
|
162
|
+
|
|
163
|
+
The comparison table reports bounding extents along east and north, **not** the
|
|
164
|
+
lengths of rotated facades. Geographic dimensions include the mapped ground
|
|
165
|
+
outline and podium. Original ground extents come from vertices at ground level,
|
|
166
|
+
after each model's original rotation and scaling. Coordinates represent the
|
|
167
|
+
mapped outline's bounding-box center, which need not coincide with the center
|
|
168
|
+
of its tower. The cyan ground outlines show that distinction.
|
|
169
|
+
|
|
170
|
+
| Building | Ground outline | Main tower/parts |
|
|
171
|
+
| --- | --- | --- |
|
|
172
|
+
| Heritage | [147397547](https://www.openstreetmap.org/way/147397547) | 686199648, 686199649, 686199650 |
|
|
173
|
+
| Kemper | [64389514](https://www.openstreetmap.org/way/64389514) | 685494066, 685494067 |
|
|
174
|
+
| Crain | [210671717](https://www.openstreetmap.org/way/210671717) | 284816227, 284816228, 284816229 |
|
|
175
|
+
| Michigan Plaza South | [127107024](https://www.openstreetmap.org/way/127107024) | Outline with detailed grid |
|
|
176
|
+
| 330 North Wabash | [64596068](https://www.openstreetmap.org/way/64596068) | Outline with detailed curtain wall; not in the original layout |
|
|
177
|
+
| Trump | [64594680](https://www.openstreetmap.org/way/64594680) | Podium plus 188338549, 188338550, 188338548, 188338859, 188356529, 284773992, 284773991 |
|
|
178
|
+
| One Prudential | [127107034](https://www.openstreetmap.org/way/127107034) | 685493609, 685493610, 685493612, 685493614 |
|
|
179
|
+
| Two Prudential | [64388666](https://www.openstreetmap.org/way/64388666) | Outline, with the core, tiers and crown from the photograph |
|
|
180
|
+
| Aon | [64388609](https://www.openstreetmap.org/way/64388609) | Shaft plus rooftop part 284775635 and inferred antenna |
|
|
181
|
+
| Blue Cross | [95486960](https://www.openstreetmap.org/way/95486960) | 284779637, 284779635; not in the original layout |
|
|
182
|
+
| 340 on the Park | [95486949](https://www.openstreetmap.org/way/95486949) | 284789056, 284789058; not in the original layout |
|
|
183
|
+
| The Buckingham | [95486940](https://www.openstreetmap.org/way/95486940) | Outline plus rooftop part 284790189; not in the original layout |
|
|
184
|
+
| Millennium Park Plaza | [127107026](https://www.openstreetmap.org/way/127107026) | Outline with detailed walls; not in the original layout |
|
|
185
|
+
| Willoughby Tower | [124873939](https://www.openstreetmap.org/way/124873939) | Outline, with the shaft, shoulder and crown from the drawing and photographs; not in the original layout |
|
|
186
|
+
| Six North Michigan | [126982631](https://www.openstreetmap.org/way/126982631) | Outline, with the tower and levels from the drawing; not in the original layout |
|
|
187
|
+
| Michigan Boulevard Building | [126982630](https://www.openstreetmap.org/way/126982630) | Outline, with the levels from the drawing; not in the original layout |
|
|
188
|
+
| 180 North Michigan Avenue | [210671714](https://www.openstreetmap.org/way/210671714) | Outline, with the height and levels from the drawing; not in the original layout |
|
|
189
|
+
| University Club of Chicago | [126982632](https://www.openstreetmap.org/way/126982632) | Outline, with the upper floor, roof and levels from the drawing; not in the original layout |
|
|
190
|
+
| Monroe Building | [145498713](https://www.openstreetmap.org/way/145498713) | Outline, with the roof and levels from the drawing; not in the original layout |
|
|
191
|
+
| MacLean Center | [145498712](https://www.openstreetmap.org/way/145498712) | Outline, with the levels from the drawing; not in the original layout |
|
|
192
|
+
| Lake View Building | [145498711](https://www.openstreetmap.org/way/145498711) | Outline, with the levels from the drawing; not in the original layout |
|
|
193
|
+
| Peoples Gas Building | [145498710](https://www.openstreetmap.org/way/145498710) | 1179833660, 1179833658, 1179833661, 1179833659, 1179842408, with the levels from the drawing; not in the original layout |
|
|
194
|
+
| Borg-Warner Building | [124873918](https://www.openstreetmap.org/way/124873918) | Outline, with the levels and rooftop from the drawing; not in the original layout |
|
|
195
|
+
| Railway Exchange Building | [124873931](https://www.openstreetmap.org/way/124873931) | Outline, with the levels from the drawing and the roof from the photograph; not in the original layout |
|
|
196
|
+
| Gage Building | [124865450](https://www.openstreetmap.org/way/124865450) | Outline, with the levels from the drawing; not in the original layout |
|
|
197
|
+
| Edson Keith Building | [126982636](https://www.openstreetmap.org/way/126982636) | Outline, with the levels from the drawing; not in the original layout |
|
|
198
|
+
| Theodore Ascher Building | [126982639](https://www.openstreetmap.org/way/126982639) | Outline, with the levels from the drawing; not in the original layout |
|
|
199
|
+
| Chicago Athletic Association | [147476152](https://www.openstreetmap.org/way/147476152) | Outline, with the levels from the Historic American Buildings Survey; not in the original layout |
|
|
200
|
+
| Two Illinois Center | [236770799](https://www.openstreetmap.org/way/236770799) | Outline, with the floor pitch from the photograph; not in the original layout |
|
|
201
|
+
| River Plaza | [285867424](https://www.openstreetmap.org/way/285867424) | 68796725, 68796733, 285867425; not in the original layout |
|
|
202
|
+
| Hyatt Regency West Tower | [235920252](https://www.openstreetmap.org/way/235920252) | The tower's part of the hotel's outline, 235920251; not in the original layout |
|
|
203
|
+
| Sheraton Grand | [592122464](https://www.openstreetmap.org/way/592122464) | The tower's part of the complex's outline, 188171430, and the corner's round tower, 1269924307; not in the original layout |
|
|
204
|
+
| Three Illinois Center | [95486958](https://www.openstreetmap.org/way/95486958) | Outline; not in the original layout |
|
|
205
|
+
| Swissôtel | [641288601](https://www.openstreetmap.org/way/641288601) | The tower's part of the hotel's outline, 95486966; not in the original layout |
|
|
206
|
+
|
|
207
|
+
For an audit, retrieve `https://api.openstreetmap.org/api/0.6/way/ID/VERSION`
|
|
208
|
+
using the retained ID/version. That gives the historical way's node references;
|
|
209
|
+
historical node coordinates require their history at the way's edit time. The
|
|
210
|
+
stored coordinate snapshot is the source of truth for this version of the study.
|
|
211
|
+
Refresh deliberately from current way/node data and recheck parts and identity;
|
|
212
|
+
do not automatically import every nearby building or substitute address points
|
|
213
|
+
for outlines. No runtime requests to OSM, map tiles or height services are made.
|
|
214
|
+
|
|
215
|
+
## Heights and limits
|
|
216
|
+
|
|
217
|
+
| Building | Architectural height | Tip | Source |
|
|
218
|
+
| --- | ---: | ---: | --- |
|
|
219
|
+
| Heritage | 192.4 m | 192.4 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/the-heritage-at-millennium-park/1897) |
|
|
220
|
+
| Kemper | 159 m | 159 m | [OSM height tag](https://www.openstreetmap.org/way/64389514) |
|
|
221
|
+
| Crain | 177.4 m | 177.4 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/150-north-michigan-avenue/2441) |
|
|
222
|
+
| Michigan Plaza South | 168.6 m | 168.6 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/michigan-plaza-south/2825) |
|
|
223
|
+
| 330 North Wabash | 211.84 m | 211.84 m | [OSM height tag](https://www.openstreetmap.org/way/64596068), the published 695 ft |
|
|
224
|
+
| Trump | 423.2 m | 423.2 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/trump-international-hotel-tower/203) |
|
|
225
|
+
| One Prudential | 183.2 m | 278 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/one-prudential-plaza/2190) |
|
|
226
|
+
| Two Prudential | 303.3 m | 303.3 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/two-prudential-plaza/489) |
|
|
227
|
+
| Aon | 346.3 m | 362.5 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/aon-center/339) |
|
|
228
|
+
| Blue Cross | 226.7 m | 226.7 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/blue-cross-blue-shield-tower/1160) |
|
|
229
|
+
| 340 on the Park | 204.9 m | 204.9 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/340-on-the-park/1583) |
|
|
230
|
+
| The Buckingham | 121.9 m | 121.9 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/buckingham-plaza/10315) |
|
|
231
|
+
| Millennium Park Plaza | 121.9 m | 121.9 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/millennium-park-plaza/10316) |
|
|
232
|
+
| Willoughby Tower | 133.5 m | 133.5 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/willoughby-tower/9854) |
|
|
233
|
+
| Six North Michigan | 86 m | 86 m | [Chicagology](https://chicagology.com/goldenage/goldenage015/) |
|
|
234
|
+
| Michigan Boulevard Building | 82 m | 83.3 m | [Emporis, archived](https://web.archive.org/web/20070216134331/http://www.emporis.com/en/wm/bu/?id=michiganboulevardbuilding-chicago-il-usa) |
|
|
235
|
+
| 180 North Michigan Avenue | 86.3 m, drawing | 86.3 m | None published; storeys from [Marc Realty](https://marcrealty.com/180-north-michigan-office-space-chicago/) |
|
|
236
|
+
| University Club of Chicago | 67.7 m | 69.75 m | [OSM height tag](https://www.openstreetmap.org/way/126982632) |
|
|
237
|
+
| Monroe Building | 69 m | 69 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/monroe-building/22557) |
|
|
238
|
+
| MacLean Center | 77.4 m | 77.4 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/maclean-center/26975) |
|
|
239
|
+
| Lake View Building | 73.2 m | 73.2 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/lake-view-building/26976) |
|
|
240
|
+
| Peoples Gas Building | 82.9 m | 82.9 m | [City of Chicago](https://www.chicago.gov/content/dam/city/depts/zlup/Historic_Preservation/Publications/Michigan_Blvd_HD_guidelines_04FEB2016.pdf) |
|
|
241
|
+
| Borg-Warner Building | 83.5 m | 83.5 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/borg-warner-building/18617) |
|
|
242
|
+
| Railway Exchange Building | 78.9 m | 78.9 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/santa-fe-building/9587) |
|
|
243
|
+
| Gage Building | 46.94 m | 47.74 m | [City of Chicago](https://www.chicago.gov/content/dam/city/depts/zlup/Historic_Preservation/Publications/Michigan_Blvd_HD_guidelines_04FEB2016.pdf) |
|
|
244
|
+
| Edson Keith Building | 30.78 m | 30.78 m | [HABS IL-1065](https://tile.loc.gov/storage-services/master/pnp/habshaer/il/il0000/il0056/data/il0056data.pdf) |
|
|
245
|
+
| Theodore Ascher Building | 30.78 m | 30.78 m | [HABS IL-1065](https://tile.loc.gov/storage-services/master/pnp/habshaer/il/il0000/il0056/data/il0056data.pdf), the Keith's height |
|
|
246
|
+
| Chicago Athletic Association | 45.52 m | 45.52 m | [HABS IL-1226](https://tile.loc.gov/storage-services/master/pnp/habshaer/il/il0900/il0935/sheet/00004a.tif), measured |
|
|
247
|
+
| Two Illinois Center | 114.3 m | 114.3 m | [Skyscraper Center](https://www.skyscrapercenter.com/chicago/two-illinois-center/11095) |
|
|
248
|
+
| River Plaza | 159.7 m | 159.7 m | [Skyscraper Center](https://www.skyscrapercenter.com/chicago/river-plaza/3383) |
|
|
249
|
+
| Hyatt Regency West Tower | 111.3 m | 111.3 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/hyatt-regency-chicago-west-tower/13132) |
|
|
250
|
+
| Sheraton Grand | 112.3 m | 112.3 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/sheraton-chicago-hotel-towers/10020); its 112.8 m tip is not modelled |
|
|
251
|
+
| Three Illinois Center | 106.7 m | 106.7 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/three-illinois-center/13913) |
|
|
252
|
+
| Swissôtel | 139.3 m | 139.3 m | [Skyscraper Center](https://www.skyscrapercenter.com/building/swissotel-chicago/4362) |
|
|
253
|
+
|
|
254
|
+
Architectural heights include architectural spires and exclude antennas. 180 North
|
|
255
|
+
Michigan Avenue has none published, so its height is read on the drawing, and the page's
|
|
256
|
+
dimension table says so. Where published heights disagree, the layout takes the one
|
|
257
|
+
nearest the drawing's reading. So the Monroe Building, the MacLean Center and the Lake View
|
|
258
|
+
Building take the Skyscraper Center's heights over the lower ones in the City's
|
|
259
|
+
[guide to the Historic Michigan Boulevard District](https://www.chicago.gov/content/dam/city/depts/zlup/Historic_Preservation/Publications/Michigan_Blvd_HD_guidelines_04FEB2016.pdf),
|
|
260
|
+
and the Peoples Gas Building takes the City's 272 ft over the Skyscraper Center's 92 m.
|
|
261
|
+
The Borg-Warner Building's roof and penthouse take the City's 240 and 258 ft, and the block
|
|
262
|
+
behind the penthouse the Skyscraper Center's 83.5 m. The Railway Exchange Building's cornice
|
|
263
|
+
takes the City's 235 ft, and its roof's top the Skyscraper Center's 259 ft. The Gage
|
|
264
|
+
Building's parapet takes the City's 154 ft over Emporis's estimated 139.77 ft. The Edson Keith
|
|
265
|
+
and Theodore Ascher Buildings' take the HABS record's 101 ft for the Keith over the City's
|
|
266
|
+
100 ft, since the Ascher's seventh storey made it the Keith's height. Their drawn fronts are
|
|
267
|
+
scaled to meet them. The
|
|
268
|
+
table's before/after comparison uses the highest actual rendered vertex, so One
|
|
269
|
+
Prudential's antenna is not compared to its roof. Aon's original copy is the real
|
|
270
|
+
tower from the drawing's 30.6 m datum up at 1.329 times its size, so its antenna
|
|
271
|
+
tip stands 441.1 m above the platform; the geographic model has a 346.3 m
|
|
272
|
+
architectural top and a 362.5 m antenna tip. Both values are shown so the
|
|
273
|
+
comparison does not imply a 362.5 m roof. Published values were checked at the
|
|
274
|
+
time of the extract. OSM's rounded or conflicting overall heights are superseded
|
|
275
|
+
by the cited records; Kemper retains OSM's 159 m value.
|
|
276
|
+
|
|
277
|
+
Intermediate parts have less certainty than the overall height:
|
|
278
|
+
|
|
279
|
+
- Heritage now uses the city's design elevations for its 32.8 m podium terrace,
|
|
280
|
+
89.5 m lower terrace and 181.2 m main roof, with a separate crown reaching the
|
|
281
|
+
published 192.4 m top. Facade details and intermediate floor spacing remain
|
|
282
|
+
approximate; see the [Heritage reference audit](heritage-geographic-reference.md).
|
|
283
|
+
Its materials describe the facade, rather than encoding height confidence.
|
|
284
|
+
- Kemper's two-floor podium keeps its 7.8 m estimate using 159/41, and the
|
|
285
|
+
tower now carries its marble shell, window bays, mullions, dark crown band
|
|
286
|
+
with light fins, and projecting cap at meter scale; see the
|
|
287
|
+
[Kemper reference audit](kemper-geographic-reference.md).
|
|
288
|
+
- One Prudential's mapped tower part stands between its ten- and three-level
|
|
289
|
+
wing parts, which the map gives no heights. The east wing's 56.4 m roof is
|
|
290
|
+
measured on the photograph, and the west wing, which the photograph cannot
|
|
291
|
+
see, keeps its 13.4 m estimate at 183.2/41 a level. The tower's main roof is
|
|
292
|
+
the photographed 169.5 m, under the 41st floor's observatory band; the
|
|
293
|
+
published 183.2 m is its sign penthouse's top, and the WGN mast reaches the
|
|
294
|
+
278 m tip at the mapped antenna. Its limestone piers, windows, and wing ribs
|
|
295
|
+
follow the photographed 2.35 m bay and 3.93 m floors; see the
|
|
296
|
+
[One Prudential reference audit](one-prudential-reference.md).
|
|
297
|
+
- Trump's mapped podium and setbacks keep their OSM part heights of 60, 120 and
|
|
298
|
+
200 m. Above them the photograph, measured down from the published 423.2 m tip,
|
|
299
|
+
puts the main roof at 354.4 m, stepping down to 347.3 m north of the east
|
|
300
|
+
face's notch, and the crown at 364.9 m. The map's 345 and 357 m run about ten
|
|
301
|
+
metres low. The spire's joints are the photographed 377.4 and 402.2 m, and it
|
|
302
|
+
stands where the photograph shows it on the crown. Every tier wears the
|
|
303
|
+
stainless curtain wall on its 6 ft units; see the
|
|
304
|
+
[Trump reference audit](trump-reference.md).
|
|
305
|
+
- Crain's two sloping roof parts keep OSM's downhill bearing of 133°, but not
|
|
306
|
+
its roof tags, which put the two peaks 5 m apart and fall 75 and 73 m. The
|
|
307
|
+
photograph shows both peaks at the published 177.4 m and both roofs falling
|
|
308
|
+
1.225 m per metre, about 51°. Those planes put the north-east half's step about
|
|
309
|
+
6.9 m above the south-west half's foot, where the drawing shows 7.3 m. The
|
|
310
|
+
wedge between them is the slot's 152.5 m floor. The halves carry the banded
|
|
311
|
+
curtain wall, glazed roofs with a lit outline, and the notches at both ends of
|
|
312
|
+
the split; see the [Crain reference audit](crain-reference.md).
|
|
313
|
+
- Michigan Plaza South's mapped outline now carries its 44-story curtain-wall
|
|
314
|
+
grid with a roof parapet at the published 168.6 m top; see the
|
|
315
|
+
[Michigan Plaza South reference audit](michigan-plaza-south-geographic-reference.md).
|
|
316
|
+
From the photograph's viewpoint it stands behind One Prudential.
|
|
317
|
+
- 330 North Wabash, which the drawing labels Michigan Plaza South, carries Mies van der
|
|
318
|
+
Rohe's bronze curtain wall on its 5 ft module and 12 ft 6 in floors, its lobby on
|
|
319
|
+
the 25 ft plaza, and its louvered plant floors, to the mapped 211.84 m; see the
|
|
320
|
+
[330 North Wabash reference audit](north-wabash-reference.md). The original layout
|
|
321
|
+
has no model of it apart from the drawn one it calls Michigan Plaza South, so the
|
|
322
|
+
comparison table reports its original extents as not modeled.
|
|
323
|
+
- Two Prudential is the tower as built, from the same generator as its original
|
|
324
|
+
copy. The lobby fills the mapped outline, and the photographed 40.8 × 37.5 m
|
|
325
|
+
limestone core stands on its area centroid, square to its south wall. Each
|
|
326
|
+
face's gable steps a floor a bay from 229.3 m corners to a pointed glass strip at
|
|
327
|
+
256 m, and a stepped pyramid turned 45° to the plan rises from those points to
|
|
328
|
+
280.2 m, under the spire to the published 303.3 m. A broad rib runs up each ridge
|
|
329
|
+
from its strip's head, and the steps end on its edges in straight lines to the apex.
|
|
330
|
+
Paired gabled tiers fill the mapped depth north and south, each head on the line of
|
|
331
|
+
its steps; see the [Two Prudential reference audit](two-prudential-reference.md).
|
|
332
|
+
- Aon's mapped shaft keeps its 340 m top and its rooftop enclosure the
|
|
333
|
+
346.3 m part top. The tube carries granite V-shaped columns enclosing fifteen
|
|
334
|
+
bays per mapped face, with spacing fitted to the trace and glass floor by floor on the
|
|
335
|
+
photograph's 3.87 m pitch, which runs on over the mechanical floors to a
|
|
336
|
+
granite cap. Its notched corners are solid stone, and the inferred antenna
|
|
337
|
+
reaches the published 362.5 m tip; see the
|
|
338
|
+
[Aon reference audit](aon-reference.md).
|
|
339
|
+
- The Blue Cross and Blue Shield Tower stands right of Aon, outside the original
|
|
340
|
+
layout's frame, so that layout has no model of it and the comparison table
|
|
341
|
+
reports its original extents as not modeled. Its mapped block stands forward
|
|
342
|
+
of end bays that open through at the middle of three mechanical bands, where
|
|
343
|
+
the 1997 tower ended, and its emblem screen rises to the published 226.7 m;
|
|
344
|
+
see the [Blue Cross reference audit](blue-cross-reference.md).
|
|
345
|
+
- 340 on the Park stands right of the Blue Cross and Blue Shield Tower, also outside
|
|
346
|
+
the original layout's frame. Its mapped tower has a straight south face, a diagonal
|
|
347
|
+
south-east face and a north face curved for The Buckingham's views. The south face
|
|
348
|
+
carries a white concrete frame: a beam every fifth floor, measured on the drawing
|
|
349
|
+
down from the published 204.9 m top, balcony ladders, the winter garden's tall bay
|
|
350
|
+
and a parapet band. The corner block's roof is measured on a photograph at 51.7 m,
|
|
351
|
+
over the map's 40 m; see the [340 on the Park reference audit](340-on-the-park-reference.md).
|
|
352
|
+
- The Buckingham stands right of 340 on the Park, where the mapped outline projects onto
|
|
353
|
+
the drawn tower. It is a concrete frame of five bays a face with a band at every floor
|
|
354
|
+
over bronze ribbon windows, measured on the drawing down from the mapped 119 m cap.
|
|
355
|
+
The south, east and north faces' end bays stand forward of the middle, balconies stack
|
|
356
|
+
in the two notched corners, and the rooftop enclosure on its mapped part rises to the
|
|
357
|
+
published 121.9 m; see the [Buckingham reference audit](buckingham-reference.md).
|
|
358
|
+
- Millennium Park Plaza is the drawing's tower in front of Michigan Plaza, which the
|
|
359
|
+
geographic camera names; see the
|
|
360
|
+
[building audit](building-labels.md#names-from-the-geographic-camera). A 90 m concrete
|
|
361
|
+
slab stands to the published 121.9 m, with window strips in its narrow ends and punched
|
|
362
|
+
windows in its long faces. Its floor levels are estimates; see the
|
|
363
|
+
[Millennium Park Plaza reference audit](millennium-park-plaza-reference.md).
|
|
364
|
+
- Willoughby Tower stands at Michigan and Madison, left of Six North Michigan in the
|
|
365
|
+
drawing. Its limestone base fills the mapped L to the setback over the 23rd floor; a
|
|
366
|
+
shaft rises at the lot's south-east corner, with a shoulder west of it, to a crown of
|
|
367
|
+
arched windows and pinnacles at the published 133.5 m. The shaft's plan and the levels
|
|
368
|
+
are read from the drawing; see the
|
|
369
|
+
[Willoughby Tower reference audit](willoughby-tower-reference.md).
|
|
370
|
+
- Six North Michigan, the Montgomery Ward Building, stands across Madison from Willoughby
|
|
371
|
+
Tower. Its sixteen-storey block fills the mapped outline under a projecting cornice; the
|
|
372
|
+
stub of its tower, in the middle of the Michigan front, rises through it to an arched
|
|
373
|
+
stage and a panelled top stage under a cap at the published 86 m. The tower's plan and
|
|
374
|
+
the levels are read from the drawing; see the
|
|
375
|
+
[Six North Michigan reference audit](six-north-michigan-reference.md).
|
|
376
|
+
- The Michigan Boulevard Building stands at Michigan and Washington, beyond 20 North
|
|
377
|
+
Michigan. Its terracotta front of five bays rises twenty-one storeys, past a belt course
|
|
378
|
+
over the thirteenth, to an attic under a parapet at the published 82 m, raised over the
|
|
379
|
+
south bay to 83.3 m. Its brick south wall, which the drawing shows above 20 North
|
|
380
|
+
Michigan, is windowed only on its top floors. The levels are read from the drawing; see
|
|
381
|
+
the [Michigan Boulevard Building reference audit](michigan-boulevard-reference.md).
|
|
382
|
+
- 180 North Michigan Avenue, the Harvester Building, stands on the south-west corner of
|
|
383
|
+
Michigan and Lake, its Michigan front hidden behind Millennium Park Plaza. It fills the
|
|
384
|
+
mapped lot with twenty-four storeys of masonry, string courses and a top floor of arched
|
|
385
|
+
windows. No height is published: its 86.3 m parapet is read on the drawing, within a few
|
|
386
|
+
metres; see the [180 North Michigan Avenue reference audit](north-michigan-180-reference.md).
|
|
387
|
+
- The University Club of Chicago stands on the north-west corner of Michigan and Monroe,
|
|
388
|
+
partly behind the Monroe Building. Its Gothic walls carry the tall arched windows of its
|
|
389
|
+
top hall in four bays to each street front, under a band and a crenellated parapet.
|
|
390
|
+
Behind the parapet an upper floor rises to a steep roof whose gable faces Michigan, its
|
|
391
|
+
peak at OpenStreetMap's 67.7 m under a cross. The levels and the upper floor's setbacks
|
|
392
|
+
are read from the drawing; see the
|
|
393
|
+
[University Club reference audit](university-club-reference.md).
|
|
394
|
+
- The Monroe Building stands across Monroe from the University Club. Twelve storeys of
|
|
395
|
+
terracotta over two of granite rise in bays of paired windows to a cornice under a steep
|
|
396
|
+
gable roof holding two more floors, sixteen in all, its gable facing Michigan with small
|
|
397
|
+
arched windows, to the Skyscraper Center's 69 m ridge, the drawn front scaled to meet it;
|
|
398
|
+
see the [Monroe Building reference audit](monroe-reference.md).
|
|
399
|
+
- The MacLean Center, built as the Illinois Athletic Club, stands south of the Monroe
|
|
400
|
+
Building. Its narrow front's five columns of windows rise twelve storeys to the old
|
|
401
|
+
club's projecting cornice and a frieze of round windows, then six more floors from 1985,
|
|
402
|
+
arched on the top one, to a pierced parapet at the Skyscraper Center's 77.4 m, the drawn
|
|
403
|
+
front scaled to meet it; see the [MacLean Center reference audit](maclean-center-reference.md).
|
|
404
|
+
- The Lake View Building stands south of the MacLean Center. Its narrow front of three
|
|
405
|
+
windows to a floor rises seventeen storeys, arched on the sixteenth, with small attic
|
|
406
|
+
windows under a cornice band, to the Skyscraper Center's 73.2 m, the drawn front scaled
|
|
407
|
+
to meet it; see the [Lake View Building reference audit](lake-view-reference.md).
|
|
408
|
+
- The Peoples Gas Building stands south of the Lake View Building, on Adams. Its Michigan
|
|
409
|
+
and Adams fronts rise twenty storeys between wide corner piers: two behind granite
|
|
410
|
+
columns, fourteen of paired windows, three behind a colonnade, and an attic under a
|
|
411
|
+
frieze, a projecting cornice and its cresting, to the City's 272 ft. Its mapped parts
|
|
412
|
+
hold a light court that widens over the seventeenth floor; see the
|
|
413
|
+
[Peoples Gas Building reference audit](peoples-gas-reference.md).
|
|
414
|
+
- The Borg-Warner Building stands across Adams from Peoples Gas. Its curtain wall of
|
|
415
|
+
mullions and a spandrel to each floor wraps the Michigan, Adams and south fronts between
|
|
416
|
+
corner columns, some twenty-two floors at the drawn pitch, to a deep fascia at the City's
|
|
417
|
+
240 ft. On the roof stand an office penthouse at the City's 258 ft and a block behind it
|
|
418
|
+
at the Skyscraper Center's 83.5 m, both placed from the drawing; see the
|
|
419
|
+
[Borg-Warner Building reference audit](borg-warner-reference.md).
|
|
420
|
+
- The Railway Exchange Building stands at Michigan and Jackson. Its white terracotta fronts
|
|
421
|
+
rise seventeen storeys in eleven bays of paired windows, with a belt under the fourteenth
|
|
422
|
+
floor and round windows in the frieze, to a projecting cornice at the City's 235 ft. Its
|
|
423
|
+
hipped copper roof rises to a flat top at the Skyscraper Center's 259 ft, shaped from the
|
|
424
|
+
photograph; see the [Railway Exchange Building reference audit](railway-exchange-reference.md).
|
|
425
|
+
- The Gage Building stands between the University Club and Willoughby Tower, named through
|
|
426
|
+
the geographic camera. Louis Sullivan's terracotta front rises twelve storeys in three
|
|
427
|
+
bays between tall piers, each bay's window in four, five and four lights, to a parapet at
|
|
428
|
+
the City's 154 ft with cartouches over the inner piers. Its brick south wall, which the
|
|
429
|
+
drawing shows over 24 and 30 South Michigan, carries the drawn windows. The drawn front,
|
|
430
|
+
whose parapet reads 54.2 m, is scaled to meet the published height; see the
|
|
431
|
+
[Gage Building reference audit](gage-reference.md).
|
|
432
|
+
- The Edson Keith and Theodore Ascher Buildings, the Gage Group's lower two at 24 and 30 South
|
|
433
|
+
Michigan, stand between the Gage and the University Club, named through the geographic
|
|
434
|
+
camera. Red brick fronts, three bays and two, of Chicago windows rise seven storeys over
|
|
435
|
+
shopfronts to plain parapets at the HABS record's 101 ft for the Keith. The drawing
|
|
436
|
+
shows only their seventh floors, the drawn fronts scaled to meet that height; see
|
|
437
|
+
the [Edson Keith and Theodore Ascher Buildings reference audit](keith-ascher-reference.md).
|
|
438
|
+
- The Chicago Athletic Association stands between the Gage and Willoughby Tower, whose drawn
|
|
439
|
+
group paints its front. Henry Ives Cobb's Venetian Gothic front of three bays rises through
|
|
440
|
+
a great arcade over three floors to the eighth floor's traceried arcade, a carved frieze,
|
|
441
|
+
a cornice and a top storey of diaper brick pierced by nine roundels. The Historic American
|
|
442
|
+
Buildings Survey's measured drawings give its levels and the parapet's 149 ft 4 in, which
|
|
443
|
+
the drawn front, scaled to meet it, follows within about a metre. The City's 254 ft for it is
|
|
444
|
+
the annex's; see the
|
|
445
|
+
[Chicago Athletic Association reference audit](chicago-athletic-association-reference.md).
|
|
446
|
+
- Two Illinois Center and River Plaza fill the gap between Two Prudential Plaza and Aon
|
|
447
|
+
Center, which the drawing paints as one building. Two Illinois Center stands in front, a
|
|
448
|
+
dark curtain wall on a 5 ft module with its floors at the photograph's pitch and a
|
|
449
|
+
mechanical band under its roof at the published 114.3 m. River Plaza stands behind, a white
|
|
450
|
+
concrete frame of 56 storeys over a podium to OpenStreetMap's 156 m roof, with the mapped
|
|
451
|
+
box on it to the published 159.7 m, the Skyscraper Center's architectural top and tip.
|
|
452
|
+
OpenStreetMap's 166 m for the box stands over that tip. Neither is scaled to the drawing,
|
|
453
|
+
whose top lies between their roofs; see the
|
|
454
|
+
[Two Illinois Center and River Plaza reference audit](river-plaza-two-illinois-center-reference.md).
|
|
455
|
+
- The Hyatt Regency Chicago's West Tower stands between Aon Center and the Blue Cross and Blue
|
|
456
|
+
Shield Tower, where the drawn Blue Cross group paints a dark brown sliver. Its brick slab
|
|
457
|
+
carries narrow window slots on a 3.5 m module between solid corners, under a plain band, to
|
|
458
|
+
the published 111.3 m, on its mapped part of the hotel's outline; see the
|
|
459
|
+
[Hyatt Regency West Tower reference audit](hyatt-west-tower-reference.md).
|
|
460
|
+
- The Sheraton Grand Chicago Riverwalk stands across the river, right of The Buckingham, where
|
|
461
|
+
the drawing paints a lit crown. Its levels stand on the Skyscraper Center's datum, with
|
|
462
|
+
Emporis's floor-to-floor, roof and crown heights over its top floor: the arms' roof at
|
|
463
|
+
94.76 m, the corner's two floors higher at 100.1 m, and 12.2 m drums of maroon fins on the
|
|
464
|
+
three round ends, the corner's to the published 112.3 m. The Skyscraper Center's tip, 50 cm
|
|
465
|
+
higher, names no feature the photographs resolve, so the model stops at the drum's top; see
|
|
466
|
+
the [Sheraton Grand reference audit](sheraton-grand-reference.md).
|
|
467
|
+
- Three Illinois Center stands between 340 on the Park and The Buckingham from the drawing's
|
|
468
|
+
camera, in a gap no model filled. Its dark bronze curtain wall carries a floor to each
|
|
469
|
+
published 11.5 ft over a lobby of what the 29 floors leave under the published 106.7 m, and
|
|
470
|
+
its top two floors are the windowless mechanical penthouse the 2013 photograph shows. The
|
|
471
|
+
drawn tower there stands about 140 layer units higher, so the drawing's group keeps its
|
|
472
|
+
label; see the [Three Illinois Center reference audit](three-illinois-center-reference.md).
|
|
473
|
+
- Swissôtel Chicago stands behind Three Illinois Center and The Buckingham. Its triangular
|
|
474
|
+
glass tower takes the published 139.3 m over OpenStreetMap's 45 levels, a panel to each,
|
|
475
|
+
and its west corner closes the seam where those two models' corners leave sky; see the
|
|
476
|
+
[Swissôtel reference audit](swissotel-reference.md).
|
|
477
|
+
|
|
478
|
+
These are mapped massing models, not surveyed architectural models. The height
|
|
479
|
+
sources use their own street/entrance datum; translating all of them to a common
|
|
480
|
+
zero plane does not recover absolute roof elevations above sea level.
|
|
481
|
+
|
|
482
|
+
## Streets and validation
|
|
483
|
+
|
|
484
|
+
In the skyline study, grey lines are mapped street **centerlines**, with no implied road
|
|
485
|
+
or sidewalk width. Tunnels, negative OSM layers and names containing “Lower” are
|
|
486
|
+
excluded. Retained upper/surface roads are flattened to the ground; bridge
|
|
487
|
+
heights, curbs, the river and surrounding buildings are absent. The centerlines are
|
|
488
|
+
cut to the 100 m grid, which runs from 850 m south of Crain, past Jackson, to 650 m north,
|
|
489
|
+
so every mapped building stands among them. The grid and mapped footprints help inspect
|
|
490
|
+
whether the street arrangement fits. The full-screen 3D skyline draws the same ways as grey
|
|
491
|
+
roadways sized from their lanes, cut to its platform's edges 885 m south and 715 m north of
|
|
492
|
+
Crain. Checking curb clearances or Chicago's stacked streets requires additional
|
|
493
|
+
width and elevation data.
|
|
494
|
+
|
|
495
|
+
`tests/skyline-geography.test.ts`, included in `bun run check`, checks independent
|
|
496
|
+
coordinate anchors, meter scale and north direction, all thirty-four rendered ground
|
|
497
|
+
extents and top heights, mesh closure, constant orthographic scale with height,
|
|
498
|
+
camera/zoom preservation when toggling, geographic hover, restoration of the
|
|
499
|
+
original transforms and camera, local-only runtime requests, mobile overflow,
|
|
500
|
+
reduced motion and idle rendering. Existing fidelity checks still run against
|
|
501
|
+
the original layout. Top-level `src/models/*.ts` ships automatically as compiled
|
|
502
|
+
`.js`, and its `.svg` excerpts ship as-is; `skyline-comparison.ts`
|
|
503
|
+
is also explicitly included in the site's deployment allowlist.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { aonLevels, buildAonTower } from "./aon-tower.js";
|
|
2
|
+
// Aon Center on a clean version of its plan, in real meters, for the skyline study's
|
|
3
|
+
// original layout, which places this copy in skyline-study.ts. aon-tower.ts builds it, and
|
|
4
|
+
// the geographic model on the mapped outline.
|
|
5
|
+
//
|
|
6
|
+
// The plan is the published 59.15 m square. Each face's main run holds fifteen 10 ft bays,
|
|
7
|
+
// as the photograph and the drawing both count and the building's descriptions give.
|
|
8
|
+
// That leaves each corner a 6.7 m notch: a 45° chamfer, a square step, and a second
|
|
9
|
+
// chamfer, in the mapped outline's proportions. The mapped notches run about 1.5 m deeper;
|
|
10
|
+
// the photograph's bays and corner widths fit these. See docs/aon-reference.md. Units are
|
|
11
|
+
// meters; +x is east and +z is south.
|
|
12
|
+
const half = 59.15 / 2, notch = 6.715, chamfer = 1.9, step = notch - 2 * chamfer;
|
|
13
|
+
// The south-east notch, from the south face's east end to the east face's south end.
|
|
14
|
+
const southEast = [
|
|
15
|
+
[half - notch, half],
|
|
16
|
+
[half - notch + chamfer, half - chamfer],
|
|
17
|
+
[half - notch + chamfer, half - chamfer - step],
|
|
18
|
+
[half - notch + chamfer + step, half - chamfer - step],
|
|
19
|
+
[half, half - notch],
|
|
20
|
+
];
|
|
21
|
+
// Each corner turns the south-east one a quarter further round.
|
|
22
|
+
const turn = ([x, z], quarters) => (quarters === 0 ? [x, z] : turn([z, -x], quarters - 1));
|
|
23
|
+
const outline = [0, 1, 2, 3].flatMap((quarters) => southEast.map((point) => turn(point, quarters)));
|
|
24
|
+
// The rooftop enclosure, centred as the mapped part is, and the antenna at its centre.
|
|
25
|
+
const enclosure = [[-16, -16], [16, -16], [16, 16], [-16, 16]];
|
|
26
|
+
// The skyline drawing shows the tower from the photograph's treeline up, so its platform
|
|
27
|
+
// datum crosses the tower above the street: 30.6 m, fitted with the placement in
|
|
28
|
+
// skyline-study.ts, which scales, turns, and places this copy. Its y = 0 is that datum,
|
|
29
|
+
// and the drawing's top floor band is the eightieth office floor, under the mechanical ones.
|
|
30
|
+
export const aonSkylineBase = 30.6;
|
|
31
|
+
export function createAonCenterBuilding() {
|
|
32
|
+
return buildAonTower({ name: "Aon Center", id: "layer3", outline, enclosure, mast: [0, 0], base: aonSkylineBase });
|
|
33
|
+
}
|
|
34
|
+
// Features the skyline test projects against the drawing, in this copy's coordinates.
|
|
35
|
+
const at = ([x, z], real) => [x, real - aonSkylineBase, z];
|
|
36
|
+
const bays = 15, bay = (southEast[0][0] - -southEast[0][0]) / bays;
|
|
37
|
+
// The columns stand on the bay lines, the end ones drawn in to stay on their face.
|
|
38
|
+
const columnAt = (i) => Math.min(Math.max(i * bay, 0.65), bays * bay - 0.65);
|
|
39
|
+
const southColumn = (i) => [-(half - notch) + columnAt(i), half];
|
|
40
|
+
const eastColumn = (i) => [half, half - notch - columnAt(i)];
|
|
41
|
+
export const aonFeatures = {
|
|
42
|
+
// The roof edge's ends: the west face's south end, the south face's east end, and the
|
|
43
|
+
// east face's north end, at the top of the cap.
|
|
44
|
+
aonRoofWest: at(turn(southEast[0], 3), aonLevels.roof),
|
|
45
|
+
aonRoofNear: at(southEast[0], aonLevels.roof),
|
|
46
|
+
aonRoofEast: at(turn(southEast[0], 1), aonLevels.roof),
|
|
47
|
+
// A point on the south face's glass, clear of every neighbour, for hover.
|
|
48
|
+
aonFrontFacade: at([-(half - notch) + 7.5 * bay, half + 0.07], 230),
|
|
49
|
+
// The columns, halfway out to their points at mid-height: the fourteen after each face's
|
|
50
|
+
// first, which the drawing's fifteen strips on each face match one for one.
|
|
51
|
+
aonFrontPiers: Array.from({ length: 14 }, (_, i) => { const [x, z] = southColumn(i + 1); return [x, 220 - aonSkylineBase, z + 0.35]; }),
|
|
52
|
+
aonSidePiers: Array.from({ length: 14 }, (_, i) => { const [x, z] = eastColumn(i + 1); return [x + 0.35, 220 - aonSkylineBase, z]; }),
|
|
53
|
+
// The notch's two sides at mid-height: the south face's east end and the east face's
|
|
54
|
+
// south end, between which the drawing paints the corner's stone.
|
|
55
|
+
aonNotchFront: at(southEast[0], 200),
|
|
56
|
+
aonNotchEast: at(southEast[4], 200),
|
|
57
|
+
// Window centres across the south face's middle on six office floors, the drawing's
|
|
58
|
+
// eleventh, twenty-third and every twelfth band on from the top.
|
|
59
|
+
aonFloorRows: [70, 58, 46, 34, 22, 10].map((floor) => at([0, half + 0.07], aonLevels.lobbyTop + (floor - 1) * aonLevels.pitch + (aonLevels.sill + aonLevels.head) / 2)),
|
|
60
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BuildingModel, Plan } from "./building-kit.js";
|
|
2
|
+
import type { GeoBuilding } from "./skyline-geography-data.js";
|
|
3
|
+
export declare const aonGeographicLevels: Readonly<{
|
|
4
|
+
shaftTop: 340;
|
|
5
|
+
enclosureTop: 346.3;
|
|
6
|
+
tip: 362.5;
|
|
7
|
+
floors: 83;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function createAonGeographicBuilding(record: GeoBuilding, projectPlan: (coordinates: [number, number][]) => Plan, offset: [number, number]): BuildingModel;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { polygonOf } from "./building-kit.js";
|
|
2
|
+
import { aonLevels, buildAonTower } from "./aon-tower.js";
|
|
3
|
+
// Aon Center: the geographic layout's model, on the mapped outline 64388609 with its
|
|
4
|
+
// notched corners, the rooftop enclosure part 284775635, and the published heights. The
|
|
5
|
+
// tower is the shared generator in aon-tower.ts, the same one the original layout's copy
|
|
6
|
+
// uses. Each mapped face carries the source plan's fifteen window bays, distributed
|
|
7
|
+
// over its chord; the mapped notches are deeper, so this spacing is approximate. The antenna stands
|
|
8
|
+
// at the enclosure's centre, reaching the published 362.5 m tip; the map gives no antenna
|
|
9
|
+
// geometry. See docs/aon-reference.md. Units are meters; +x is east, +z is south.
|
|
10
|
+
export const aonGeographicLevels = Object.freeze({
|
|
11
|
+
shaftTop: aonLevels.roof, // OSM shaft part top
|
|
12
|
+
enclosureTop: aonLevels.enclosureTop, // OSM part 284775635
|
|
13
|
+
tip: aonLevels.tip, // published tip
|
|
14
|
+
floors: 83,
|
|
15
|
+
});
|
|
16
|
+
const h = aonGeographicLevels;
|
|
17
|
+
export function createAonGeographicBuilding(record, projectPlan, offset) {
|
|
18
|
+
const enclosurePart = record.parts.find((p) => p.way === 284775635);
|
|
19
|
+
const enclosure = polygonOf(projectPlan(enclosurePart.coordinates));
|
|
20
|
+
// The antenna at the enclosure's area centroid: its traced outline carries an extra
|
|
21
|
+
// vertex on one edge, which would pull a mean of its vertices off centre.
|
|
22
|
+
let twice = 0, cx = 0, cz = 0;
|
|
23
|
+
enclosure.forEach(([x, z], i) => {
|
|
24
|
+
const [x2, z2] = enclosure[(i + 1) % enclosure.length], cross = x * z2 - x2 * z;
|
|
25
|
+
twice += cross;
|
|
26
|
+
cx += (x + x2) * cross;
|
|
27
|
+
cz += (z + z2) * cross;
|
|
28
|
+
});
|
|
29
|
+
const mast = [cx / (3 * twice), cz / (3 * twice)];
|
|
30
|
+
const model = buildAonTower({ name: record.name, id: record.id, outline: polygonOf(projectPlan(record.footprint.coordinates)), enclosure, mast, base: 0 });
|
|
31
|
+
model.building.position.set(offset[0], 0, offset[1]);
|
|
32
|
+
model.building.userData["geography"] = record;
|
|
33
|
+
model.building.userData["geographicDetail"] = { levels: h, floors: h.floors, source: "docs/aon-reference.md" };
|
|
34
|
+
return model;
|
|
35
|
+
}
|