@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
package/site/stars.svg
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
3
|
+
width="100%" height="100%"
|
|
4
|
+
role="img" aria-labelledby="stars-title stars-description"
|
|
5
|
+
style="background:#000000;pointer-events:none">
|
|
6
|
+
<title id="stars-title">Twinkling night sky</title>
|
|
7
|
+
<desc id="stars-description">96 randomly positioned grayscale stars spread across the full viewport. Ten randomly selected stars slowly twinkle with independent timing and changing brightness patterns while the rest stay steady. Reduced motion pauses twinkling; the debug-motion fragment enables stronger brightness pulses on the same ten stars.</desc>
|
|
8
|
+
<style><![CDATA[
|
|
9
|
+
#atmosphere circle {
|
|
10
|
+
opacity: 0.5;
|
|
11
|
+
}
|
|
12
|
+
#atmosphere .twinkle {
|
|
13
|
+
animation: star-twinkle var(--twinkle-duration, 53.333s) ease-in-out var(--twinkle-delay, 0s) infinite;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@keyframes star-twinkle {
|
|
17
|
+
0%, 10%, 84%, 100% { opacity: 0.5; }
|
|
18
|
+
28% { opacity: var(--twinkle-dim, 0.45); }
|
|
19
|
+
50% { opacity: var(--twinkle-peak, 0.58); }
|
|
20
|
+
68% { opacity: var(--twinkle-afterglow, 0.5); }
|
|
21
|
+
}
|
|
22
|
+
@keyframes star-debug {
|
|
23
|
+
0%, 100% { opacity: 0.3; }
|
|
24
|
+
50% { opacity: 0.7; }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@media (prefers-reduced-motion: reduce) {
|
|
28
|
+
#atmosphere .twinkle { animation: none; }
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* An explicit debug preview may override the system motion preference. */
|
|
32
|
+
#debug-motion:target .twinkle {
|
|
33
|
+
animation: star-debug var(--twinkle-duration, 53.333s) ease-in-out var(--twinkle-delay, 0s) infinite;
|
|
34
|
+
}
|
|
35
|
+
]]></style>
|
|
36
|
+
<g id="atmosphere">
|
|
37
|
+
<g id="debug-motion">
|
|
38
|
+
<g fill="#ebebeb" class="stars-a">
|
|
39
|
+
<circle cx="22.65%" cy="16.86%" r="0.85" />
|
|
40
|
+
<circle cx="39.00%" cy="30.49%" r="0.53" />
|
|
41
|
+
<circle cx="57.23%" cy="6.03%" r="0.66" />
|
|
42
|
+
<circle cx="19.00%" cy="30.49%" r="0.53" />
|
|
43
|
+
<circle cx="48.77%" cy="30.49%" r="0.61" />
|
|
44
|
+
<circle cx="78.53%" cy="32.97%" r="0.53" />
|
|
45
|
+
<circle cx="28.37%" cy="95.40%" r="0.56" />
|
|
46
|
+
<circle cx="6.58%" cy="73.16%" r="0.59" />
|
|
47
|
+
<circle cx="32.24%" cy="90.51%" r="0.69" />
|
|
48
|
+
<circle cx="67.76%" cy="78.55%" r="0.63" />
|
|
49
|
+
<circle cx="57.98%" cy="81.71%" r="0.76" />
|
|
50
|
+
<circle cx="74.73%" cy="37.24%" r="0.69" />
|
|
51
|
+
<circle cx="15.23%" cy="79.23%" r="0.78" />
|
|
52
|
+
<circle cx="12.25%" cy="31.05%" r="0.86" />
|
|
53
|
+
<circle cx="62.12%" cy="28.94%" r="0.78" />
|
|
54
|
+
<circle cx="52.11%" cy="96.70%" r="0.76" />
|
|
55
|
+
<circle cx="10.55%" cy="15.87%" r="0.58" />
|
|
56
|
+
<circle cx="49.93%" cy="72.17%" r="0.88" />
|
|
57
|
+
<circle cx="58.03%" cy="57.12%" r="0.58" />
|
|
58
|
+
<circle cx="21.98%" cy="81.28%" r="0.63" />
|
|
59
|
+
<circle cx="1.58%" cy="77.93%" r="0.64" />
|
|
60
|
+
<circle cx="14.81%" cy="69.51%" r="0.83" />
|
|
61
|
+
<circle cx="40.24%" cy="92.43%" r="0.64" />
|
|
62
|
+
<circle cx="13.82%" cy="44.86%" r="0.53" />
|
|
63
|
+
<circle cx="7.52%" cy="43.87%" r="0.54" />
|
|
64
|
+
<circle cx="79.93%" cy="26.09%" r="0.54" />
|
|
65
|
+
<circle cx="20.44%" cy="9.68%" r="0.68" />
|
|
66
|
+
<circle cx="16.00%" cy="58.18%" r="0.85" />
|
|
67
|
+
<circle cx="74.51%" cy="2.25%" r="0.93" />
|
|
68
|
+
<circle cx="13.22%" cy="96.82%" r="0.64" />
|
|
69
|
+
<circle cx="46.80%" cy="53.16%" r="0.56" />
|
|
70
|
+
<circle cx="62.41%" cy="97.32%" r="0.90" />
|
|
71
|
+
</g>
|
|
72
|
+
<g fill="#cfcfcf" class="stars-b">
|
|
73
|
+
<circle cx="27.00%" cy="37.30%" r="0.58" />
|
|
74
|
+
<circle cx="45.24%" cy="9.74%" r="0.81" />
|
|
75
|
+
<circle cx="65.70%" cy="21.51%" r="0.58" />
|
|
76
|
+
<circle cx="30.06%" cy="21.82%" r="0.66" />
|
|
77
|
+
<circle cx="54.53%" cy="39.78%" r="0.49" />
|
|
78
|
+
<circle cx="85.58%" cy="24.30%" r="0.61" />
|
|
79
|
+
<circle cx="18.23%" cy="76.88%" r="0.69" />
|
|
80
|
+
<circle cx="82.33%" cy="29.93%" r="0.69" />
|
|
81
|
+
<circle cx="55.02%" cy="21.70%" r="0.59" />
|
|
82
|
+
<circle cx="9.84%" cy="94.53%" r="0.69" />
|
|
83
|
+
<circle cx="71.17%" cy="75.21%" r="0.59" />
|
|
84
|
+
<circle cx="71.79%" cy="22.62%" r="0.66" />
|
|
85
|
+
<circle cx="90.56%" cy="50.12%" r="0.63" />
|
|
86
|
+
<circle cx="62.27%" cy="52.85%" r="0.63" />
|
|
87
|
+
<circle cx="77.73%" cy="83.51%" r="0.69" />
|
|
88
|
+
<circle cx="78.44%" cy="47.89%" r="0.59" />
|
|
89
|
+
<circle cx="82.83%" cy="77.62%" r="0.54" />
|
|
90
|
+
<circle cx="3.69%" cy="88.28%" r="0.81" />
|
|
91
|
+
<circle cx="2.10%" cy="93.54%" r="0.88" />
|
|
92
|
+
<circle cx="39.80%" cy="21.39%" r="0.66" />
|
|
93
|
+
<circle cx="5.23%" cy="16.18%" r="0.90" />
|
|
94
|
+
<circle cx="26.22%" cy="85.67%" r="0.71" />
|
|
95
|
+
<circle cx="73.44%" cy="57.56%" r="0.88" />
|
|
96
|
+
<circle cx="45.82%" cy="76.63%" r="0.61" />
|
|
97
|
+
<circle cx="47.34%" cy="37.30%" r="0.80" />
|
|
98
|
+
<circle cx="84.55%" cy="46.90%" r="0.69" />
|
|
99
|
+
<circle cx="38.13%" cy="70.01%" r="0.69" />
|
|
100
|
+
<circle cx="47.02%" cy="23.06%" r="0.68" />
|
|
101
|
+
<circle cx="38.07%" cy="39.59%" r="0.59" />
|
|
102
|
+
<circle cx="93.36%" cy="65.73%" r="0.90" />
|
|
103
|
+
<circle cx="9.14%" cy="80.53%" r="0.54" />
|
|
104
|
+
<circle cx="3.27%" cy="60.10%" r="0.78" />
|
|
105
|
+
</g>
|
|
106
|
+
<g fill="#ffffff" class="stars-c">
|
|
107
|
+
<circle cx="32.77%" cy="12.22%" r="0.71" />
|
|
108
|
+
<circle cx="52.06%" cy="22.44%" r="0.58" />
|
|
109
|
+
<circle cx="81.00%" cy="13.77%" r="0.71" />
|
|
110
|
+
<circle cx="36.06%" cy="43.50%" r="0.53" />
|
|
111
|
+
<circle cx="63.82%" cy="10.05%" r="0.71" />
|
|
112
|
+
<circle cx="22.93%" cy="5.16%" r="0.83" />
|
|
113
|
+
<circle cx="7.22%" cy="13.83%" r="0.59" />
|
|
114
|
+
<circle cx="55.08%" cy="2.81%" r="0.83" />
|
|
115
|
+
<circle cx="19.35%" cy="50.19%" r="0.54" />
|
|
116
|
+
<circle cx="25.53%" cy="50.00%" r="0.54" />
|
|
117
|
+
<circle cx="14.88%" cy="7.76%" r="0.80" />
|
|
118
|
+
<circle cx="41.85%" cy="86.98%" r="0.63" />
|
|
119
|
+
<circle cx="43.80%" cy="88.83%" r="0.64" />
|
|
120
|
+
<circle cx="42.13%" cy="73.91%" r="0.88" />
|
|
121
|
+
<circle cx="49.00%" cy="96.45%" r="0.75" />
|
|
122
|
+
<circle cx="28.13%" cy="66.60%" r="0.71" />
|
|
123
|
+
<circle cx="75.02%" cy="77.56%" r="0.93" />
|
|
124
|
+
<circle cx="52.89%" cy="83.26%" r="0.66" />
|
|
125
|
+
<circle cx="52.24%" cy="65.48%" r="0.83" />
|
|
126
|
+
<circle cx="32.60%" cy="70.38%" r="0.91" />
|
|
127
|
+
<circle cx="16.65%" cy="12.84%" r="0.81" />
|
|
128
|
+
<circle cx="33.30%" cy="35.57%" r="0.73" />
|
|
129
|
+
<circle cx="88.49%" cy="17.30%" r="0.61" />
|
|
130
|
+
<circle cx="15.16%" cy="91.74%" r="0.78" />
|
|
131
|
+
<circle cx="92.57%" cy="32.78%" r="0.85" />
|
|
132
|
+
<circle cx="91.48%" cy="94.47%" r="0.53" />
|
|
133
|
+
<circle cx="55.15%" cy="60.65%" r="0.61" />
|
|
134
|
+
<circle cx="94.24%" cy="29.07%" r="0.88" />
|
|
135
|
+
<circle cx="12.75%" cy="75.46%" r="0.81" />
|
|
136
|
+
<circle cx="16.91%" cy="25.54%" r="0.54" />
|
|
137
|
+
<circle cx="52.66%" cy="52.17%" r="0.56" />
|
|
138
|
+
<circle cx="68.74%" cy="10.67%" r="0.88" />
|
|
139
|
+
</g>
|
|
140
|
+
</g>
|
|
141
|
+
</g>
|
|
142
|
+
<script><![CDATA[
|
|
143
|
+
const stars = [...document.querySelectorAll("#atmosphere circle")];
|
|
144
|
+
|
|
145
|
+
function randomizeTwinkle(star) {
|
|
146
|
+
star.style.setProperty("--twinkle-dim", 0.42 + Math.random() * 0.05);
|
|
147
|
+
star.style.setProperty("--twinkle-peak", 0.54 + Math.random() * 0.06);
|
|
148
|
+
star.style.setProperty("--twinkle-afterglow", 0.47 + Math.random() * 0.06);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
for (const star of stars) {
|
|
152
|
+
star.setAttribute("cx", `${1 + Math.random() * 98}%`);
|
|
153
|
+
star.setAttribute("cy", `${2 + Math.random() * 96}%`);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// Choose about 10% without replacement, once per load.
|
|
157
|
+
const twinkleCount = Math.round(stars.length * 0.1);
|
|
158
|
+
for (let i = 0; i < twinkleCount; i++) {
|
|
159
|
+
const selected = i + Math.floor(Math.random() * (stars.length - i));
|
|
160
|
+
[stars[i], stars[selected]] = [stars[selected], stars[i]];
|
|
161
|
+
const star = stars[i];
|
|
162
|
+
const duration = (60 + Math.random() * 40) / 1.5;
|
|
163
|
+
star.style.setProperty("--twinkle-duration", `${duration}s`);
|
|
164
|
+
star.style.setProperty("--twinkle-delay", `${-Math.random() * duration}s`);
|
|
165
|
+
randomizeTwinkle(star);
|
|
166
|
+
star.classList.add("twinkle");
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
document.querySelector("#atmosphere").addEventListener("animationiteration", (event) => {
|
|
170
|
+
if (event.animationName === "star-twinkle") {
|
|
171
|
+
// The cycle ends at a fixed brightness so the next pattern joins smoothly.
|
|
172
|
+
randomizeTwinkle(event.target);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
]]></script>
|
|
176
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(() => {
|
|
3
|
+
const entry = document.currentScript.dataset["study"];
|
|
4
|
+
function showStudyError(message) {
|
|
5
|
+
document.querySelector("#loading").textContent = message;
|
|
6
|
+
document.querySelectorAll("button").forEach((button) => { button.disabled = true; });
|
|
7
|
+
if (window.parent !== window)
|
|
8
|
+
window.parent.postMessage({ type: "skyline:unavailable" }, location.origin);
|
|
9
|
+
}
|
|
10
|
+
if (location.protocol === "file:") {
|
|
11
|
+
const page = location.pathname.split("/").pop();
|
|
12
|
+
showStudyError(`Start a local server with python3 -m http.server, then open http://localhost:8000/${page} to explore the 3D study.`);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
import(entry).catch((error) => {
|
|
16
|
+
console.error(error);
|
|
17
|
+
showStudyError("The 3D preview could not load. Check that WebGL 2 is enabled, then reload. You can still compare the SVG or return to the skyline.");
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
})();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|