daydreamer-json commited on
Commit
7c003ea
·
verified ·
1 Parent(s): 021c011
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +7 -1
  2. apple_fonts.css +661 -0
  3. index.html +4 -3
  4. index_worst.html +58 -0
  5. res/model/Alicia/Alicia_hair.png +0 -3
  6. res/model/Alicia/Alicia_rod.png +0 -3
  7. res/model/Alicia/Alicia_solid.pmx +0 -3
  8. res/model/Alicia/Alicia_wear.png +0 -3
  9. res/model/Alicia/blade_s.bmp +0 -3
  10. res/model/Alicia/eye_s.bmp +0 -3
  11. res/model/Alicia/face_s.bmp +0 -3
  12. res/model/Alicia/hair_s.bmp +0 -3
  13. res/model/Alicia/ramp_s.bmp +0 -3
  14. res/model/Alicia/rod_s.bmp +0 -3
  15. res/model/Alicia/shoes_s.bmp +0 -3
  16. res/model/Alicia/skin_s.bmp +0 -3
  17. res/model/Alicia/tongue_s.bmp +0 -3
  18. res/model/MiraiAkari_v1.0.bpmx +3 -0
  19. res/model/higuchi_kaede.bpmx +3 -0
  20. res/model/higuchi_kaede_alt.bpmx +3 -0
  21. res/model/higuchi_kaede_army.bpmx +3 -0
  22. res/model/higuchi_kaede_army_alt.bpmx +3 -0
  23. res/model/higuchi_kaede_casual.bpmx +3 -0
  24. res/model/higuchi_kaede_oni.bpmx +3 -0
  25. res/model/higuchi_kaede_summer.bpmx +3 -0
  26. res/model/higuchi_kaede_summer_alt.bpmx +3 -0
  27. res/model/inui_toko.bpmx +3 -0
  28. script.js +70 -6
  29. script_worst.js +282 -0
  30. res/model/Alicia/Alicia_blade.pmx → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf +2 -2
  31. res/model/Alicia/Alicia_body.png → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff +2 -2
  32. res/model/Alicia/Alicia_eye.png → wss/fonts/SF-Mono/v1/sf-mono_bold.eot +2 -2
  33. res/model/Alicia/Alicia_face.png → wss/fonts/SF-Mono/v1/sf-mono_bold.ttf +2 -2
  34. wss/fonts/SF-Mono/v1/sf-mono_bold.woff +3 -0
  35. wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf +3 -0
  36. wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff +3 -0
  37. wss/fonts/SF-Mono/v1/sf-mono_heavy.eot +3 -0
  38. wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf +3 -0
  39. wss/fonts/SF-Mono/v1/sf-mono_heavy.woff +3 -0
  40. wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf +3 -0
  41. wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff +3 -0
  42. wss/fonts/SF-Mono/v1/sf-mono_light.eot +3 -0
  43. wss/fonts/SF-Mono/v1/sf-mono_light.ttf +3 -0
  44. wss/fonts/SF-Mono/v1/sf-mono_light.woff +3 -0
  45. wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf +3 -0
  46. wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff +3 -0
  47. wss/fonts/SF-Mono/v1/sf-mono_medium.eot +3 -0
  48. wss/fonts/SF-Mono/v1/sf-mono_medium.ttf +3 -0
  49. wss/fonts/SF-Mono/v1/sf-mono_medium.woff +3 -0
  50. wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf +3 -0
.gitattributes CHANGED
@@ -93,4 +93,10 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
93
  *.vmd filter=lfs diff=lfs merge=lfs -text
94
  *.vmx filter=lfs diff=lfs merge=lfs -text
95
  *.bpmx filter=lfs diff=lfs merge=lfs -text
96
- *.bvmd filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
93
  *.vmd filter=lfs diff=lfs merge=lfs -text
94
  *.vmx filter=lfs diff=lfs merge=lfs -text
95
  *.bpmx filter=lfs diff=lfs merge=lfs -text
