Skip to content

Instantly share code, notes, and snippets.

@ryanbaumann
Last active April 23, 2023 20:29
Show Gist options
  • Save ryanbaumann/b9725e79b5b1742d92ada00ddbf5c3d3 to your computer and use it in GitHub Desktop.
Save ryanbaumann/b9725e79b5b1742d92ada00ddbf5c3d3 to your computer and use it in GitHub Desktop.
Mapbox Custom Layers - Add a 3D GLTF model to a map with Three.js
{
"accessors" : [
{
"bufferView" : 0,
"componentType" : 5123,
"count" : 4320,
"max" : [
1439
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 1,
"componentType" : 5126,
"count" : 1440,
"max" : [
36.49195098876953,
-5.349655628204346,
36.49195098876953
],
"min" : [
-36.49192810058594,
-12.621109008789062,
-36.491943359375
],
"type" : "VEC3"
},
{
"bufferView" : 2,
"componentType" : 5126,
"count" : 1440,
"max" : [
0.33613085746765137,
0.9900814890861511,
0.33613085746765137
],
"min" : [
-0.33613085746765137,
-0.9900814890861511,
-0.33613085746765137
],
"type" : "VEC3"
},
{
"bufferView" : 3,
"componentType" : 5126,
"count" : 1440,
"max" : [
1.0149125955649652e-05,
0.3361353576183319,
1.0,
1.0
],
"min" : [
-1.26021159303491e-05,
-0.3361353874206543,
0.9418136477470398,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 4,
"componentType" : 5126,
"count" : 1440,
"max" : [
0.6727940440177917,
0.6482605338096619
],
"min" : [
0.12992793321609497,
0.10539436340332031
],
"type" : "VEC2"
},
{
"bufferView" : 5,
"componentType" : 5123,
"count" : 4320,
"max" : [
2753
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 6,
"componentType" : 5126,
"count" : 2754,
"max" : [
69.84478759765625,
12.667926788330078,
69.84477233886719
],
"min" : [
-69.84465026855469,
-12.621108055114746,
-69.84469604492188
],
"type" : "VEC3"
},
{
"bufferView" : 7,
"componentType" : 5126,
"count" : 2754,
"max" : [
1.0,
0.9224047660827637,
1.0
],
"min" : [
-1.0,
-0.9224047660827637,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 8,
"componentType" : 5126,
"count" : 2754,
"max" : [
1.0,
0.027768071740865707,
0.999833345413208,
1.0
],
"min" : [
-0.999833345413208,
0.0,
-0.999833345413208,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 9,
"componentType" : 5126,
"count" : 2754,
"max" : [
0.9595162272453308,
0.9493942596018314
],
"min" : [
0.3226962089538574,
0.056314826011657715
],
"type" : "VEC2"
},
{
"bufferView" : 10,
"componentType" : 5121,
"count" : 36,
"max" : [
7
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 11,
"componentType" : 5126,
"count" : 8,
"max" : [
0.5000002384185791,
0.5,
0.5000002980232239
],
"min" : [
-0.5000001788139343,
-0.5,
-0.5000001788139343
],
"type" : "VEC3"
},
{
"bufferView" : 12,
"componentType" : 5126,
"count" : 8,
"max" : [
0.5773491859436035,
0.5773491859436035,
0.5773491859436035
],
"min" : [
-0.5773491859436035,
-0.5773491859436035,
-0.5773491859436035
],
"type" : "VEC3"
},
{
"bufferView" : 13,
"componentType" : 5123,
"count" : 46512,
"max" : [
31295
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 14,
"componentType" : 5126,
"count" : 31296,
"max" : [
16.975059509277344,
3.8333749771118164,
16.975059509277344
],
"min" : [
-16.975059509277344,
-3.8333749771118164,
-16.975059509277344
],
"type" : "VEC3"
},
{
"bufferView" : 15,
"componentType" : 5126,
"count" : 31296,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 16,
"componentType" : 5126,
"count" : 31296,
"max" : [
1.0,
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 17,
"componentType" : 5126,
"count" : 31296,
"max" : [
0.9935733675956726,
1.0
],
"min" : [
0.0,
-0.0023163557052612305
],
"type" : "VEC2"
},
{
"bufferView" : 18,
"componentType" : 5123,
"count" : 5184,
"max" : [
1790
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 19,
"componentType" : 5126,
"count" : 1791,
"max" : [
1.0,
0.06735789775848389,
1.0
],
"min" : [
-1.0,
-0.10683238506317139,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 20,
"componentType" : 5126,
"count" : 1791,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 21,
"componentType" : 5126,
"count" : 1791,
"max" : [
0.9700335264205933,
1.0,
0.9700339436531067,
1.0
],
"min" : [
-0.8577307462692261,
-1.0,
-0.21603623032569885,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 22,
"componentType" : 5126,
"count" : 1791,
"max" : [
0.9788556098937988,
0.9788556378334761
],
"min" : [
0.021144362166523933,
0.023888051509857178
],
"type" : "VEC2"
},
{
"bufferView" : 23,
"componentType" : 5121,
"count" : 384,
"max" : [
129
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 24,
"componentType" : 5126,
"count" : 130,
"max" : [
1.0,
-0.09395349025726318,
1.0
],
"min" : [
-1.0,
-0.31497079133987427,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 25,
"componentType" : 5126,
"count" : 130,
"max" : [
1.0,
0.0,
1.0
],
"min" : [
-1.0,
0.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 26,
"componentType" : 5126,
"count" : 130,
"max" : [
1.0,
1.5435221030202229e-06,
1.0,
1.0
],
"min" : [
-1.0,
-1.5401772088807775e-06,
-0.9999999403953552,
1.0
],
"type" : "VEC4"
},
{
"bufferView" : 27,
"componentType" : 5126,
"count" : 130,
"max" : [
1.0000005960464478,
0.23991501331329346
],
"min" : [
4.382429974469915e-09,
0.12969976663589478
],
"type" : "VEC2"
},
{
"bufferView" : 28,
"componentType" : 5123,
"count" : 564,
"max" : [
391
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 29,
"componentType" : 5126,
"count" : 392,
"max" : [
6.744287014007568,
0.569674015045166,
1.2193074226379395
],
"min" : [
-6.747665882110596,
-6.1507086753845215,
-1.1822205781936646
],
"type" : "VEC3"
},
{
"bufferView" : 30,
"componentType" : 5126,
"count" : 392,
"max" : [
0.9999985098838806,
0.9999985098838806,
1.0
],
"min" : [
-0.9999985098838806,
-0.9999984502792358,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 31,
"componentType" : 5126,
"count" : 392,
"max" : [
1.0,
1.458404767618049e-05,
1.0,
1.0
],
"min" : [
-2.3204409444588237e-05,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 32,
"componentType" : 5126,
"count" : 392,
"max" : [
0.4893047511577606,
0.9729505646973848
],
"min" : [
0.11978184431791306,
0.2782389521598816
],
"type" : "VEC2"
},
{
"bufferView" : 33,
"componentType" : 5123,
"count" : 392,
"max" : [
0,
0,
0,
0
],
"min" : [
0,
0,
0,
0
],
"type" : "VEC4"
},
{
"bufferView" : 34,
"componentType" : 5126,
"count" : 392,
"max" : [
0.0,
0.0,
0.0,
0.0
],
"min" : [
0.0,
0.0,
0.0,
0.0
],
"type" : "VEC4"
},
{
"bufferView" : 35,
"componentType" : 5123,
"count" : 2928,
"max" : [
1967
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 36,
"componentType" : 5126,
"count" : 1968,
"max" : [
8.300003051757812,
2.219694137573242,
7.7161736488342285
],
"min" : [
-8.12352180480957,
-3.40358304977417,
-7.715948581695557
],
"type" : "VEC3"
},
{
"bufferView" : 37,
"componentType" : 5126,
"count" : 1968,
"max" : [
0.9999996423721313,
1.0,
1.0
],
"min" : [
-0.9999997019767761,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 38,
"componentType" : 5126,
"count" : 1968,
"max" : [
0.9999992251396179,
0.9999954104423523,
0.9999956488609314,
1.0
],
"min" : [
-1.0,
-0.9999954104423523,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 39,
"componentType" : 5126,
"count" : 1968,
"max" : [
0.9961169362068176,
0.9961169576272368
],
"min" : [
0.003883042372763157,
0.004098713397979736
],
"type" : "VEC2"
},
{
"bufferView" : 40,
"componentType" : 5123,
"count" : 1968,
"max" : [
0,
0,
0,
0
],
"min" : [
0,
0,
0,
0
],
"type" : "VEC4"
},
{
"bufferView" : 41,
"componentType" : 5126,
"count" : 1968,
"max" : [
0.0,
0.0,
0.0,
0.0
],
"min" : [
0.0,
0.0,
0.0,
0.0
],
"type" : "VEC4"
},
{
"bufferView" : 42,
"componentType" : 5123,
"count" : 4578,
"max" : [
3231
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 43,
"componentType" : 5126,
"count" : 3232,
"max" : [
7.7541093826293945,
14.941898345947266,
8.424337387084961
],
"min" : [
-7.812407493591309,
-0.027576908469200134,
-8.407386779785156
],
"type" : "VEC3"
},
{
"bufferView" : 44,
"componentType" : 5126,
"count" : 3232,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 45,
"componentType" : 5126,
"count" : 3232,
"max" : [
1.0,
1.0,
0.9999997019767761,
1.0
],
"min" : [
-0.9999956488609314,
-0.999998927116394,
-0.9999988079071045,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 46,
"componentType" : 5126,
"count" : 3232,
"max" : [
0.9978219866752625,
0.997822037898004
],
"min" : [
0.002177962101995945,
0.004261493682861328
],
"type" : "VEC2"
},
{
"bufferView" : 47,
"componentType" : 5123,
"count" : 7248,
"max" : [
5087
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 48,
"componentType" : 5126,
"count" : 5088,
"max" : [
7.770600318908691,
0.00880289077758789,
6.379254341125488
],
"min" : [
-8.192119598388672,
-1.0115063190460205,
-6.596924304962158
],
"type" : "VEC3"
},
{
"bufferView" : 49,
"componentType" : 5126,
"count" : 5088,
"max" : [
0.7826282382011414,
1.0,
0.7826429009437561
],
"min" : [
-0.7826334834098816,
-1.0,
-0.7826375365257263
],
"type" : "VEC3"
},
{
"bufferView" : 50,
"componentType" : 5126,
"count" : 5088,
"max" : [
0.7829555869102478,
0.6344005465507507,
0.7826316356658936,
1.0
],
"min" : [
-0.7829576134681702,
-0.6343985795974731,
-0.7826921939849854,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 51,
"componentType" : 5126,
"count" : 5088,
"max" : [
0.9886839389801025,
0.9886839361861348
],
"min" : [
0.011316063813865185,
0.0039023756980895996
],
"type" : "VEC2"
},
{
"bufferView" : 52,
"componentType" : 5123,
"count" : 6360,
"max" : [
3024
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 53,
"componentType" : 5126,
"count" : 3025,
"max" : [
8.885674476623535,
17.7674617767334,
8.413803100585938
],
"min" : [
-2.8316636085510254,
0.6133326888084412,
-8.599433898925781
],
"type" : "VEC3"
},
{
"bufferView" : 54,
"componentType" : 5126,
"count" : 3025,
"max" : [
0.9851069450378418,
1.0,
1.0
],
"min" : [
-0.9851069450378418,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 55,
"componentType" : 5126,
"count" : 3025,
"max" : [
1.0,
0.9999691843986511,
1.0,
1.0
],
"min" : [
-1.0,
-0.6706302762031555,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 56,
"componentType" : 5126,
"count" : 3025,
"max" : [
0.992723286151886,
0.9450113773345947
],
"min" : [
0.02200431004166603,
0.3819183111190796
],
"type" : "VEC2"
},
{
"bufferView" : 57,
"componentType" : 5123,
"count" : 2376,
"max" : [
1583
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 58,
"componentType" : 5126,
"count" : 1584,
"max" : [
8.880882263183594,
13.860811233520508,
8.414960861206055
],
"min" : [
-2.835848808288574,
0.46072155237197876,
-8.603036880493164
],
"type" : "VEC3"
},
{
"bufferView" : 59,
"componentType" : 5126,
"count" : 1584,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 60,
"componentType" : 5126,
"count" : 1584,
"max" : [
1.0,
0.9999954104423523,
1.0,
1.0
],
"min" : [
-1.0,
-0.9999953508377075,
-0.9999924898147583,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 61,
"componentType" : 5126,
"count" : 1584,
"max" : [
0.9957819581031799,
0.9957819236442447
],
"min" : [
0.004218076355755329,
-0.03592050075531006
],
"type" : "VEC2"
},
{
"bufferView" : 62,
"componentType" : 5123,
"count" : 10716,
"max" : [
6781
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 63,
"componentType" : 5126,
"count" : 6782,
"max" : [
15.059650421142578,
28.773725509643555,
28.948020935058594
],
"min" : [
-15.059650421142578,
-28.773725509643555,
-28.948020935058594
],
"type" : "VEC3"
},
{
"bufferView" : 64,
"componentType" : 5126,
"count" : 6782,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 65,
"componentType" : 5126,
"count" : 6782,
"max" : [
1.0,
1.0,
0.9762440919876099,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 66,
"componentType" : 5126,
"count" : 6782,
"max" : [
0.9812881946563721,
0.4164721369743347
],
"min" : [
0.41909459233283997,
0.18228089809417725
],
"type" : "VEC2"
}
],
"asset" : {
"generator" : "Khronos Blender glTF 2.0 exporter",
"version" : "2.0"
},
"bufferViews" : [
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 0,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 17280,
"byteOffset" : 8640,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 17280,
"byteOffset" : 25920,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 23040,
"byteOffset" : 43200,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 11520,
"byteOffset" : 66240,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 77760,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 33048,
"byteOffset" : 86400,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 33048,
"byteOffset" : 119448,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 44064,
"byteOffset" : 152496,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 22032,
"byteOffset" : 196560,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 36,
"byteOffset" : 218592,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 96,
"byteOffset" : 218628,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 96,
"byteOffset" : 218724,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 93024,
"byteOffset" : 218820,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 375552,
"byteOffset" : 311844,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 375552,
"byteOffset" : 687396,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 500736,
"byteOffset" : 1062948,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 250368,
"byteOffset" : 1563684,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 10368,
"byteOffset" : 1814052,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 21492,
"byteOffset" : 1824420,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 21492,
"byteOffset" : 1845912,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 28656,
"byteOffset" : 1867404,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 14328,
"byteOffset" : 1896060,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 384,
"byteOffset" : 1910388,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 1560,
"byteOffset" : 1910772,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 1560,
"byteOffset" : 1912332,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 2080,
"byteOffset" : 1913892,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 1040,
"byteOffset" : 1915972,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 1128,
"byteOffset" : 1917012,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 4704,
"byteOffset" : 1918140,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4704,
"byteOffset" : 1922844,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 6272,
"byteOffset" : 1927548,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 3136,
"byteOffset" : 1933820,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 3136,
"byteOffset" : 1936956,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 6272,
"byteOffset" : 1940092,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 5856,
"byteOffset" : 1946364,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 23616,
"byteOffset" : 1952220,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 23616,
"byteOffset" : 1975836,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 31488,
"byteOffset" : 1999452,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 15744,
"byteOffset" : 2030940,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 15744,
"byteOffset" : 2046684,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 31488,
"byteOffset" : 2062428,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 9156,
"byteOffset" : 2093916,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 38784,
"byteOffset" : 2103072,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 38784,
"byteOffset" : 2141856,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 51712,
"byteOffset" : 2180640,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 25856,
"byteOffset" : 2232352,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 14496,
"byteOffset" : 2258208,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 61056,
"byteOffset" : 2272704,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 61056,
"byteOffset" : 2333760,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 81408,
"byteOffset" : 2394816,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 40704,
"byteOffset" : 2476224,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 12720,
"byteOffset" : 2516928,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 36300,
"byteOffset" : 2529648,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 36300,
"byteOffset" : 2565948,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 48400,
"byteOffset" : 2602248,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 24200,
"byteOffset" : 2650648,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4752,
"byteOffset" : 2674848,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 19008,
"byteOffset" : 2679600,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 19008,
"byteOffset" : 2698608,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 25344,
"byteOffset" : 2717616,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 12672,
"byteOffset" : 2742960,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 21432,
"byteOffset" : 2755632,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 81384,
"byteOffset" : 2777064,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 81384,
"byteOffset" : 2858448,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 108512,
"byteOffset" : 2939832,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 54256,
"byteOffset" : 3048344,
"target" : 34962
}
],
"buffers" : [
{
"byteLength" : 3102600,
"uri" : "https://dl.dropbox.com/s/mqyp8hqakmefdan/34M_17.bin"
}
],
"images" : [
{
"name" : "base_AO",
"uri" : "https://dl.dropbox.com/s/z43b8e902lpdzxi/base_AO.png"
},
{
"name" : "frame_AO",
"uri" : "https://dl.dropbox.com/s/rye1z3ci9uxmlzy/frame_AO.png"
},
{
"name" : "stairs_plt_AO",
"uri" : "https://dl.dropbox.com/s/2lj4yw1jaiw55gx/stairs_plt_AO.png"
},
{
"name" : "truss_2_AO",
"uri" : "https://dl.dropbox.com/s/cwo0i3pg6tz3nla/truss_2_AO.png"
},
{
"name" : "truss_dish_AO",
"uri" : "https://dl.dropbox.com/s/x0xw4sltxrytfb2/truss_dish_AO.jpg"
},
{
"name" : "wheels_AO",
"uri" : "https://dl.dropbox.com/s/od7jq1r6p4i8lfu/wheels_AO.png"
}
],
"materials" : [
{
"name" : "base_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 0
},
"metallicFactor" : 0.0
}
},
{
"name" : "frame_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 1
},
"metallicFactor" : 0.0
}
},
{
"name" : "stairs_plt_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 2
},
"metallicFactor" : 0.0
}
},
{
"name" : "tex_01",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6000000089406967,
0.6000000089406967,
0.6000000089406967,
1.0
],
"metallicFactor" : 0.0
}
},
{
"alphaMode" : "BLEND",
"name" : "tex_02",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6000000089406967,
0.6000000089406967,
0.6000000089406967,
0.26991379261016846
],
"metallicFactor" : 0.0
}
},
{
"alphaMode" : "BLEND",
"name" : "tex_02.003",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6000000089406967,
0.6000000089406967,
0.6000000089406967,
0.26991379261016846
],
"metallicFactor" : 0.0
}
},
{
"name" : "truss_2",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 3
},
"metallicFactor" : 0.0
}
},
{
"name" : "truss_dish_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 4
},
"metallicFactor" : 0.0
}
},
{
"name" : "wheels_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 5
},
"metallicFactor" : 0.0
}
}
],
"meshes" : [
{
"name" : "Cube.001",
"primitives" : [
{
"attributes" : {
"NORMAL" : 2,
"POSITION" : 1,
"TANGENT" : 3,
"TEXCOORD_0" : 4
},
"indices" : 0,
"material" : 4
}
]
},
{
"name" : "Cube.003",
"primitives" : [
{
"attributes" : {
"NORMAL" : 7,
"POSITION" : 6,
"TANGENT" : 8,
"TEXCOORD_0" : 9
},
"indices" : 5,
"material" : 5
}
]
},
{
"name" : "Cube.004",
"primitives" : [
{
"attributes" : {
"NORMAL" : 12,
"POSITION" : 11
},
"indices" : 10
}
]
},
{
"name" : "Cube.028",
"primitives" : [
{
"attributes" : {
"NORMAL" : 15,
"POSITION" : 14,
"TANGENT" : 16,
"TEXCOORD_0" : 17
},
"indices" : 13,
"material" : 7
}
]
},
{
"name" : "Cylinder.006",
"primitives" : [
{
"attributes" : {
"NORMAL" : 20,
"POSITION" : 19,
"TANGENT" : 21,
"TEXCOORD_0" : 22
},
"indices" : 18,
"material" : 0
},
{
"attributes" : {
"NORMAL" : 25,
"POSITION" : 24,
"TANGENT" : 26,
"TEXCOORD_0" : 27
},
"indices" : 23,
"material" : 3
}
]
},
{
"name" : "EW Symmetric.001",
"primitives" : [
{
"attributes" : {
"JOINTS_0" : 33,
"NORMAL" : 30,
"POSITION" : 29,
"TANGENT" : 31,
"TEXCOORD_0" : 32,
"WEIGHTS_0" : 34
},
"indices" : 28,
"material" : 3
},
{
"attributes" : {
"JOINTS_0" : 40,
"NORMAL" : 37,
"POSITION" : 36,
"TANGENT" : 38,
"TEXCOORD_0" : 39,
"WEIGHTS_0" : 41
},
"indices" : 35,
"material" : 6
}
]
},
{
"name" : "New Base",
"primitives" : [
{
"attributes" : {
"NORMAL" : 44,
"POSITION" : 43,
"TANGENT" : 45,
"TEXCOORD_0" : 46
},
"indices" : 42,
"material" : 1
},
{
"attributes" : {
"NORMAL" : 49,
"POSITION" : 48,
"TANGENT" : 50,
"TEXCOORD_0" : 51
},
"indices" : 47,
"material" : 8
},
{
"attributes" : {
"NORMAL" : 54,
"POSITION" : 53,
"TANGENT" : 55,
"TEXCOORD_0" : 56
},
"indices" : 52,
"material" : 3
},
{
"attributes" : {
"NORMAL" : 59,
"POSITION" : 58,
"TANGENT" : 60,
"TEXCOORD_0" : 61
},
"indices" : 57,
"material" : 2
}
]
},
{
"name" : "Tube",
"primitives" : [
{
"attributes" : {
"NORMAL" : 64,
"POSITION" : 63,
"TANGENT" : 65,
"TEXCOORD_0" : 66
},
"indices" : 62,
"material" : 3
}
]
}
],
"nodes" : [
{
"name" : "_Hemi_1",
"translation" : [
0.0,
47.0120735168457,
-0.0
]
},
{
"name" : "_Hemi_2",
"rotation" : [
-4.080360994831306e-15,
-3.422854533141617e-08,
-1.0,
-1.6292068494294654e-07
],
"translation" : [
0.0,
-19.727153778076172,
-0.0
]
},
{
"children" : [
3,
4
],
"mesh" : 2,
"name" : "_root",
"rotation" : [
0.0,
0.7071067094802856,
-0.0,
0.7071068286895752
],
"translation" : [
0.20364311337471008,
0.0,
-0.055298998951911926
]
},
{
"children" : [
7
],
"mesh" : 6,
"name" : "azimuth",
"translation" : [
0.0,
2.0,
-0.0
]
},
{
"mesh" : 4,
"name" : "base",
"scale" : [
9.468167304992676,
9.468167304992676,
9.468167304992676
],
"translation" : [
0.0,
2.0000009536743164,
-0.0
]
},
{
"mesh" : 1,
"name" : "dish",
"rotation" : [
0.0,
0.7071067094802856,
-2.026257807374865e-11,
0.7071068286895752
],
"scale" : [
0.2540522515773773,
0.2460452765226364,
0.2700994312763214
],
"translation" : [
0.07495447248220444,
6.8950653076171875,
0.00011226534843444824
]
},
{
"mesh" : 0,
"name" : "dish_center",
"rotation" : [
0.0,
0.7071067094802856,
-2.026257807374865e-11,
0.7071068286895752
],
"scale" : [
0.2540522515773773,
0.2460452765226364,
0.2700994312763214
],
"translation" : [
0.07495447248220444,
6.8950653076171875,
0.00011226534843444824
]
},
{
"children" : [
5,
6,
8,
9
],
"mesh" : 5,
"name" : "elevation",
"scale" : [
0.8969141840934753,
0.9845994114875793,
0.953567624092102
],
"translation" : [
-0.067250557243824,
15.13104248046875,
-0.00010704994201660156
]
},
{
"mesh" : 7,
"name" : "quad",
"rotation" : [
0.0,
0.7071067094802856,
-2.026257807374865e-11,
0.7071068286895752
],
"scale" : [
0.2540522515773773,
0.2460452765226364,
0.2700994312763214
],
"translation" : [
0.07495483756065369,
11.891695022583008,
0.00011226534843444824
]
},
{
"mesh" : 3,
"name" : "truss_dish",
"rotation" : [
0.0,
-0.7071068286895752,
-2.026257807374865e-11,
0.7071068286895752
],
"scale" : [
1.048693299293518,
1.0156415700912476,
1.1149338483810425
],
"translation" : [
0.15767686069011688,
6.011940002441406,
-0.13566318154335022
]
}
],
"samplers" : [
{}
],
"scene" : 0,
"scenes" : [
{
"name" : "Scene",
"nodes" : [
0,
1,
2
]
}
],
"textures" : [
{
"sampler" : 0,
"source" : 0
},
{
"sampler" : 0,
"source" : 1
},
{
"sampler" : 0,
"source" : 2
},
{
"sampler" : 0,
"source" : 3
},
{
"sampler" : 0,
"source" : 4
},
{
"sampler" : 0,
"source" : 5
}
]
}
{
"accessors" : [
{
"bufferView" : 0,
"componentType" : 5123,
"count" : 4662,
"max" : [
2983
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 1,
"componentType" : 5126,
"count" : 2984,
"max" : [
9.657371520996094,
8.693519592285156,
14.807779312133789
],
"min" : [
-9.657371520996094,
-8.693519592285156,
-14.807779312133789
],
"type" : "VEC3"
},
{
"bufferView" : 2,
"componentType" : 5126,
"count" : 2984,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 3,
"componentType" : 5126,
"count" : 2984,
"max" : [
1.0,
0.9415441155433655,
1.0,
1.0
],
"min" : [
-1.0,
-0.9966803789138794,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 4,
"componentType" : 5126,
"count" : 2984,
"max" : [
0.9866482019424438,
0.9520359113812447
],
"min" : [
0.10284537822008133,
0.6428010761737823
],
"type" : "VEC2"
},
{
"bufferView" : 5,
"componentType" : 5123,
"count" : 3720,
"max" : [
2479
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 6,
"componentType" : 5126,
"count" : 2480,
"max" : [
7.902162551879883,
1.6763954162597656,
15.552886962890625
],
"min" : [
-7.902162551879883,
-1.6763954162597656,
-15.552886962890625
],
"type" : "VEC3"
},
{
"bufferView" : 7,
"componentType" : 5126,
"count" : 2480,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 8,
"componentType" : 5126,
"count" : 2480,
"max" : [
0.9999953508377075,
0.9999953508377075,
0.9999953508377075,
1.0
],
"min" : [
-0.9999953508377075,
-0.9999953508377075,
-0.9999953508377075,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 9,
"componentType" : 5126,
"count" : 2480,
"max" : [
0.9984582662582397,
0.9984582304023206
],
"min" : [
0.0015417695976793766,
0.001155078411102295
],
"type" : "VEC2"
},
{
"bufferView" : 10,
"componentType" : 5123,
"count" : 2160,
"max" : [
719
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 11,
"componentType" : 5126,
"count" : 720,
"max" : [
18.245969772338867,
1.7668724060058594,
18.245973587036133
],
"min" : [
-18.245969772338867,
-1.7668685913085938,
-18.245973587036133
],
"type" : "VEC3"
},
{
"bufferView" : 12,
"componentType" : 5126,
"count" : 720,
"max" : [
0.33613085746765137,
-0.9418011903762817,
0.33613085746765137
],
"min" : [
-0.33613085746765137,
-0.9900814890861511,
-0.33613085746765137
],
"type" : "VEC3"
},
{
"bufferView" : 13,
"componentType" : 5126,
"count" : 720,
"max" : [
0.9872711300849915,
0.3360823690891266,
0.1590828150510788,
-1.0
],
"min" : [
0.9298414587974548,
-0.3360823094844818,
0.14980968832969666,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 14,
"componentType" : 5126,
"count" : 720,
"max" : [
0.4054555296897888,
0.2184147834777832
],
"min" : [
0.3462865352630615,
0.15924584865570068
],
"type" : "VEC2"
},
{
"bufferView" : 15,
"componentType" : 5123,
"count" : 4320,
"max" : [
2753
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 16,
"componentType" : 5126,
"count" : 2754,
"max" : [
34.922359466552734,
6.322257995605469,
34.922367095947266
],
"min" : [
-34.922359466552734,
-6.322257995605469,
-34.922367095947266
],
"type" : "VEC3"
},
{
"bufferView" : 17,
"componentType" : 5126,
"count" : 2754,
"max" : [
1.0,
0.9224050045013428,
1.0
],
"min" : [
-1.0,
-0.9224050045013428,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 18,
"componentType" : 5126,
"count" : 2754,
"max" : [
1.0,
0.027768099680542946,
0.999833345413208,
1.0
],
"min" : [
-0.9998332858085632,
0.0,
-0.999833345413208,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 19,
"componentType" : 5126,
"count" : 2754,
"max" : [
0.9595162272453308,
0.9493942596018314
],
"min" : [
0.3226962089538574,
0.056314826011657715
],
"type" : "VEC2"
},
{
"bufferView" : 20,
"componentType" : 5123,
"count" : 2160,
"max" : [
719
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 21,
"componentType" : 5126,
"count" : 720,
"max" : [
18.245969772338867,
1.7668685913085938,
18.245973587036133
],
"min" : [
-18.245969772338867,
-1.7668724060058594,
-18.245973587036133
],
"type" : "VEC3"
},
{
"bufferView" : 22,
"componentType" : 5126,
"count" : 720,
"max" : [
0.33613085746765137,
0.9900814890861511,
0.33613085746765137
],
"min" : [
-0.33613085746765137,
0.9418011903762817,
-0.33613085746765137
],
"type" : "VEC3"
},
{
"bufferView" : 23,
"componentType" : 5126,
"count" : 720,
"max" : [
1.0,
0.3361353278160095,
1.5606095985276625e-05,
1.0
],
"min" : [
0.9418136477470398,
-0.33613529801368713,
-1.5433124644914642e-05,
1.0
],
"type" : "VEC4"
},
{
"bufferView" : 24,
"componentType" : 5126,
"count" : 720,
"max" : [
0.7311474680900574,
0.7159449458122253
],
"min" : [
0.028418974950909615,
0.013216078281402588
],
"type" : "VEC2"
},
{
"bufferView" : 25,
"componentType" : 5121,
"count" : 36,
"max" : [
23
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 26,
"componentType" : 5126,
"count" : 24,
"max" : [
0.5000002384185791,
0.5,
0.5000002980232239
],
"min" : [
-0.5000002384185791,
-0.5,
-0.5000001788139343
],
"type" : "VEC3"
},
{
"bufferView" : 27,
"componentType" : 5126,
"count" : 24,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 28,
"componentType" : 5121,
"count" : 36,
"max" : [
23
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 29,
"componentType" : 5126,
"count" : 24,
"max" : [
0.706009030342102,
0.7060089111328125,
0.706009030342102
],
"min" : [
-0.706009030342102,
-0.7060089111328125,
-0.706009030342102
],
"type" : "VEC3"
},
{
"bufferView" : 30,
"componentType" : 5126,
"count" : 24,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 31,
"componentType" : 5123,
"count" : 46512,
"max" : [
31295
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 32,
"componentType" : 5126,
"count" : 31296,
"max" : [
35.036685943603516,
7.912120819091797,
35.036685943603516
],
"min" : [
-35.036685943603516,
-7.912120819091797,
-35.036685943603516
],
"type" : "VEC3"
},
{
"bufferView" : 33,
"componentType" : 5126,
"count" : 31296,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 34,
"componentType" : 5126,
"count" : 31296,
"max" : [
1.0,
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 35,
"componentType" : 5126,
"count" : 31296,
"max" : [
0.9935733675956726,
1.0
],
"min" : [
0.0,
-0.0023163557052612305
],
"type" : "VEC2"
},
{
"bufferView" : 36,
"componentType" : 5123,
"count" : 6213,
"max" : [
4099
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 37,
"componentType" : 5126,
"count" : 4100,
"max" : [
13.287628173828125,
34.48215103149414,
11.764385223388672
],
"min" : [
-14.89867877960205,
0.158477783203125,
-13.089681625366211
],
"type" : "VEC3"
},
{
"bufferView" : 38,
"componentType" : 5126,
"count" : 4100,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 39,
"componentType" : 5126,
"count" : 4100,
"max" : [
1.0,
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 40,
"componentType" : 5126,
"count" : 4100,
"max" : [
1.000439167022705,
1.0
],
"min" : [
0.0,
0.0
],
"type" : "VEC2"
},
{
"bufferView" : 41,
"componentType" : 5123,
"count" : 1986,
"max" : [
1329
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 42,
"componentType" : 5126,
"count" : 1330,
"max" : [
2.771421432495117,
8.085066795349121,
3.257598876953125
],
"min" : [
-2.771421432495117,
-8.085066795349121,
-3.257598876953125
],
"type" : "VEC3"
},
{
"bufferView" : 43,
"componentType" : 5126,
"count" : 1330,
"max" : [
0.939692497253418,
1.0,
0.9431169033050537
],
"min" : [
-0.939692497253418,
-1.0,
-0.9431168437004089
],
"type" : "VEC3"
},
{
"bufferView" : 44,
"componentType" : 5126,
"count" : 1330,
"max" : [
1.0,
1.0,
0.9999997019767761,
1.0
],
"min" : [
-0.20663052797317505,
-0.992956280708313,
-0.9299755096435547,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 45,
"componentType" : 5126,
"count" : 1330,
"max" : [
0.9187562465667725,
0.609456866979599
],
"min" : [
0.2748333215713501,
0.13289976119995117
],
"type" : "VEC2"
},
{
"bufferView" : 46,
"componentType" : 5123,
"count" : 2256,
"max" : [
1503
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 47,
"componentType" : 5126,
"count" : 1504,
"max" : [
1.5180175304412842,
7.876540184020996,
2.31280517578125
],
"min" : [
-1.5180175304412842,
-7.876540184020996,
-2.31280517578125
],
"type" : "VEC3"
},
{
"bufferView" : 48,
"componentType" : 5126,
"count" : 1504,
"max" : [
0.9393115639686584,
1.0,
0.9067785739898682
],
"min" : [
-0.9393115639686584,
-1.0,
-0.9067785143852234
],
"type" : "VEC3"
},
{
"bufferView" : 49,
"componentType" : 5126,
"count" : 1504,
"max" : [
1.0,
1.0,
0.948684573173523,
1.0
],
"min" : [
-9.145243529928848e-05,
0.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 50,
"componentType" : 5126,
"count" : 1504,
"max" : [
0.5616870522499084,
0.2392343282699585
],
"min" : [
0.3752063512802124,
0.203294575214386
],
"type" : "VEC2"
},
{
"bufferView" : 51,
"componentType" : 5123,
"count" : 11373,
"max" : [
5698
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 52,
"componentType" : 5126,
"count" : 5699,
"max" : [
13.6102294921875,
16.85870361328125,
9.143402099609375
],
"min" : [
-13.6102294921875,
-16.85870361328125,
-9.143402099609375
],
"type" : "VEC3"
},
{
"bufferView" : 53,
"componentType" : 5126,
"count" : 5699,
"max" : [
0.9999999403953552,
1.0,
0.9999999403953552
],
"min" : [
-0.9999999403953552,
-1.0,
-0.9999999403953552
],
"type" : "VEC3"
},
{
"bufferView" : 54,
"componentType" : 5126,
"count" : 5699,
"max" : [
1.0,
1.0,
1.0,
1.0
],
"min" : [
-0.9999998807907104,
-1.0,
-0.9999999403953552,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 55,
"componentType" : 5126,
"count" : 5699,
"max" : [
0.9926646947860718,
0.4576679468154907
],
"min" : [
0.9628840088844299,
0.34381306171417236
],
"type" : "VEC2"
},
{
"bufferView" : 56,
"componentType" : 5123,
"count" : 1248,
"max" : [
445
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 57,
"componentType" : 5126,
"count" : 446,
"max" : [
12.823567390441895,
9.792398452758789,
12.823566436767578
],
"min" : [
-12.823567390441895,
0.0002474784851074219,
-12.823566436767578
],
"type" : "VEC3"
},
{
"bufferView" : 58,
"componentType" : 5126,
"count" : 446,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 59,
"componentType" : 5126,
"count" : 446,
"max" : [
1.0,
0.7071552276611328,
1.0,
1.0
],
"min" : [
-1.0,
-0.707155168056488,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 60,
"componentType" : 5126,
"count" : 446,
"max" : [
4.0007758140563965,
0.4643403887748718
],
"min" : [
-0.08174532651901245,
0.01067352294921875
],
"type" : "VEC2"
},
{
"bufferView" : 61,
"componentType" : 5126,
"count" : 446,
"max" : [
1.0,
1.0,
1.0,
1.0
],
"min" : [
1.0,
1.0,
1.0,
1.0
],
"type" : "VEC4"
},
{
"bufferView" : 62,
"componentType" : 5123,
"count" : 10716,
"max" : [
6781
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 63,
"componentType" : 5126,
"count" : 6782,
"max" : [
7.529825210571289,
14.386863708496094,
14.474010467529297
],
"min" : [
-7.529825210571289,
-14.386863708496094,
-14.474010467529297
],
"type" : "VEC3"
},
{
"bufferView" : 64,
"componentType" : 5126,
"count" : 6782,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 65,
"componentType" : 5126,
"count" : 6782,
"max" : [
1.0,
1.0,
0.9762442708015442,
1.0
],
"min" : [
-1.0,
-1.0,
-1.0,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 66,
"componentType" : 5126,
"count" : 6782,
"max" : [
1.0,
1.0
],
"min" : [
0.0,
0.0
],
"type" : "VEC2"
},
{
"bufferView" : 67,
"componentType" : 5123,
"count" : 2010,
"max" : [
601
],
"min" : [
0
],
"type" : "SCALAR"
},
{
"bufferView" : 68,
"componentType" : 5126,
"count" : 602,
"max" : [
2.8305795192718506,
7.960315704345703,
2.8305792808532715
],
"min" : [
-2.8305795192718506,
-7.960315704345703,
-2.8305792808532715
],
"type" : "VEC3"
},
{
"bufferView" : 69,
"componentType" : 5126,
"count" : 602,
"max" : [
1.0,
1.0,
1.0
],
"min" : [
-1.0,
-0.5775322914123535,
-1.0
],
"type" : "VEC3"
},
{
"bufferView" : 70,
"componentType" : 5126,
"count" : 602,
"max" : [
1.0,
1.0,
0.9999935030937195,
1.0
],
"min" : [
-0.9847553968429565,
-1.0,
-0.2866083085536957,
-1.0
],
"type" : "VEC4"
},
{
"bufferView" : 71,
"componentType" : 5126,
"count" : 602,
"max" : [
0.088651143014431,
0.9692037124186754
],
"min" : [
0.006674468517303467,
0.7879712283611298
],
"type" : "VEC2"
}
],
"asset" : {
"generator" : "Khronos Blender glTF 2.0 exporter",
"version" : "2.0"
},
"bufferViews" : [
{
"buffer" : 0,
"byteLength" : 9324,
"byteOffset" : 0,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 35808,
"byteOffset" : 9324,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 35808,
"byteOffset" : 45132,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 47744,
"byteOffset" : 80940,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 23872,
"byteOffset" : 128684,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 7440,
"byteOffset" : 152556,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 29760,
"byteOffset" : 159996,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 29760,
"byteOffset" : 189756,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 39680,
"byteOffset" : 219516,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 19840,
"byteOffset" : 259196,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4320,
"byteOffset" : 279036,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 283356,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 291996,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 11520,
"byteOffset" : 300636,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 5760,
"byteOffset" : 312156,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 317916,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 33048,
"byteOffset" : 326556,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 33048,
"byteOffset" : 359604,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 44064,
"byteOffset" : 392652,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 22032,
"byteOffset" : 436716,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4320,
"byteOffset" : 458748,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 463068,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 8640,
"byteOffset" : 471708,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 11520,
"byteOffset" : 480348,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 5760,
"byteOffset" : 491868,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 36,
"byteOffset" : 497628,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 288,
"byteOffset" : 497664,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 288,
"byteOffset" : 497952,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 36,
"byteOffset" : 498240,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 288,
"byteOffset" : 498276,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 288,
"byteOffset" : 498564,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 93024,
"byteOffset" : 498852,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 375552,
"byteOffset" : 591876,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 375552,
"byteOffset" : 967428,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 500736,
"byteOffset" : 1342980,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 250368,
"byteOffset" : 1843716,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 12426,
"byteOffset" : 2094084,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 49200,
"byteOffset" : 2106512,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 49200,
"byteOffset" : 2155712,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 65600,
"byteOffset" : 2204912,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 32800,
"byteOffset" : 2270512,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 3972,
"byteOffset" : 2303312,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 15960,
"byteOffset" : 2307284,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 15960,
"byteOffset" : 2323244,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 21280,
"byteOffset" : 2339204,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 10640,
"byteOffset" : 2360484,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4512,
"byteOffset" : 2371124,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 18048,
"byteOffset" : 2375636,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 18048,
"byteOffset" : 2393684,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 24064,
"byteOffset" : 2411732,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 12032,
"byteOffset" : 2435796,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 22746,
"byteOffset" : 2447828,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 68388,
"byteOffset" : 2470576,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 68388,
"byteOffset" : 2538964,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 91184,
"byteOffset" : 2607352,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 45592,
"byteOffset" : 2698536,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 2496,
"byteOffset" : 2744128,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 5352,
"byteOffset" : 2746624,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 5352,
"byteOffset" : 2751976,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 7136,
"byteOffset" : 2757328,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 3568,
"byteOffset" : 2764464,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 7136,
"byteOffset" : 2768032,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 21432,
"byteOffset" : 2775168,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 81384,
"byteOffset" : 2796600,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 81384,
"byteOffset" : 2877984,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 108512,
"byteOffset" : 2959368,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 54256,
"byteOffset" : 3067880,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4020,
"byteOffset" : 3122136,
"target" : 34963
},
{
"buffer" : 0,
"byteLength" : 7224,
"byteOffset" : 3126156,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 7224,
"byteOffset" : 3133380,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 9632,
"byteOffset" : 3140604,
"target" : 34962
},
{
"buffer" : 0,
"byteLength" : 4816,
"byteOffset" : 3150236,
"target" : 34962
}
],
"buffers" : [
{
"byteLength" : 3155052,
"uri" : "https://dl.dropbox.com/s/yq8uh64veol8460/70M_90.bin"
}
],
"images" : [
{
"name" : "truss_box_AO",
"uri" : "https://dl.dropbox.com/s/rb9jxwgc4wczuj2/truss_box_AO.png"
},
{
"name" : "truss_dish_AO.jpg",
"uri" : "https://dl.dropbox.com/s/ay4bfldzqbm86nl/truss_dish_AO.jpg.jpg"
}
],
"materials" : [
{
"name" : "tex_01",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6000000089406967,
0.6000000089406967,
0.6000000089406967,
1.0
],
"metallicFactor" : 0.0
}
},
{
"alphaMode" : "BLEND",
"name" : "tex_02",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6000000089406967,
0.6000000089406967,
0.6000000089406967,
0.26991379261016846
],
"metallicFactor" : 0.0
}
},
{
"name" : "tex_02b",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"metallicFactor" : 0.0
}
},
{
"name" : "truss_box_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 0
},
"metallicFactor" : 0.0
}
},
{
"name" : "truss_dish_AO",
"pbrMetallicRoughness" : {
"baseColorFactor" : [
0.6400000190734865,
0.6400000190734865,
0.6400000190734865,
1.0
],
"baseColorTexture" : {
"index" : 1
},
"metallicFactor" : 0.0
}
}
],
"meshes" : [
{
"name" : "Cube",
"primitives" : [
{
"attributes" : {
"NORMAL" : 2,
"POSITION" : 1,
"TANGENT" : 3,
"TEXCOORD_0" : 4
},
"indices" : 0,
"material" : 0
}
]
},
{
"name" : "Cube.001",
"primitives" : [
{
"attributes" : {
"NORMAL" : 7,
"POSITION" : 6,
"TANGENT" : 8,
"TEXCOORD_0" : 9
},
"indices" : 5,
"material" : 3
}
]
},
{
"name" : "Cube.002",
"primitives" : [
{
"attributes" : {
"NORMAL" : 12,
"POSITION" : 11,
"TANGENT" : 13,
"TEXCOORD_0" : 14
},
"indices" : 10,
"material" : 1
}
]
},
{
"name" : "Cube.003",
"primitives" : [
{
"attributes" : {
"NORMAL" : 17,
"POSITION" : 16,
"TANGENT" : 18,
"TEXCOORD_0" : 19
},
"indices" : 15,
"material" : 1
}
]
},
{
"name" : "Cube.004",
"primitives" : [
{
"attributes" : {
"NORMAL" : 22,
"POSITION" : 21,
"TANGENT" : 23,
"TEXCOORD_0" : 24
},
"indices" : 20,
"material" : 2
}
]
},
{
"name" : "Cube.005",
"primitives" : [
{
"attributes" : {
"NORMAL" : 27,
"POSITION" : 26
},
"indices" : 25
}
]
},
{
"name" : "Cube.007",
"primitives" : [
{
"attributes" : {
"NORMAL" : 30,
"POSITION" : 29
},
"indices" : 28
}
]
},
{
"name" : "Cube.028",
"primitives" : [
{
"attributes" : {
"NORMAL" : 33,
"POSITION" : 32,
"TANGENT" : 34,
"TEXCOORD_0" : 35
},
"indices" : 31,
"material" : 4
}
]
},
{
"name" : "Cylinder.004",
"primitives" : [
{
"attributes" : {
"NORMAL" : 38,
"POSITION" : 37,
"TANGENT" : 39,
"TEXCOORD_0" : 40
},
"indices" : 36,
"material" : 0
}
]
},
{
"name" : "Cylinder.008",
"primitives" : [
{
"attributes" : {
"NORMAL" : 43,
"POSITION" : 42,
"TANGENT" : 44,
"TEXCOORD_0" : 45
},
"indices" : 41,
"material" : 0
}
]
},
{
"name" : "Cylinder.011",
"primitives" : [
{
"attributes" : {
"NORMAL" : 48,
"POSITION" : 47,
"TANGENT" : 49,
"TEXCOORD_0" : 50
},
"indices" : 46,
"material" : 0
}
]
},
{
"name" : "Cylinder.013",
"primitives" : [
{
"attributes" : {
"NORMAL" : 53,
"POSITION" : 52,
"TANGENT" : 54,
"TEXCOORD_0" : 55
},
"indices" : 51,
"material" : 0
}
]
},
{
"name" : "Cylinder.016",
"primitives" : [
{
"attributes" : {
"COLOR_0" : 61,
"NORMAL" : 58,
"POSITION" : 57,
"TANGENT" : 59,
"TEXCOORD_0" : 60
},
"indices" : 56,
"material" : 0
}
]
},
{
"name" : "Tube",
"primitives" : [
{
"attributes" : {
"NORMAL" : 64,
"POSITION" : 63,
"TANGENT" : 65,
"TEXCOORD_0" : 66
},
"indices" : 62,
"material" : 0
}
]
},
{
"name" : "Tube.012",
"primitives" : [
{
"attributes" : {
"NORMAL" : 69,
"POSITION" : 68,
"TANGENT" : 70,
"TEXCOORD_0" : 71
},
"indices" : 67,
"material" : 0
}
]
}
],
"nodes" : [
{
"name" : "_Hemi_1",
"scale" : [
0.5,
0.5,
0.5
],
"translation" : [
0.0,
81.6775131225586,
-0.0
]
},
{
"name" : "_Hemi_2",
"rotation" : [
-4.080360994831306e-15,
-3.422854533141617e-08,
-1.0,
-1.6292068494294654e-07
],
"scale" : [
0.5,
0.5,
0.5
],
"translation" : [
0.0,
-19.981555938720703,
-0.0
]
},
{
"children" : [
3,
4
],
"mesh" : 5,
"name" : "_root"
},
{
"children" : [
9,
10,
12,
13
],
"mesh" : 8,
"name" : "azimuth"
},
{
"mesh" : 12,
"name" : "base"
},
{
"mesh" : 14,
"name" : "collector",
"translation" : [
1.7881393432617188e-07,
15.143402099609375,
-0.0
]
},
{
"mesh" : 3,
"name" : "dish",
"translation" : [
3.427267074584961e-05,
13.998046875,
-0.0001875162124633789
]
},
{
"mesh" : 2,
"name" : "dish.001",
"translation" : [
5.662441253662109e-06,
9.442657470703125,
-0.0002065896987915039
]
},
{
"mesh" : 4,
"name" : "dish.002",
"translation" : [
5.662441253662109e-06,
9.544647216796875,
-0.0002065896987915039
]
},
{
"children" : [
5,
6,
7,
8,
11,
14,
15,
16
],
"mesh" : 6,
"name" : "elevation",
"translation" : [
5.960464477539063e-08,
33.900184631347656,
0.0001608133316040039
]
},
{
"mesh" : 9,
"name" : "landing",
"translation" : [
-5.92357063293457,
8.20883846282959,
-12.666234970092773
]
},
{
"mesh" : 13,
"name" : "quad",
"translation" : [
-5.960464477539063e-08,
24.140243530273438,
-0.00020754337310791016
]
},
{
"mesh" : 11,
"name" : "rails",
"translation" : [
-0.35681724548339844,
17.178573608398438,
-6.704807281494141
]
},
{
"mesh" : 10,
"name" : "stairs",
"translation" : [
-5.51785945892334,
8.355742454528809,
-12.029253005981445
]
},
{
"mesh" : 1,
"name" : "truss_box",
"translation" : [
-5.960464477539063e-08,
6.047832489013672,
-0.0002065896987915039
]
},
{
"mesh" : 7,
"name" : "truss_dish",
"translation" : [
-5.960464477539063e-08,
12.281986236572266,
-0.0001608133316040039
]
},
{
"mesh" : 0,
"name" : "truss_pendulum",
"translation" : [
-5.960464477539063e-08,
-3.9636001586914062,
-1.0728836059570312e-06
]
}
],
"samplers" : [
{}
],
"scene" : 0,
"scenes" : [
{
"name" : "Scene",
"nodes" : [
2,
0,
1
]
}
],
"textures" : [
{
"sampler" : 0,
"source" : 0
},
{
"sampler" : 0,
"source" : 1
}
]
}

Add 3D models in GLTF format to a Mapbox GL JS map

Docs

Notes

  • Requires GL JS v0.50.0+
  • Requires three.js and the three.js GLTF loader external library (CDN links in this example)
  • Example does not support IE11

Example credit - Andrew Harvey https://bl.ocks.org/andrewharvey/7b61e9bdb4165e8832b7495c2a4f17f7

<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title>Add a 3D model to Mapbox</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.0-beta.1/mapbox-gl.js"></script>
<link rel="stylesheet" type="text/css" href="https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.0-beta.1/mapbox-gl.css">
<script src='https://cdnjs.cloudflare.com/ajax/libs/three.js/94/three.min.js'></script>
<script src="https://cdn.rawgit.com/mrdoob/three.js/master/examples/js/loaders/GLTFLoader.js"></script>
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
#controls { position:absolute; top:0; left:0; }
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = 'pk.eyJ1IjoicnNiYXVtYW5uIiwiYSI6ImNqNmhkZnhkZDA4M3Yyd3AwZDR4cmdhcDIifQ.TGKKAC6pPP0L-uMDJ5xFAA';
// Load the mapbox map
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/outdoors-v11?optimize=true',
center: [148.98190, -35.39847],
zoom: 17.5,
pitch: 60,
antialias: true
});
// converts from WGS84 Longitude, Latitude into a unit vector anchor at the top left as needed for GL JS custom layers
var fromLL = function (lon,lat) {
// derived from https://gist.github.com/springmeyer/871897
var extent = 20037508.34;
var x = lon * extent / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * extent / 180;
return [(x + extent) / (2 * extent), 1 - ((y + extent) / (2 * extent))];
}
var translate = fromLL(148.98190, -35.39847);
var transform = {
translateX: translate[0],
translateY: translate[1],
translateZ: 0,
rotateX: Math.PI / 2,
rotateY: 0,
rotateZ: 0,
scale: 5.41843220338983e-8
}
var THREE = window.THREE;
// Create the Mapbox Custom Layer object
// See
var threeJSModel = {
id: 'custom_layer',
type: 'custom',
renderingMode: '3d',
onAdd: function(map, gl) {
this.camera = new THREE.Camera();
this.scene = new THREE.Scene();
var directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(0, -70, 100).normalize();
this.scene.add(directionalLight);
var directionalLight2 = new THREE.DirectionalLight(0xffffff);
directionalLight2.position.set(0, 70, 100).normalize();
this.scene.add(directionalLight2);
var loader = new THREE.GLTFLoader();
loader.load('34M_17.gltf', (function (gltf) {
this.scene.add(gltf.scene);
}).bind(this));
this.map = map;
this.renderer = new THREE.WebGLRenderer({
canvas: map.getCanvas(),
context: gl
});
this.renderer.autoClear = false;
},
render: function(gl, matrix) {
var rotationX = new THREE.Matrix4().makeRotationAxis(new THREE.Vector3(1, 0, 0), transform.rotateX);
var rotationY = new THREE.Matrix4().makeRotationAxis(new THREE.Vector3(0, 1, 0), transform.rotateY);
var rotationZ = new THREE.Matrix4().makeRotationAxis(new THREE.Vector3(0, 0, 1), transform.rotateZ);
var m = new THREE.Matrix4().fromArray(matrix);
var l = new THREE.Matrix4().makeTranslation(transform.translateX, transform.translateY, transform.translateZ)
.scale(new THREE.Vector3(transform.scale, -transform.scale, transform.scale))
.multiply(rotationX)
.multiply(rotationY)
.multiply(rotationZ);
this.camera.projectionMatrix.elements = matrix;
this.camera.projectionMatrix = m.multiply(l);
this.renderer.state.reset();
this.renderer.render(this.scene, this.camera);
this.map.triggerRepaint();
}
}
map.on('style.load', function() {
map.addLayer({
'id': '3d-buildings',
'source': 'composite',
'source-layer': 'building',
'filter': ['==', 'extrude', 'true'],
'type': 'fill-extrusion',
'minzoom': 15,
'paint': {
'fill-extrusion-color': '#ccc',
'fill-extrusion-height': ["get", "height"]
}
}, 'waterway-label');
map.addLayer(threeJSModel, 'waterway-label');
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment