{"data":{"id":"149","slug":"safari-camp-and-bush-lodge","title":"Tented Safari Camp and Bush Lodge","summary":"Walk a tented bush camp: a guest line of safari tents on decks off a raised walkway, the fire pit and the mess, the kitchen boma, the back of house yard, a vehicle turnaround and a viewpoint over the water hole.","url":"https://3dassets.dev/demos/safari-camp-and-bush-lodge","coverUrl":"https://cdn.3dassets.dev/media/safari-camp-and-bush-lodge-demo.png","featured":true,"pack":{"slug":"safari-camp-and-bush-lodge","title":"Safari Camp and Bush Lodge","url":"https://3dassets.dev/packs/safari-camp-and-bush-lodge","summary":"Canvas safari tents on timber decks, thatched rondavels, a lodge veranda, fire pit, kitchen boma, game drive vehicle, camp power and water, boma fencing and the acacias, baobab, scrub and water hole of the open bush, with a full camp scene.","assetCount":56,"totalBytes":2659072,"starterScene":{"slug":"safari-camp-and-bush-lodge-tented-safari-5f4f91f6-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/37720/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-tented-safari-5f4f91f6-starter-scene","fileSize":1091060}},"placementCount":412,"assetCount":55,"spawn":{"position":[0,0.32,20.5],"yaw":180},"publishedAt":"2026-09-12T05:57:45.918Z","updatedAt":"2026-09-12T05:57:45.918Z","description":"## The camp\n\nA tented bush camp on the savanna, 67 by 61 m, walked from the gate. You arrive on the bush track from the south, the gate swings, and the fire pit and the lodge veranda are ahead of you. The whole pack is here: 403 placements of 55 models, about 1.5 MB of geometry across the lot.\n\n- **The approach.** Bush track modules with wheel ruts, the gate and its blank sign board across them, and the camp fenced with a pole and wire line on the track side and a thorn brush boma on the bush sides.\n- **The fire pit.** A stone ring with six log seats round it, firewood stacked to one side, a storm lantern on the ground and an acacia over it. This is the middle of the camp.\n- **The mess.** The lodge main building front with its open sided veranda, thatch roof sections either side, and the dining table and chairs on a six module timber deck in front of it. Two guest rondavels stand east of the lodge.\n- **The kitchen boma.** A grill under a hanging pot, the prep table, the water filter stand, the drinks cooler and the firewood, just west of the lodge.\n- **The guest line.** Four tents on timber decks along the west side, two large and two small, two with their flaps tied back and two that open as you reach them. Each has a camp bed under a mosquito net frame, a canvas wash stand, a bucket shower frame behind and a storm lantern on the deck. A raised walkway with a rope handrail runs the length of them with a spur to each.\n- **Back of house.** The water bowser, the header tank on its timber stand, two solar panels, the battery box, jerrycans and firewood in the east yard, with the long drop hut at the end of it.\n- **The turnaround.** Two open game drive vehicles parked off the track, a spare wheel, a jerrycan rack, a rack of closed hard cases and the radio set on its table.\n- **The viewpoint.** Out through the gap in the boma to the spotting scope, the camera tripod, the field desk and a pair of chairs, looking north over the water hole edge modules and the dry riverbed.\n- **The bush.** Acacias in two sizes, baobabs, scrub, grass tufts, termite mounds, bleached bones and dung tracks dressed corner to corner across both savanna ground tones, so the camp sits in the bush rather than on a plane.\n\n## What moves\n\nFourteen models carry clips, all of them on or beside the path. The gate swings. The two closed flap tents open, and so do both rondavels and the long drop hut. The kitchen boma's pot swings over the grill. The drinks cooler and the battery box lids lift. The water bowser tap turns. The game drive vehicle wheels roll. The bucket shower tips. The spotting scope and the camera heads pan. Clips play as you come within a few metres.\n\n## What does not move, and why\n\nThe canvas, the guy ropes, the mosquito netting, the thatch, the rope handrails, the fire, the smoke and the water are all static geometry. Flexible material and fluid need a joint per element or a shader to behave, and neither is reachable with the rigid node transforms this catalogue animates with, so they are modelled in a settled pose rather than faked. Nothing is skinned anywhere in the pack.\n\nThere are also no animals. The bleached bones, the dung tracks and the termite mound are landscape props, not creatures, and the rifle cases on the rack are closed hard cases. If you want game to put in the scene, the catalogue has a savanna wildlife pack with the animals modelled separately.\n\n## Walking it\n\nThe walk is flat: there is no climbing in a demo, so the viewing platform is scenery you look at rather than go up, and every tent, the veranda and the boma are open fronted so their contents read from the ground. Two minutes takes you gate, fire pit, mess, guest line, water hole.","scene":{"version":1,"spawn":{"position":[0,0.32,20.5],"yaw":180},"bounds":{"min":[-33.5,0,-30.5],"max":[33.6,12,30.5]},"ground":{"elevation":0.18,"style":"plain"},"environment":{"preset":"outdoor","sky":"#bcd8ec","horizon":"#e6dcc2","floor":"#d8c49c","light":"warm","shadows":true},"placements":[{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,-27],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,-21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,-15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,-9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,-3],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,3],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-30.45,0.122,21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-30.45,0.122,27],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,-27],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,-21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,-15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,-9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,-3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-24.36,0.122,21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-24.36,0.122,27],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-18.27,0.122,-27],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-18.27,0.122,-21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,-15],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,-9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,-3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,9],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-18.27,0.122,15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-18.27,0.122,21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-18.27,0.122,27],"rotation":90},{"asset":"safari-camp-and-bush-lodge-water-hole-edge-3835232b","position":[-12.18,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-water-hole-edge-3835232b","position":[-12.18,0.122,-21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,-15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,-9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,-3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,3],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-12.18,0.122,15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-12.18,0.122,21],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-12.18,0.122,27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-water-hole-edge-3835232b","position":[-6.09,0.122,-27],"rotation":0},{"asset":"safari-camp-and-bush-lodge-water-hole-edge-3835232b","position":[-6.09,0.122,-21],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,-15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,-9],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,-3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[-6.09,0.122,15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-6.09,0.122,21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[-6.09,0.122,27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[0,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[0,0.122,-21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[0,0.122,-15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[0,0.122,-9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[0,0.122,-3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[0,0.122,3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[0,0.122,9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[0,0.122,15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[0,0.122,21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[0,0.122,27],"rotation":0},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[6.09,0.122,-27],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[6.09,0.122,-21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[6.09,0.122,-15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[6.09,0.122,-9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[6.09,0.122,-3],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[6.09,0.122,3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[6.09,0.122,9],"rotation":270},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[6.09,0.122,15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[6.09,0.122,21],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[6.09,0.122,27],"rotation":0},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[12.18,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[12.18,0.122,-21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[12.18,0.122,-15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[12.18,0.122,-9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[12.18,0.122,-3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[12.18,0.122,3],"rotation":180},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[12.18,0.122,9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","position":[12.18,0.122,15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[12.18,0.122,21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[12.18,0.122,27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[18.27,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[18.27,0.122,-21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,-15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,-9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,-3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[18.27,0.122,15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[18.27,0.122,21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[18.27,0.122,27],"rotation":90},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[24.36,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,-21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,-15],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,-9],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,-3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,9],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,21],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[24.36,0.122,27],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","position":[30.45,0.122,-27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","position":[30.45,0.122,-21],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,-15],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,-9],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,-3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,3],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,9],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,15],"rotation":270},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,21],"rotation":180},{"asset":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","position":[30.45,0.122,27],"rotation":180},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-19.691,0.122,15.052],"rotation":178.657},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-17.304,0.122,15.016],"rotation":178.603},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-14.762,0.122,15.07],"rotation":180.352},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-12.358,0.122,14.933],"rotation":178.135},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-9.814,0.122,14.994],"rotation":181.544},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-7.373,0.122,15.068],"rotation":181.521},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[-4.969,0.122,14.968],"rotation":178.067},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[5.015,0.122,15.049],"rotation":180.099},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[7.483,0.122,15.026],"rotation":178.817},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[9.919,0.122,15.038],"rotation":180.689},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[12.348,0.122,15.054],"rotation":180.232},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[14.832,0.122,15.04],"rotation":180.421},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[17.28,0.122,15.005],"rotation":180.641},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[19.703,0.122,14.984],"rotation":179.403},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-19.751,0.122,-15.019],"rotation":178.247},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-17.363,0.122,-14.992],"rotation":180.454},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-14.889,0.122,-15.035],"rotation":178.718},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-2.466,0.122,-15.045],"rotation":178.259},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[0.074,0.122,-14.972],"rotation":179.989},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[2.451,0.122,-15.039],"rotation":181.371},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[4.866,0.122,-15.067],"rotation":181.884},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[7.335,0.122,-14.932],"rotation":179.994},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[9.825,0.122,-14.941],"rotation":178.717},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[12.39,0.122,-14.958],"rotation":178.769},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[14.785,0.122,-14.922],"rotation":180.742},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[17.242,0.122,-14.939],"rotation":180.341},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[19.752,0.122,-14.927],"rotation":179.738},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.956,0.122,-13.755],"rotation":90.658},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.032,0.122,-11.254],"rotation":88.041},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.926,0.122,-8.736],"rotation":90.414},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.921,0.122,-6.21],"rotation":89.866},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.06,0.122,-3.747],"rotation":88.592},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.007,0.122,-1.296],"rotation":88.831},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.97,0.122,1.253],"rotation":89.589},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.983,0.122,3.712],"rotation":88.166},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.034,0.122,6.266],"rotation":89.797},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.032,0.122,8.753],"rotation":91.355},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-21.048,0.122,11.278],"rotation":91.441},{"asset":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","position":[-20.927,0.122,13.733],"rotation":89.855},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.015,0.122,-13.79],"rotation":91.663},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[20.961,0.122,-11.312],"rotation":90.373},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.048,0.122,-8.817],"rotation":89.308},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.04,0.122,-6.205],"rotation":89.59},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.069,0.122,-3.811],"rotation":88.357},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.029,0.122,-1.231],"rotation":89.692},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.052,0.122,1.275],"rotation":90.676},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.017,0.122,3.762],"rotation":91.356},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[20.924,0.122,6.281],"rotation":91.331},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.026,0.122,8.825],"rotation":88.784},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.077,0.122,11.264],"rotation":91.598},{"asset":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","position":[21.053,0.122,13.818],"rotation":88.116},{"asset":"safari-camp-and-bush-lodge-camp-gate-and-sign-board-3a088c5e","position":[0,0.122,15],"rotation":0},{"asset":"safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","position":[-4.6,0.122,16.4],"rotation":40},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[6.2,0.122,17.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-safari-tent-large-open-f8233e80","position":[-16.8,0.122,-11.5],"rotation":90},{"asset":"safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","position":[-13.85,0.122,-11.5],"rotation":90},{"asset":"safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","position":[-17.15,0.622,-11],"rotation":90},{"asset":"safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","position":[-17.7,0.622,-12.7],"rotation":120},{"asset":"safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","position":[-20.4,0.122,-12.7],"rotation":70},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-14.9,0.622,-9.9],"rotation":20},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-13.7,0.122,-10.3],"rotation":105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-20,0.122,-8.9],"rotation":30},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-21.2,0.122,-7.6],"rotation":200},{"asset":"safari-camp-and-bush-lodge-safari-tent-small-fd7b6a2e","position":[-16.8,0.122,-4],"rotation":90},{"asset":"safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","position":[-13.85,0.122,-4],"rotation":90},{"asset":"safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","position":[-17.15,0.622,-3.65],"rotation":90},{"asset":"safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","position":[-17.7,0.622,-4.95],"rotation":120},{"asset":"safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","position":[-20.4,0.122,-5.2],"rotation":70},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-15.3,0.622,-2.7],"rotation":20},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-13.7,0.122,-2.8],"rotation":105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-20,0.122,-1.4],"rotation":30},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-21.2,0.122,-0.1],"rotation":200},{"asset":"safari-camp-and-bush-lodge-safari-tent-large-75f1758c","position":[-16.8,0.122,3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","position":[-13.85,0.122,3],"rotation":90},{"asset":"safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","position":[-17.15,0.622,3.5],"rotation":90},{"asset":"safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","position":[-17.7,0.622,1.8],"rotation":120},{"asset":"safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","position":[-20.4,0.122,1.8],"rotation":70},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-14.9,0.622,4.6],"rotation":20},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-13.7,0.122,4.2],"rotation":105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-20,0.122,5.6],"rotation":30},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-21.2,0.122,6.9],"rotation":200},{"asset":"safari-camp-and-bush-lodge-safari-tent-small-open-e477d111","position":[-16.8,0.122,10],"rotation":90},{"asset":"safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","position":[-13.85,0.122,10],"rotation":90},{"asset":"safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","position":[-17.15,0.622,10.35],"rotation":90},{"asset":"safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","position":[-17.7,0.622,9.05],"rotation":120},{"asset":"safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","position":[-20.4,0.122,8.8],"rotation":70},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-15.3,0.622,11.3],"rotation":20},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-13.7,0.122,11.2],"rotation":105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-20,0.122,12.6],"rotation":30},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-21.2,0.122,13.9],"rotation":200},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-14.4],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-12],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-9.6],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-7.2],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-4.8],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,-2.4],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,0],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,2.4],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,4.8],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,7.2],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,9.6],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-11.4,0.122,12],"rotation":90},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-13.2,0.122,-11.5],"rotation":0},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-13.2,0.122,-4],"rotation":0},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-13.2,0.122,3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","position":[-13.2,0.122,10],"rotation":0},{"asset":"safari-camp-and-bush-lodge-paraffin-lamp-48718fed","position":[-11.9,1.4020000000000001,-14.9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-lodge-main-building-front-e8f9369b","position":[0,0.122,-10.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-thatch-roof-section-1373d083","position":[-3.2,0.122,-7.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-thatch-roof-section-1373d083","position":[3.2,0.122,-7.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-thatched-rondavel-small-a302adc8","position":[8.6,0.122,-11.4],"rotation":0},{"asset":"safari-camp-and-bush-lodge-thatched-rondavel-large-f0488473","position":[-8.6,0.122,-11.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-thatched-rondavel-small-a302adc8","position":[8.6,0.122,-4.6],"rotation":30},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-3.4,0.122,-8.6],"rotation":10},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[3.6,0.122,-8.7],"rotation":-20},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-2.2,0.122,-8.9],"rotation":170},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[2.4,0.122,-8.9],"rotation":190},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[-2.4,0.122,-4.3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[-2.4,0.122,-1.9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[0,0.122,-4.3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[0,0.122,-1.9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[2.4,0.122,-4.3],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[2.4,0.122,-1.9],"rotation":0},{"asset":"safari-camp-and-bush-lodge-dining-table-and-camp-chair-675dd1f7","position":[0,0.622,-3.1],"rotation":8},{"asset":"safari-camp-and-bush-lodge-paraffin-lamp-48718fed","position":[0,1.682,-3.1],"rotation":0},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-2.7,0.622,-1.2],"rotation":140},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[2.6,0.622,-1.4],"rotation":215},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[2.3,0.622,-4.6],"rotation":40},{"asset":"safari-camp-and-bush-lodge-kitchen-boma-and-grill-015c486e","position":[-7.4,0.122,-5.2],"rotation":20},{"asset":"safari-camp-and-bush-lodge-kitchen-prep-table-89c9736b","position":[-7.9,0.122,-2.9],"rotation":15},{"asset":"safari-camp-and-bush-lodge-water-filter-stand-704f01e2","position":[-5.2,0.122,-3.4],"rotation":0},{"asset":"safari-camp-and-bush-lodge-drinks-cooler-59249ff0","position":[-10.1,0.122,-3],"rotation":60},{"asset":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","position":[-10.6,0.122,-5.4],"rotation":10},{"asset":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","position":[-10.6,0.122,-6.5],"rotation":10},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-5.6,0.122,-1.6],"rotation":250},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-8.1,1.16,-2.8],"rotation":-10},{"asset":"safari-camp-and-bush-lodge-fire-pit-and-stone-ring-bc4f9a35","position":[0.6,0.122,3.4],"rotation":0},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[3.6,0.122,3],"rotation":100},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[-2.4,0.122,3.2],"rotation":-100},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[0.9,0.122,6.4],"rotation":4},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[0.2,0.122,0.3],"rotation":184},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[3.1,0.122,5.6],"rotation":50},{"asset":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","position":[-1.9,0.122,0.9],"rotation":225},{"asset":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","position":[4.8,0.122,6.4],"rotation":25},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-2.6,0.122,5.4],"rotation":30},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-3.6,0.122,1.6],"rotation":60},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[-5.4,0.122,7.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[7.4,0.122,1.2],"rotation":0},{"asset":"safari-camp-and-bush-lodge-header-tank-on-stand-186c38d0","position":[18.4,0.122,-12.4],"rotation":0},{"asset":"safari-camp-and-bush-lodge-water-bowser-5fbb1ac3","position":[15.2,0.122,-10.4],"rotation":-25},{"asset":"safari-camp-and-bush-lodge-solar-panel-on-frame-eda8661c","position":[19.2,0.122,-7.4],"rotation":175},{"asset":"safari-camp-and-bush-lodge-solar-panel-on-frame-eda8661c","position":[17.2,0.122,-6.2],"rotation":175},{"asset":"safari-camp-and-bush-lodge-battery-box-46f0d5fd","position":[19.8,0.122,-5.2],"rotation":15},{"asset":"safari-camp-and-bush-lodge-jerrycan-rack-54ef21e7","position":[16.4,0.122,-4.4],"rotation":100},{"asset":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","position":[13.6,0.122,-6.4],"rotation":10},{"asset":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","position":[13.6,0.122,-7.5],"rotation":10},{"asset":"safari-camp-and-bush-lodge-long-drop-hut-8537c47f","position":[19.8,0.122,-0.6],"rotation":-90},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[12.4,0.122,-13.4],"rotation":120},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[20.2,0.122,-9.8],"rotation":0},{"asset":"safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57","position":[11.8,0.122,10.4],"rotation":-18},{"asset":"safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57","position":[15.6,0.122,14.2],"rotation":160},{"asset":"safari-camp-and-bush-lodge-spare-wheel-062377ed","position":[14.6,0.122,8.6],"rotation":70},{"asset":"safari-camp-and-bush-lodge-jerrycan-rack-54ef21e7","position":[16.2,0.122,10.6],"rotation":15},{"asset":"safari-camp-and-bush-lodge-hard-case-rack-2f67d4c5","position":[17.4,0.122,7.6],"rotation":-60},{"asset":"safari-camp-and-bush-lodge-radio-set-and-table-2307cab5","position":[18.2,0.122,4.6],"rotation":-80},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[16.9,0.122,4.3],"rotation":-80},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[17.6,0.122,5.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","position":[18.4,0.122,5.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[8.4,0.122,13.6],"rotation":0},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[19.4,0.122,12.8],"rotation":300},{"asset":"safari-camp-and-bush-lodge-viewing-platform-4d5346b6","position":[-9.2,0.122,-18.6],"rotation":180},{"asset":"safari-camp-and-bush-lodge-spotting-scope-on-tripod-0c111e8c","position":[-12.4,0.122,-18.2],"rotation":165},{"asset":"safari-camp-and-bush-lodge-camera-on-tripod-e515ff4b","position":[-6.1,0.122,-18.4],"rotation":195},{"asset":"safari-camp-and-bush-lodge-field-desk-and-binoculars-89f6223e","position":[-13.6,0.122,-16.4],"rotation":140},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-14.3,0.122,-15.3],"rotation":150},{"asset":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","position":[-4.9,0.122,-16.6],"rotation":210},{"asset":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","position":[-6.4,0.122,-16.2],"rotation":30},{"asset":"safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","position":[-3.2,0.122,-22.4],"rotation":110},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-10.4,0.122,-22.8],"rotation":70},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-13.9,0.122,-23.6],"rotation":200},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[21.572,0.122,-21.495],"rotation":-126.137},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[-29.538,0.122,15.131],"rotation":21.603},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[21.001,0.122,26.187],"rotation":-3.377},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[-31.557,0.122,-19.929],"rotation":159.958},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[27.655,0.122,0.755],"rotation":-174.876},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[12.346,0.122,-22.306],"rotation":-170.98},{"asset":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","position":[-23.776,0.122,25.962],"rotation":125.376},{"asset":"safari-camp-and-bush-lodge-baobab-tree-0e40cad3","position":[-12.958,0.122,23.895],"rotation":-164.777},{"asset":"safari-camp-and-bush-lodge-baobab-tree-0e40cad3","position":[31.776,0.122,-17.41],"rotation":-95.32},{"asset":"safari-camp-and-bush-lodge-baobab-tree-0e40cad3","position":[-28.05,0.122,6.385],"rotation":34.725},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[-28.984,0.122,-9.633],"rotation":117.789},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[12.201,0.122,26.815],"rotation":-28.408},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[29.711,0.122,9.212],"rotation":56.419},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[28.108,0.122,23.044],"rotation":70.502},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[-28.965,0.122,-1.304],"rotation":-75.673},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[4.255,0.122,-27.201],"rotation":107.391},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[-21.994,0.122,-21.865],"rotation":153.272},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[26.054,0.122,16.484],"rotation":21.951},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[30.885,0.122,-26.273],"rotation":55.739},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[28.795,0.122,-7.699],"rotation":-151.527},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[-29.295,0.122,-27.401],"rotation":-124.288},{"asset":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","position":[5.212,0.122,-19.942],"rotation":-50.755},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[17.63,0.122,-27.723],"rotation":-30.142},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[-25.386,0.122,-15.919],"rotation":2.833},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[25.984,0.122,-27.719],"rotation":-111.26},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[9.752,0.122,-28.2],"rotation":68.16},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[-29.919,0.122,22.561],"rotation":-86.379},{"asset":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","position":[29.005,0.122,28.205],"rotation":-63.926},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[24.691,0.122,9.625],"rotation":-177.347},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[14.593,0.122,21.027],"rotation":114.547},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[26.259,0.122,-13.167],"rotation":-60.05},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-19.948,0.122,21.415],"rotation":-114.219},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[7.424,0.122,27.107],"rotation":21.859},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-17.525,0.122,18.954],"rotation":-146.303},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-31.806,0.122,26.211],"rotation":4.469},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-23.407,0.122,17.592],"rotation":-159.503},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[7.869,0.122,21.891],"rotation":53.521},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-6.766,0.122,23.503],"rotation":-158.873},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-24.019,0.122,-9.226],"rotation":-35.923},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[22.701,0.122,-27.315],"rotation":-44.063},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-23.153,0.122,-27],"rotation":68.811},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[30.743,0.122,18.012],"rotation":-165.826},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[14.385,0.122,-28.741],"rotation":-154.438},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-19.873,0.122,-27.66],"rotation":-38.511},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-9.041,0.122,18.123],"rotation":-157.329},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-26.703,0.122,-23.46],"rotation":-110.696},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[22.618,0.122,20.227],"rotation":33.92},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[24.919,0.122,-10.055],"rotation":26.463},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[18.233,0.122,18.952],"rotation":-148.243},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[24.2,0.122,-5.612],"rotation":-123.658},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-22.024,0.122,-17.213],"rotation":-61.216},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[24.464,0.122,6.416],"rotation":77.162},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-8.113,0.122,28.083],"rotation":99.986},{"asset":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","position":[-24.393,0.122,11.579],"rotation":-54.006},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-28.945,0.122,-14.478],"rotation":-51.104},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[31.437,0.122,5.095],"rotation":172.293},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[28.465,0.122,-22.679],"rotation":-18.199},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-24.028,0.122,-12.287],"rotation":-54.105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-26.662,0.122,-5.811],"rotation":-174.105},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[31.825,0.122,-11.384],"rotation":-49.131},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[16.928,0.122,-17.866],"rotation":135.821},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-23.778,0.122,-3.888],"rotation":83.195},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[0.034,0.122,-18.428],"rotation":110.879},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-24.631,0.122,0.623],"rotation":-159.04},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-15.452,0.122,28.976],"rotation":128.282},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-25.618,0.122,19.376],"rotation":-166.139},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[23.448,0.122,-15.531],"rotation":68.738},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[29.836,0.122,13.44],"rotation":-14.083},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-31.364,0.122,-5.563],"rotation":76.303},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-13.502,0.122,17.994],"rotation":57.482},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-17.896,0.122,26.842],"rotation":-121.909},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-31.502,0.122,2.113],"rotation":-113.993},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[25.308,0.122,-16.83],"rotation":-75.93},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[31.761,0.122,-3.668],"rotation":-74.551},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[8.346,0.122,24.67],"rotation":71.701},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[21.413,0.122,17.246],"rotation":70.474},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[11.685,0.122,21.524],"rotation":104.476},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[29.29,0.122,-12.55],"rotation":11.814},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-20.823,0.122,18.275],"rotation":138.09},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-23.003,0.122,20.161],"rotation":36.833},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-30.423,0.122,28.848],"rotation":-139.193},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[24.674,0.122,12.36],"rotation":51.748},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[31.627,0.122,15.243],"rotation":-37.856},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[15.864,0.122,23.989],"rotation":45.606},{"asset":"safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","position":[-18.859,0.122,-18.333],"rotation":-80.704},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[0.948,0.122,-20.218],"rotation":-37.392},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-7.271,0.122,21.075],"rotation":-25.057},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-25.908,0.122,-20.732],"rotation":42.333},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-31.722,0.122,10.254],"rotation":117.168},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[9.165,0.122,-17.828],"rotation":111.38},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-8.093,0.122,25.604],"rotation":-129.55},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-18.502,0.122,28.914],"rotation":-82.682},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-4.76,0.122,10.994],"rotation":-43.697},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[6.398,0.122,-7.065],"rotation":29.064},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[15.388,0.122,-1.702],"rotation":-74.539},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-7.896,0.122,11.51],"rotation":150.764},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[10.855,0.122,2.444],"rotation":-35.263},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-7.288,0.122,1.559],"rotation":161.655},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[10.775,0.122,-1.279],"rotation":74.648},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[17.671,0.122,1.443],"rotation":-146.857},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-7.551,0.122,5.132],"rotation":-95.446},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[13.369,0.122,-3.522],"rotation":118.749},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-1.139,0.122,8.712],"rotation":106.893},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[11.945,0.122,-10.138],"rotation":-1.702},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[13.389,0.122,-0.118],"rotation":-55.293},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[5.358,0.122,-12.14],"rotation":-177.816},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-0.228,0.122,-6.537],"rotation":-99.156},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[3.781,0.122,8.983],"rotation":120.802},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[7.116,0.122,-1.662],"rotation":62.379},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-5.506,0.122,-12.246],"rotation":110.464},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[9.938,0.122,-7.992],"rotation":-21.221},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-8.243,0.122,8.433],"rotation":116.805},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[5.279,0.122,-3.774],"rotation":53.697},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[6.46,0.122,3.791],"rotation":-146.642},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[15.159,0.122,1.98],"rotation":68.836},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-14.67,0.122,-6.641],"rotation":-91.657},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-8.321,0.122,-8.342],"rotation":159.918},{"asset":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","position":[-2.583,0.122,-11.859],"rotation":-145.572},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[3.107,0.122,-12.148],"rotation":164.562},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[11.05,0.122,-3.867],"rotation":-136.636},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-6.157,0.122,-8.796],"rotation":-58.328},{"asset":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","position":[-15.977,0.122,7.223],"rotation":79.381}],"points":[{"position":[0,0,13.2],"title":"The camp gate","text":"The track comes in through a pole and wire line and a thorn brush boma. The gate swings on approach and the sign board is left blank for you to letter. Bush track modules are 6 m tiles with wheel ruts.","asset":"safari-camp-and-bush-lodge-camp-gate-and-sign-board-3a088c5e"},{"position":[1.4,0,5.6],"title":"The fire pit","text":"Log seats round a stone ring, firewood stacked to one side and a storm lantern on the ground. The fire and its smoke are static geometry: flame needs a shader, not a node transform.","asset":"safari-camp-and-bush-lodge-fire-pit-and-stone-ring-bc4f9a35"},{"position":[0,0,-1.4],"title":"The mess","text":"The dining table and chairs on a timber deck under the lodge veranda, with thatch roof sections either side. The veranda is open sided so it reads from the ground: nothing here is a room you have to walk into.","asset":"safari-camp-and-bush-lodge-lodge-main-building-front-e8f9369b"},{"position":[-6.2,0,-3.6],"title":"The kitchen boma","text":"A grill under a hanging pot, a prep table, the water filter stand and the drinks cooler. The pot swings and the cooler lid lifts as you come near.","asset":"safari-camp-and-bush-lodge-kitchen-boma-and-grill-015c486e"},{"position":[-12.6,0,0.4],"title":"The guest line","text":"Four tents on timber decks off a raised walkway with a rope handrail, two with their flaps tied back, two that open as you reach them. Each has a camp bed under a mosquito net frame, a canvas wash stand and a bucket shower behind.","asset":"safari-camp-and-bush-lodge-safari-tent-large-75f1758c"},{"position":[13.6,0,8.6],"title":"The turnaround","text":"Two open game drive vehicles parked off the track with a spare wheel, jerrycans and a rack of closed hard cases. The wheels roll as you approach. Next to them the radio set on its table.","asset":"safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57"},{"position":[17.4,0,-8.2],"title":"Back of house","text":"The water bowser, the header tank on its timber stand, two solar panels and the battery box, with firewood and the long drop hut past them. The bowser tap turns and the battery box lid lifts.","asset":"safari-camp-and-bush-lodge-water-bowser-5fbb1ac3"},{"position":[-9.2,0,-16.6],"title":"The water hole viewpoint","text":"Out through the gap in the boma to the spotting scope, the camera tripod and the field desk, looking north over the water hole and the dry riverbed. Both heads pan. There are no animals in this pack.","asset":"safari-camp-and-bush-lodge-spotting-scope-on-tripod-0c111e8c"}],"poster":{"position":[7,1.92,3],"lookAt":[-3.4,1.25,-3]}},"bounds":{"min":[-33.5,0,-30.5],"max":[33.6,12,30.5]},"assets":[{"id":"37704","slug":"safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","title":"Savanna Ground Module, Dry Grass (Safari Camp and Bush Lodge)","summary":"The same 6 m ground module in the second tone: bleached dry grass instead of bare dust, for laying a patchwork of the two across a plot. The geometry is unchanged.","description":"The same 6 m ground module in the second tone: bleached dry grass instead of bare dust, for laying a patchwork of the two across a plot. The geometry is unchanged. Overall 6.094 x 0.204 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Cosmetic colour variant of savanna-ground-module; the geometry is unchanged. Connectors: north (ground), south (ground), west (ground), east (ground). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","cdnUrl":"https://cdn.3dassets.dev/assets/37704/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-savanna-ground-module-grass-079db451","thumbnailUrl":"https://cdn.3dassets.dev/assets/37704/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37704/v1/poster.webp","blurhash":"U7DSw4?a00ox%MWCV@t700D*~oRj9GofkDNF","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9860,"triangles":168,"vertices":504,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-3,-0.00006191069462893606,-3],"max":[3.0937750339508057,0.20429002875664828,3]},"sizeMeters":[6.094,0.204,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:37.091Z","updatedAt":"2026-09-12T05:45:37.198Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37704/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SavannaGroundModuleDryGrassSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37704/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37704/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37704/v1/model.glb\" alt=\"Savanna Ground Module, Dry Grass (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37704/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37704/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37705","slug":"safari-camp-and-bush-lodge-savanna-ground-module-17268da3","title":"Savanna Ground Module, Dust (Safari Camp and Bush Lodge)","summary":"A 6 m square of bare red savanna dust 0.12 m thick, with five flat patches of low scrub and a few embedded stones. Edge ports on all four sides tile it into a continuous ground with the track, riverbed and water hole modules.","description":"A 6 m square of bare red savanna dust 0.12 m thick, with five flat patches of low scrub and a few embedded stones. Edge ports on all four sides tile it into a continuous ground with the track, riverbed and water hole modules. Overall 6.094 x 0.204 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (ground), south (ground), west (ground), east (ground). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-savanna-ground-module-17268da3","cdnUrl":"https://cdn.3dassets.dev/assets/37705/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-savanna-ground-module-17268da3","thumbnailUrl":"https://cdn.3dassets.dev/assets/37705/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37705/v1/poster.webp","blurhash":"U6B:W--:00s;%MWVRjog00E1~oRj9Zsot6Ri","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23604,"triangles":168,"vertices":504,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00006191069462893606,-3],"max":[3.0937750339508057,0.20429002875664828,3]},"sizeMeters":[6.094,0.204,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:37.157Z","updatedAt":"2026-09-12T05:45:37.257Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37705/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SavannaGroundModuleDustSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37705/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37705/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37705/v1/model.glb\" alt=\"Savanna Ground Module, Dust (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37705/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37705/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37709","slug":"safari-camp-and-bush-lodge-water-hole-edge-3835232b","title":"Water Hole Edge Module (Safari Camp and Bush Lodge)","summary":"A 6 m ground module with a 3.6 m pan sunk into it: a churned mud rim, a flat sheet of green standing water, boulders round the lip and grass on the approach. The water is a flat plane and does not move: a surface needs a shader. Shares the ground ports.","description":"A 6 m ground module with a 3.6 m pan sunk into it: a churned mud rim, a flat sheet of green standing water, boulders round the lip and grass on the approach. The water is a flat plane and does not move: a surface needs a shader. Shares the ground ports. Overall 6.000 x 0.412 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (ground), south (ground), west (ground), east (ground). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-water-hole-edge-3835232b","cdnUrl":"https://cdn.3dassets.dev/assets/37709/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-water-hole-edge-3835232b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37709/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37709/v1/poster.webp","blurhash":"U6C6c6-p00aMt8axs9of00Io~oS1IUofX8Rk","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":45672,"triangles":548,"vertices":1644,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-3,0.00014614143237193233,-3],"max":[3,0.411379316665086,3]},"sizeMeters":[6,0.411,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:38.768Z","updatedAt":"2026-09-12T05:45:38.880Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37709/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WaterHoleEdgeModuleSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37709/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37709/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37709/v1/model.glb\" alt=\"Water Hole Edge Module (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37709/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37709/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37707","slug":"safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","title":"Dry Riverbed Module (Safari Camp and Bush Lodge)","summary":"A 6 m square of sand river: a 3.0 m bed of pale sand between two cut banks, scattered with rounded stones, a washed down dead branch and grass on the bank edges. Shares the ground module ports.","description":"A 6 m square of sand river: a 3.0 m bed of pale sand between two cut banks, scattered with rounded stones, a washed down dead branch and grass on the bank edges. Shares the ground module ports. Overall 6.000 x 0.497 x 6.000 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (ground), south (ground), west (ground), east (ground). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","cdnUrl":"https://cdn.3dassets.dev/assets/37707/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-dry-riverbed-module-f4477cfa","thumbnailUrl":"https://cdn.3dassets.dev/assets/37707/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37707/v1/poster.webp","blurhash":"U9Cipy%200oJxaoeWCWX00M|~VR*IoRkkBt3","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":47756,"triangles":484,"vertices":1452,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-3.001199960708618,0.000038448035049404305,-3.000100854915335],"max":[3.001199960708618,0.49711934869674834,3.000100854915335]},"sizeMeters":[6.002,0.497,6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:39.435Z","updatedAt":"2026-09-12T05:45:39.609Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37707/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DryRiverbedModuleSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37707/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37707/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37707/v1/model.glb\" alt=\"Dry Riverbed Module (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37707/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37707/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37706","slug":"safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","title":"Bush Track Module (Safari Camp and Bush Lodge)","summary":"A 6 m square of bush track: two wheel ruts 0.55 m wide worn 40 mm into the dust on a 1.7 m gauge, a strip of dry grass growing up the middle and verges either side. Shares the ground module ports, so a track runs through a tiled plot.","description":"A 6 m square of bush track: two wheel ruts 0.55 m wide worn 40 mm into the dust on a 1.7 m gauge, a strip of dry grass growing up the middle and verges either side. Shares the ground module ports, so a track runs through a tiled plot. Overall 6.000 x 0.314 x 6.024 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (ground), south (ground), west (ground), east (ground). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","cdnUrl":"https://cdn.3dassets.dev/assets/37706/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-track-module-with-ruts-4e20eaea","thumbnailUrl":"https://cdn.3dassets.dev/assets/37706/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37706/v1/poster.webp","blurhash":"U6B{[Y%L00jExaayRjjZ00Mz~oWVIooftQWU","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24100,"triangles":180,"vertices":540,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-3,-0.00005904531665879009,-3],"max":[3,0.3139947423953636,3.02436900138855]},"sizeMeters":[6,0.314,6.024],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:38.730Z","updatedAt":"2026-09-12T05:45:38.835Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37706/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BushTrackModuleSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37706/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37706/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37706/v1/model.glb\" alt=\"Bush Track Module (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37706/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37706/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37711","slug":"safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","title":"Pole and Wire Fence Section (Safari Camp and Bush Lodge)","summary":"A 2.4 m fence bay: two timber poles 1.25 m high with capped tops, three strained wires and one diagonal stay. Chains end to end on the start and end ports and meets the camp gate on the same ports. Static geometry: the wires are solid rods.","description":"A 2.4 m fence bay: two timber poles 1.25 m high with capped tops, three strained wires and one diagonal stay. Chains end to end on the start and end ports and meets the camp gate on the same ports. Static geometry: the wires are solid rods. Overall 2.480 x 1.330 x 0.139 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (fence), end (fence). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","cdnUrl":"https://cdn.3dassets.dev/assets/37711/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-pole-and-wire-fence-section-5cd9cd73","thumbnailUrl":"https://cdn.3dassets.dev/assets/37711/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37711/v1/poster.webp","blurhash":"UBBy:Nxa4Tr[?b^kM{D%00tR_NIU8_D%%M?b","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15996,"triangles":160,"vertices":480,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.2400000095367432,-0.00008988181792424221,-0.06932828813963175],"max":[1.2400000095367432,1.3300622801565034,0.06932828813963175]},"sizeMeters":[2.48,1.33,0.139],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:40.654Z","updatedAt":"2026-09-12T05:45:40.754Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37711/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoleAndWireFenceSectionSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37711/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37711/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37711/v1/model.glb\" alt=\"Pole and Wire Fence Section (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37711/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37711/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37708","slug":"safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","title":"Boma Thorn Brush Fence Section (Safari Camp and Bush Lodge)","summary":"A 2 m run of cut thorn brush piled 1.5 m high between two stakes, the branches sticking out of it the way a boma is built. Chains end to end on the start and end ports. Static geometry.","description":"A 2 m run of cut thorn brush piled 1.5 m high between two stakes, the branches sticking out of it the way a boma is built. Chains end to end on the start and end ports. Static geometry. Overall 2.370 x 1.809 x 1.243 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (fence), end (fence). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","cdnUrl":"https://cdn.3dassets.dev/assets/37708/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-boma-thorn-fence-section-79769b04","thumbnailUrl":"https://cdn.3dassets.dev/assets/37708/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37708/v1/poster.webp","blurhash":"U18:6E6305^z06}q?D0k1Hv+#EGA+$%Z~49L","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":34140,"triangles":464,"vertices":1392,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.184999942779541,-0.0000720145439182529,-0.6285814127761763],"max":[1.184999942779541,1.8095238330101049,0.6144624433357161]},"sizeMeters":[2.37,1.81,1.243],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:39.787Z","updatedAt":"2026-09-12T05:45:39.887Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37708/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BomaThornBrushFenceSectionSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37708/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37708/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37708/v1/model.glb\" alt=\"Boma Thorn Brush Fence Section (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37708/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37708/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37710","slug":"safari-camp-and-bush-lodge-camp-gate-and-sign-board-3a088c5e","title":"Camp Gate with Blank Sign Board (Safari Camp and Bush Lodge)","summary":"A 3.6 m camp entrance: two heavy timber posts under a lintel, a hanging sign board left blank on both faces to letter, and a 2.5 m braced gate hung on the left post. The gate is one node and swings on the clip. Meets the pole and wire fence on the same ports.","description":"A 3.6 m camp entrance: two heavy timber posts under a lintel, a hanging sign board left blank on both faces to letter, and a 2.5 m braced gate hung on the left post. The gate is one node and swings on the clip. Meets the pole and wire fence on the same ports. Overall 3.620 x 3.060 x 0.346 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: gate. Connectors: start (fence), end (fence). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-camp-gate-and-sign-board-3a088c5e","cdnUrl":"https://cdn.3dassets.dev/assets/37710/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-camp-gate-and-sign-board-3a088c5e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37710/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37710/v1/poster.webp","blurhash":"U6A]1+E101xv~B=Z57I@0L%1?HIV9EtR.7E2","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25840,"triangles":276,"vertices":828,"meshes":6,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-1.809999942779541,-0.00006582645507413609,-0.11246558682513338],"max":[1.809999942779541,3.060078146896644,0.23328134282484342]},"sizeMeters":[3.62,3.06,0.346],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:40.447Z","updatedAt":"2026-09-12T05:45:40.543Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37710/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CampGateWithBlankSignBoardSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37710/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37710/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37710/v1/model.glb\" alt=\"Camp Gate with Blank Sign Board (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37710/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37710/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37718","slug":"safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","title":"Bleached Bone Set (Safari Camp and Bush Lodge)","summary":"A sun bleached skull, two long bones and a curve of ribs lying in the dust over a 2 m patch, the leftovers of an old kill. Landscape dressing: no creature is modelled or implied beyond the bones themselves. Static geometry.","description":"A sun bleached skull, two long bones and a curve of ribs lying in the dust over a 2 m patch, the leftovers of an old kill. Landscape dressing: no creature is modelled or implied beyond the bones themselves. Static geometry. Overall 2.185 x 0.374 x 1.813 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","cdnUrl":"https://cdn.3dassets.dev/assets/37718/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-bleached-bone-set-4e773c97","thumbnailUrl":"https://cdn.3dassets.dev/assets/37718/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37718/v1/poster.webp","blurhash":"U49%#M~q9F?b-;WBD%xu0000-:D%00of~p9F","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15136,"triangles":292,"vertices":876,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.945155918598175,0.000007690311616931345,-0.5779145873673075],"max":[1.2400000095367432,0.3739923225629863,1.2345904625542277]},"sizeMeters":[2.185,0.374,1.813],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:44.026Z","updatedAt":"2026-09-12T05:45:44.120Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37718/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BleachedBoneSetSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37718/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37718/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37718/v1/model.glb\" alt=\"Bleached Bone Set (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37718/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37718/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37717","slug":"safari-camp-and-bush-lodge-termite-mound-1472d7e0","title":"Termite Mound (Safari Camp and Bush Lodge)","summary":"A 2.4 m termite mound: a buttressed base 2.3 m across rising to a narrow chimney, with four smaller spires round it. Landscape geometry, not a creature. Static.","description":"A 2.4 m termite mound: a buttressed base 2.3 m across rising to a narrow chimney, with four smaller spires round it. Landscape geometry, not a creature. Static. Overall 2.231 x 2.472 x 2.265 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-termite-mound-1472d7e0","cdnUrl":"https://cdn.3dassets.dev/assets/37717/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-termite-mound-1472d7e0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37717/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37717/v1/poster.webp","blurhash":"U8CF|u^+004o00Io^*xt01NG^*xa~UxaNakD","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21948,"triangles":140,"vertices":420,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.0806164081948617,0,-1.1324938582548905],"max":[1.1499698694604257,2.4719998836517334,1.1324938582548905]},"sizeMeters":[2.231,2.472,2.265],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:43.277Z","updatedAt":"2026-09-12T05:45:43.505Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37717/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TermiteMoundSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37717/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37717/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37717/v1/model.glb\" alt=\"Termite Mound (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37717/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37717/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37666","slug":"safari-camp-and-bush-lodge-safari-tent-large-open-f8233e80","title":"Large Canvas Safari Tent, Flaps Open (Safari Camp and Bush Lodge)","summary":"The same tent with both door flaps swung open and held back off the deck, so the bed and the wash stand inside read from the front. The open pose is modelled, so this variant ships no clip.","description":"The same tent with both door flaps swung open and held back off the deck, so the bed and the wash stand inside read from the front. The open pose is modelled, so this variant ships no clip. Overall 4.260 x 3.060 x 4.341 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: flap-left, flap-right, held open. Functional variant of safari-tent-large. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-safari-tent-large-open-f8233e80","cdnUrl":"https://cdn.3dassets.dev/assets/37666/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-safari-tent-large-open-f8233e80","thumbnailUrl":"https://cdn.3dassets.dev/assets/37666/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37666/v1/poster.webp","blurhash":"UAFO}vIV00-:.9NFIT%300bI~qjE8^t7-;NG","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33340,"triangles":452,"vertices":1356,"meshes":6,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2.130000114440918,0.000022265742804172817,-2.0298932942792],"max":[2.130000114440918,3.059994843174432,2.311423403918505]},"sizeMeters":[4.26,3.06,4.341],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:17.599Z","updatedAt":"2026-09-12T05:45:17.729Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37666/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LargeCanvasSafariTentFlapsOpenSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37666/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37666/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37666/v1/model.glb\" alt=\"Large Canvas Safari Tent, Flaps Open (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37666/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37666/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37669","slug":"safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","title":"Tent Awning and Guy Set (Safari Camp and Bush Lodge)","summary":"A 3.2 by 2.2 m canvas shade fly on two front poles, falling 0.3 m from back to front so water runs off, with a valance down each side and two guyed pegs. Stands in front of a tent or over a table. Static: canvas and guys need a joint per element.","description":"A 3.2 by 2.2 m canvas shade fly on two front poles, falling 0.3 m from back to front so water runs off, with a valance down each side and two guyed pegs. Stands in front of a tent or over a table. Static: canvas and guys need a joint per element. Overall 4.660 x 2.674 x 2.933 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","cdnUrl":"https://cdn.3dassets.dev/assets/37669/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-tent-awning-and-guy-set-05ec2e4a","thumbnailUrl":"https://cdn.3dassets.dev/assets/37669/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37669/v1/poster.webp","blurhash":"UMCsaFV[4n%L~qRkD%WCD%WVWBM{00xu%NWB","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14608,"triangles":140,"vertices":420,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2.3299999237060547,0.00006967588154527249,-1.1033874333175853],"max":[2.3299999237060547,2.673960628073533,1.8298896243240659]},"sizeMeters":[4.66,2.674,2.933],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:19.205Z","updatedAt":"2026-09-12T05:45:19.305Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37669/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TentAwningAndGuySetSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37669/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37669/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37669/v1/model.glb\" alt=\"Tent Awning and Guy Set (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37669/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37669/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37672","slug":"safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","title":"Camp Bed with Mosquito Net Frame (Safari Camp and Bush Lodge)","summary":"A 1 by 2 m canvas camp bed on splayed timber legs with a rolled blanket and a pillow, standing inside a 1.5 m steel net frame with the mosquito net gathered into a valance under the top rail and tied back at the corners. The netting is solid geometry and does not move.","description":"A 1 by 2 m canvas camp bed on splayed timber legs with a rolled blanket and a pillow, standing inside a 1.5 m steel net frame with the mosquito net gathered into a valance under the top rail and tied back at the corners. The netting is solid geometry and does not move. Overall 1.160 x 1.527 x 2.170 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","cdnUrl":"https://cdn.3dassets.dev/assets/37672/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-camp-bed-and-net-frame-0a2765e8","thumbnailUrl":"https://cdn.3dassets.dev/assets/37672/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37672/v1/poster.webp","blurhash":"UJG+O4-:00Rj~qD%Rj-:00IAt6j[Rit6M{WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23872,"triangles":316,"vertices":948,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.5777651375037915,-0.000007422226689063338,-1.084854245185852],"max":[0.5819667881232984,1.5267237475945588,1.084854245185852]},"sizeMeters":[1.16,1.527,2.17],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:20.460Z","updatedAt":"2026-09-12T05:45:20.556Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37672/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampBedWithMosquitoNetFrameSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37672/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37672/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37672/v1/model.glb\" alt=\"Camp Bed with Mosquito Net Frame (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37672/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37672/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37671","slug":"safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","title":"Canvas Wash Stand and Jug (Safari Camp and Bush Lodge)","summary":"A 0.78 m tented bathroom wash stand: a canvas basin slung in a timber ring on a three legged frame, with a galvanised jug beside it and a towel over the lower rail. The canvas and the towel are modelled solid and stated as static.","description":"A 0.78 m tented bathroom wash stand: a canvas basin slung in a timber ring on a three legged frame, with a galvanised jug beside it and a towel over the lower rail. The canvas and the towel are modelled solid and stated as static. Overall 0.658 x 1.056 x 0.641 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","cdnUrl":"https://cdn.3dassets.dev/assets/37671/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-canvas-wash-stand-f35a20f8","thumbnailUrl":"https://cdn.3dassets.dev/assets/37671/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37671/v1/poster.webp","blurhash":"U49Zix~C0000_NW=00Rj0ME2^j^kIoxt-VIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21672,"triangles":252,"vertices":756,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2900328072674795,0,-0.32066638191491315],"max":[0.3680328163273855,1.0557919442278478,0.32066638191491315]},"sizeMeters":[0.658,1.056,0.641],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:19.352Z","updatedAt":"2026-09-12T05:45:19.450Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37671/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CanvasWashStandAndJugSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37671/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37671/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37671/v1/model.glb\" alt=\"Canvas Wash Stand and Jug (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37671/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37671/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37670","slug":"safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","title":"Bucket Shower Frame (Safari Camp and Bush Lodge)","summary":"A 2.5 m timber bucket shower: two splayed A frames under a head beam, a galvanised bucket and rose slung on a trunnion, a slatted duckboard and canvas screens on two sides. The bucket is one node and tips forward on the clip; the screens do not move.","description":"A 2.5 m timber bucket shower: two splayed A frames under a head beam, a galvanised bucket and rose slung on a trunnion, a slatted duckboard and canvas screens on two sides. The bucket is one node and tips forward on the clip; the screens do not move. Overall 1.821 x 2.520 x 1.744 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: bucket. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: tip. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","cdnUrl":"https://cdn.3dassets.dev/assets/37670/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-bucket-shower-frame-c54d734e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37670/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37670/v1/poster.webp","blurhash":"UCD]6t%100%3NwozRjRi00Rj~qIoadM_t7xu","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":37280,"triangles":504,"vertices":1512,"meshes":5,"materials":4,"textures":1,"animations":["tip"],"boundingBox":{"min":[-0.9064090555739489,0,-0.8722570586270741],"max":[0.9150033300948229,2.5197255611419678,0.8722570586270741]},"sizeMeters":[1.821,2.52,1.745],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:19.319Z","updatedAt":"2026-09-12T05:45:19.422Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37670/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function BucketShowerFrameSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37670/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37670/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37670/v1/model.glb\" alt=\"Bucket Shower Frame (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37670/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37670/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37690","slug":"safari-camp-and-bush-lodge-lantern-set-6fa2e57a","title":"Storm Lantern Set (Safari Camp and Bush Lodge)","summary":"Three galvanised storm lanterns of different sizes standing together, the tallest 0.44 m to the top of its handle, with glass chimneys in warm lamp colour. The glow is emissive material, not a light: the GLB embeds no lights.","description":"Three galvanised storm lanterns of different sizes standing together, the tallest 0.44 m to the top of its handle, with glass chimneys in warm lamp colour. The glow is emissive material, not a light: the GLB embeds no lights. Overall 0.850 x 0.391 x 0.410 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-lantern-set-6fa2e57a","cdnUrl":"https://cdn.3dassets.dev/assets/37690/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-lantern-set-6fa2e57a","thumbnailUrl":"https://cdn.3dassets.dev/assets/37690/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37690/v1/poster.webp","blurhash":"UFDl[]t700RjE1-:%29F00M{~p%MxtE1M|-:","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27228,"triangles":528,"vertices":1584,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3959999978542328,-0.0000023319837495483497,-0.21599664146685274],"max":[0.45399999618530273,0.3910023346063539,0.19399664158606203]},"sizeMeters":[0.85,0.391,0.41],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:29.945Z","updatedAt":"2026-09-12T05:45:30.042Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37690/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StormLanternSetSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37690/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37690/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37690/v1/model.glb\" alt=\"Storm Lantern Set (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37690/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37690/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37688","slug":"safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","title":"Folding Camp Chair (Safari Camp and Bush Lodge)","summary":"A crossed leg timber camp chair with a canvas seat and back and two flat arms, 0.58 m wide and 0.86 m to the top of the back. Static geometry: a folding chair folds on four joints and a rigid node cannot give them.","description":"A crossed leg timber camp chair with a canvas seat and back and two flat arms, 0.58 m wide and 0.86 m to the top of the back. Static geometry: a folding chair folds on four joints and a rigid node cannot give them. Overall 0.755 x 0.880 x 0.603 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","cdnUrl":"https://cdn.3dassets.dev/assets/37688/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-folding-camp-chair-20878b9f","thumbnailUrl":"https://cdn.3dassets.dev/assets/37688/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37688/v1/poster.webp","blurhash":"UGDI:#RP00%M~qM{4.x]01Rj%MtR9Fxa%LRP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18272,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.3776575808557173,0,-0.32443458704145933],"max":[0.3775951747926375,0.8803246610295686,0.27862403659018065]},"sizeMeters":[0.755,0.88,0.603],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:29.271Z","updatedAt":"2026-09-12T05:45:29.373Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37688/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoldingCampChairSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37688/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37688/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37688/v1/model.glb\" alt=\"Folding Camp Chair (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37688/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37688/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37716","slug":"safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","title":"Tall Grass Tuft Cluster (Safari Camp and Bush Lodge)","summary":"Seven tufts of tall dry savanna grass on a 1.5 m patch, the tallest 0.75 m. Scatter them to break up bare ground. Static geometry; no wind animation.","description":"Seven tufts of tall dry savanna grass on a 1.5 m patch, the tallest 0.75 m. Scatter them to break up bare ground. Static geometry; no wind animation. Overall 1.593 x 0.718 x 1.336 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","cdnUrl":"https://cdn.3dassets.dev/assets/37716/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-grass-tuft-cluster-8eaa2b17","thumbnailUrl":"https://cdn.3dassets.dev/assets/37716/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37716/v1/poster.webp","blurhash":"U5E2?+~o00?ZIpxt-nWA009G^*9G?HIp9boh","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9172,"triangles":168,"vertices":504,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.873508870601654,0.00002428493177564217,-0.5322804914481415],"max":[0.7196235656738281,0.7177045086892876,0.8035547600753082]},"sizeMeters":[1.593,0.718,1.336],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:43.006Z","updatedAt":"2026-09-12T05:45:43.100Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37716/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TallGrassTuftClusterSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37716/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37716/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37716/v1/model.glb\" alt=\"Tall Grass Tuft Cluster (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37716/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37716/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37715","slug":"safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","title":"Bush Scrub Clump (Safari Camp and Bush Lodge)","summary":"Three low thorn scrub bushes growing together, 2.6 m across and 1.1 m at the tallest, with bare stems showing through. Static geometry; no wind animation.","description":"Three low thorn scrub bushes growing together, 2.6 m across and 1.1 m at the tallest, with bare stems showing through. Static geometry; no wind animation. Overall 2.750 x 1.100 x 1.655 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","cdnUrl":"https://cdn.3dassets.dev/assets/37715/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-scrub-clump-ed89a8a0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37715/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37715/v1/poster.webp","blurhash":"U49tf7RQ00_L8|kVt7Mz00RQ?tIV^+xtx@V@","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17292,"triangles":180,"vertices":540,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.25,0.00007554523188202378,-0.6374254311224683],"max":[1.5,1.0999244786099758,1.0174254859587415]},"sizeMeters":[2.75,1.1,1.655],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:42.303Z","updatedAt":"2026-09-12T05:45:42.394Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37715/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BushScrubClumpSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37715/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37715/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37715/v1/model.glb\" alt=\"Bush Scrub Clump (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37715/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37715/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37665","slug":"safari-camp-and-bush-lodge-safari-tent-small-fd7b6a2e","title":"Small Canvas Safari Tent on Deck (Safari Camp and Bush Lodge)","summary":"A 2.4 by 2.4 m cream canvas ridge tent on a 3.1 by 3.1 m boarded deck raised 0.34 m on stump piers, with a 2.2 m ridge, a pegged guy rope at each corner and two door flaps on the doorway jambs. The flaps are the only moving parts; the canvas is solid.","description":"A 2.4 by 2.4 m cream canvas ridge tent on a 3.1 by 3.1 m boarded deck raised 0.34 m on stump piers, with a 2.2 m ridge, a pegged guy rope at each corner and two door flaps on the doorway jambs. The flaps are the only moving parts; the canvas is solid. Overall 3.460 x 2.763 x 3.460 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: flap-left, flap-right. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-safari-tent-small-fd7b6a2e","cdnUrl":"https://cdn.3dassets.dev/assets/37665/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-safari-tent-small-fd7b6a2e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37665/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37665/v1/poster.webp","blurhash":"U9F=w3xu00oy%~M{Md-p00IU_NtR8_xu?HMy","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":32008,"triangles":428,"vertices":1284,"meshes":6,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-1.7300000190734863,-0.00005275397609660892,-1.7300000190734863],"max":[1.7300000190734863,2.762656513741722,1.7300000190734863]},"sizeMeters":[3.46,2.763,3.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:17.399Z","updatedAt":"2026-09-12T05:45:17.591Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37665/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SmallCanvasSafariTentOnDeckSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37665/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37665/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37665/v1/model.glb\" alt=\"Small Canvas Safari Tent on Deck (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37665/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37665/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37668","slug":"safari-camp-and-bush-lodge-safari-tent-large-75f1758c","title":"Large Canvas Safari Tent on Deck (Safari Camp and Bush Lodge)","summary":"A 3.2 by 3 m cream canvas ridge tent on a 4 by 3.8 m boarded deck raised 0.34 m on stump piers, with a 2.5 m ridge, a pegged guy rope at each corner and two door flaps on the doorway jambs. The flaps are the only moving parts; the canvas is solid.","description":"A 3.2 by 3 m cream canvas ridge tent on a 4 by 3.8 m boarded deck raised 0.34 m on stump piers, with a 2.5 m ridge, a pegged guy rope at each corner and two door flaps on the doorway jambs. The flaps are the only moving parts; the canvas is solid. Overall 4.260 x 3.060 x 4.060 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: flap-left, flap-right. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-safari-tent-large-75f1758c","cdnUrl":"https://cdn.3dassets.dev/assets/37668/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-safari-tent-large-75f1758c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37668/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37668/v1/poster.webp","blurhash":"U9GIT6xt00%LyYIVD%-;00IU_Nt7H=%K-pMx","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":33452,"triangles":452,"vertices":1356,"meshes":6,"materials":2,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-2.130000114440918,0.000022265742804172817,-2.0298932942792],"max":[2.130000114440918,3.059994843174432,2.0298932942792]},"sizeMeters":[4.26,3.06,4.06],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:17.614Z","updatedAt":"2026-09-12T05:45:17.733Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37668/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LargeCanvasSafariTentOnDeckSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37668/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37668/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37668/v1/model.glb\" alt=\"Large Canvas Safari Tent on Deck (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37668/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37668/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37667","slug":"safari-camp-and-bush-lodge-safari-tent-small-open-e477d111","title":"Small Canvas Safari Tent, Flaps Open (Safari Camp and Bush Lodge)","summary":"The same tent with both door flaps swung open and held back off the deck, so the bed and the wash stand inside read from the front. The open pose is modelled, so this variant ships no clip.","description":"The same tent with both door flaps swung open and held back off the deck, so the bed and the wash stand inside read from the front. The open pose is modelled, so this variant ships no clip. Overall 3.460 x 2.763 x 3.542 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: flap-left, flap-right, held open. Functional variant of safari-tent-small. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-safari-tent-small-open-e477d111","cdnUrl":"https://cdn.3dassets.dev/assets/37667/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-safari-tent-small-open-e477d111","thumbnailUrl":"https://cdn.3dassets.dev/assets/37667/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37667/v1/poster.webp","blurhash":"U9Frntj?00-;.TM{D$%M00NG_3ae8ws:?HRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31896,"triangles":428,"vertices":1284,"meshes":6,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.7300000190734863,-0.00005275397609660892,-1.7300000190734863],"max":[1.7300000190734863,2.762656513741722,1.8122632482904444]},"sizeMeters":[3.46,2.763,3.542],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:17.597Z","updatedAt":"2026-09-12T05:45:17.714Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37667/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmallCanvasSafariTentFlapsOpenSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37667/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37667/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37667/v1/model.glb\" alt=\"Small Canvas Safari Tent, Flaps Open (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37667/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37667/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37679","slug":"safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","title":"Raised Walkway with Rope Handrail (Safari Camp and Bush Lodge)","summary":"A 2.4 m bay of raised camp walkway: a 1.1 m boarded deck 0.4 m off the dust on four posts, with two runs of rope handrail through the post heads. Bays chain end to end on the start and end ports to link the tents to the fire. The rope is solid geometry and does not move.","description":"A 2.4 m bay of raised camp walkway: a 1.1 m boarded deck 0.4 m off the dust on four posts, with two runs of rope handrail through the post heads. Bays chain end to end on the start and end ports to link the tents to the fire. The rope is solid geometry and does not move. Overall 2.400 x 1.400 x 1.100 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (walkway), end (walkway). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","cdnUrl":"https://cdn.3dassets.dev/assets/37679/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-raised-walkway-section-1ae12576","thumbnailUrl":"https://cdn.3dassets.dev/assets/37679/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37679/v1/poster.webp","blurhash":"UHD[tnr=9F%2~q$jITX80ztRSzM{8_XTo}IV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22384,"triangles":272,"vertices":816,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.0000086183601381018,-0.5499516092585292],"max":[1.2000000476837158,1.399991357798004,0.5499516092585292]},"sizeMeters":[2.4,1.4,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:22.827Z","updatedAt":"2026-09-12T05:45:22.933Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37679/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RaisedWalkwayWithRopeHandrailSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37679/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37679/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37679/v1/model.glb\" alt=\"Raised Walkway with Rope Handrail (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37679/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37679/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37691","slug":"safari-camp-and-bush-lodge-paraffin-lamp-48718fed","title":"Paraffin Table Lamp (Safari Camp and Bush Lodge)","summary":"A 0.64 m paraffin lamp with a pressed steel reservoir, a knurled wick wheel on a short spindle, a warm glass chimney and a flared shade. The flame colour is emissive material only; the file embeds no lights. Static geometry.","description":"A 0.64 m paraffin lamp with a pressed steel reservoir, a knurled wick wheel on a short spindle, a warm glass chimney and a flared shade. The flame colour is emissive material only; the file embeds no lights. Static geometry. Overall 0.342 x 0.640 x 0.321 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-paraffin-lamp-48718fed","cdnUrl":"https://cdn.3dassets.dev/assets/37691/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-paraffin-lamp-48718fed","thumbnailUrl":"https://cdn.3dassets.dev/assets/37691/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37691/v1/poster.webp","blurhash":"U4CsdR-V00E0^*Rk4:xu01Io~o-:I{s.=;WX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19144,"triangles":232,"vertices":696,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.1820000256309268,0,-0.15216284336545924],"max":[0.1600244112307564,0.6399999856948853,0.16905193987742775]},"sizeMeters":[0.342,0.64,0.321],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:28.936Z","updatedAt":"2026-09-12T05:45:29.117Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37691/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ParaffinTableLampSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37691/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37691/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37691/v1/model.glb\" alt=\"Paraffin Table Lamp (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37691/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37691/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37676","slug":"safari-camp-and-bush-lodge-lodge-main-building-front-e8f9369b","title":"Lodge Main Building Front and Veranda (Safari Camp and Bush Lodge)","summary":"A 7.2 m bush lodge frontage: rendered earth walls 2.9 m high with two window openings and a wide doorway, an open sided boarded veranda 2.6 m deep on five posts, and a thatched pitch falling forward over it. Open fronted, so it reads from a walking camera. Static geometry.","description":"A 7.2 m bush lodge frontage: rendered earth walls 2.9 m high with two window openings and a wide doorway, an open sided boarded veranda 2.6 m deep on five posts, and a thatched pitch falling forward over it. Open fronted, so it reads from a walking camera. Static geometry. Overall 7.940 x 3.770 x 3.419 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-lodge-main-building-front-e8f9369b","cdnUrl":"https://cdn.3dassets.dev/assets/37676/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-lodge-main-building-front-e8f9369b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37676/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37676/v1/poster.webp","blurhash":"UNF=X6ae4pV[~p%LIVIp0L%MxZIV8{R*xuRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":51536,"triangles":528,"vertices":1584,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-3.9700000286102295,0.00009011569616723669,-1.6801708455262856],"max":[3.9700000286102295,3.7699295540340843,1.7386792416749672]},"sizeMeters":[7.94,3.77,3.419],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:22.305Z","updatedAt":"2026-09-12T05:45:22.403Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37676/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LodgeMainBuildingFrontAndVerandaSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37676/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37676/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37676/v1/model.glb\" alt=\"Lodge Main Building Front and Veranda (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37676/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37676/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37677","slug":"safari-camp-and-bush-lodge-thatch-roof-section-1373d083","title":"Thatch Roof Section (Safari Camp and Bush Lodge)","summary":"A 2.4 m bay of thatched pitch on its purlins and two posts, falling 0.9 m over a 3 m span. Bays chain edge to edge on the start and end ports to roof a boma, a store or a veranda of any length. Static geometry.","description":"A 2.4 m bay of thatched pitch on its purlins and two posts, falling 0.9 m over a 3 m span. Bays chain edge to edge on the start and end ports to roof a boma, a store or a veranda of any length. Static geometry. Overall 2.460 x 2.694 x 3.160 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: start (thatch), end (thatch). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-thatch-roof-section-1373d083","cdnUrl":"https://cdn.3dassets.dev/assets/37677/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-thatch-roof-section-1373d083","thumbnailUrl":"https://cdn.3dassets.dev/assets/37677/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37677/v1/poster.webp","blurhash":"UWF5pat64pWV~oRkD*t6D+IVkCxt9GV@t7oe","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16884,"triangles":168,"vertices":504,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.230121191894691,-0.00009902285333329708,-1.5800000429153442],"max":[1.230121191894691,2.6936094658755403,1.5800000429153442]},"sizeMeters":[2.46,2.694,3.16],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:23.537Z","updatedAt":"2026-09-12T05:45:23.642Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37677/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThatchRoofSectionSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37677/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37677/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37677/v1/model.glb\" alt=\"Thatch Roof Section (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37677/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37677/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37674","slug":"safari-camp-and-bush-lodge-thatched-rondavel-small-a302adc8","title":"Small Thatched Rondavel (Safari Camp and Bush Lodge)","summary":"A round bush guest hut 3.8 m across with rendered earth walls 2.2 m to the eaves, a timber door frame and a conical thatch roof on a timber eaves plate. The plank door swings on its jamb; the thatch is a solid cone and does not move. Exterior model: there is no interior.","description":"A round bush guest hut 3.8 m across with rendered earth walls 2.2 m to the eaves, a timber door frame and a conical thatch roof on a timber eaves plate. The plank door swings on its jamb; the thatch is a solid cone and does not move. Exterior model: there is no interior. Overall 4.640 x 4.345 x 4.640 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-thatched-rondavel-small-a302adc8","cdnUrl":"https://cdn.3dassets.dev/assets/37674/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-thatched-rondavel-small-a302adc8","thumbnailUrl":"https://cdn.3dassets.dev/assets/37674/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37674/v1/poster.webp","blurhash":"UCD+o5%200NGJnkCs9V@00M{~ot79GWC-:oy","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44268,"triangles":384,"vertices":1152,"meshes":4,"materials":3,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2.319999933242798,-0.00009641992011499845,-2.319999933242798],"max":[2.319999933242798,4.344900839441019,2.319999933242798]},"sizeMeters":[4.64,4.345,4.64],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:20.961Z","updatedAt":"2026-09-12T05:45:21.076Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37674/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SmallThatchedRondavelSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37674/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37674/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37674/v1/model.glb\" alt=\"Small Thatched Rondavel (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37674/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37674/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37675","slug":"safari-camp-and-bush-lodge-thatched-rondavel-large-f0488473","title":"Large Thatched Rondavel (Safari Camp and Bush Lodge)","summary":"A round bush guest hut 5.2 m across with rendered earth walls 2.5 m to the eaves, a timber door frame and a conical thatch roof on a timber eaves plate. The plank door swings on its jamb; the thatch is a solid cone and does not move. Exterior model: there is no interior.","description":"A round bush guest hut 5.2 m across with rendered earth walls 2.5 m to the eaves, a timber door frame and a conical thatch roof on a timber eaves plate. The plank door swings on its jamb; the thatch is a solid cone and does not move. Exterior model: there is no interior. Overall 6.040 x 5.310 x 6.040 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-thatched-rondavel-large-f0488473","cdnUrl":"https://cdn.3dassets.dev/assets/37675/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-thatched-rondavel-large-f0488473","thumbnailUrl":"https://cdn.3dassets.dev/assets/37675/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37675/v1/poster.webp","blurhash":"UDD]F,-V00NGEgSgsmjF00M|~ooyMeni%Ls:","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":44240,"triangles":384,"vertices":1152,"meshes":4,"materials":3,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-3.0199999809265137,0.00010678819600551392,-3.0199999809265137],"max":[3.0199999809265137,5.309913850020663,3.0199999809265137]},"sizeMeters":[6.04,5.31,6.04],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:21.057Z","updatedAt":"2026-09-12T05:45:21.242Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37675/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LargeThatchedRondavelSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37675/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37675/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37675/v1/model.glb\" alt=\"Large Thatched Rondavel (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37675/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37675/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37678","slug":"safari-camp-and-bush-lodge-timber-deck-module-29012ee7","title":"Timber Deck Module (Safari Camp and Bush Lodge)","summary":"A 2.4 m square boarded deck on stump piers and two bearers, standing 0.50 m to the walking surface. Edge ports on all four sides tile it out under a tent, a dining area or a lodge front. Static geometry.","description":"A 2.4 m square boarded deck on stump piers and two bearers, standing 0.50 m to the walking surface. Edge ports on all four sides tile it out under a tent, a dining area or a lodge front. Static geometry. Overall 2.400 x 0.500 x 2.384 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Connectors: north (deck), south (deck), west (deck), east (deck). Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-timber-deck-module-29012ee7","cdnUrl":"https://cdn.3dassets.dev/assets/37678/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-timber-deck-module-29012ee7","thumbnailUrl":"https://cdn.3dassets.dev/assets/37678/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37678/v1/poster.webp","blurhash":"U49Fp2-A0$WE}=oLEgj[0NJ8^4W.0hWV$iR+","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"modular","title":"Modular"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15592,"triangles":156,"vertices":468,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.2000000476837158,0.0000900196724241964,-1.1919431608619007],"max":[1.2000000476837158,0.49990998032757583,1.1919431608619007]},"sizeMeters":[2.4,0.5,2.384],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:22.687Z","updatedAt":"2026-09-12T05:45:22.878Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37678/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberDeckModuleSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37678/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37678/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37678/v1/model.glb\" alt=\"Timber Deck Module (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37678/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37678/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37689","slug":"safari-camp-and-bush-lodge-dining-table-and-camp-chair-675dd1f7","title":"Camp Dining Table and Chairs (Safari Camp and Bush Lodge)","summary":"A 2.2 by 1.1 m slatted timber dining table 0.76 m high laid with a runner, two lanterns and four plates, with four folding camp chairs round it. Stands under a tree or an awning. Static geometry; the chairs are modelled in place.","description":"A 2.2 by 1.1 m slatted timber dining table 0.76 m high laid with a runner, two lanterns and four plates, with four folding camp chairs round it. Stands under a tree or an awning. Static geometry; the chairs are modelled in place. Overall 3.689 x 1.175 x 2.589 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-dining-table-and-camp-chair-675dd1f7","cdnUrl":"https://cdn.3dassets.dev/assets/37689/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-dining-table-and-camp-chair-675dd1f7","thumbnailUrl":"https://cdn.3dassets.dev/assets/37689/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37689/v1/poster.webp","blurhash":"U89jGtxa00NGx]xtRiR+00W.~VofD$E2x]xY","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":80284,"triangles":1288,"vertices":3864,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.844424843788147,0.0000357000279965769,-1.2943114980945662],"max":[1.844424843788147,1.1750849372652934,1.2943114980945662]},"sizeMeters":[3.689,1.175,2.589],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:29.789Z","updatedAt":"2026-09-12T05:45:29.909Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37689/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampDiningTableAndChairsSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37689/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37689/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37689/v1/model.glb\" alt=\"Camp Dining Table and Chairs (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37689/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37689/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37684","slug":"safari-camp-and-bush-lodge-kitchen-boma-and-grill-015c486e","title":"Kitchen Boma with Grill and Hanging Pot (Safari Camp and Bush Lodge)","summary":"A 3.4 by 2.6 m bush kitchen: a split pole screen on three sides with the front open, a stone kerbed hearth under a steel grill, and a pot hung from a swung out timber arm. The pot is one node on its hook and swings on the clip; the screen and grill are static.","description":"A 3.4 by 2.6 m bush kitchen: a split pole screen on three sides with the front open, a stone kerbed hearth under a steel grill, and a pot hung from a swung out timber arm. The pot is one node on its hook and swings on the clip; the screen and grill are static. Overall 3.490 x 1.900 x 2.598 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: pot. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: swing. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-kitchen-boma-and-grill-015c486e","cdnUrl":"https://cdn.3dassets.dev/assets/37684/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-kitchen-boma-and-grill-015c486e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37684/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37684/v1/poster.webp","blurhash":"U3Al92jF01=e{x^4o~AE01t6TxIpT{ENDjSg","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":85868,"triangles":1136,"vertices":3408,"meshes":5,"materials":4,"textures":2,"animations":["swing"],"boundingBox":{"min":[-1.7404508590698242,-0.00008183851609355752,-1.3476156876049135],"max":[1.75,1.9000818146742358,1.2500629112682435]},"sizeMeters":[3.49,1.9,2.598],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:27.186Z","updatedAt":"2026-09-12T05:45:27.305Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37684/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function KitchenBomaWithGrillAndHangingPotSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37684/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37684/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37684/v1/model.glb\" alt=\"Kitchen Boma with Grill and Hanging Pot (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37684/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37684/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37685","slug":"safari-camp-and-bush-lodge-kitchen-prep-table-89c9736b","title":"Camp Kitchen Prep Table (Safari Camp and Bush Lodge)","summary":"A 1.6 by 0.7 m slatted timber prep table 0.88 m high with a lower shelf, a steel bowl and a chopping board on the top and two crates of dry stores underneath. Static geometry.","description":"A 1.6 by 0.7 m slatted timber prep table 0.88 m high with a lower shelf, a steel bowl and a chopping board on the top and two crates of dry stores underneath. Static geometry. Overall 1.600 x 1.040 x 0.688 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-kitchen-prep-table-89c9736b","cdnUrl":"https://cdn.3dassets.dev/assets/37685/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-kitchen-prep-table-89c9736b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37685/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37685/v1/poster.webp","blurhash":"UBBe%Kxv0fVY~B-oM{E10#xZ$*NGEMV@jtt8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20152,"triangles":220,"vertices":660,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.800000011920929,0.000014552285659830133,-0.3439802291315643],"max":[0.800000011920929,1.03999891782152,0.3439802291315643]},"sizeMeters":[1.6,1.04,0.688],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:27.273Z","updatedAt":"2026-09-12T05:45:27.366Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37685/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampKitchenPrepTableSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37685/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37685/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37685/v1/model.glb\" alt=\"Camp Kitchen Prep Table (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37685/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37685/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37686","slug":"safari-camp-and-bush-lodge-water-filter-stand-704f01e2","title":"Camp Water Filter Stand (Safari Camp and Bush Lodge)","summary":"A 1.15 m four legged timber stand carrying a galvanised gravity filter with a short outlet tap, a canvas bucket underneath and a cloth hung on the front rail. Static geometry.","description":"A 1.15 m four legged timber stand carrying a galvanised gravity filter with a short outlet tap, a canvas bucket underneath and a cloth hung on the front rail. Static geometry. Overall 0.861 x 1.726 x 0.864 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-water-filter-stand-704f01e2","cdnUrl":"https://cdn.3dassets.dev/assets/37686/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-water-filter-stand-704f01e2","thumbnailUrl":"https://cdn.3dassets.dev/assets/37686/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37686/v1/poster.webp","blurhash":"U3A0g#~C0000L3NHrB%LK*NGiHxb-=xuD%D%","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":22252,"triangles":276,"vertices":828,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.42734683761036923,0,-0.43171526942082994],"max":[0.4340312303010278,1.7259541747423477,0.43171526942082994]},"sizeMeters":[0.861,1.726,0.863],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:26.660Z","updatedAt":"2026-09-12T05:45:26.761Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37686/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampWaterFilterStandSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37686/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37686/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37686/v1/model.glb\" alt=\"Camp Water Filter Stand (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37686/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37686/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37687","slug":"safari-camp-and-bush-lodge-drinks-cooler-59249ff0","title":"Camp Drinks Cooler (Safari Camp and Bush Lodge)","summary":"A 0.86 by 0.5 m hard cool box 0.54 m high with moulded side handles, a front latch and a lid hinged along its back edge. The lid is one node and lifts on the clip.","description":"A 0.86 by 0.5 m hard cool box 0.54 m high with moulded side handles, a front latch and a lid hinged along its back edge. The lid is one node and lifts on the clip. Overall 0.930 x 0.570 x 0.550 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: lid. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-drinks-cooler-59249ff0","cdnUrl":"https://cdn.3dassets.dev/assets/37687/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-drinks-cooler-59249ff0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37687/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37687/v1/poster.webp","blurhash":"UBIY2z~q00V@D%?b%MD*00IUt7WUIUWA%MIo","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":7080,"triangles":84,"vertices":252,"meshes":4,"materials":2,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.4650000035762787,0.0000070196038348679934,-0.26501449203238],"max":[0.4650000035762787,0.5699957081862709,0.28501655704138296]},"sizeMeters":[0.93,0.57,0.55],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:27.034Z","updatedAt":"2026-09-12T05:45:27.129Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37687/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CampDrinksCoolerSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37687/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37687/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37687/v1/model.glb\" alt=\"Camp Drinks Cooler (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37687/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37687/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37683","slug":"safari-camp-and-bush-lodge-firewood-stack-abb1405f","title":"Firewood Stack (Safari Camp and Bush Lodge)","summary":"A 1.6 m stack of thirty cut logs between two timber stakes, 0.85 m high, the way a camp keeps its wood dry beside the fire. Static geometry.","description":"A 1.6 m stack of thirty cut logs between two timber stakes, 0.85 m high, the way a camp keeps its wood dry beside the fire. Static geometry. Overall 1.900 x 1.051 x 0.480 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-firewood-stack-abb1405f","cdnUrl":"https://cdn.3dassets.dev/assets/37683/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-firewood-stack-abb1405f","thumbnailUrl":"https://cdn.3dassets.dev/assets/37683/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37683/v1/poster.webp","blurhash":"U3Aua3].0$$jS}}r=dEh0OX7=enlR+oJxFWV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52312,"triangles":768,"vertices":2304,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.949999988079071,-0.00005324813056251099,-0.23997161477494036],"max":[0.949999988079071,1.0509858939282921,0.23997161477494036]},"sizeMeters":[1.9,1.051,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:25.255Z","updatedAt":"2026-09-12T05:45:25.446Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37683/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirewoodStackSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37683/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37683/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37683/v1/model.glb\" alt=\"Firewood Stack (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37683/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37683/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37681","slug":"safari-camp-and-bush-lodge-fire-pit-and-stone-ring-bc4f9a35","title":"Camp Fire Pit and Stone Ring (Safari Camp and Bush Lodge)","summary":"A 2.8 m camp fire: a scraped earth pan edged with eleven boulders, a bed of ash and charcoal, five half burnt logs stacked over it and a low flame. The flame is solid emissive geometry and does not move: fire needs a shader, not a rigid node.","description":"A 2.8 m camp fire: a scraped earth pan edged with eleven boulders, a bed of ash and charcoal, five half burnt logs stacked over it and a low flame. The flame is solid emissive geometry and does not move: fire needs a shader, not a rigid node. Overall 2.800 x 0.877 x 2.800 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-fire-pit-and-stone-ring-bc4f9a35","cdnUrl":"https://cdn.3dassets.dev/assets/37681/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-fire-pit-and-stone-ring-bc4f9a35","thumbnailUrl":"https://cdn.3dassets.dev/assets/37681/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37681/v1/poster.webp","blurhash":"U9AJvHxa00V@D*WBxtkB00Rk~WkC?ZofIpaf","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":50072,"triangles":618,"vertices":1854,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.399999976158142,0.000060498001836162274,-1.399999976158142],"max":[1.399999976158142,0.8772000074386597,1.399999976158142]},"sizeMeters":[2.8,0.877,2.8],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:24.434Z","updatedAt":"2026-09-12T05:45:24.550Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37681/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampFirePitAndStoneRingSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37681/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37681/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37681/v1/model.glb\" alt=\"Camp Fire Pit and Stone Ring (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37681/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37681/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37682","slug":"safari-camp-and-bush-lodge-log-seat-1dd4af1f","title":"Fireside Log Seat (Safari Camp and Bush Lodge)","summary":"A 1.5 m split log seat: a squared log on two chocks with a flattened top, set round a fire. Static geometry.","description":"A 1.5 m split log seat: a squared log on two chocks with a flattened top, set round a fire. Static geometry. Overall 1.500 x 0.476 x 0.466 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-log-seat-1dd4af1f","cdnUrl":"https://cdn.3dassets.dev/assets/37682/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-log-seat-1dd4af1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/37682/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37682/v1/poster.webp","blurhash":"U4AlB{%J0ibt]o}XOnJ704Vx^5JQ1u1ca5Vx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11476,"triangles":88,"vertices":264,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.75,0.00001810864716877969,-0.22552015910181872],"max":[0.75,0.47633574529379497,0.23999392519030444]},"sizeMeters":[1.5,0.476,0.466],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:24.453Z","updatedAt":"2026-09-12T05:45:24.567Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37682/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FiresideLogSeatSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37682/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37682/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37682/v1/model.glb\" alt=\"Fireside Log Seat (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37682/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37682/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37712","slug":"safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","title":"Small Acacia Tree (Safari Camp and Bush Lodge)","summary":"A 4.2 m flat topped acacia: a tapered trunk, three limbs and a wide browsed canopy with a lower side crown, the silhouette the savanna is read by. Static geometry; no wind animation.","description":"A 4.2 m flat topped acacia: a tapered trunk, three limbs and a wide browsed canopy with a lower side crown, the silhouette the savanna is read by. Static geometry; no wind animation. Overall 4.655 x 4.536 x 4.727 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","cdnUrl":"https://cdn.3dassets.dev/assets/37712/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-acacia-tree-small-f92e0d66","thumbnailUrl":"https://cdn.3dassets.dev/assets/37712/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37712/v1/poster.webp","blurhash":"UG8qWns:4pX7_LoMD*kBoyj[V@ayDjaytQWB","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":18412,"triangles":208,"vertices":624,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2.2553923339807658,0,-2.3635385036468506],"max":[2.4001300544702677,4.535925792411543,2.3635385036468506]},"sizeMeters":[4.656,4.536,4.727],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:41.261Z","updatedAt":"2026-09-12T05:45:41.353Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37712/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmallAcaciaTreeSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37712/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37712/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37712/v1/model.glb\" alt=\"Small Acacia Tree (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37712/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37712/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37713","slug":"safari-camp-and-bush-lodge-acacia-tree-large-316a625e","title":"Large Acacia Tree (Safari Camp and Bush Lodge)","summary":"A 7 m flat topped acacia with a heavy trunk, three rising limbs and a canopy 8 m across, big enough to put the dining table under. Static geometry; no wind animation.","description":"A 7 m flat topped acacia with a heavy trunk, three rising limbs and a canopy 8 m across, big enough to put the dining table under. Static geometry; no wind animation. Overall 7.759 x 7.560 x 7.878 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-acacia-tree-large-316a625e","cdnUrl":"https://cdn.3dassets.dev/assets/37713/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-acacia-tree-large-316a625e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37713/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37713/v1/poster.webp","blurhash":"UG8qWns:4pX8_LoMD*oeoyj[V@WUDjaytQR*","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17448,"triangles":192,"vertices":576,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-3.7589873015711412,0,-3.9392309188842773],"max":[4.000216835720311,7.5598765008125834,3.9392309188842773]},"sizeMeters":[7.759,7.56,7.878],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:41.474Z","updatedAt":"2026-09-12T05:45:41.570Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37713/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LargeAcaciaTreeSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37713/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37713/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37713/v1/model.glb\" alt=\"Large Acacia Tree (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37713/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37713/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37695","slug":"safari-camp-and-bush-lodge-header-tank-on-stand-186c38d0","title":"Header Tank on Timber Stand (Safari Camp and Bush Lodge)","summary":"A 1.0 m galvanised header tank on a braced timber stand 2.6 m high, with a hatch on top and a fall pipe down one leg, which is how a camp gets pressure to its showers. Static geometry; no water is modelled.","description":"A 1.0 m galvanised header tank on a braced timber stand 2.6 m high, with a hatch on top and a fall pipe down one leg, which is how a camp gets pressure to its showers. Static geometry; no water is modelled. Overall 1.879 x 3.698 x 1.882 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-header-tank-on-stand-186c38d0","cdnUrl":"https://cdn.3dassets.dev/assets/37695/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-header-tank-on-stand-186c38d0","thumbnailUrl":"https://cdn.3dassets.dev/assets/37695/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37695/v1/poster.webp","blurhash":"U99Zl.xa00Io.ToM8_RjO@W;ivjFnNWUt7s;","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31000,"triangles":440,"vertices":1320,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.9345134474723875,0,-0.9410430956691586],"max":[0.9450175144165098,3.698233610916076,0.9410430956691586]},"sizeMeters":[1.88,3.698,1.882],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:32.633Z","updatedAt":"2026-09-12T05:45:32.837Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37695/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeaderTankOnTimberStandSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37695/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37695/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37695/v1/model.glb\" alt=\"Header Tank on Timber Stand (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37695/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37695/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37694","slug":"safari-camp-and-bush-lodge-water-bowser-5fbb1ac3","title":"Skid Mounted Water Bowser (Safari Camp and Bush Lodge)","summary":"A 2.2 m water bowser: a 1.1 m diameter tank in two steel cradles on a towable skid with a hitch, a filler hatch on top and an outlet with a gate tap at the back. The tap handle is one node and turns on the clip; the water is not modelled.","description":"A 2.2 m water bowser: a 1.1 m diameter tank in two steel cradles on a towable skid with a hitch, a filler hatch on top and an outlet with a gate tap at the back. The tap handle is one node and turns on the clip; the water is not modelled. Overall 1.180 x 1.490 x 2.632 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: tap. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: turn. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-water-bowser-5fbb1ac3","cdnUrl":"https://cdn.3dassets.dev/assets/37694/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-water-bowser-5fbb1ac3","thumbnailUrl":"https://cdn.3dassets.dev/assets/37694/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37694/v1/poster.webp","blurhash":"U9FPHR?b00bEaJ9FIU?a00D%~pxu9Z-:^+M|","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27496,"triangles":484,"vertices":1452,"meshes":5,"materials":3,"textures":0,"animations":["turn"],"boundingBox":{"min":[-0.5899305815579133,-0.00007361762090785096,-1.3819361925125122],"max":[0.5899305815579133,1.4900055221523623,1.25]},"sizeMeters":[1.18,1.49,2.632],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:31.412Z","updatedAt":"2026-09-12T05:45:31.513Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37694/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SkidMountedWaterBowserSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37694/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37694/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37694/v1/model.glb\" alt=\"Skid Mounted Water Bowser (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37694/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37694/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37692","slug":"safari-camp-and-bush-lodge-solar-panel-on-frame-eda8661c","title":"Solar Panel on Ground Frame (Safari Camp and Bush Lodge)","summary":"A 1.7 by 1 m solar panel on a galvanised ground frame, tilted 24 degrees on four feet, with three busbars across the cell face and a cable run off the low edge. Static geometry: the frame has no tracker.","description":"A 1.7 by 1 m solar panel on a galvanised ground frame, tilted 24 degrees on four feet, with three busbars across the cell face and a cable run off the low edge. Static geometry: the frame has no tracker. Overall 1.760 x 1.141 x 1.379 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-solar-panel-on-frame-eda8661c","cdnUrl":"https://cdn.3dassets.dev/assets/37692/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-solar-panel-on-frame-eda8661c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37692/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37692/v1/poster.webp","blurhash":"U1BM}Z0000_3?b_34n0000D%00?b9FbE%Nt6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":13564,"triangles":244,"vertices":732,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.8799999952316284,-0.00005162623737220429,-0.5700515731921306],"max":[0.8799999952316284,1.14134062198017,0.8087908718183013]},"sizeMeters":[1.76,1.141,1.379],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:30.691Z","updatedAt":"2026-09-12T05:45:30.793Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37692/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SolarPanelOnGroundFrameSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37692/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37692/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37692/v1/model.glb\" alt=\"Solar Panel on Ground Frame (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37692/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37692/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37693","slug":"safari-camp-and-bush-lodge-battery-box-46f0d5fd","title":"Camp Battery Box (Safari Camp and Bush Lodge)","summary":"A 0.9 by 0.6 m vented steel battery box on a timber pallet base, 0.58 m high, with side handles, a cable gland on the front and a lid hinged along the back. The lid is one node and lifts on the clip.","description":"A 0.9 by 0.6 m vented steel battery box on a timber pallet base, 0.58 m high, with side handles, a cable gland on the front and a lid hinged along the back. The lid is one node and lifts on the clip. Overall 0.930 x 0.605 x 0.645 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: lid. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-battery-box-46f0d5fd","cdnUrl":"https://cdn.3dassets.dev/assets/37693/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-battery-box-46f0d5fd","thumbnailUrl":"https://cdn.3dassets.dev/assets/37693/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37693/v1/poster.webp","blurhash":"U9D]b$~X00RplU%NxYWA00Im.8W,DhVsxFof","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":12700,"triangles":84,"vertices":252,"meshes":5,"materials":3,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.4650000035762787,0.000008545347995367325,-0.31501418766232364],"max":[0.4650000035762787,0.6049967983130925,0.3299763593241192]},"sizeMeters":[0.93,0.605,0.645],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:30.914Z","updatedAt":"2026-09-12T05:45:31.015Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37693/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CampBatteryBoxSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37693/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37693/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37693/v1/model.glb\" alt=\"Camp Battery Box (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37693/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37693/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37698","slug":"safari-camp-and-bush-lodge-jerrycan-rack-54ef21e7","title":"Jerrycan Rack (Safari Camp and Bush Lodge)","summary":"A 1.35 m steel rack holding three 20 litre jerrycans on a raised tray, 0.72 m to the top rail. Cans are plain pressed shapes with cap and handle, no markings of any kind. Static geometry.","description":"A 1.35 m steel rack holding three 20 litre jerrycans on a raised tray, 0.72 m to the top rail. Cans are plain pressed shapes with cap and handle, no markings of any kind. Static geometry. Overall 1.350 x 0.800 x 0.450 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-jerrycan-rack-54ef21e7","cdnUrl":"https://cdn.3dassets.dev/assets/37698/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-jerrycan-rack-54ef21e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/37698/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37698/v1/poster.webp","blurhash":"U7C?+L%L9F?bxu~qt6D*00M{M{My%3ICIBND","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16712,"triangles":296,"vertices":888,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.675000011920929,-0.00004668537303698095,-0.22497253731462952],"max":[0.675000011920929,0.8000347939149288,0.22497253731462952]},"sizeMeters":[1.35,0.8,0.45],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:33.149Z","updatedAt":"2026-09-12T05:45:33.406Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37698/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JerrycanRackSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37698/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37698/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37698/v1/model.glb\" alt=\"Jerrycan Rack (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37698/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37698/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37673","slug":"safari-camp-and-bush-lodge-long-drop-hut-8537c47f","title":"Long Drop Hut (Safari Camp and Bush Lodge)","summary":"A 1.3 by 1.4 m canvas and timber long drop standing 2.05 m to its plate, under a small eight sided thatch cap, with a vent gap over the door and a boarded door on the near jamb. The door is one node on its hinge; the thatch does not move.","description":"A 1.3 by 1.4 m canvas and timber long drop standing 2.05 m to its plate, under a small eight sided thatch cap, with a vent gap over the door and a boarded door on the near jamb. The door is one node on its hinge; the thatch does not move. Overall 1.990 x 2.750 x 1.990 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: door. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-long-drop-hut-8537c47f","cdnUrl":"https://cdn.3dassets.dev/assets/37673/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-long-drop-hut-8537c47f","thumbnailUrl":"https://cdn.3dassets.dev/assets/37673/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37673/v1/poster.webp","blurhash":"UAEVj3Vr00yDj.tRR;IT00tR~WRPE5RP%K%M","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21736,"triangles":220,"vertices":660,"meshes":5,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.9952486753463745,0,-0.9952486753463745],"max":[0.9952486753463745,2.7500366481778737,0.9952486753463745]},"sizeMeters":[1.99,2.75,1.99],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:20.876Z","updatedAt":"2026-09-12T05:45:21.001Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37673/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function LongDropHutSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37673/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37673/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37673/v1/model.glb\" alt=\"Long Drop Hut (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37673/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37673/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37696","slug":"safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57","title":"Open Game Drive Vehicle (Safari Camp and Bush Lodge)","summary":"A 4.9 m open sided game viewing vehicle: a blank panelled olive body, an open windscreen frame, three stepped bench rows under two roll hoops, a rear step and four 0.84 m wheels. Invented shapes, no marque or livery. The wheels are nodes on their axles and roll on the clip.","description":"A 4.9 m open sided game viewing vehicle: a blank panelled olive body, an open windscreen frame, three stepped bench rows under two roll hoops, a rear step and four 0.84 m wheels. Invented shapes, no marque or livery. The wheels are nodes on their axles and roll on the clip. Overall 2.170 x 2.380 x 5.310 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: wheel-fl, wheel-fr, wheel-rl, wheel-rr. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57","cdnUrl":"https://cdn.3dassets.dev/assets/37696/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-game-drive-vehicle-61ec0f57","thumbnailUrl":"https://cdn.3dassets.dev/assets/37696/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37696/v1/poster.webp","blurhash":"U5AdAf^+009Fxv9GIU%f00I-~W%M9E_L-;IW","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61700,"triangles":1384,"vertices":4152,"meshes":14,"materials":6,"textures":1,"animations":["roll"],"boundingBox":{"min":[-1.0849888145476674,-1.6689300552652497e-8,-2.589976396577986],"max":[1.0849888145476674,2.3799749718876737,2.7200000286102295]},"sizeMeters":[2.17,2.38,5.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:33.317Z","updatedAt":"2026-09-12T05:45:33.431Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37696/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function OpenGameDriveVehicleSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37696/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37696/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37696/v1/model.glb\" alt=\"Open Game Drive Vehicle (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37696/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37696/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37697","slug":"safari-camp-and-bush-lodge-spare-wheel-062377ed","title":"Spare Wheel (Safari Camp and Bush Lodge)","summary":"A 0.84 m spare wheel on a dished steel rim, standing on its tread. Matches the game drive vehicle's wheels. Static geometry.","description":"A 0.84 m spare wheel on a dished steel rim, standing on its tread. Matches the game drive vehicle's wheels. Static geometry. Overall 0.840 x 0.840 x 0.365 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-spare-wheel-062377ed","cdnUrl":"https://cdn.3dassets.dev/assets/37697/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-spare-wheel-062377ed","thumbnailUrl":"https://cdn.3dassets.dev/assets/37697/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37697/v1/poster.webp","blurhash":"U48g$__30000-;RkM_xu00D%~q?ba$t6M|M{","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9092,"triangles":152,"vertices":456,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.41999998688697815,0,-0.1699983010084282],"max":[0.41999998688697815,0.8399999737739563,0.1949887725059014]},"sizeMeters":[0.84,0.84,0.365],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:33.855Z","updatedAt":"2026-09-12T05:45:33.961Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37697/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpareWheelSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37697/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37697/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37697/v1/model.glb\" alt=\"Spare Wheel (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37697/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37697/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37699","slug":"safari-camp-and-bush-lodge-hard-case-rack-2f67d4c5","title":"Rifle Case Rack with Closed Cases (Safari Camp and Bush Lodge)","summary":"A 1.5 by 1.35 m timber rack carrying four closed, latched hard cases on two shelves, as a camp store stands between drives. The cases are plain boxes with catches and a handle; none is open and no contents are modelled. A blank tally card hangs on the frame.","description":"A 1.5 by 1.35 m timber rack carrying four closed, latched hard cases on two shelves, as a camp store stands between drives. The cases are plain boxes with catches and a handle; none is open and no contents are modelled. A blank tally card hangs on the frame. Overall 1.535 x 1.350 x 0.500 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-hard-case-rack-2f67d4c5","cdnUrl":"https://cdn.3dassets.dev/assets/37699/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-hard-case-rack-2f67d4c5","thumbnailUrl":"https://cdn.3dassets.dev/assets/37699/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37699/v1/poster.webp","blurhash":"U4AcG7$300:*_4;zv|9]00R..7o|8^-pRoNd","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":28464,"triangles":372,"vertices":1116,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.7250000238418579,0.000004567499909069461,-0.2499565193438969],"max":[0.8100000023841858,1.349995456341949,0.2499565193438969]},"sizeMeters":[1.535,1.35,0.5],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:35.461Z","updatedAt":"2026-09-12T05:45:35.575Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37699/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RifleCaseRackWithClosedCasesSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37699/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37699/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37699/v1/model.glb\" alt=\"Rifle Case Rack with Closed Cases (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37699/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37699/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37700","slug":"safari-camp-and-bush-lodge-radio-set-and-table-2307cab5","title":"Camp Radio Set on a Table (Safari Camp and Bush Lodge)","summary":"A 1.1 by 0.6 m timber table with a boxed HF transceiver on it: speaker grille, two dials, a handset on its cradle, a clamped whip aerial and a blank log sheet beside it. No lettering or markings anywhere. Static geometry.","description":"A 1.1 by 0.6 m timber table with a boxed HF transceiver on it: speaker grille, two dials, a handset on its cradle, a clamped whip aerial and a blank log sheet beside it. No lettering or markings anywhere. Static geometry. Overall 1.100 x 2.100 x 0.600 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-radio-set-and-table-2307cab5","cdnUrl":"https://cdn.3dassets.dev/assets/37700/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-radio-set-and-table-2307cab5","thumbnailUrl":"https://cdn.3dassets.dev/assets/37700/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37700/v1/poster.webp","blurhash":"U47m+[R500?cBqIV+t.700XS~Wa0zo-pTe4.","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20720,"triangles":236,"vertices":708,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.550000011920929,0.000009152843739201888,-0.3000183176084074],"max":[0.550000011920929,2.100131034851074,0.3000183176084074]},"sizeMeters":[1.1,2.1,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:35.033Z","updatedAt":"2026-09-12T05:45:35.136Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37700/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CampRadioSetOnATableSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37700/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37700/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37700/v1/model.glb\" alt=\"Camp Radio Set on a Table (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37700/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37700/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37680","slug":"safari-camp-and-bush-lodge-viewing-platform-4d5346b6","title":"Bush Viewing Platform (Safari Camp and Bush Lodge)","summary":"A 3.4 m square timber viewing deck standing 0.45 m off the ground on stump piers, with two steps up at the back, posts and rope rails on three sides, the game facing front left open and a bench across the back. Low enough to walk on to. Static geometry.","description":"A 3.4 m square timber viewing deck standing 0.45 m off the ground on stump piers, with two steps up at the back, posts and rope rails on three sides, the game facing front left open and a bench across the back. Low enough to walk on to. Static geometry. Overall 3.400 x 1.520 x 4.063 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-viewing-platform-4d5346b6","cdnUrl":"https://cdn.3dassets.dev/assets/37680/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-viewing-platform-4d5346b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/37680/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37680/v1/poster.webp","blurhash":"U3AlqX~V01k6~WxtE0Vt009G}tIW00IU?cT0","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":31500,"triangles":420,"vertices":1260,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.6999715297543816,-0.00006823425024915508,-2.369999885559082],"max":[1.6999715297543816,1.5200682151767628,1.6924999952316284]},"sizeMeters":[3.4,1.52,4.062],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:24.995Z","updatedAt":"2026-09-12T05:45:25.108Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37680/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BushViewingPlatformSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37680/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37680/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37680/v1/model.glb\" alt=\"Bush Viewing Platform (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37680/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37680/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37703","slug":"safari-camp-and-bush-lodge-spotting-scope-on-tripod-0c111e8c","title":"Spotting Scope on a Tripod (Safari Camp and Bush Lodge)","summary":"A 1.45 m spotting scope on a timber tripod: a straight body with an objective bell, an eyepiece, a focus wheel and a pan arm. The scope and head are one node and pan on the clip; the focus wheel does not turn.","description":"A 1.45 m spotting scope on a timber tripod: a straight body with an objective bell, an eyepiece, a focus wheel and a pan arm. The scope and head are one node and pan on the clip; the focus wheel does not turn. Overall 0.767 x 1.496 x 0.785 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: head. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: pan. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-spotting-scope-on-tripod-0c111e8c","cdnUrl":"https://cdn.3dassets.dev/assets/37703/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-spotting-scope-on-tripod-0c111e8c","thumbnailUrl":"https://cdn.3dassets.dev/assets/37703/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37703/v1/poster.webp","blurhash":"U47Ab*={000f*0ozDhIUKjJ7rW-UicVsxu%g","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":29324,"triangles":388,"vertices":1164,"meshes":4,"materials":4,"textures":1,"animations":["pan"],"boundingBox":{"min":[-0.3764696452823161,0,-0.43981538038908535],"max":[0.3905818495955943,1.4964145168802983,0.3449937420751293]},"sizeMeters":[0.767,1.496,0.785],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:36.725Z","updatedAt":"2026-09-12T05:45:36.828Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37703/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function SpottingScopeOnATripodSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37703/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37703/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37703/v1/model.glb\" alt=\"Spotting Scope on a Tripod (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37703/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37703/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37702","slug":"safari-camp-and-bush-lodge-camera-on-tripod-e515ff4b","title":"Camera on a Tripod (Safari Camp and Bush Lodge)","summary":"A 1.65 m camera tripod with braced legs, a pan head and a generic long lens camera on it. The head, arm and camera are one node and pan on the clip; the legs do not extend.","description":"A 1.65 m camera tripod with braced legs, a pan head and a generic long lens camera on it. The head, arm and camera are one node and pan on the clip; the legs do not extend. Overall 0.767 x 1.826 x 0.830 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Named nodes on their own pivots: head. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Rigid node-transform clips: pan. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-camera-on-tripod-e515ff4b","cdnUrl":"https://cdn.3dassets.dev/assets/37702/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-camera-on-tripod-e515ff4b","thumbnailUrl":"https://cdn.3dassets.dev/assets/37702/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37702/v1/poster.webp","blurhash":"U14_tk?b0000%MxuIU9F4oM{-;-;00IU_3?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21764,"triangles":376,"vertices":1128,"meshes":4,"materials":3,"textures":0,"animations":["pan"],"boundingBox":{"min":[-0.376440652587716,0,-0.4400402793386368],"max":[0.39055285690099417,1.8255289673318855,0.38999724851160444]},"sizeMeters":[0.767,1.826,0.83],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:35.438Z","updatedAt":"2026-09-12T05:45:35.537Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37702/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n  mixer = new AnimationMixer(gltf.scene)\n  mixer.clipAction(gltf.animations[0]).play()\n})\n\n// Call from your render loop; deltaSeconds is time since the previous frame.\nfunction updateAssetAnimation(deltaSeconds) {\n  mixer?.update(deltaSeconds)\n}","r3f":"import { useGLTF, useAnimations } from '@react-three/drei'\nimport { useEffect } from 'react'\n\nexport function CameraOnATripodSafariCampAndBushLodge(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37702/v1/model.glb')\n  const { actions, names } = useAnimations(animations, scene)\n  useEffect(() => {\n    const action = actions[names[0]]\n    action?.reset().play()\n    return () => { action?.stop() }\n  }, [actions, names])\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37702/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37702/v1/model.glb\" alt=\"Camera on a Tripod (Safari Camp and Bush Lodge)\" camera-controls auto-rotate autoplay></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37702/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.\n# Clips arrive as actions; play them from the Dope Sheet > Action Editor.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)\nvar player := model.find_child(\"AnimationPlayer\", true, false) as AnimationPlayer\nplayer.play(player.get_animation_list()[0])","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37702/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"37701","slug":"safari-camp-and-bush-lodge-field-desk-and-binoculars-89f6223e","title":"Field Desk with Binoculars and Map (Safari Camp and Bush Lodge)","summary":"A 1.3 by 0.66 m folding timber field desk with a pair of binoculars, a notebook, a pen tray and a map sheet laid out on it. The map is abstract: blocks and a single track line, no real place and no lettering. Static geometry.","description":"A 1.3 by 0.66 m folding timber field desk with a pair of binoculars, a notebook, a pen tray and a map sheet laid out on it. The map is abstract: blocks and a single track line, no real place and no lettering. Static geometry. Overall 1.394 x 0.985 x 0.755 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-field-desk-and-binoculars-89f6223e","cdnUrl":"https://cdn.3dassets.dev/assets/37701/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-field-desk-and-binoculars-89f6223e","thumbnailUrl":"https://cdn.3dassets.dev/assets/37701/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37701/v1/poster.webp","blurhash":"U9A9c*-o4om,~V-V9a9t5RWqXSJ801M{^*%L","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":36640,"triangles":276,"vertices":828,"meshes":5,"materials":5,"textures":2,"animations":[],"boundingBox":{"min":[-0.6942704916000366,0.00003235755479125135,-0.37772573162362866],"max":[0.699999988079071,0.9851129882603362,0.37772573162362866]},"sizeMeters":[1.394,0.985,0.755],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:36.112Z","updatedAt":"2026-09-12T05:45:36.212Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37701/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FieldDeskWithBinocularsAndMapSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37701/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37701/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37701/v1/model.glb\" alt=\"Field Desk with Binoculars and Map (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37701/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37701/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37719","slug":"safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","title":"Dung Ball and Track (Safari Camp and Bush Lodge)","summary":"A 0.32 m rolled dung ball with the shallow track it has left behind it in the dust and a crumb dropped along the way. A prop, not a creature: the pack contains no animals.","description":"A 0.32 m rolled dung ball with the shallow track it has left behind it in the dust and a crumb dropped along the way. A prop, not a creature: the pack contains no animals. Overall 0.320 x 0.314 x 0.980 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","cdnUrl":"https://cdn.3dassets.dev/assets/37719/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-dung-beetle-ball-0f9e87ea","thumbnailUrl":"https://cdn.3dassets.dev/assets/37719/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37719/v1/poster.webp","blurhash":"U59sn[Uv01-:9tNH%Mxs00yX?aDk}@-B9GM~","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":27028,"triangles":128,"vertices":384,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-0.15999593987806737,-2.041104824601625e-7,-0.8199999928474426],"max":[0.15999593987806737,0.3136002078298123,0.1599999964237213]},"sizeMeters":[0.32,0.314,0.98],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:45.030Z","updatedAt":"2026-09-12T05:45:45.125Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37719/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DungBallAndTrackSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37719/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37719/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37719/v1/model.glb\" alt=\"Dung Ball and Track (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37719/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37719/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"37714","slug":"safari-camp-and-bush-lodge-baobab-tree-0e40cad3","title":"Baobab Tree (Safari Camp and Bush Lodge)","summary":"A 8.5 m baobab: a swollen tapered trunk 3 m across at the base, six short thick limbs branching into a bare crown and a small blob of leaf on each. Static geometry; no wind animation.","description":"A 8.5 m baobab: a swollen tapered trunk 3 m across at the base, six short thick limbs branching into a bare crown and a small blob of leaf on each. Static geometry; no wind animation. Overall 6.841 x 8.905 x 7.411 m (X x Y x Z), metre units, +Y up, +Z forward, resting on y=0. Safari Camp and Bush Lodge / safari-lp-v1: flat shaded canvas, timber, thatch, red dust, scrub, galvanised steel, charcoal and lamp glow, with embedded procedural timber and ground maps and no custom shaders. No people and no animals: the library has no skinned meshes, and the catalogue's savanna wildlife pack supplies the creatures. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/safari-camp-and-bush-lodge-baobab-tree-0e40cad3","cdnUrl":"https://cdn.3dassets.dev/assets/37714/v1/model.glb","downloadUrl":"https://3dassets.dev/download/safari-camp-and-bush-lodge-baobab-tree-0e40cad3","thumbnailUrl":"https://cdn.3dassets.dev/assets/37714/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37714/v1/poster.webp","blurhash":"U88gHNxt0MI:_Lt7IBjGTcoev~n,V[ocWCWD","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":35024,"triangles":512,"vertices":1536,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-3.420388296918211,0,-3.705354690551758],"max":[3.420388296918211,8.904870762337362,3.705354690551758]},"sizeMeters":[6.841,8.905,7.411],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:45:42.064Z","updatedAt":"2026-09-12T05:45:42.263Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37714/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BaobabTreeSafariCampAndBushLodge(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/37714/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/37714/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37714/v1/model.glb\" alt=\"Baobab Tree (Safari Camp and Bush Lodge)\" camera-controls auto-rotate></model-viewer>","blender":"# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.\nimport bpy\nbpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/37714/v1/model.glb\n# Metres and +Y up are converted to Blender's Z-up scene automatically.","godot":"# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.\nvar packed := load(\"res://models/model.glb\") as PackedScene\nvar model := packed.instantiate()\nadd_child(model)","unity":"// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,\n// or load it at runtime straight from the CDN:\nusing GLTFast;\nvar gltf = new GltfImport();\nif (await gltf.Load(\"https://cdn.3dassets.dev/assets/37714/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}