96
+ *.bvmd filter=lfs diff=lfs merge=lfs -text
97
+ # Fonts
98
+ *.eot filter=lfs diff=lfs merge=lfs -text
99
+ *.ttf filter=lfs diff=lfs merge=lfs -text
100
+ *.otf filter=lfs diff=lfs merge=lfs -text
101
+ *.woff filter=lfs diff=lfs merge=lfs -text
102
+ *.woff2 filter=lfs diff=lfs merge=lfs -text
apple_fonts.css ADDED
@@ -0,0 +1,661 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family:'SF Pro Display';
3
+ font-style:normal;
4
+ font-weight:100;
5
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.ttf") format("truetype");
6
+ }
7
+
8
+ @font-face {
9
+ font-family:'SF Pro Display';
10
+ font-style:italic;
11
+ font-weight:100;
12
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight-italic.ttf") format("truetype");
13
+ }
14
+
15
+ @font-face {
16
+ font-family:'SF Pro Display 100';
17
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_ultralight.eot');
18
+ }
19
+
20
+ @font-face {
21
+ font-family:'SF Pro Display';
22
+ font-style:normal;
23
+ font-weight:200;
24
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.ttf") format("truetype");
25
+ }
26
+
27
+ @font-face {
28
+ font-family:'SF Pro Display';
29
+ font-style:italic;
30
+ font-weight:200;
31
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin-italic.ttf") format("truetype");
32
+ }
33
+
34
+ @font-face {
35
+ font-family:'SF Pro Display 200';
36
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_thin.eot');
37
+ }
38
+
39
+ @font-face {
40
+ font-family:'SF Pro Display';
41
+ font-style:normal;
42
+ font-weight:300;
43
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.ttf") format("truetype");
44
+ }
45
+
46
+ @font-face {
47
+ font-family:'SF Pro Display';
48
+ font-style:italic;
49
+ font-weight:300;
50
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light-italic.ttf") format("truetype");
51
+ }
52
+
53
+ @font-face {
54
+ font-family:'SF Pro Display 300';
55
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_light.eot');
56
+ }
57
+
58
+ @font-face {
59
+ font-family:'SF Pro Display';
60
+ font-style:italic;
61
+ font-weight:400;
62
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular-italic.ttf") format("truetype");
63
+ }
64
+
65
+ @font-face {
66
+ font-family:'SF Pro Display';
67
+ font-style:normal;
68
+ font-weight:500;
69
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.ttf") format("truetype");
70
+ }
71
+
72
+ @font-face {
73
+ font-family:'SF Pro Display';
74
+ font-style:italic;
75
+ font-weight:500;
76
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium-italic.ttf") format("truetype");
77
+ }
78
+
79
+ @font-face {
80
+ font-family:'SF Pro Display 500';
81
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_medium.eot');
82
+ }
83
+
84
+ @font-face {
85
+ font-family:'SF Pro Display';
86
+ font-style:normal;
87
+ font-weight:600;
88
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.ttf") format("truetype");
89
+ }
90
+
91
+ @font-face {
92
+ font-family:'SF Pro Display';
93
+ font-style:italic;
94
+ font-weight:600;
95
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold-italic.ttf") format("truetype");
96
+ }
97
+
98
+ @font-face {
99
+ font-family:'SF Pro Display 600';
100
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_semibold.eot');
101
+ }
102
+
103
+ @font-face {
104
+ font-family:'SF Pro Display';
105
+ font-style:normal;
106
+ font-weight:700;
107
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.ttf") format("truetype");
108
+ }
109
+
110
+ @font-face {
111
+ font-family:'SF Pro Display';
112
+ font-style:italic;
113
+ font-weight:700;
114
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold-italic.ttf") format("truetype");
115
+ }
116
+
117
+ @font-face {
118
+ font-family:'SF Pro Display 700';
119
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_bold.eot');
120
+ }
121
+
122
+ @font-face {
123
+ font-family:'SF Pro Display';
124
+ font-style:normal;
125
+ font-weight:800;
126
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.ttf") format("truetype");
127
+ }
128
+
129
+ @font-face {
130
+ font-family:'SF Pro Display';
131
+ font-style:italic;
132
+ font-weight:800;
133
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy-italic.ttf") format("truetype");
134
+ }
135
+
136
+ @font-face {
137
+ font-family:'SF Pro Display 800';
138
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_heavy.eot');
139
+ }
140
+
141
+ @font-face {
142
+ font-family:'SF Pro Display';
143
+ font-style:normal;
144
+ font-weight:900;
145
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.ttf") format("truetype");
146
+ }
147
+
148
+ @font-face {
149
+ font-family:'SF Pro Display';
150
+ font-style:italic;
151
+ font-weight:900;
152
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black-italic.ttf") format("truetype");
153
+ }
154
+
155
+ @font-face {
156
+ font-family:'SF Pro Display 900';
157
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_black.eot');
158
+ }
159
+
160
+ @font-face {
161
+ font-family:'SF Pro Display';
162
+ font-style:normal;
163
+ font-weight:400;
164
+ src:url('/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.eot');
165
+ src:local('☺'), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-Display/v3/sf-pro-display_regular.ttf") format("truetype");
166
+ }
167
+
168
+ @font-face {
169
+ font-family:'SF Pro Text';
170
+ font-style:normal;
171
+ font-weight:100;
172
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.ttf") format("truetype");
173
+ }
174
+
175
+ @font-face {
176
+ font-family:'SF Pro Text';
177
+ font-style:italic;
178
+ font-weight:100;
179
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight-italic.ttf") format("truetype");
180
+ }
181
+
182
+ @font-face {
183
+ font-family:'SF Pro Text 100';
184
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_ultralight.eot');
185
+ }
186
+
187
+ @font-face {
188
+ font-family:'SF Pro Text';
189
+ font-style:normal;
190
+ font-weight:200;
191
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.ttf") format("truetype");
192
+ }
193
+
194
+ @font-face {
195
+ font-family:'SF Pro Text';
196
+ font-style:italic;
197
+ font-weight:200;
198
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin-italic.ttf") format("truetype");
199
+ }
200
+
201
+ @font-face {
202
+ font-family:'SF Pro Text 200';
203
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_thin.eot');
204
+ }
205
+
206
+ @font-face {
207
+ font-family:'SF Pro Text';
208
+ font-style:normal;
209
+ font-weight:300;
210
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.ttf") format("truetype");
211
+ }
212
+
213
+ @font-face {
214
+ font-family:'SF Pro Text';
215
+ font-style:italic;
216
+ font-weight:300;
217
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light-italic.ttf") format("truetype");
218
+ }
219
+
220
+ @font-face {
221
+ font-family:'SF Pro Text 300';
222
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_light.eot');
223
+ }
224
+
225
+ @font-face {
226
+ font-family:'SF Pro Text';
227
+ font-style:italic;
228
+ font-weight:400;
229
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular-italic.ttf") format("truetype");
230
+ }
231
+
232
+ @font-face {
233
+ font-family:'SF Pro Text';
234
+ font-style:normal;
235
+ font-weight:500;
236
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.ttf") format("truetype");
237
+ }
238
+
239
+ @font-face {
240
+ font-family:'SF Pro Text';
241
+ font-style:italic;
242
+ font-weight:500;
243
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium-italic.ttf") format("truetype");
244
+ }
245
+
246
+ @font-face {
247
+ font-family:'SF Pro Text 500';
248
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_medium.eot');
249
+ }
250
+
251
+ @font-face {
252
+ font-family:'SF Pro Text';
253
+ font-style:normal;
254
+ font-weight:600;
255
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.ttf") format("truetype");
256
+ }
257
+
258
+ @font-face {
259
+ font-family:'SF Pro Text';
260
+ font-style:italic;
261
+ font-weight:600;
262
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold-italic.ttf") format("truetype");
263
+ }
264
+
265
+ @font-face {
266
+ font-family:'SF Pro Text 600';
267
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_semibold.eot');
268
+ }
269
+
270
+ @font-face {
271
+ font-family:'SF Pro Text';
272
+ font-style:normal;
273
+ font-weight:700;
274
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.ttf") format("truetype");
275
+ }
276
+
277
+ @font-face {
278
+ font-family:'SF Pro Text';
279
+ font-style:italic;
280
+ font-weight:700;
281
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold-italic.ttf") format("truetype");
282
+ }
283
+
284
+ @font-face {
285
+ font-family:'SF Pro Text 700';
286
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_bold.eot');
287
+ }
288
+
289
+ @font-face {
290
+ font-family:'SF Pro Text';
291
+ font-style:normal;
292
+ font-weight:800;
293
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.ttf") format("truetype");
294
+ }
295
+
296
+ @font-face {
297
+ font-family:'SF Pro Text';
298
+ font-style:italic;
299
+ font-weight:800;
300
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy-italic.ttf") format("truetype");
301
+ }
302
+
303
+ @font-face {
304
+ font-family:'SF Pro Text 800';
305
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_heavy.eot');
306
+ }
307
+
308
+ @font-face {
309
+ font-family:'SF Pro Text';
310
+ font-style:normal;
311
+ font-weight:900;
312
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.ttf") format("truetype");
313
+ }
314
+
315
+ @font-face {
316
+ font-family:'SF Pro Text';
317
+ font-style:italic;
318
+ font-weight:900;
319
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black-italic.ttf") format("truetype");
320
+ }
321
+
322
+ @font-face {
323
+ font-family:'SF Pro Text 900';
324
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_black.eot');
325
+ }
326
+
327
+ @font-face {
328
+ font-family:'SF Pro Text';
329
+ font-style:normal;
330
+ font-weight:400;
331
+ src:url('/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.eot');
332
+ src:local('☺'), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-Text/v3/sf-pro-text_regular.ttf") format("truetype");
333
+ }
334
+
335
+ @font-face {
336
+ font-family:'SF Mono';
337
+ font-style:normal;
338
+ font-weight:300;
339
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_light.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_light.ttf") format("truetype");
340
+ /* (C) 2015 Apple Inc. All rights reserved. */
341
+ }
342
+
343
+ @font-face {
344
+ font-family:'SF Mono';
345
+ font-style:italic;
346
+ font-weight:300;
347
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf") format("truetype");
348
+ /* (C) 2015 Apple Inc. All rights reserved. */
349
+ }
350
+
351
+ @font-face {
352
+ font-family:'SF Mono 300';
353
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_light.eot');
354
+ /* (C) 2015 Apple Inc. All rights reserved. */
355
+ }
356
+
357
+ @font-face {
358
+ font-family:'SF Mono';
359
+ font-style:italic;
360
+ font-weight:400;
361
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_regular-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf") format("truetype");
362
+ /* (C) 2015 Apple Inc. All rights reserved. */
363
+ }
364
+
365
+ @font-face {
366
+ font-family:'SF Mono';
367
+ font-style:normal;
368
+ font-weight:500;
369
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_medium.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_medium.ttf") format("truetype");
370
+ /* (C) 2015 Apple Inc. All rights reserved. */
371
+ }
372
+
373
+ @font-face {
374
+ font-family:'SF Mono';
375
+ font-style:italic;
376
+ font-weight:500;
377
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf") format("truetype");
378
+ /* (C) 2015 Apple Inc. All rights reserved. */
379
+ }
380
+
381
+ @font-face {
382
+ font-family:'SF Mono 500';
383
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_medium.eot');
384
+ /* (C) 2015 Apple Inc. All rights reserved. */
385
+ }
386
+
387
+ @font-face {
388
+ font-family:'SF Mono';
389
+ font-style:normal;
390
+ font-weight:600;
391
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold.ttf") format("truetype");
392
+ /* (C) 2015 Apple Inc. All rights reserved. */
393
+ }
394
+
395
+ @font-face {
396
+ font-family:'SF Mono';
397
+ font-style:italic;
398
+ font-weight:600;
399
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_semibold-italic.ttf") format("truetype");
400
+ /* (C) 2015 Apple Inc. All rights reserved. */
401
+ }
402
+
403
+ @font-face {
404
+ font-family:'SF Mono 600';
405
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_semibold.eot');
406
+ /* (C) 2015 Apple Inc. All rights reserved. */
407
+ }
408
+
409
+ @font-face {
410
+ font-family:'SF Mono';
411
+ font-style:normal;
412
+ font-weight:700;
413
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_bold.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_bold.ttf") format("truetype");
414
+ /* (C) 2015 Apple Inc. All rights reserved. */
415
+ }
416
+
417
+ @font-face {
418
+ font-family:'SF Mono';
419
+ font-style:italic;
420
+ font-weight:700;
421
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf") format("truetype");
422
+ /* (C) 2015 Apple Inc. All rights reserved. */
423
+ }
424
+
425
+ @font-face {
426
+ font-family:'SF Mono 700';
427
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_bold.eot');
428
+ /* (C) 2015 Apple Inc. All rights reserved. */
429
+ }
430
+
431
+ @font-face {
432
+ font-family:'SF Mono';
433
+ font-style:normal;
434
+ font-weight:800;
435
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf") format("truetype");
436
+ /* (C) 2015 Apple Inc. All rights reserved. */
437
+ }
438
+
439
+ @font-face {
440
+ font-family:'SF Mono';
441
+ font-style:italic;
442
+ font-weight:800;
443
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf") format("truetype");
444
+ /* (C) 2015 Apple Inc. All rights reserved. */
445
+ }
446
+
447
+ @font-face {
448
+ font-family:'SF Mono 800';
449
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_heavy.eot');
450
+ /* (C) 2015 Apple Inc. All rights reserved. */
451
+ }
452
+
453
+ @font-face {
454
+ font-family:'SF Mono';
455
+ font-style:normal;
456
+ font-weight:400;
457
+ src:url('/wss/fonts/SF-Mono/v1/sf-mono_regular.eot');
458
+ src:local('☺'), url("/wss/fonts/SF-Mono/v1/sf-mono_regular.woff") format("woff"), url("/wss/fonts/SF-Mono/v1/sf-mono_regular.ttf") format("truetype");
459
+ /* (C) 2015 Apple Inc. All rights reserved. */
460
+ }
461
+
462
+ @font-face {
463
+ font-family:'SF Pro SC';
464
+ font-style:normal;
465
+ font-weight:100;
466
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.ttf") format("truetype");
467
+ /* (C) 2015 Apple Inc. All rights reserved. */
468
+ }
469
+
470
+ @font-face {
471
+ font-family:'SF Pro SC 100';
472
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Ultralight.eot');
473
+ /* (C) 2015 Apple Inc. All rights reserved. */
474
+ }
475
+
476
+ @font-face {
477
+ font-family:'SF Pro SC';
478
+ font-style:normal;
479
+ font-weight:200;
480
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.ttf") format("truetype");
481
+ /* (C) 2015 Apple Inc. All rights reserved. */
482
+ }
483
+
484
+ @font-face {
485
+ font-family:'SF Pro SC 200';
486
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Thin.eot');
487
+ /* (C) 2015 Apple Inc. All rights reserved. */
488
+ }
489
+
490
+ @font-face {
491
+ font-family:'SF Pro SC';
492
+ font-style:normal;
493
+ font-weight:300;
494
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.ttf") format("truetype");
495
+ /* (C) 2015 Apple Inc. All rights reserved. */
496
+ }
497
+
498
+ @font-face {
499
+ font-family:'SF Pro SC 300';
500
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Light.eot');
501
+ /* (C) 2015 Apple Inc. All rights reserved. */
502
+ }
503
+
504
+ @font-face {
505
+ font-family:'SF Pro SC';
506
+ font-style:normal;
507
+ font-weight:500;
508
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.ttf") format("truetype");
509
+ /* (C) 2015 Apple Inc. All rights reserved. */
510
+ }
511
+
512
+ @font-face {
513
+ font-family:'SF Pro SC 500';
514
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Medium.eot');
515
+ /* (C) 2015 Apple Inc. All rights reserved. */
516
+ }
517
+
518
+ @font-face {
519
+ font-family:'SF Pro SC';
520
+ font-style:normal;
521
+ font-weight:600;
522
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.ttf") format("truetype");
523
+ /* (C) 2015 Apple Inc. All rights reserved. */
524
+ }
525
+
526
+ @font-face {
527
+ font-family:'SF Pro SC 600';
528
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Semibold.eot');
529
+ /* (C) 2015 Apple Inc. All rights reserved. */
530
+ }
531
+
532
+ @font-face {
533
+ font-family:'SF Pro SC';
534
+ font-style:normal;
535
+ font-weight:400;
536
+ src:url('/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.eot');
537
+ src:local('☺'), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.woff") format("woff"), url("/wss/fonts/SF-Pro-SC/v1/PingFangSC-Regular.ttf") format("truetype");
538
+ /* (C) 2015 Apple Inc. All rights reserved. */
539
+ }
540
+
541
+ @font-face {
542
+ font-family:'SF Pro JP';
543
+ font-style:normal;
544
+ font-weight:100;
545
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.ttf") format("truetype");
546
+ /* (C) 2015 Apple Inc. All rights reserved. */
547
+ }
548
+
549
+ @font-face {
550
+ font-family:'SF Pro JP 100';
551
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_ultralight.eot');
552
+ /* (C) 2015 Apple Inc. All rights reserved. */
553
+ }
554
+
555
+ @font-face {
556
+ font-family:'SF Pro JP';
557
+ font-style:normal;
558
+ font-weight:200;
559
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.ttf") format("truetype");
560
+ /* (C) 2015 Apple Inc. All rights reserved. */
561
+ }
562
+
563
+ @font-face {
564
+ font-family:'SF Pro JP 200';
565
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_thin.eot');
566
+ /* (C) 2015 Apple Inc. All rights reserved. */
567
+ }
568
+
569
+ @font-face {
570
+ font-family:'SF Pro JP';
571
+ font-style:normal;
572
+ font-weight:300;
573
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_light.ttf") format("truetype");
574
+ /* (C) 2015 Apple Inc. All rights reserved. */
575
+ }
576
+
577
+ @font-face {
578
+ font-family:'SF Pro JP 300';
579
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_light.eot');
580
+ /* (C) 2015 Apple Inc. All rights reserved. */
581
+ }
582
+
583
+ @font-face {
584
+ font-family:'SF Pro JP';
585
+ font-style:normal;
586
+ font-weight:500;
587
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.ttf") format("truetype");
588
+ /* (C) 2015 Apple Inc. All rights reserved. */
589
+ }
590
+
591
+ @font-face {
592
+ font-family:'SF Pro JP 500';
593
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_medium.eot');
594
+ /* (C) 2015 Apple Inc. All rights reserved. */
595
+ }
596
+
597
+ @font-face {
598
+ font-family:'SF Pro JP';
599
+ font-style:normal;
600
+ font-weight:600;
601
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.ttf") format("truetype");
602
+ /* (C) 2015 Apple Inc. All rights reserved. */
603
+ }
604
+
605
+ @font-face {
606
+ font-family:'SF Pro JP 600';
607
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_semibold.eot');
608
+ /* (C) 2015 Apple Inc. All rights reserved. */
609
+ }
610
+
611
+ @font-face {
612
+ font-family:'SF Pro JP';
613
+ font-style:normal;
614
+ font-weight:700;
615
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.ttf") format("truetype");
616
+ /* (C) 2015 Apple Inc. All rights reserved. */
617
+ }
618
+
619
+ @font-face {
620
+ font-family:'SF Pro JP 700';
621
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_bold.eot');
622
+ /* (C) 2015 Apple Inc. All rights reserved. */
623
+ }
624
+
625
+ @font-face {
626
+ font-family:'SF Pro JP';
627
+ font-style:normal;
628
+ font-weight:800;
629
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.ttf") format("truetype");
630
+ /* (C) 2015 Apple Inc. All rights reserved. */
631
+ }
632
+
633
+ @font-face {
634
+ font-family:'SF Pro JP 800';
635
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_heavy.eot');
636
+ /* (C) 2015 Apple Inc. All rights reserved. */
637
+ }
638
+
639
+ @font-face {
640
+ font-family:'SF Pro JP';
641
+ font-style:normal;
642
+ font-weight:900;
643
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_black.ttf") format("truetype");
644
+ /* (C) 2015 Apple Inc. All rights reserved. */
645
+ }
646
+
647
+ @font-face {
648
+ font-family:'SF Pro JP 900';
649
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_black.eot');
650
+ /* (C) 2015 Apple Inc. All rights reserved. */
651
+ }
652
+
653
+ @font-face {
654
+ font-family:'SF Pro JP';
655
+ font-style:normal;
656
+ font-weight:400;
657
+ src:url('/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.eot');
658
+ src:local('☺'), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.woff2") format("woff2"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.woff") format("woff"), url("/wss/fonts/SF-Pro-JP/v1/SFProJP_regular.ttf") format("truetype");
659
+ /* (C) 2015 Apple Inc. All rights reserved. */
660
+ }
661
+
index.html CHANGED
@@ -26,12 +26,13 @@
26
  <script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
27
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
28
  <link rel="preconnect" href="https://rsms.me">
29
- <link rel="stylesheet" href="https://rsms.me/inter/inter.css">
30
  <link rel="preconnect" href="https://cdn.jsdelivr.net">
31
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
32
  <link rel="preconnect" href="https://fonts.googleapis.com">
33
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
34
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
 
35
  <style>
36
  html, body {
37
  overflow: hidden;
 
26
  <script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
27
  <script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
28
  <link rel="preconnect" href="https://rsms.me">
29
+ <link rel="stylesheet prefetch" href="https://rsms.me/inter/inter.css">
30
  <link rel="preconnect" href="https://cdn.jsdelivr.net">
31
+ <link rel="stylesheet prefetch" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
32
  <link rel="preconnect" href="https://fonts.googleapis.com">
33
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
34
+ <link rel="stylesheet prefetch" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
35
+ <link rel="stylesheet prefetch" href="./apple_fonts.css">
36
  <style>
37
  html, body {
38
  overflow: hidden;
index_worst.html ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+
8
+ <title>Babylon.js MMD Test</title>
9
+
10
+ <!-- Babylon.js -->
11
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
12
+ <script src="https://assets.babylonjs.com/generated/Assets.js"></script>
13
+ <script src="https://cdn.babylonjs.com/recast.js"></script>
14
+ <script src="https://cdn.babylonjs.com/ammo.js"></script>
15
+ <script src="https://cdn.babylonjs.com/havok/HavokPhysics_umd.js"></script>
16
+ <script src="https://cdn.babylonjs.com/cannon.js"></script>
17
+ <script src="https://cdn.babylonjs.com/Oimo.js"></script>
18
+ <script src="https://cdn.babylonjs.com/earcut.min.js"></script>
19
+ <script src="https://cdn.babylonjs.com/babylon.js"></script>
20
+ <script src="https://cdn.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
21
+ <script src="https://cdn.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
22
+ <script src="https://cdn.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
23
+ <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.js"></script>
24
+ <script src="https://cdn.babylonjs.com/serializers/babylonjs.serializers.min.js"></script>
25
+ <script src="https://cdn.babylonjs.com/gui/babylon.gui.min.js"></script>
26
+ <script src="https://cdn.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
27
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/fontfaceobserver/2.3.0/fontfaceobserver.standalone.min.js"></script>
28
+ <link rel="preconnect" href="https://rsms.me">
29
+ <link rel="stylesheet" href="https://rsms.me/inter/inter.css">
30
+ <link rel="preconnect" href="https://cdn.jsdelivr.net">
31
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">
32
+ <link rel="preconnect" href="https://fonts.googleapis.com">
33
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
34
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:[email protected]&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap">
35
+ <style>
36
+ html, body {
37
+ overflow: hidden;
38
+ width: 100%;
39
+ height: 100%;
40
+ margin: 0;
41
+ padding: 0;
42
+ }
43
+ #renderCanvas {
44
+ width: 100%;
45
+ height: 100%;
46
+ touch-action: none;
47
+ }
48
+ #canvasZone {
49
+ width: 100%;
50
+ height: 100%;
51
+ }
52
+ </style>
53
+ </head>
54
+ <body>
55
+ <div id="canvasZone"><canvas id="renderCanvas"></canvas></div>
56
+ <script src="script_worst.js"></script>
57
+ </body>
58
+ </html>
res/model/Alicia/Alicia_hair.png DELETED

Git LFS Details

  • SHA256: 2116eb48af8e2c9ff1c065633ba39dc92dfa35cbe3e6454054a55427362272ab
  • Pointer size: 131 Bytes
  • Size of remote file: 712 kB
res/model/Alicia/Alicia_rod.png DELETED

Git LFS Details

  • SHA256: e7b90ad145880701abf5dfbf97c3321dcf37783368068a8f0e786cff56f5c65f
  • Pointer size: 131 Bytes
  • Size of remote file: 473 kB
res/model/Alicia/Alicia_solid.pmx DELETED
@@ -1,3 +0,0 @@
1
- version https://git-lfs.github.com/spec/v1
2
- oid sha256:62f04b066f0d2a28fb09126bc82d94fa24c0d8f2cd8d7e78b5a0a2d3989d280b
3
- size 1482421
 
 
 
 
res/model/Alicia/Alicia_wear.png DELETED

Git LFS Details

  • SHA256: 5a77cca424c2338d8d78135c00726247a423025fe7f27662f86dd48f2efbf406
  • Pointer size: 132 Bytes
  • Size of remote file: 2.62 MB
res/model/Alicia/blade_s.bmp DELETED

Git LFS Details

  • SHA256: 1c5598f0c1c15b4b14645e8d9a5126bdcbfc9a7456f67d8908cee42c05de5df0
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/eye_s.bmp DELETED

Git LFS Details

  • SHA256: ce397a04d8327cb88b0c5d4c85c523c1e7fc788ac8ec22a561f8c50b78888d94
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/face_s.bmp DELETED

Git LFS Details

  • SHA256: 6b508c18135ad5c2e14b8df7faa480e7f83c74487f247d35c7669118538582f6
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/hair_s.bmp DELETED

Git LFS Details

  • SHA256: 3714e1815680265a21f5d1ae4d114bda4dbf8e99e39755d3f0cd1fc3cc1066f5
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/ramp_s.bmp DELETED

Git LFS Details

  • SHA256: 3dd161d7f3bce407b58ab8fb998295109ed52cf9695008c7cf4c1d3dba77ed19
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/rod_s.bmp DELETED

Git LFS Details

  • SHA256: 9f3eae57f42cb13d5b5175729acde386fa3238a0100ed7125f1fae5e25351760
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/shoes_s.bmp DELETED

Git LFS Details

  • SHA256: e2f34da0d8268317de947f9bd4e2bad241d3f26dd867f5737f822509f79ae7b6
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/skin_s.bmp DELETED

Git LFS Details

  • SHA256: 3714e1815680265a21f5d1ae4d114bda4dbf8e99e39755d3f0cd1fc3cc1066f5
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/Alicia/tongue_s.bmp DELETED

Git LFS Details

  • SHA256: d9e725ae7119c387a1b48662af1c1602d462bfea8820a57d8c3bd1eafe2d5bd6
  • Pointer size: 131 Bytes
  • Size of remote file: 197 kB
res/model/MiraiAkari_v1.0.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e71f363126bba088760a1bf4bb6436b0f9e3819a5b5e3c4e1ba74d17ae9c447
3
+ size 21778229
res/model/higuchi_kaede.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e521392265f860a56ba79441a9f1ae32eedbea910c080fd2450ccf37406d087
3
+ size 6032777
res/model/higuchi_kaede_alt.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a48e214194f58fad1b07fc5532db1d2bab38bcd36a557252e99b5c2669554ee
3
+ size 5866061
res/model/higuchi_kaede_army.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bdbeb1fea5d2bc8468b72ff6336029c23caee8f069f6eb7aa0a5833709c9804e
3
+ size 10074923
res/model/higuchi_kaede_army_alt.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7d965c3bc1e0ce8cd6c705ca86b6b124618bb4a4c281d40863e13e16136c54df
3
+ size 10156180
res/model/higuchi_kaede_casual.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d06e96b5f1e29e9c5077112dcfa3005181a3246f06ab77f061367e1f3bcfae80
3
+ size 14454116
res/model/higuchi_kaede_oni.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29c46442b0105e5901cc71331147caa23bda3c714ec9fb48d64da4356980a61d
3
+ size 16132263
res/model/higuchi_kaede_summer.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3129bb398044c4ba579db30cb204afb3abbdde922ca69277e6ba64a812aefd51
3
+ size 5577975
res/model/higuchi_kaede_summer_alt.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1cc1f88f9d0e64d64f3b8cbf10e42c36670db9b11e024913fc89a91730272184
3
+ size 5410947
res/model/inui_toko.bpmx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3d725cb0ca6c2ade4a4438d2a71bb70b3553a86358c41c7ebcb397e1fdbfc63d
3
+ size 8819594
script.js CHANGED
@@ -62,6 +62,16 @@ const resourcePathSets = {
62
  },
63
  'mainModel': {
64
  'alicia': './res/model/Alicia.bpmx',
 
 
 
 
 
 
 
 
 
 
65
  'raidenShogun': './res/model/RaidenShogun.bpmx',
66
  'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
67
  }
@@ -194,8 +204,6 @@ class Playground {
194
  const mmdModel = mmdRuntime.createMmdModel(modelMesh);
195
  mmdModel.addAnimation(loadResults[0]);
196
  mmdModel.setAnimation("motion");
197
- mmdModel.mesh.edgesColor = new BABYLON.Color4(0.152, 0.062, 0.035, 1.0);
198
- mmdModel.mesh.edgesWidth = 100;
199
  const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
200
  scene.onBeforeRenderObservable.add(() => {
201
  bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
@@ -227,7 +235,7 @@ class Playground {
227
  defaultPipeline.imageProcessing.vignetteStretch = 0.5;
228
  defaultPipeline.imageProcessing.vignetteColor = new BABYLON.Color4(0, 0, 0, 0);
229
  defaultPipeline.imageProcessing.vignetteEnabled = true;
230
- const lensEffect = new BABYLON.LensRenderingPipeline('lensEffects', {edge_blur: engine.hostInformation.isMobile ? 0.0 : 1.0, chromatic_aberration: 1.0, distortion: 0.125}, scene, 1.0);
231
  scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', camera);
232
  scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', mmdCamera);
233
  // BABYLON.ParticleHelper.CreateAsync("rain", scene, false).then((set) => {set.start()});
@@ -245,6 +253,26 @@ class Playground {
245
  if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
246
  else scene.activeCameras = [mmdCamera, guiCamera];
247
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
249
  advancedTexture.layer.layerMask = 0x10000000;
250
  advancedTexture.renderScale = 1.5;
@@ -253,7 +281,7 @@ class Playground {
253
  // textblock.left = 10;
254
  textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
255
  textblock.fontSize = 32;
256
- textblock.fontFamily = "system-ui";
257
  textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
258
  textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
259
  textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
@@ -262,13 +290,49 @@ class Playground {
262
  advancedTexture.addControl(textblock);
263
  const textBlockUpdateDisp = setInterval(() => {
264
  if (engine.hostInformation.isMobile) {
265
- textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${engine.frameId} f\n${mathFunc.rounder('floor', engine.getFps(), 2)} fps\n${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2)} ms`;
 
 
 
 
 
266
  } else {
267
- textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${resourcePaths.mainModel}\n${resourcePaths.mainMotion}\n${resourcePaths.audio}\n\n${engine.frameId} frame\n${Math.floor(engine.getFps())} fps\n${Math.floor(engine.performanceMonitor.averageFrameTime)} ms`;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
268
  }
269
  }, 10);
270
  await new Promise(resolve => setTimeout(resolve, 1000));
271
  mmdRuntime.playAnimation();
 
272
  return scene;
273
  }
274
  }
 
62
  },
63
  'mainModel': {
64
  'alicia': './res/model/Alicia.bpmx',
65
+ 'higuchiKaede': './res/model/higuchi_kaede.bpmx',
66
+ 'higuchiKaedeHair': './res/model/higuchi_kaede_alt.bpmx',
67
+ 'higuchiKaedeSummer': './res/model/higuchi_kaede_summer.bpmx',
68
+ 'higuchiKaedeSummerHair': './res/model/higuchi_kaede_summer_alt.bpmx',
69
+ 'higuchiKaedeCasual': './res/model/higuchi_kaede_casual.bpmx',
70
+ 'higuchiKaedeOni': './res/model/higuchi_kaede_oni.bpmx',
71
+ 'higuchiKaedeArmy': './res/model/higuchi_kaede_army.bpmx',
72
+ 'higuchiKaedeArmyHair': './res/model/higuchi_kaede_army_alt.bpmx',
73
+ 'inuiToko': './res/model/inui_toko.bpmx',
74
+ 'miraiAkari': './res/model/MiraiAkari_v1.0.bpmx',
75
  'raidenShogun': './res/model/RaidenShogun.bpmx',
76
  'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
77
  }
 
204
  const mmdModel = mmdRuntime.createMmdModel(modelMesh);
205
  mmdModel.addAnimation(loadResults[0]);
206
  mmdModel.setAnimation("motion");
 
 
207
  const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
208
  scene.onBeforeRenderObservable.add(() => {
209
  bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
 
235
  defaultPipeline.imageProcessing.vignetteStretch = 0.5;
236
  defaultPipeline.imageProcessing.vignetteColor = new BABYLON.Color4(0, 0, 0, 0);
237
  defaultPipeline.imageProcessing.vignetteEnabled = true;
238
+ const lensEffect = new BABYLON.LensRenderingPipeline('lensEffects', {edge_blur: engine.hostInformation.isMobile ? 0.0 : 1.0, chromatic_aberration: engine.hostInformation.isMobile ? 0.5 : 1.0, distortion: 0.2}, scene, 1.0);
239
  scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', camera);
240
  scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline('lensEffects', mmdCamera);
241
  // BABYLON.ParticleHelper.CreateAsync("rain", scene, false).then((set) => {set.start()});
 
253
  if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
254
  else scene.activeCameras = [mmdCamera, guiCamera];
255
  };
256
+ let engineInstrumentation = new BABYLON.EngineInstrumentation(engine);
257
+ engineInstrumentation.captureGPUFrameTime = true;
258
+ engineInstrumentation.captureShaderCompilationTime = true;
259
+ let sceneInstrumentation = new BABYLON.SceneInstrumentation(scene);
260
+ sceneInstrumentation.captureActiveMeshesEvaluationTime = true;
261
+ sceneInstrumentation.captureFrameTime = true;
262
+ sceneInstrumentation.captureParticlesRenderTime = true;
263
+ sceneInstrumentation.captureRenderTime = true;
264
+ sceneInstrumentation.captureCameraRenderTime = true;
265
+ sceneInstrumentation.captureRenderTargetsRenderTime = true;
266
+ sceneInstrumentation.captureInterFrameTime = true;
267
+ let isLimitFPS = false;
268
+ let targetFPS = null;
269
+ if (Object.keys(urlQueryObject).some(el => el === 'fps')) {
270
+ isLimitFPS = true;
271
+ targetFPS = parseFloat(urlQueryObject.fps) + 0.35;
272
+ engine.customAnimationFrameRequester = {
273
+ requestAnimationFrame: (func) => {setTimeout(func, 1000 / targetFPS - sceneInstrumentation.frameTimeCounter.current - sceneInstrumentation.activeMeshesEvaluationTimeCounter.current - sceneInstrumentation.particlesRenderTimeCounter.lastSecAverage - sceneInstrumentation.renderTimeCounter.current - sceneInstrumentation.cameraRenderTimeCounter.current - sceneInstrumentation.renderTargetsRenderTimeCounter.current)}
274
+ };
275
+ }
276
  const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
277
  advancedTexture.layer.layerMask = 0x10000000;
278
  advancedTexture.renderScale = 1.5;
 
281
  // textblock.left = 10;
282
  textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
283
  textblock.fontSize = 32;
284
+ textblock.fontFamily = "'SF Mono', 'SF Pro Text', 'Inter', 'Noto Sans JP', 'system-ui'";
285
  textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
286
  textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
287
  textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
 
290
  advancedTexture.addControl(textblock);
291
  const textBlockUpdateDisp = setInterval(() => {
292
  if (engine.hostInformation.isMobile) {
293
+ textblock.text = `${engine._glRenderer}
294
+ ${engine._glVersion}
295
+
296
+ ${engine.frameId} f
297
+ ${mathFunc.rounder('floor', engine.performanceMonitor.averageFPS, 2)} fps
298
+ ${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2)} ms`;
299
  } else {
300
+ textblock.text = `${engine._glRenderer}
301
+ ${engine._glVersion}
302
+
303
+ Main Model Path: ${resourcePaths.mainModel}
304
+ Main Motion Path: ${resourcePaths.mainMotion}
305
+ Main Audio Path: ${resourcePaths.audio}
306
+
307
+ FPS Disp: ${mathFunc.rounder('floor', engine.performanceMonitor.averageFPS, 2, true)} fps avg (${mathFunc.rounder('floor', engine.performanceMonitor.instantaneousFPS, 2, true)} fps)
308
+ FPS Limit: ${isLimitFPS ? mathFunc.rounder('floor', parseFloat(urlQueryObject.fps), 2, true) + ' fps' : 'unlimited'}
309
+ FPS Real: ${isLimitFPS ? mathFunc.rounder('floor', 1000 / sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true) : mathFunc.rounder('floor', 1000 / sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true)} fps
310
+
311
+ Active Meshes: ${scene.getActiveMeshes().length} / ${scene.meshes.length}
312
+ Total Vertices: ${scene.totalVerticesPerfCounter.current}
313
+ Active Indices: ${scene.totalActiveIndicesPerfCounter.current}
314
+ Total Objects: ${scene.materials.length} mat, ${scene.textures.length} tex, ${scene.animatables.length} anm, ${scene.lights.length} lit
315
+ Draw Calls Count: ${sceneInstrumentation.drawCallsCounter.current}
316
+
317
+ Frame Count: ${engine.frameId} frame
318
+ Actually Frame: ${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2, true)} ms avg (${mathFunc.rounder('floor', engine.performanceMonitor.instantaneousFrameTime, 2, true)} ms)
319
+ Scene Frame: ${mathFunc.rounder('ceil', sceneInstrumentation.frameTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.frameTimeCounter.current, 2, true)} ms)
320
+ Active Meshes Eval: ${mathFunc.rounder('ceil', sceneInstrumentation.activeMeshesEvaluationTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.activeMeshesEvaluationTimeCounter.current, 2, true)} ms)
321
+ Particles Render: ${mathFunc.rounder('ceil', sceneInstrumentation.particlesRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.particlesRenderTimeCounter.current, 2, true)} ms)
322
+ Inter Frame: ${mathFunc.rounder('ceil', sceneInstrumentation.interFrameTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.interFrameTimeCounter.current, 2, true)} ms)
323
+ GPU Frame: ${mathFunc.rounder('ceil', engineInstrumentation.gpuFrameTimeCounter.lastSecAverage * 0.000001, 2, true)} ms avg (${mathFunc.rounder('ceil', engineInstrumentation.gpuFrameTimeCounter.current * 0.000001, 2, true)} ms)
324
+ Shader Comp Total: ${mathFunc.rounder('ceil', engineInstrumentation.shaderCompilationTimeCounter.count, 2, true)} ms
325
+ Scene Render: ${mathFunc.rounder('ceil', sceneInstrumentation.renderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.renderTimeCounter.current, 2, true)} ms)
326
+ Camera Render: ${mathFunc.rounder('ceil', sceneInstrumentation.cameraRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.cameraRenderTimeCounter.current, 2, true)} ms)
327
+ Targets Render: ${mathFunc.rounder('ceil', sceneInstrumentation.renderTargetsRenderTimeCounter.lastSecAverage, 2, true)} ms avg (${mathFunc.rounder('ceil', sceneInstrumentation.renderTargetsRenderTimeCounter.current, 2, true)} ms)
328
+
329
+ Heap: ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.usedJSHeapSize / 1024 / 1024, 2, true))} MB / ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.totalJSHeapSize / 1024 / 1024, 2, true))} MB (Limit ${!performance.memory ? 'Unavailable' : (mathFunc.rounder('ceil', performance.memory.jsHeapSizeLimit / 1024 / 1024, 2, true))} MB)
330
+ `;
331
  }
332
  }, 10);
333
  await new Promise(resolve => setTimeout(resolve, 1000));
334
  mmdRuntime.playAnimation();
335
+ console.log(sceneInstrumentation)
336
  return scene;
337
  }
338
  }
script_worst.js ADDED
@@ -0,0 +1,282 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const mathFunc = {
2
+ 'arrayMax': (array) => {
3
+ const maxfct = (a, b) => {return Math.max(a, b)};
4
+ return array.reduce(maxfct);
5
+ },
6
+ 'arrayMin': (array) => {
7
+ const minfct = (a, b) => {return Math.min(a, b)};
8
+ return array.reduce(minfct);
9
+ },
10
+ 'arrayTotal': (array) => {
11
+ return array.reduce((acc, f) => acc + f, 0);
12
+ },
13
+ 'arrayAvg': (array) => {
14
+ return array.reduce((acc, f) => acc + f, 0) / array.length;
15
+ },
16
+ 'rounder': (method, num, n, zeroPadding = false) => {
17
+ const pow = Math.pow(10, n);
18
+ let result;
19
+ switch (method) {
20
+ case 'floor':
21
+ result = Math.floor(num * pow) / pow;
22
+ break;
23
+ case 'ceil':
24
+ result = Math.ceil(num * pow) / pow;
25
+ break;
26
+ case 'round':
27
+ result = Math.round(num * pow) / pow;
28
+ break;
29
+ default:
30
+ throw new Error('Invalid rounding method specified.');
31
+ }
32
+ if (zeroPadding) {
33
+ return result.toFixed(n);
34
+ } else {
35
+ return result;
36
+ }
37
+ },
38
+ 'formatFileSize': (bytes, decimals = 2) => {
39
+ if (bytes === 0) return '0 byte';
40
+ const k = 1024;
41
+ const dm = decimals < 0 ? 0 : decimals;
42
+ const sizes = ['bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
43
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
44
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
45
+ }
46
+ };
47
+
48
+ const resourcePathSetsDefault = {
49
+ 'track': 'melancholy_night',
50
+ 'mainModel': 'alicia'
51
+ };
52
+ const resourcePathSets = {
53
+ 'track': {
54
+ 'conqueror': {
55
+ 'mainMotion': './res/track/conqueror/merged.bvmd',
56
+ 'audio': './res/track/conqueror/audio.m4a'
57
+ },
58
+ 'melancholy_night': {
59
+ 'mainMotion': './res/track/melancholy_night/motion.bvmd',
60
+ 'audio': './res/track/melancholy_night/melancholy_night.m4a'
61
+ }
62
+ },
63
+ 'mainModel': {
64
+ 'alicia': './res/model/Alicia.bpmx',
65
+ 'raidenShogun': './res/model/RaidenShogun.bpmx',
66
+ 'yyb_miku_10th': './res/model/yyb_hatsune_miku_10th_v1.02.bpmx'
67
+ }
68
+ };
69
+ const resourcePaths = {
70
+ 'mainModel': resourcePathSets.mainModel[resourcePathSetsDefault.mainModel],
71
+ 'mainMotion': resourcePathSets.track[resourcePathSetsDefault.track].mainMotion,
72
+ 'audio': resourcePathSets.track[resourcePathSetsDefault.track].audio,
73
+ };
74
+ const urlQueryObject = Object.fromEntries(new URLSearchParams(window.location.search));
75
+ if (Object.keys(urlQueryObject).some(el => el === 'track')) {
76
+ for (let i = 0; i < Object.keys(resourcePathSets.track).length; i++) {
77
+ if (urlQueryObject.track === Object.keys(resourcePathSets.track)[i]) {
78
+ resourcePaths.mainMotion = resourcePathSets.track[Object.keys(resourcePathSets.track)[i]].mainMotion;
79
+ resourcePaths.audio = resourcePathSets.track[Object.keys(resourcePathSets.track)[i]].audio;
80
+ }
81
+ }
82
+ }
83
+ if (Object.keys(urlQueryObject).some(el => el === 'mainModel')) {
84
+ for (let i = 0; i < Object.keys(resourcePathSets.mainModel).length; i++) {
85
+ if (urlQueryObject.mainModel === Object.keys(resourcePathSets.mainModel)[i]) {
86
+ resourcePaths.mainModel = resourcePathSets.mainModel[Object.keys(resourcePathSets.mainModel)[i]];
87
+ }
88
+ }
89
+ }
90
+
91
+ var canvas = document.getElementById("renderCanvas");
92
+ var startRenderLoop = function (engine, canvas) {
93
+ engine.runRenderLoop(function () {
94
+ if (sceneToRender && sceneToRender.activeCamera) {
95
+ sceneToRender.render();
96
+ }
97
+ });
98
+ };
99
+ var engine = null;
100
+ var scene = null;
101
+ var sceneToRender = null;
102
+ var createDefaultEngine = function () {
103
+ return new BABYLON.Engine(canvas, true, { preserveDrawingBuffer: true, stencil: true, disableWebGL2Support: false });
104
+ };
105
+ class Playground {
106
+ static async CreateScene(engine, canvas) {
107
+ await new Promise((resolve) => {
108
+ const babylonMmdScript = document.createElement("script");
109
+ babylonMmdScript.src = "https://www.unpkg.com/[email protected]/umd/babylon.mmd.min.js";
110
+ document.head.appendChild(babylonMmdScript);
111
+ babylonMmdScript.onload = resolve;
112
+ });
113
+ if (engine.hostInformation.isMobile) {engine.setHardwareScalingLevel(0.85)} else {engine.setHardwareScalingLevel(0.75)}
114
+ const pmxLoader = BABYLON.SceneLoader.GetPluginForExtension(".pmx");
115
+ const materialBuilder = pmxLoader.materialBuilder;
116
+ materialBuilder.useAlphaEvaluation = false;
117
+ materialBuilder.loadOutlineRenderingProperties = () => {};
118
+ // const alphaBlendMaterials = ["face02", "Facial02", "HL", "Hairshadow", "q302"];
119
+ // const alphaTestMaterials = ["q301"];
120
+ // materialBuilder.afterBuildSingleMaterial = (material) => {
121
+ // if (!alphaBlendMaterials.includes(material.name) && !alphaTestMaterials.includes(material.name)) return;
122
+ // material.transparencyMode = alphaBlendMaterials.includes(material.name) ? BABYLON.Material.MATERIAL_ALPHABLEND : BABYLON.Material.MATERIAL_ALPHATEST;
123
+ // material.useAlphaFromDiffuseTexture = true;
124
+ // material.diffuseTexture.hasAlpha = true;
125
+ // };
126
+ const scene = new BABYLON.Scene(engine);
127
+ // BABYLON.SceneOptimizer.OptimizeAsync(scene);
128
+ // scene.clearColor = new BABYLON.Color4(0.95, 0.95, 0.95, 1.0);
129
+ scene.clearColor = new BABYLON.Color4(0, 0, 0, 1.0);
130
+ const mmdCamera = new BABYLONMMD.MmdCamera("MmdCamera", new BABYLON.Vector3(0, 10, 0), scene);
131
+ mmdCamera.maxZ = 5000;
132
+ const camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 0, 0, 45, new BABYLON.Vector3(0, 10, 0), scene);
133
+ camera.maxZ = 5000;
134
+ camera.setPosition(new BABYLON.Vector3(0, 10, -45));
135
+ camera.attachControl(canvas, false);
136
+ camera.inertia = 0.8;
137
+ camera.speed = 10;
138
+ const hemisphericLight = new BABYLON.HemisphericLight("HemisphericLight", new BABYLON.Vector3(0, 1, 0), scene);
139
+ hemisphericLight.intensity = 1;
140
+ hemisphericLight.specular = new BABYLON.Color3(0, 0, 0);
141
+ hemisphericLight.groundColor = new BABYLON.Color3(0, 0, 0);
142
+ // const directionalLight = new BABYLON.DirectionalLight("DirectionalLight", new BABYLON.Vector3(0.5, -1, 1), scene);
143
+ // directionalLight.intensity = 0.8;
144
+ // directionalLight.autoCalcShadowZBounds = false;
145
+ // directionalLight.autoUpdateExtends = false;
146
+ // directionalLight.shadowMaxZ = 20;
147
+ // directionalLight.shadowMinZ = -15;
148
+ // directionalLight.orthoTop = 18;
149
+ // directionalLight.orthoBottom = -1;
150
+ // directionalLight.orthoLeft = -10;
151
+ // directionalLight.orthoRight = 10;
152
+ // directionalLight.shadowOrthoScale = 0;
153
+ // const shadowGenerator = new BABYLON.ShadowGenerator(1024, directionalLight, true);
154
+ // shadowGenerator.usePercentageCloserFiltering = true;
155
+ // shadowGenerator.forceBackFacesOnly = true;
156
+ // shadowGenerator.filteringQuality = BABYLON.ShadowGenerator.QUALITY_MEDIUM;
157
+ // shadowGenerator.frustumEdgeFalloff = 0.1;
158
+ const mmdRuntime = new BABYLONMMD.MmdRuntime(scene, new BABYLONMMD.MmdPhysics(scene));
159
+ mmdRuntime.register(scene);
160
+ const audioPlayer = new BABYLONMMD.StreamAudioPlayer(scene);
161
+ audioPlayer.preservesPitch = false;
162
+ audioPlayer.source = resourcePaths.audio;
163
+ mmdRuntime.setAudioPlayer(audioPlayer);
164
+ const mmdPlayerControl = new BABYLONMMD.MmdPlayerControl(scene, mmdRuntime, audioPlayer);
165
+ mmdPlayerControl.showPlayerControl();
166
+ engine.displayLoadingUI();
167
+ let loadingTexts = [];
168
+ const updateLoadingText = (updateIndex, text) => {
169
+ loadingTexts[updateIndex] = text;
170
+ engine.loadingUIText = "<br/><br/><br/><br/>" + loadingTexts.join("<br/><br/>");
171
+ };
172
+ const promises = [];
173
+ const bvmdLoader = new BABYLONMMD.BvmdLoader(scene);
174
+ promises.push(bvmdLoader.loadAsync("motion", resourcePaths.mainMotion, (event) => updateLoadingText(0, `Loading motion... ${event.loaded}/${event.total} (${Math.floor((event.loaded * 100) / event.total)}%)`)));
175
+ promises.push(BABYLON.SceneLoader.ImportMeshAsync(undefined, resourcePaths.mainModel, undefined, scene, (event) => updateLoadingText(1, `Loading model... ${event.loaded}/${event.total} (${Math.floor((event.loaded * 100) / event.total)}%)`)));
176
+ promises.push(
177
+ (async () => {
178
+ updateLoadingText(2, "Loading physics engine...");
179
+ const havokPlugin = new BABYLON.HavokPlugin();
180
+ // scene.enablePhysics(new BABYLON.Vector3(0, -9.8, 0), havokPlugin);
181
+ scene.enablePhysics(new BABYLON.Vector3(0, -9.8, 0), havokPlugin);
182
+ updateLoadingText(2, "Loading physics engine... Done");
183
+ })()
184
+ );
185
+ loadingTexts = new Array(promises.length).fill("");
186
+ const loadResults = await Promise.all(promises);
187
+ scene.onAfterRenderObservable.addOnce(() => engine.hideLoadingUI());
188
+ mmdRuntime.setCamera(mmdCamera);
189
+ mmdCamera.addAnimation(loadResults[0]);
190
+ mmdCamera.setAnimation("motion");
191
+ const modelMesh = loadResults[1].meshes[0];
192
+ modelMesh.receiveShadows = true;
193
+ // shadowGenerator.addShadowCaster(modelMesh);
194
+ const mmdModel = mmdRuntime.createMmdModel(modelMesh);
195
+ mmdModel.addAnimation(loadResults[0]);
196
+ mmdModel.setAnimation("motion");
197
+ mmdModel.mesh.metadata.materials.forEach(mtr => {mtr.wireframe = true});
198
+ const bodyBone = loadResults[1].skeletons[0].bones.find((bone) => bone.name === "センター");
199
+ // scene.onBeforeRenderObservable.add(() => {
200
+ // bodyBone.getFinalMatrix().getTranslationToRef(directionalLight.position);
201
+ // directionalLight.position.y -= 10;
202
+ // });
203
+ const ground = BABYLON.MeshBuilder.CreateGround("Ground", { width: 100, height: 100, subdivisions: 2, updatable: false }, scene);
204
+ ground.receiveShadows = true;
205
+ const groundMaterial = (ground.material = new BABYLON.StandardMaterial("GroundMaterial", scene));
206
+ groundMaterial.diffuseColor = new BABYLON.Color3(0.25, 0.25, 0.25);
207
+ groundMaterial.specularPower = 128;
208
+ const groundReflectionTexture = (groundMaterial.reflectionTexture = new BABYLON.MirrorTexture("MirrorTexture", 1024, scene, true));
209
+ groundReflectionTexture.mirrorPlane = BABYLON.Plane.FromPositionAndNormal(ground.position, ground.getFacetNormal(0).scale(-1));
210
+ groundReflectionTexture.renderList = [modelMesh];
211
+ groundReflectionTexture.level = 0.25;
212
+ const guiCamera = new BABYLON.ArcRotateCamera("GUICamera", Math.PI / 2 + Math.PI / 7, Math.PI / 2, 100, new BABYLON.Vector3(0, 20, 0), scene);
213
+ guiCamera.layerMask = 0x10000000;
214
+ scene.activeCameras = [mmdCamera, guiCamera];
215
+ let lastClickTime = -Infinity;
216
+ canvas.onclick = () => {
217
+ const currentTime = performance.now();
218
+ if (500 < currentTime - lastClickTime) {
219
+ lastClickTime = currentTime;
220
+ return;
221
+ }
222
+ lastClickTime = -Infinity;
223
+ if (scene.activeCameras[0] === mmdCamera) scene.activeCameras = [camera, guiCamera];
224
+ else scene.activeCameras = [mmdCamera, guiCamera];
225
+ };
226
+ const advancedTexture = BABYLON.GUI.AdvancedDynamicTexture.CreateFullscreenUI("UI");
227
+ advancedTexture.layer.layerMask = 0x10000000;
228
+ advancedTexture.renderScale = 1.5;
229
+ const textblock = new BABYLON.GUI.TextBlock();
230
+ // textblock.widthInPixels = 800;
231
+ // textblock.left = 10;
232
+ textblock.text = `${engine._glRenderer}\n${engine._glVersion}`;
233
+ textblock.fontSize = 32;
234
+ textblock.fontFamily = "system-ui";
235
+ textblock.textHorizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
236
+ textblock.textVerticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
237
+ textblock.horizontalAlignment = BABYLON.GUI.Control.HORIZONTAL_ALIGNMENT_LEFT;
238
+ textblock.verticalAlignment = BABYLON.GUI.Control.VERTICAL_ALIGNMENT_TOP;
239
+ textblock.color = "#ffffff";
240
+ advancedTexture.addControl(textblock);
241
+ const textBlockUpdateDisp = setInterval(() => {
242
+ if (engine.hostInformation.isMobile) {
243
+ textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${engine.frameId} f\n${mathFunc.rounder('floor', engine.getFps(), 2)} fps\n${mathFunc.rounder('floor', engine.performanceMonitor.averageFrameTime, 2)} ms`;
244
+ } else {
245
+ textblock.text = `${engine._glRenderer}\n${engine._glVersion}\n\n${resourcePaths.mainModel}\n${resourcePaths.mainMotion}\n${resourcePaths.audio}\n\n${engine.frameId} frame\n${Math.floor(engine.getFps())} fps\n${Math.floor(engine.performanceMonitor.averageFrameTime)} ms`;
246
+ }
247
+ }, 10);
248
+ await new Promise(resolve => setTimeout(resolve, 1000));
249
+ mmdRuntime.playAnimation();
250
+ return scene;
251
+ }
252
+ }
253
+ createScene = function () {
254
+ return Playground.CreateScene(engine, engine.getRenderingCanvas());
255
+ };
256
+ window.initFunction = async function () {
257
+ globalThis.HK = await HavokPhysics();
258
+
259
+ var asyncEngineCreation = async function () {
260
+ try {
261
+ return createDefaultEngine();
262
+ } catch (e) {
263
+ console.log("the available createEngine function failed. Creating the default engine instead");
264
+ return createDefaultEngine();
265
+ }
266
+ };
267
+
268
+ window.engine = await asyncEngineCreation();
269
+ if (!engine) throw "engine should not be null.";
270
+ startRenderLoop(engine, canvas);
271
+ window.scene = createScene();
272
+ };
273
+ initFunction().then(() => {
274
+ scene.then((returnedScene) => {
275
+ sceneToRender = returnedScene;
276
+ });
277
+ });
278
+
279
+ // Resize
280
+ window.addEventListener("resize", function () {
281
+ engine.resize();
282
+ });
res/model/Alicia/Alicia_blade.pmx → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.ttf RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:90fe040b70cead1f0c73d9c304f6d61f5c1e8189a2643e88b9170b435b9c77d5
3
- size 319682
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1e6671d875a1736d84970b31bf7cd761d741a83433761873804d3553fa7fb7c7
3
+ size 324300
res/model/Alicia/Alicia_body.png → wss/fonts/SF-Mono/v1/sf-mono_bold-italic.woff RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c270a0ce8465f5264af209132e7a2417af897b63c8e49ae541bccad955403d97
3
- size 530102
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:494b9c532f7130c093f99b0de040444bac66ec270c61929db2a737de99a443a4
3
+ size 132804
res/model/Alicia/Alicia_eye.png → wss/fonts/SF-Mono/v1/sf-mono_bold.eot RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:aafac9f1e664d2718b64a8eec22d5a5b0f2197907d26b0b21d3dbbe49bbfa6d9
3
- size 179401
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c25b01e5c6d8314cc5328e00c7a2784cd5e5d8925dcf03891d1aeeb70d8042f0
3
+ size 315890
res/model/Alicia/Alicia_face.png → wss/fonts/SF-Mono/v1/sf-mono_bold.ttf RENAMED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e483e694109d437e0bff5718d20a905a7d40fac3cefa9bb457bb4ce6aee68a6d
3
- size 513791
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73766b118db7cec3f59c1fce65fd9a612e90c997bd8776010b0a0b0f5aa6162e
3
+ size 315716
wss/fonts/SF-Mono/v1/sf-mono_bold.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8293388b51eff7b6c5d3396008892409b1334344c63408c70a7a6a78aa9eec9a
3
+ size 141072
wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:942a5d6b34b5f6acb731b511d46451edef572661668a05ef3687a8518b74bed0
3
+ size 327464
wss/fonts/SF-Mono/v1/sf-mono_heavy-italic.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f1a084067ab341fad9dd9bef6bd715270fccb7c70e9627d8dc1ab0f1b743f4f5
3
+ size 126356
wss/fonts/SF-Mono/v1/sf-mono_heavy.eot ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d64459ad540aa7d7743a43e2fe3d890ce11e2414a35bb5653fd3d59ff149fee1
3
+ size 319202
wss/fonts/SF-Mono/v1/sf-mono_heavy.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:05960185aa26dd99cd45c9d680c48812b5e6989fff5031ad6a29886ad9536d0f
3
+ size 319024
wss/fonts/SF-Mono/v1/sf-mono_heavy.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ae7f3beb937111a5082e946478e814e0ab49dacdd52dae0231fe271c9f42c102
3
+ size 137060
wss/fonts/SF-Mono/v1/sf-mono_light-italic.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:017ec3083a7b58e4b51ec72ec5cf86d356c057369abbe9cbbb769287c26f87db
3
+ size 316956
wss/fonts/SF-Mono/v1/sf-mono_light-italic.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:237803226af4efde19393c13506ac52b569a294634ea39f2d62a3756fd9135b1
3
+ size 141816
wss/fonts/SF-Mono/v1/sf-mono_light.eot ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7b40451f77afb5060e420d567883eae0c74f98ecf18a30236b704e2409a9627c
3
+ size 313726
wss/fonts/SF-Mono/v1/sf-mono_light.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5455967910b0624b1a532190798f197503c9fe2d813fb92b6c45bcf7387eca6c
3
+ size 313548
wss/fonts/SF-Mono/v1/sf-mono_light.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a031addedc1e913a2612b679965824d292fdfa0cefdcb31234e5686300da97a8
3
+ size 144336
wss/fonts/SF-Mono/v1/sf-mono_medium-italic.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc84e11a16806c38efb42cbc94d358fa25d4407900e136ca95defef9f7f8c1df
3
+ size 321908
wss/fonts/SF-Mono/v1/sf-mono_medium-italic.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7c588826309c35ad47ee1bad223d351a05a23cede8c6002be8f7cd03d4a094d0
3
+ size 138264
wss/fonts/SF-Mono/v1/sf-mono_medium.eot ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf3c8c1dae72fa7c74a04ca1c3539dedf608aa9d62cbaaeca955a9b3cd54ad24
3
+ size 318518
wss/fonts/SF-Mono/v1/sf-mono_medium.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:050a6fc653773dee03052541faeaada29f5f11fbfd4458ec89c94dc6be2f33fe
3
+ size 318336
wss/fonts/SF-Mono/v1/sf-mono_medium.woff ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6177e0a9f3bd502229339c3d3153e9a36b4e1fb3aa72c8e679ece58dc86b5193
3
+ size 146164
wss/fonts/SF-Mono/v1/sf-mono_regular-italic.ttf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:16a93ed125bdbc90a769dcbb8d14c46a5300bd7f4c9b0f38df0f0f18c5689fcc
3
+ size 325120