{"data":{"id":"55","slug":"tactical-shooter-hill-town","title":"Tactical shooter hill town","summary":"Walk onto a hill-town bomb site built from the Tactical Shooter Hill Town pack: the fountain square with two roofed buildings and a roof terrace, the archway spawn behind sandbags, the market stair, the device at site A and both teams in position.","url":"https://3dassets.dev/demos/tactical-shooter-hill-town","coverUrl":"https://cdn.3dassets.dev/media/tactical-shooter-hill-town-demo.png","featured":true,"pack":{"slug":"tactical-shooter-hill-town","title":"Tactical Shooter Hill Town","url":"https://3dassets.dev/packs/tactical-shooter-hill-town","summary":"Free 3D game assets for a tactical FPS: a modular Mediterranean hill town map kit, twenty two invented weapon archetypes and eight operators in four poses each.","assetCount":85,"totalBytes":10620776,"starterScene":{"slug":"tactical-shooter-hill-town-fountain-squa-a5996d68-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/27595/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-fountain-squa-a5996d68-starter-scene","fileSize":2369104}},"placementCount":200,"assetCount":48,"spawn":{"position":[0,0.1,20.6],"yaw":180},"publishedAt":"2026-09-08T00:03:07.635Z","updatedAt":"2026-09-08T00:03:07.635Z","description":"A 41 by 33 metre square from 48 of the pack's 85 models, on plain ground under the outdoor preset's warm light.\n\nYou arrive from the defenders' side behind a patrol officer aiming across the square. Site A is in front of the fountain: the marker board, the device case and a desert scout kneeling to plant, with a grenade, a smoke and a knife on the cobbles. An assault trooper crouches behind crates by the fountain, a heavy gunner covers the archway from the left, a breacher holds the right-hand corner.\n\nEither side stand two-storey buildings assembled from the 4 m wall kit: plaster and ochre bays, shuttered windows, timber doors, a balcony, corner posts, tiled roof slopes with ridge caps and gable halves. Behind the fountain the freestanding archway between barrier tape stands is the attacker spawn, closed off by sandbag walls and a jersey barrier with a field engineer and a marksman rifle behind them. On the left the market stall, barrels and crate stacks sit under the external stair to a flat roof, where a recon operator watches from behind a sandbag wall on the parapet; a veteran runs in from the timber gate on the western lane. Olive trees, wall lamps, benches and oil drums dress the edges.\n\nWhat moves: the timber gate, the doors and the shutters open and close on approach, the device case lid lifts, and the weapons on the ground carry their magazine, slide, pump and bolt clips. What does not: the eight operators are static posed figures with no rig, and the buildings, fountain and dressing are static.","scene":{"version":1,"spawn":{"position":[0,0.1,20.6],"yaw":180},"bounds":{"min":[-20.5,0,-10],"max":[20.5,12,23]},"ground":{"style":"plain"},"environment":{"preset":"outdoor","sky":"#9ecbea","horizon":"#efe3cf","floor":"#cdbb9d","light":"warm","shadows":true},"placements":[{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-8,0,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-8,0,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-8,0,2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-8,0,6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-4,0,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-4,0,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-4,0,2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[-4,0,6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[0,0,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[0,0,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[0,0,2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[0,0,6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[4,0,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[4,0,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[4,0,2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[4,0,6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[8,0,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[8,0,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[8,0,2],"rotation":0},{"asset":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","position":[8,0,6],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-16,0,-4],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-16,0,0],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-12,0,-4],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-12,0,0],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-18,0.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-10,0.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-18,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-10,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-16,0.1,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-12,0.1,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-16,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-12,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-18,0.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-18,0.1,0],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-timber-door-fcdc3a01","position":[-10,0.1,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-timber-double-gate-f95b207a","position":[-10,0.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-18,3.6,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-10,3.6,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-18,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-10,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-16,3.6,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-12,3.6,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-16,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-12,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-18,3.6,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-18,3.6,0],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-10,3.6,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-balcony-bay-52db6fc6","position":[-10,3.6,0],"rotation":90},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[-16,7.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[-12,7.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[-16,7.1,2],"rotation":180},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[-12,7.1,2],"rotation":180},{"asset":"tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","position":[-16,9.030930354263447,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","position":[-12,9.030930354263447,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[-18,7.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[-18,7.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[-10,7.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[-10,7.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[12,0,-4],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[12,0,0],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[16,0,-4],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[16,0,0],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[10,0.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[18,0.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[10,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[18,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[12,0.1,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[16,0.1,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[12,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[16,0.1,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-timber-door-fcdc3a01","position":[10,0.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[10,0.1,0],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[18,0.1,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[18,0.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[10,3.6,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[18,3.6,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[10,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[18,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[12,3.6,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[16,3.6,-6],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[12,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[16,3.6,2],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[10,3.6,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[10,3.6,0],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[18,3.6,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[18,3.6,0],"rotation":90},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[12,7.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[16,7.1,-6],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[12,7.1,2],"rotation":180},{"asset":"tactical-shooter-hill-town-roof-tile-slope-7a571081","position":[16,7.1,2],"rotation":180},{"asset":"tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","position":[12,9.030930354263447,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","position":[16,9.030930354263447,-2],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[10,7.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[10,7.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[18,7.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","position":[18,7.1,0],"rotation":90},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-4,0,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-4,0,14],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[0,0,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[0,0,14],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[4,0,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[4,0,14],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-6,0.1,8],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[6,0.1,8],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[-6,0.1,16],"rotation":0},{"asset":"tactical-shooter-hill-town-corner-post-97245195","position":[6,0.1,16],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[-4,0.1,8],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-arched-passage-6f25f940","position":[0,0.1,8],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[4,0.1,8],"rotation":180},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-4,0.1,16],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-arched-passage-6f25f940","position":[0,0.1,16],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","position":[4,0.1,16],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[-6,0.1,10],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[-6,0.1,14],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","position":[6,0.1,10],"rotation":90},{"asset":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","position":[6,0.1,14],"rotation":90},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-4,3.6,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[-4,3.6,14],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[0,3.6,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[0,3.6,14],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[4,3.6,10],"rotation":0},{"asset":"tactical-shooter-hill-town-floor-tile-450ece79","position":[4,3.6,14],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[-4,3.7,8],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[0,3.7,8],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[4,3.7,8],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[-4,3.7,16],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[0,3.7,16],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[4,3.7,16],"rotation":0},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[-6,3.7,10],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[-6,3.7,14],"rotation":-90},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[6,3.7,10],"rotation":90},{"asset":"tactical-shooter-hill-town-roof-parapet-197a1149","position":[6,3.7,14],"rotation":90},{"asset":"tactical-shooter-hill-town-octagonal-fountain-a601c6d9","position":[0,0.1,0],"rotation":0},{"asset":"tactical-shooter-hill-town-freestanding-archway-e1485f94","position":[0,0.1,-7.4],"rotation":0},{"asset":"tactical-shooter-hill-town-external-stair-run-322e7f01","position":[-8.9,0.1,4.6],"rotation":180},{"asset":"tactical-shooter-hill-town-stone-step-block-d7ca9ab2","position":[-9.3,0.1,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-stone-step-block-d7ca9ab2","position":[9.3,0.1,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-market-awning-stall-4c76765a","position":[-6.4,0.1,4.4],"rotation":28},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[6.4,0.1,-1.2],"rotation":12},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[7.6,0.1,0.6],"rotation":-24},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[-7.4,0.1,-4.6],"rotation":38},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[-4.4,0.1,6.4],"rotation":-16},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[7.4,0.1,2.4],"rotation":0},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[-8.2,0.1,5.6],"rotation":0},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[5.2,0.1,6.4],"rotation":0},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[-3.4,0.1,6.9],"rotation":0},{"asset":"tactical-shooter-hill-town-oil-drum-05bbfef9","position":[8.6,0.1,-4.6],"rotation":0},{"asset":"tactical-shooter-hill-town-oil-drum-05bbfef9","position":[-8.8,0.1,-1.4],"rotation":0},{"asset":"tactical-shooter-hill-town-oil-drum-05bbfef9","position":[8.2,0.1,4.6],"rotation":0},{"asset":"tactical-shooter-hill-town-stone-bench-d23e3fa4","position":[-6.6,0.1,-5.4],"rotation":16},{"asset":"tactical-shooter-hill-town-stone-bench-d23e3fa4","position":[6.6,0.1,4.2],"rotation":-98},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[-8.6,0.1,6.8],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[8.6,0.1,6.6],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[-8.8,0.1,-6.6],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[8.8,0.1,-6.8],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[-2.6,0.1,-3.4],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[2.8,0.1,-3.6],"rotation":0},{"asset":"tactical-shooter-hill-town-low-garden-wall-af8ce217","position":[-8,0.1,7.2],"rotation":0},{"asset":"tactical-shooter-hill-town-low-garden-wall-af8ce217","position":[-4,0.1,7.2],"rotation":0},{"asset":"tactical-shooter-hill-town-low-garden-wall-af8ce217","position":[4,0.1,7.2],"rotation":0},{"asset":"tactical-shooter-hill-town-low-garden-wall-af8ce217","position":[8,0.1,7.2],"rotation":0},{"asset":"tactical-shooter-hill-town-sandbag-wall-d60c87eb","position":[-3.4,0.1,-6.5],"rotation":0},{"asset":"tactical-shooter-hill-town-sandbag-wall-d60c87eb","position":[-1.3,0.1,-6.5],"rotation":0},{"asset":"tactical-shooter-hill-town-sandbag-wall-d60c87eb","position":[2.6,0.1,-6.8],"rotation":-6},{"asset":"tactical-shooter-hill-town-jersey-barrier-6e2ec6af","position":[4.7,0.1,-6.6],"rotation":8},{"asset":"tactical-shooter-hill-town-riot-shield-dbe37eaa","position":[3.7,0.1,-5.9],"rotation":190},{"asset":"tactical-shooter-hill-town-barrier-tape-stand-c2405c14","position":[-7.2,0.1,-7.5],"rotation":0},{"asset":"tactical-shooter-hill-town-barrier-tape-stand-c2405c14","position":[7.2,0.1,-7.5],"rotation":0},{"asset":"tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","position":[-9.85,2.7,-4],"rotation":90},{"asset":"tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","position":[9.85,2.7,-4],"rotation":-90},{"asset":"tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","position":[-4,2.7,7.85],"rotation":180},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[-3.4,3.7,11],"rotation":20},{"asset":"tactical-shooter-hill-town-crate-stack-36a3ee55","position":[-1.8,3.7,12.6],"rotation":-30},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[2.6,3.7,10.6],"rotation":0},{"asset":"tactical-shooter-hill-town-oil-drum-05bbfef9","position":[4.2,3.7,13.2],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[-4.6,3.7,14.2],"rotation":0},{"asset":"tactical-shooter-hill-town-sandbag-wall-d60c87eb","position":[0.8,3.7,9.3],"rotation":0},{"asset":"tactical-shooter-hill-town-recon-operator-standing-aim-4e708016","position":[2.2,3.7,9.8],"rotation":180},{"asset":"tactical-shooter-hill-town-site-marker-board-e51e7c23","position":[2,0.1,2.2],"rotation":-150},{"asset":"tactical-shooter-hill-town-objective-device-24da01ad","position":[0.9,0.1,1.3],"rotation":24},{"asset":"tactical-shooter-hill-town-defuse-kit-bcaf54e3","position":[-1.6,0.1,-1.2],"rotation":40},{"asset":"tactical-shooter-hill-town-attacker-assault-rifle-b84190ac","position":[-1.2,0.1,-5.9],"rotation":76},{"asset":"tactical-shooter-hill-town-defender-carbine-897b5bd0","position":[0.7,0.1,-6.1],"rotation":-104},{"asset":"tactical-shooter-hill-town-pump-shotgun-5b373d89","position":[2.8,0.1,-5.9],"rotation":64},{"asset":"tactical-shooter-hill-town-desert-scout-planting-4b461fe9","position":[0.3,0.1,1.9],"rotation":168},{"asset":"tactical-shooter-hill-town-assault-trooper-crouch-aim-ba290269","position":[5.6,0.1,-0.4],"rotation":-104},{"asset":"tactical-shooter-hill-town-patrol-officer-standing-aim-5f18d932","position":[0,0.1,8.6],"rotation":180},{"asset":"tactical-shooter-hill-town-veteran-running-1660b930","position":[-7.6,0.1,5.4],"rotation":196},{"asset":"tactical-shooter-hill-town-heavy-gunner-standing-aim-9e0a8dfa","position":[-5.2,0.1,-3.4],"rotation":30},{"asset":"tactical-shooter-hill-town-breacher-standing-aim-271e6ca8","position":[6.6,0.1,6.4],"rotation":205},{"asset":"tactical-shooter-hill-town-field-engineer-crouch-aim-76a53f60","position":[-3,0.1,-4.4],"rotation":15},{"asset":"tactical-shooter-hill-town-marksman-rifle-44d21155","position":[-2.2,0.1,-5.4],"rotation":80},{"asset":"tactical-shooter-hill-town-fragmentation-grenade-5a45f14c","position":[1.7,0.1,0.5],"rotation":0},{"asset":"tactical-shooter-hill-town-smoke-grenade-fa3e11eb","position":[-0.7,0.1,2.9],"rotation":0},{"asset":"tactical-shooter-hill-town-combat-knife-dd39d49b","position":[3.3,0.1,3.1],"rotation":40},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[8.4,0.1,9.6],"rotation":0},{"asset":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","position":[-8.6,0.1,9.4],"rotation":0},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[7.6,0.1,3.2],"rotation":20},{"asset":"tactical-shooter-hill-town-wine-barrel-b78f51f9","position":[8.3,0.1,3.9],"rotation":-30},{"asset":"tactical-shooter-hill-town-oil-drum-05bbfef9","position":[-6.2,0.1,-2.2],"rotation":0}],"points":[{"position":[0.8,0.1,4.2],"title":"Site A","text":"The objective marker board and the device case at the planting spot, with an attacker kneeling over it. The case lid lifts on approach; the kneeling figure, like every operator here, is a static posed model.","asset":"tactical-shooter-hill-town-site-marker-board-e51e7c23"},{"position":[0,0.1,-3.2],"title":"The fountain","text":"The octagonal town fountain at the centre of the square. A defender crouches behind crates to its right and a heavy gunner covers the archway from the left.","asset":"tactical-shooter-hill-town-octagonal-fountain-a601c6d9"},{"position":[0,0.1,-9],"title":"Attacker spawn","text":"The freestanding archway between two barrier tape stands is the attackers' way in, closed off by sandbag walls and a jersey barrier. A field engineer covers it with a marksman rifle laid on the sandbags.","asset":"tactical-shooter-hill-town-freestanding-archway-e1485f94"},{"position":[-6.4,0.1,6.8],"title":"The market","text":"An awning stall with barrels and crate stacks under the external stair, where a veteran attacker runs in from the side street. The stair climbs to the roof terrace above.","asset":"tactical-shooter-hill-town-market-awning-stall-4c76765a"},{"position":[1.6,3.7,11.6],"title":"The roof terrace","text":"A recon operator holds the parapet behind a sandbag wall on the flat roof. Parapet, floor tile and wall bays are the same 4 m kit pieces as the buildings either side.","asset":"tactical-shooter-hill-town-recon-operator-standing-aim-4e708016"},{"position":[-10.4,0.1,2.4],"title":"The timber gate","text":"The double gate closes the western lane and swings open on approach, as do the timber doors and shutters in the wall bays around the square.","asset":"tactical-shooter-hill-town-timber-double-gate-f95b207a"}],"poster":{"position":[-2,1.8,6.7],"lookAt":[2,0.8,2.2]}},"bounds":{"min":[-20.5,0,-10],"max":[20.5,12,23]},"assets":[{"id":"27526","slug":"tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","title":"Cobbled Ground Tile (Tactical Shooter Hill Town)","summary":"Free 3D model of a 4 m cobbled ground tile for a tactical FPS hill town map kit. Measures 4.00 by 0.12 by 4.00 m.","description":"Square of laid stone setts over a concrete bed, the ground surface of the town square, with edge ports on all four sides so a road runs on unbroken. Dimensions 4.00 by 0.12 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level; the walking surface averages 0.10 m above it. The sett relief is geometry, not a normal map.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","cdnUrl":"https://cdn.3dassets.dev/assets/27526/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-cobbled-ground-tile-fde0e19b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27526/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27526/v1/poster.webp","blurhash":"U4B3.@-;00oM%MWCaxof00E1~qNGD$t6WVRk","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":123216,"triangles":2060,"vertices":3136,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.00003213429061350165,-2],"max":[2,0.11960042285529549,2]},"sizeMeters":[4,0.12,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:46.120Z","updatedAt":"2026-09-07T23:59:46.231Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27526/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CobbledGroundTileTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27526/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27526/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27526/v1/model.glb\" alt=\"Cobbled Ground Tile (Tactical Shooter Hill Town)\" 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/27526/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/27526/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27525","slug":"tactical-shooter-hill-town-floor-tile-450ece79","title":"Stone Floor Tile (Tactical Shooter Hill Town)","summary":"Free 3D model of a 4 m stone floor tile for a tactical FPS hill town map kit. Measures 4.00 by 0.10 by 4.00 m.","description":"Interior floor bay of laid limestone flags with raised joints, sized to the 4 m grid so rooms tile without a seam. Dimensions 4.00 by 0.10 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level; the walking surface is 0.10 m above it.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-floor-tile-450ece79","cdnUrl":"https://cdn.3dassets.dev/assets/27525/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-floor-tile-450ece79","thumbnailUrl":"https://cdn.3dassets.dev/assets/27525/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27525/v1/poster.webp","blurhash":"U4B3+,?a00fk-;ayRjof00D*~qRj9FoeofRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"modular","title":"Modular"}],"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":58844,"triangles":444,"vertices":404,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.000050354676368054296,-2],"max":[2,0.10005035640490273,2]},"sizeMeters":[4,0.1,4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:46.102Z","updatedAt":"2026-09-07T23:59:46.206Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27525/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneFloorTileTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27525/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27525/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27525/v1/model.glb\" alt=\"Stone Floor Tile (Tactical Shooter Hill Town)\" 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/27525/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/27525/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27515","slug":"tactical-shooter-hill-town-corner-post-97245195","title":"Stone Corner Post (Tactical Shooter Hill Town)","summary":"Free 3D model of a dressed stone corner post for a tactical FPS hill town map kit. Measures 0.48 by 3.50 by 0.48 m.","description":"Quoined limestone corner column that squares two wall runs, taking a wall port from each of the four directions at the same point. Dimensions 0.48 by 3.50 by 0.48 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level; all four wall ports are coincident on the column axis at 1.75 m.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-corner-post-97245195","cdnUrl":"https://cdn.3dassets.dev/assets/27515/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-corner-post-97245195","thumbnailUrl":"https://cdn.3dassets.dev/assets/27515/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27515/v1/poster.webp","blurhash":"U18;S$~q0000tkaeMxbvMzfkxtjG?bj@9FWV","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":72008,"triangles":876,"vertices":778,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.2399060029908139,0,-0.2399060029908139],"max":[0.2399060029908139,3.5,0.2399060029908139]},"sizeMeters":[0.48,3.5,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:42.443Z","updatedAt":"2026-09-07T23:59:42.559Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27515/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneCornerPostTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27515/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27515/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27515/v1/model.glb\" alt=\"Stone Corner Post (Tactical Shooter Hill Town)\" 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/27515/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/27515/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27512","slug":"tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","title":"Plaster Wall Bay (Tactical Shooter Hill Town)","summary":"Free 3D model of a white lime render wall bay for a tactical FPS hill town map kit on a 4 m grid. Measures 4.00 by 3.50 by 0.36 m.","description":"Plain white lime render wall bay: a rendered panel on a projecting limestone plinth with a stone band under the eaves, built for a Mediterranean hill town game map. Dimensions 4.00 by 3.50 by 0.36 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level; wall ports sit at each end at 1.75 m.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","cdnUrl":"https://cdn.3dassets.dev/assets/27512/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-plaster-bay-29f4fb1f","thumbnailUrl":"https://cdn.3dassets.dev/assets/27512/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27512/v1/poster.webp","blurhash":"U8F$U{-;00Rj?b~WNG0K00WB~qRjjZt7WBIo","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":51052,"triangles":36,"vertices":86,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00002779091710958248,-0.17993713187047944],"max":[2.001199960708618,3.5000451650098388,0.17993713187047944]},"sizeMeters":[4.001,3.5,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:40.779Z","updatedAt":"2026-09-07T23:59:40.896Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27512/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PlasterWallBayTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27512/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27512/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27512/v1/model.glb\" alt=\"Plaster Wall Bay (Tactical Shooter Hill Town)\" 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/27512/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/27512/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27511","slug":"tactical-shooter-hill-town-wall-shuttered-window-93c0030e","title":"Wall Bay With Shuttered Window (Tactical Shooter Hill Town)","summary":"Free 3D model of a plaster wall bay with a shuttered window for a tactical FPS map kit on a 4 m grid. Measures 4.00 by 3.50 by 0.46 m.","description":"Rendered wall bay with a stone-dressed window opening, a projecting sill and a pair of hinged timber shutters over a recessed dark reveal. Dimensions 4.00 by 3.50 by 0.46 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. The pivot is the grid origin at ground level; each shutter leaf hinges on its own outer jamb.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-shuttered-window-93c0030e","cdnUrl":"https://cdn.3dassets.dev/assets/27511/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-shuttered-window-93c0030e","thumbnailUrl":"https://cdn.3dassets.dev/assets/27511/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27511/v1/poster.webp","blurhash":"U6F62z9F00M{_3~q9F0000?bxZIU-;xuWBD%","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":102068,"triangles":2032,"vertices":1869,"meshes":5,"materials":4,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2,0.00002779091710958248,-0.20996734519486068],"max":[2.001199960708618,3.5000451650098388,0.24999252371993363]},"sizeMeters":[4.001,3.5,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:40.758Z","updatedAt":"2026-09-07T23:59:40.875Z","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/27511/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 WallBayWithShutteredWindowTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27511/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/27511/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27511/v1/model.glb\" alt=\"Wall Bay With Shuttered Window (Tactical Shooter Hill Town)\" 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/27511/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/27511/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27513","slug":"tactical-shooter-hill-town-wall-timber-door-fcdc3a01","title":"Wall Bay With Timber Door (Tactical Shooter Hill Town)","summary":"Free 3D model of a plaster wall bay with a hinged timber door for a tactical FPS map kit on a 4 m grid. Measures 4.00 by 3.50 by 0.73 m.","description":"Rendered wall bay with a stone-dressed doorway, a worn threshold step and a plank door on strap hinges that swings outward. Dimensions 4.00 by 3.50 by 0.73 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. The pivot is the grid origin at ground level; the door leaf hinges on the left jamb.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-timber-door-fcdc3a01","cdnUrl":"https://cdn.3dassets.dev/assets/27513/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-timber-door-fcdc3a01","thumbnailUrl":"https://cdn.3dassets.dev/assets/27513/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27513/v1/poster.webp","blurhash":"U9Eo=7xu00t7~q_3D%4o00t7s:IUIUWBt7Rj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":101456,"triangles":1356,"vertices":1288,"meshes":5,"materials":5,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2,0.00002779091710958248,-0.18000137094874064],"max":[2.001199960708618,3.5000451650098388,0.5500013757171123]},"sizeMeters":[4.001,3.5,0.73],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:40.850Z","updatedAt":"2026-09-07T23:59:40.937Z","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/27513/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 WallBayWithTimberDoorTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27513/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/27513/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27513/v1/model.glb\" alt=\"Wall Bay With Timber Door (Tactical Shooter Hill Town)\" 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/27513/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/27513/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27538","slug":"tactical-shooter-hill-town-timber-double-gate-f95b207a","title":"Timber Double Gate (Tactical Shooter Hill Town)","summary":"Free 3D model of a timber double gate in a stone surround for a tactical FPS map kit with a 3.00 m opening. Measures 4.00 by 3.50 by 0.40 m.","description":"Courtyard gate bay: two braced plank leaves on strap hinges in a dressed stone surround with a moulded head, each leaf swinging outward on its own jamb. Dimensions 4.00 by 3.50 by 0.40 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. The pivot is the grid origin at ground level.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-timber-double-gate-f95b207a","cdnUrl":"https://cdn.3dassets.dev/assets/27538/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-timber-double-gate-f95b207a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27538/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27538/v1/poster.webp","blurhash":"U8BMunf600of_N-;DiD%I;t7MxM{Ri%MtRDj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":119976,"triangles":2556,"vertices":2256,"meshes":6,"materials":3,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2,0.000007629627368999081,-0.1999572740867336],"max":[2,3.499992370372631,0.1999572740867336]},"sizeMeters":[4,3.5,0.4],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:51.078Z","updatedAt":"2026-09-07T23:59:51.173Z","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/27538/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 TimberDoubleGateTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27538/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/27538/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27538/v1/model.glb\" alt=\"Timber Double Gate (Tactical Shooter Hill Town)\" 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/27538/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/27538/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27517","slug":"tactical-shooter-hill-town-balcony-bay-52db6fc6","title":"Balcony Wall Bay (Tactical Shooter Hill Town)","summary":"Free 3D model of a wall bay with a stone balcony and iron rail for a tactical FPS map kit on a 4 m grid. Measures 4.00 by 3.50 by 1.48 m.","description":"Wall bay with a tall balcony doorway, a corbelled stone slab projecting 1.15 m and a wrought iron balustrade on three sides. Dimensions 4.00 by 3.50 by 1.48 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at the bay floor level; place it on a storey course so the balcony overhangs the street.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-balcony-bay-52db6fc6","cdnUrl":"https://cdn.3dassets.dev/assets/27517/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-balcony-bay-52db6fc6","thumbnailUrl":"https://cdn.3dassets.dev/assets/27517/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27517/v1/poster.webp","blurhash":"U9ECtS0K00ax~q-;4o9F00?bj=IVIVofxuRj","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":91348,"triangles":1824,"vertices":1724,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00002779091710958248,-0.179888250992995],"max":[2.001199960708618,3.5000451650098388,1.2948882009250933]},"sizeMeters":[4.001,3.5,1.475],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:42.493Z","updatedAt":"2026-09-07T23:59:42.613Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27517/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BalconyWallBayTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27517/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27517/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27517/v1/model.glb\" alt=\"Balcony Wall Bay (Tactical Shooter Hill Town)\" 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/27517/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/27517/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27518","slug":"tactical-shooter-hill-town-roof-tile-slope-7a571081","title":"Tiled Roof Slope (Tactical Shooter Hill Town)","summary":"Free 3D model of a terracotta tiled roof slope for a tactical FPS hill town map kit, 4.00 m wide over a 4.00 m run. Measures 4.00 by 2.13 by 4.09 m.","description":"One bay of pantiled roof at a 26 degree pitch with eleven rolled tile courses and a timber eaves board, rising 1.95 m over a 4.00 m run. Dimensions 4.00 by 2.13 by 4.09 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at the eaves; the slope climbs toward +Z, so rotate it by 180 degrees for the opposite pitch.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-roof-tile-slope-7a571081","cdnUrl":"https://cdn.3dassets.dev/assets/27518/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-roof-tile-slope-7a571081","thumbnailUrl":"https://cdn.3dassets.dev/assets/27518/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27518/v1/poster.webp","blurhash":"U27Al0^%5X-W^%^jjvog00E3}=Io0202s*f3","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":75180,"triangles":384,"vertices":426,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-1.9998803767233393,-0.00012475765622399493,-0.060110783306984966],"max":[2.001199960708618,2.1311445883599593,4.028494358062744]},"sizeMeters":[4.001,2.131,4.089],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:42.591Z","updatedAt":"2026-09-07T23:59:42.704Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27518/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TiledRoofSlopeTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27518/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27518/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27518/v1/model.glb\" alt=\"Tiled Roof Slope (Tactical Shooter Hill Town)\" 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/27518/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/27518/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27521","slug":"tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","title":"Roof Ridge Cap (Tactical Shooter Hill Town)","summary":"Free 3D model of a terracotta ridge cap for a tactical FPS hill town map kit 4.00 m long. Measures 4.00 by 0.26 by 0.37 m.","description":"Half-round ridge cap that closes the gap where two roof slopes meet, with eight bedded collar rings along its length. Dimensions 4.00 by 0.26 by 0.37 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at the underside of the cap; set it at the ridge line height of the slopes it closes.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","cdnUrl":"https://cdn.3dassets.dev/assets/27521/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-roof-ridge-cap-3d9b60dd","thumbnailUrl":"https://cdn.3dassets.dev/assets/27521/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27521/v1/poster.webp","blurhash":"U58:t]tREMxa-o~AozNa00%0^jSzE30LxB={","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":58024,"triangles":332,"vertices":396,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.000054702044049920184,-0.185064241462447],"max":[2,0.2549452931875785,0.185064241462447]},"sizeMeters":[4,0.255,0.37],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:44.207Z","updatedAt":"2026-09-07T23:59:44.297Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27521/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofRidgeCapTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27521/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27521/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27521/v1/model.glb\" alt=\"Roof Ridge Cap (Tactical Shooter Hill Town)\" 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/27521/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/27521/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27519","slug":"tactical-shooter-hill-town-roof-gable-half-b2841bcd","title":"Roof Gable Half (Tactical Shooter Hill Town)","summary":"Free 3D model of a rendered half gable with a tiled verge for a tactical FPS hill town map kit, 4.00 m wide. Measures 4.08 by 2.08 by 0.46 m.","description":"Half of a rendered gable wall: a right angled triangle rising 1.95 m from the eaves to the ridge with a tiled verge course on the rake, so two placed as a mirrored pair close one 8 m gable end. Dimensions 4.08 by 2.08 by 0.46 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at the wall head and the rake climbs toward +X; rotate the second half by 180 degrees to meet it at the ridge.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-roof-gable-half-b2841bcd","cdnUrl":"https://cdn.3dassets.dev/assets/27519/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-roof-gable-half-b2841bcd","thumbnailUrl":"https://cdn.3dassets.dev/assets/27519/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27519/v1/poster.webp","blurhash":"UHC~^=9F9F%M00%MxuM|00R+%MW.~qjGIBj@","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":54196,"triangles":140,"vertices":166,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-2.0526046752929688,-0.00007049760787794512,-0.23000238586920796],"max":[2.0299999713897705,2.078921361467952,0.23000238586920796]},"sizeMeters":[4.083,2.079,0.46],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:44.034Z","updatedAt":"2026-09-07T23:59:44.124Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27519/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofGableHalfTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27519/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27519/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27519/v1/model.glb\" alt=\"Roof Gable Half (Tactical Shooter Hill Town)\" 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/27519/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/27519/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27514","slug":"tactical-shooter-hill-town-wall-ochre-bay-69de2074","title":"Ochre Wall Bay (Tactical Shooter Hill Town)","summary":"Free 3D model of a warm ochre render wall bay for a tactical FPS hill town map kit on a 4 m grid. Measures 4.00 by 3.50 by 0.36 m.","description":"Plain warm ochre render wall bay: a rendered panel on a projecting limestone plinth with a stone band under the eaves, built for a Mediterranean hill town game map. Dimensions 4.00 by 3.50 by 0.36 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level; wall ports sit at each end at 1.75 m.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-ochre-bay-69de2074","cdnUrl":"https://cdn.3dassets.dev/assets/27514/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-ochre-bay-69de2074","thumbnailUrl":"https://cdn.3dassets.dev/assets/27514/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27514/v1/poster.webp","blurhash":"U5D+C]^j00RR:$}@kr0f0NM{}nXTbv.7Sh9F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":51044,"triangles":36,"vertices":86,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00002779091710958248,-0.17993713187047944],"max":[2.001199960708618,3.5000451650098388,0.17993713187047944]},"sizeMeters":[4.001,3.5,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:40.955Z","updatedAt":"2026-09-07T23:59:41.077Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27514/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OchreWallBayTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27514/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27514/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27514/v1/model.glb\" alt=\"Ochre Wall Bay (Tactical Shooter Hill Town)\" 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/27514/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/27514/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27516","slug":"tactical-shooter-hill-town-wall-arched-passage-6f25f940","title":"Arched Passage Bay (Tactical Shooter Hill Town)","summary":"Free 3D model of an arched passage wall bay for a tactical FPS hill town map kit with a 2.40 m opening. Measures 4.00 by 3.50 by 0.36 m.","description":"Wall bay pierced by a round-headed passage: a 2.40 m opening with a voussoir ring and dressed stone jambs, wide enough to walk a squad through. Dimensions 4.00 by 3.50 by 0.36 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-arched-passage-6f25f940","cdnUrl":"https://cdn.3dassets.dev/assets/27516/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-arched-passage-6f25f940","thumbnailUrl":"https://cdn.3dassets.dev/assets/27516/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27516/v1/poster.webp","blurhash":"U7EMI2%L00-;_3~qIV4n00xtRj9FM{%Mt79F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":65508,"triangles":644,"vertices":602,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00002779091710958248,-0.17993713187047944],"max":[2.001199960708618,3.5000451650098388,0.17993713187047944]},"sizeMeters":[4.001,3.5,0.36],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:42.466Z","updatedAt":"2026-09-07T23:59:42.565Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27516/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ArchedPassageBayTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27516/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27516/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27516/v1/model.glb\" alt=\"Arched Passage Bay (Tactical Shooter Hill Town)\" 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/27516/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/27516/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27520","slug":"tactical-shooter-hill-town-roof-parapet-197a1149","title":"Roof Parapet (Tactical Shooter Hill Town)","summary":"Free 3D model of a rendered roof parapet with a stone coping for a tactical FPS map kit. Measures 4.00 by 0.74 by 0.34 m.","description":"Low rendered parapet with a projecting stone coping and shallow pilasters, high enough to break sight lines from a flat roof. Dimensions 4.00 by 0.74 by 0.34 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at the roof surface.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-roof-parapet-197a1149","cdnUrl":"https://cdn.3dassets.dev/assets/27520/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-roof-parapet-197a1149","thumbnailUrl":"https://cdn.3dassets.dev/assets/27520/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27520/v1/poster.webp","blurhash":"UAC%58%M9G%Lt7~qxuM|00Rj_3ayax00M{%M","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":64792,"triangles":660,"vertices":593,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.00006805389194569633,-0.16992706076235237],"max":[2,0.739916987866086,0.16992706076235237]},"sizeMeters":[4,0.74,0.34],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:44.137Z","updatedAt":"2026-09-07T23:59:44.257Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27520/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoofParapetTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27520/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27520/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27520/v1/model.glb\" alt=\"Roof Parapet (Tactical Shooter Hill Town)\" 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/27520/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/27520/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27528","slug":"tactical-shooter-hill-town-octagonal-fountain-a601c6d9","title":"Octagonal Town Fountain (Tactical Shooter Hill Town)","summary":"Free 3D model of an octagonal stone town fountain for a tactical FPS hill town map kit. Measures 3.44 by 2.26 by 3.44 m.","description":"Octagonal limestone drinking fountain: a coped basin with standing water, a turned central column, an upper bowl and four iron spouts. Dimensions 3.44 by 2.26 by 3.44 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The water surface is flat geometry at 0.46 m, not a simulated fluid.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-octagonal-fountain-a601c6d9","cdnUrl":"https://cdn.3dassets.dev/assets/27528/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-octagonal-fountain-a601c6d9","thumbnailUrl":"https://cdn.3dassets.dev/assets/27528/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27528/v1/poster.webp","blurhash":"U6A100%M00M{9FRjtRt700WA_NR*.8xts9WB","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":115052,"triangles":2276,"vertices":2220,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.7200000286102295,0.00006070827024040604,-1.7200000286102295],"max":[1.7200000286102295,2.2599392821930167,1.7200000286102295]},"sizeMeters":[3.44,2.26,3.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:47.538Z","updatedAt":"2026-09-07T23:59:47.661Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27528/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OctagonalTownFountainTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27528/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27528/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27528/v1/model.glb\" alt=\"Octagonal Town Fountain (Tactical Shooter Hill Town)\" 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/27528/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/27528/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27524","slug":"tactical-shooter-hill-town-freestanding-archway-e1485f94","title":"Freestanding Stone Archway (Tactical Shooter Hill Town)","summary":"Free 3D model of a freestanding stone archway for a tactical FPS hill town map kit. Measures 4.34 by 4.22 by 0.92 m.","description":"Town gate arch standing on its own: a round-headed 2.60 m opening between quoined piers with a moulded cornice over the head. Dimensions 4.34 by 4.22 by 0.92 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the footprint centre at ground level; the passage runs along Z.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-freestanding-archway-e1485f94","cdnUrl":"https://cdn.3dassets.dev/assets/27524/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-freestanding-archway-e1485f94","thumbnailUrl":"https://cdn.3dassets.dev/assets/27524/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27524/v1/poster.webp","blurhash":"U5Ci{y-;00t6~q?bM{4n9FazIUIURk-;t79F","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":73612,"triangles":1036,"vertices":801,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2.1700000762939453,-0.00013262942439284942,-0.45986756583712746],"max":[2.1700000762939453,4.220132419616043,0.45986756583712746]},"sizeMeters":[4.34,4.22,0.92],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:45.775Z","updatedAt":"2026-09-07T23:59:45.862Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27524/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FreestandingStoneArchwayTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27524/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27524/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27524/v1/model.glb\" alt=\"Freestanding Stone Archway (Tactical Shooter Hill Town)\" 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/27524/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/27524/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27522","slug":"tactical-shooter-hill-town-external-stair-run-322e7f01","title":"External Stone Stair Run (Tactical Shooter Hill Town)","summary":"Free 3D model of an external stone stair run for a tactical FPS hill town map kit climbing 3.50 m in twelve steps. Measures 1.34 by 4.50 by 4.36 m.","description":"Open stone stair of twelve 0.292 m risers with nosed treads and a plain iron handrail, the usual way onto a hill town first floor. Dimensions 1.34 by 4.50 by 4.36 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the footprint centre at the bottom step; the run climbs toward +Z.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-external-stair-run-322e7f01","cdnUrl":"https://cdn.3dassets.dev/assets/27522/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-external-stair-run-322e7f01","thumbnailUrl":"https://cdn.3dassets.dev/assets/27522/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27522/v1/poster.webp","blurhash":"U797b9~p014n00IU?H%M4nIVt8xu~qRkIUxt","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":117856,"triangles":3008,"vertices":2615,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.6724613648461606,-0.00002740844108717333,-2.1818895071844655],"max":[0.6725469148566129,4.503415584564209,2.1818895071844655]},"sizeMeters":[1.345,4.503,4.364],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:44.314Z","updatedAt":"2026-09-07T23:59:44.484Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27522/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ExternalStoneStairRunTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27522/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27522/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27522/v1/model.glb\" alt=\"External Stone Stair Run (Tactical Shooter Hill Town)\" 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/27522/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/27522/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27523","slug":"tactical-shooter-hill-town-stone-step-block-d7ca9ab2","title":"Stone Step Block (Tactical Shooter Hill Town)","summary":"Free 3D model of a three step stone block for a tactical FPS hill town map kit. Measures 2.06 by 0.61 by 1.20 m.","description":"Short flight of three worn limestone steps with nosed treads, for level changes across a square or up to a doorway. Dimensions 2.06 by 0.61 by 1.20 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the footprint centre at the bottom step; the flight climbs toward +Z.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-stone-step-block-d7ca9ab2","cdnUrl":"https://cdn.3dassets.dev/assets/27523/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-stone-step-block-d7ca9ab2","thumbnailUrl":"https://cdn.3dassets.dev/assets/27523/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27523/v1/poster.webp","blurhash":"U6Bg3s~p00R%IU-;%MM{009F?bofxu9FIUt6","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":63216,"triangles":648,"vertices":558,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-1.0299999713897705,0.00004342588829875371,-0.5999505433498691],"max":[1.0299999713897705,0.6149565836484444,0.5999505433498691]},"sizeMeters":[2.06,0.615,1.2],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:45.728Z","updatedAt":"2026-09-07T23:59:45.811Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27523/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneStepBlockTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27523/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27523/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27523/v1/model.glb\" alt=\"Stone Step Block (Tactical Shooter Hill Town)\" 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/27523/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/27523/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27529","slug":"tactical-shooter-hill-town-market-awning-stall-4c76765a","title":"Market Awning Stall (Tactical Shooter Hill Town)","summary":"Free 3D model of a timber market stall with a canvas awning for a tactical FPS map kit. Measures 2.56 by 2.73 by 1.78 m.","description":"Trestle market stall with a plank counter, a scalloped sand canvas awning on four posts and open produce trays, the sort that fills a town square on market day. Dimensions 2.56 by 2.73 by 1.78 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-market-awning-stall-4c76765a","cdnUrl":"https://cdn.3dassets.dev/assets/27529/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-market-awning-stall-4c76765a","thumbnailUrl":"https://cdn.3dassets.dev/assets/27529/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27529/v1/poster.webp","blurhash":"UGA,aos;0Ls:~pt6D*a|9ukCxtWB02a{-:j?","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":70924,"triangles":2412,"vertices":2077,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.2799999713897705,0,-0.889949014197264],"max":[1.2799999713897705,2.7300432961475396,0.889949014197264]},"sizeMeters":[2.56,2.73,1.78],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:47.722Z","updatedAt":"2026-09-07T23:59:47.824Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27529/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MarketAwningStallTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27529/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27529/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27529/v1/model.glb\" alt=\"Market Awning Stall (Tactical Shooter Hill Town)\" 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/27529/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/27529/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27530","slug":"tactical-shooter-hill-town-crate-stack-36a3ee55","title":"Timber Crate Stack (Tactical Shooter Hill Town)","summary":"Free 3D model of a stack of five timber crates for a tactical FPS hill town map kit. Measures 1.45 by 1.30 by 0.99 m.","description":"Five banded timber shipping crates stacked and turned off square, chest high cover for a market square or a loading corner. Dimensions 1.45 by 1.30 by 0.99 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-crate-stack-36a3ee55","cdnUrl":"https://cdn.3dassets.dev/assets/27530/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-crate-stack-36a3ee55","thumbnailUrl":"https://cdn.3dassets.dev/assets/27530/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27530/v1/poster.webp","blurhash":"U15|cn}X0N1IE%xFaxEz0#AD^5-A,@afsAxG","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":129200,"triangles":4860,"vertices":4166,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-0.7252705693244934,-0.000014392241540428508,-0.496292510922385],"max":[0.7252705693244934,1.3000143445578245,0.496292510922385]},"sizeMeters":[1.451,1.3,0.993],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:47.772Z","updatedAt":"2026-09-07T23:59:47.880Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27530/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TimberCrateStackTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27530/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27530/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27530/v1/model.glb\" alt=\"Timber Crate Stack (Tactical Shooter Hill Town)\" 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/27530/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/27530/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27531","slug":"tactical-shooter-hill-town-wine-barrel-b78f51f9","title":"Oak Wine Barrel (Tactical Shooter Hill Town)","summary":"Free 3D model of an oak wine barrel with iron hoops for a tactical FPS hill town map kit. Measures 0.75 by 0.90 by 0.74 m.","description":"Standing oak barrel with a bulged stave belly, four iron hoops, a headed top and a bung, the standard dressing of a cellar or tavern front. Dimensions 0.75 by 0.90 by 0.74 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wine-barrel-b78f51f9","cdnUrl":"https://cdn.3dassets.dev/assets/27531/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wine-barrel-b78f51f9","thumbnailUrl":"https://cdn.3dassets.dev/assets/27531/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27531/v1/poster.webp","blurhash":"U15z%W=y0M5l^2jX9]Wr0xNZ=d$jo}oh$*jX","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":39772,"triangles":1208,"vertices":856,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-0.37599998712539673,0,-0.37030840737704634],"max":[0.37599998712539673,0.8949999809265137,0.37030840737704634]},"sizeMeters":[0.752,0.895,0.741],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:49.094Z","updatedAt":"2026-09-07T23:59:49.202Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27531/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function OakWineBarrelTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27531/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27531/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27531/v1/model.glb\" alt=\"Oak Wine Barrel (Tactical Shooter Hill Town)\" 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/27531/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/27531/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27534","slug":"tactical-shooter-hill-town-oil-drum-05bbfef9","title":"Steel Oil Drum (Tactical Shooter Hill Town)","summary":"Free 3D model of a 200 litre steel oil drum for a tactical FPS hill town map kit. Measures 0.61 by 0.89 by 0.60 m.","description":"Standing steel drum with two rolling hoops, rolled rims and a bung on the head, the loose cover that clutters a yard or an alley. Dimensions 0.61 by 0.89 by 0.60 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-oil-drum-05bbfef9","cdnUrl":"https://cdn.3dassets.dev/assets/27534/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-oil-drum-05bbfef9","thumbnailUrl":"https://cdn.3dassets.dev/assets/27534/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27534/v1/poster.webp","blurhash":"U13S3Cxb00M{_NoL8^bF%NjbIUkBRij@t8ay","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":912,"vertices":623,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.3040110175870876,0,-0.3000119250116195],"max":[0.3040110175870876,0.8850019092787225,0.3000119250116195]},"sizeMeters":[0.608,0.885,0.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:49.395Z","updatedAt":"2026-09-07T23:59:49.516Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27534/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SteelOilDrumTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27534/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27534/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27534/v1/model.glb\" alt=\"Steel Oil Drum (Tactical Shooter Hill Town)\" 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/27534/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/27534/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27535","slug":"tactical-shooter-hill-town-stone-bench-d23e3fa4","title":"Stone Square Bench (Tactical Shooter Hill Town)","summary":"Free 3D model of a stone bench with timber slats for a tactical FPS hill town map kit. Measures 1.80 by 0.57 by 0.48 m.","description":"Public bench of two limestone cheeks under a slab seat with four worn timber slats on top, the fixed seating of a town square. Dimensions 1.80 by 0.57 by 0.48 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-stone-bench-d23e3fa4","cdnUrl":"https://cdn.3dassets.dev/assets/27535/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-stone-bench-d23e3fa4","thumbnailUrl":"https://cdn.3dassets.dev/assets/27535/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27535/v1/poster.webp","blurhash":"U49QN+-;pc~qrC~Wkq9Z00DiMxE2K%00wH?b","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":87016,"triangles":972,"vertices":843,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-0.8999999761581421,0.000028074714154946445,-0.23997618920541058],"max":[0.8999999761581421,0.569986101380782,0.23997618920541058]},"sizeMeters":[1.8,0.57,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:50.725Z","updatedAt":"2026-09-07T23:59:50.840Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27535/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StoneSquareBenchTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27535/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27535/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27535/v1/model.glb\" alt=\"Stone Square Bench (Tactical Shooter Hill Town)\" 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/27535/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/27535/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27536","slug":"tactical-shooter-hill-town-potted-olive-tree-d8abdf74","title":"Potted Olive Tree (Tactical Shooter Hill Town)","summary":"Free 3D model of a potted olive tree for a tactical FPS hill town map kit. Measures 1.71 by 2.17 by 1.61 m.","description":"Young olive in a terracotta pot: a gnarled trunk, five limbs and clustered grey green canopy masses, the standing dressing of a square or a terrace. Dimensions 1.71 by 2.17 by 1.61 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The canopy is solid clustered geometry, not alpha cards, so it reads from every angle without a cutout texture.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-potted-olive-tree-d8abdf74","cdnUrl":"https://cdn.3dassets.dev/assets/27536/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-potted-olive-tree-d8abdf74","thumbnailUrl":"https://cdn.3dassets.dev/assets/27536/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27536/v1/poster.webp","blurhash":"U88qNQxu00E2?]bbDQslD+V[%Kt6DQV@yCbv","category":{"slug":"nature","title":"Nature & Landscape"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":84600,"triangles":1748,"vertices":1454,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.8528697490692139,-0.0000021322316986482903,-0.8028953871131944],"max":[0.8528697490692139,2.1720141297795825,0.8028953871131944]},"sizeMeters":[1.706,2.172,1.606],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":2,"publishedAt":"2026-09-07T23:59:50.744Z","updatedAt":"2026-09-08T07:11:07.130Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27536/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PottedOliveTreeTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27536/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27536/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27536/v1/model.glb\" alt=\"Potted Olive Tree (Tactical Shooter Hill Town)\" 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/27536/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/27536/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27527","slug":"tactical-shooter-hill-town-low-garden-wall-af8ce217","title":"Low Garden Wall (Tactical Shooter Hill Town)","summary":"Free 3D model of a low stone garden wall for a tactical FPS hill town map kit. Measures 4.00 by 0.88 by 0.42 m.","description":"Waist high rubble stone wall with a flat coping, the cover that edges a terrace or a kitchen garden in a hill town. Dimensions 4.00 by 0.88 by 0.42 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The pivot is the grid origin at ground level.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-low-garden-wall-af8ce217","cdnUrl":"https://cdn.3dassets.dev/assets/27527/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-low-garden-wall-af8ce217","thumbnailUrl":"https://cdn.3dassets.dev/assets/27527/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27527/v1/poster.webp","blurhash":"U8B|HPxu9Fxt%M~qt7Io00s:?bayIU00Rj%M","category":{"slug":"buildings","title":"Buildings & Architecture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"modular","title":"Modular"}],"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":66576,"triangles":768,"vertices":693,"meshes":1,"materials":1,"textures":1,"animations":[],"boundingBox":{"min":[-2,0.00004516500983869909,-0.20996734519486068],"max":[2,0.8799548302217897,0.20996734519486068]},"sizeMeters":[4,0.88,0.42],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":1,"publishedAt":"2026-09-07T23:59:47.454Z","updatedAt":"2026-09-08T10:37:32.625Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27527/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LowGardenWallTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27527/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27527/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27527/v1/model.glb\" alt=\"Low Garden Wall (Tactical Shooter Hill Town)\" 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/27527/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/27527/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27532","slug":"tactical-shooter-hill-town-sandbag-wall-d60c87eb","title":"Sandbag Wall (Tactical Shooter Hill Town)","summary":"Free 3D model of a stacked sandbag wall for a tactical FPS hill town map kit. Measures 2.15 by 1.12 by 0.65 m.","description":"Six courses of filled sandbags laid two deep in broken bond, the improvised chest high cover a defending team drops across an entrance. Dimensions 2.15 by 1.12 by 0.65 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-sandbag-wall-d60c87eb","cdnUrl":"https://cdn.3dassets.dev/assets/27532/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-sandbag-wall-d60c87eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27532/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27532/v1/poster.webp","blurhash":"U7FP4x^+00bb~p~os:9a00xs^*IoIWM}X4R$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":109216,"triangles":6000,"vertices":4500,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-1.0740293264389038,0.000045622437787717907,-0.3229594089603113],"max":[1.0740293264389038,1.1185543884340996,0.3229594089603113]},"sizeMeters":[2.148,1.119,0.646],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:49.128Z","updatedAt":"2026-09-07T23:59:49.223Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27532/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SandbagWallTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27532/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27532/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27532/v1/model.glb\" alt=\"Sandbag Wall (Tactical Shooter Hill Town)\" 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/27532/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/27532/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27533","slug":"tactical-shooter-hill-town-jersey-barrier-6e2ec6af","title":"Concrete Jersey Barrier (Tactical Shooter Hill Town)","summary":"Free 3D model of a concrete jersey barrier for a tactical FPS hill town map kit. Measures 2.02 by 0.95 by 0.62 m.","description":"Cast concrete traffic barrier with the usual splayed toe and end keys, plus a lifting eye on the top face. Dimensions 2.02 by 0.95 by 0.62 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-jersey-barrier-6e2ec6af","cdnUrl":"https://cdn.3dassets.dev/assets/27533/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-jersey-barrier-6e2ec6af","thumbnailUrl":"https://cdn.3dassets.dev/assets/27533/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27533/v1/poster.webp","blurhash":"U8EMI2~q00%MRk~W-:D%00D%-;RjxuM{WBf6","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":60556,"triangles":420,"vertices":409,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.0120000839233398,0.00005704370238984735,-0.3119666996584874],"max":[1.0120000839233398,0.949999988079071,0.3119666996584874]},"sizeMeters":[2.024,0.95,0.624],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:49.355Z","updatedAt":"2026-09-07T23:59:49.462Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27533/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ConcreteJerseyBarrierTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27533/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27533/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27533/v1/model.glb\" alt=\"Concrete Jersey Barrier (Tactical Shooter Hill Town)\" 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/27533/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/27533/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27562","slug":"tactical-shooter-hill-town-riot-shield-dbe37eaa","title":"Riot Shield (Tactical Shooter Hill Town)","summary":"Free 3D model of a standing riot shield for a tactical FPS game, curved with a vision port and a forearm cuff. Measures 0.62 by 1.08 by 0.16 m.","description":"Curved ballistic riot shield standing on its own foot rail, with a darkened vision port, three reinforcing ribs and a forearm cuff and grab handle on the back. Dimensions 0.62 by 1.08 by 0.16 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. Invented design with no markings or lettering. It stands on its foot rail at y = 0 and has no rig or collision volume.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-riot-shield-dbe37eaa","cdnUrl":"https://cdn.3dassets.dev/assets/27562/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-riot-shield-dbe37eaa","thumbnailUrl":"https://cdn.3dassets.dev/assets/27562/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27562/v1/poster.webp","blurhash":"U76I$-y?00HqyXpIRPR4L~Z$x]o}%#t7MdRP","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":23320,"triangles":964,"vertices":918,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.31001248980818075,0,-0.08185968663325803],"max":[0.31001248980818075,1.0799999237060547,0.08182677453192293]},"sizeMeters":[0.62,1.08,0.164],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:00.697Z","updatedAt":"2026-09-08T00:00:00.820Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27562/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RiotShieldTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27562/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27562/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27562/v1/model.glb\" alt=\"Riot Shield (Tactical Shooter Hill Town)\" 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/27562/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/27562/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27540","slug":"tactical-shooter-hill-town-barrier-tape-stand-c2405c14","title":"Spawn Barrier Tape Stand (Tactical Shooter Hill Town)","summary":"Free 3D model of a barrier tape stand for a tactical FPS hill town map kit. Measures 2.88 by 1.08 by 0.48 m.","description":"Pair of weighted iron posts carrying a banded hazard tape at 1.00 m, the soft boundary that marks a spawn area or a closed street. Dimensions 2.88 by 1.08 by 0.48 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The tape is a flat banded strip of geometry between the two posts, so it reads without a transparent texture.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-barrier-tape-stand-c2405c14","cdnUrl":"https://cdn.3dassets.dev/assets/27540/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-barrier-tape-stand-c2405c14","thumbnailUrl":"https://cdn.3dassets.dev/assets/27540/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27540/v1/poster.webp","blurhash":"U36a*QIU01-p~p-:4oRk00-o?a4o00xu~pIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":15268,"triangles":548,"vertices":570,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-1.4399999380111694,-0.00006038212894210471,-0.23994871857481567],"max":[1.4399999380111694,1.0800604246717573,0.23994871857481567]},"sizeMeters":[2.88,1.08,0.48],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:52.343Z","updatedAt":"2026-09-07T23:59:52.434Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27540/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpawnBarrierTapeStandTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27540/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27540/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27540/v1/model.glb\" alt=\"Spawn Barrier Tape Stand (Tactical Shooter Hill Town)\" 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/27540/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/27540/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27537","slug":"tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","title":"Wall Lamp On Iron Bracket (Tactical Shooter Hill Town)","summary":"Free 3D model of a wrought iron wall lamp for a tactical FPS hill town map kit. Measures 0.27 by 0.62 by 0.60 m.","description":"Street lantern on a scrolled iron bracket with a fixing plate, a hexagonal hood and a frosted glazed body, mounted on a wall face. Dimensions 0.27 by 0.62 by 0.60 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The origin is at the bottom of the wall plate, which is the point to set against a wall face; the lamp projects toward +Z. The glazing is opaque geometry and emits no light.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","cdnUrl":"https://cdn.3dassets.dev/assets/27537/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-wall-lamp-bracket-d2e06af9","thumbnailUrl":"https://cdn.3dassets.dev/assets/27537/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27537/v1/poster.webp","blurhash":"U35OQo~q4n00bJRkaet6004n-;~q-o%2RjIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":63184,"triangles":656,"vertices":581,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.13498877158923012,0,-0.30251446895925044],"max":[0.13498877158923012,0.623289942741394,0.30251446895925044]},"sizeMeters":[0.27,0.623,0.605],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:50.983Z","updatedAt":"2026-09-07T23:59:51.113Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27537/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WallLampOnIronBracketTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27537/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27537/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27537/v1/model.glb\" alt=\"Wall Lamp On Iron Bracket (Tactical Shooter Hill Town)\" 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/27537/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/27537/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27571","slug":"tactical-shooter-hill-town-recon-operator-standing-aim-4e708016","title":"Recon Operator Standing Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a standing aim pose for a defending team, a static posed figure with no rig or skeleton. Measures 0.71 by 1.72 by 1.27 m.","description":"Recon Operator of the defending side, in teal grey: a rolled beanie, a slim chest rig and a shoulder radio with a whip aerial. The figure stands squared to the target with the rifle shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.71 by 1.72 by 1.27 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-recon-operator-standing-aim-4e708016","cdnUrl":"https://cdn.3dassets.dev/assets/27571/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-recon-operator-standing-aim-4e708016","thumbnailUrl":"https://cdn.3dassets.dev/assets/27571/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27571/v1/poster.webp","blurhash":"U24_%-Md00.T_2oy4:RQ4TtR?^Md01M|_2-:","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":151860,"triangles":7498,"vertices":6380,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.35499106418048876,0,-0.6356647754418939],"max":[0.3550177588713258,1.7215144634246826,0.6356202363967896]},"sizeMeters":[0.71,1.722,1.271],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:05.234Z","updatedAt":"2026-09-08T00:00:05.323Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27571/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ReconOperatorStandingAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27571/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27571/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27571/v1/model.glb\" alt=\"Recon Operator Standing Aim Pose (Tactical Shooter Hill Town)\" 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/27571/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/27571/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27539","slug":"tactical-shooter-hill-town-site-marker-board-e51e7c23","title":"Objective Site Marker Board (Tactical Shooter Hill Town)","summary":"Free 3D model of a painted objective site marker board for a tactical FPS map kit. Measures 1.24 by 1.54 by 0.44 m.","description":"Braced timber board on two legs carrying a large painted letter A, the plain marker that names an objective site on a round based map. Dimensions 1.24 by 1.54 by 0.44 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. The letter is painted geometry standing 3 mm proud of the board; there is no texture lettering to localise.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-site-marker-board-e51e7c23","cdnUrl":"https://cdn.3dassets.dev/assets/27539/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-site-marker-board-e51e7c23","thumbnailUrl":"https://cdn.3dassets.dev/assets/27539/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27539/v1/poster.webp","blurhash":"U47J;5OD01so~Boy57M|4.xZ-;Ip4nni?bS#","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":86960,"triangles":972,"vertices":837,"meshes":2,"materials":2,"textures":2,"animations":[],"boundingBox":{"min":[-0.6203798055648804,0,-0.21997649529871804],"max":[0.6203798055648804,1.5399999618530273,0.21997649529871804]},"sizeMeters":[1.241,1.54,0.44],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:52.298Z","updatedAt":"2026-09-07T23:59:52.384Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27539/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ObjectiveSiteMarkerBoardTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27539/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27539/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27539/v1/model.glb\" alt=\"Objective Site Marker Board (Tactical Shooter Hill Town)\" 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/27539/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/27539/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27560","slug":"tactical-shooter-hill-town-objective-device-24da01ad","title":"Objective Device Case (Tactical Shooter Hill Town)","summary":"Free 3D model of a briefcase objective device for a tactical FPS game, with a keypad, an antenna and a hinged lid. Measures 0.44 by 0.31 by 0.37 m.","description":"The round objective: a hard case holding a tray with a twelve key pad, an indicator block, routed cable and a whip antenna, with a lid that lifts on its back edge. Dimensions 0.44 by 0.31 by 0.37 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. Invented prop with no markings, lettering or logos, and no explosive, timer or gameplay behaviour of any kind: it is a case with a lid.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-objective-device-24da01ad","cdnUrl":"https://cdn.3dassets.dev/assets/27560/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-objective-device-24da01ad","thumbnailUrl":"https://cdn.3dassets.dev/assets/27560/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27560/v1/poster.webp","blurhash":"U04_wtIW00NDV;9E?vtA00kC?v%001~qIAE0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":71280,"triangles":3376,"vertices":2763,"meshes":7,"materials":5,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.2199999988079071,0.0000105322723397,-0.18313079293560688],"max":[0.2199999988079071,0.3130003191001135,0.18312631511843214]},"sizeMeters":[0.44,0.313,0.366],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:00.535Z","updatedAt":"2026-09-08T00:00:00.623Z","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/27560/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 ObjectiveDeviceCaseTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27560/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/27560/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27560/v1/model.glb\" alt=\"Objective Device Case (Tactical Shooter Hill Town)\" 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/27560/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/27560/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27561","slug":"tactical-shooter-hill-town-defuse-kit-bcaf54e3","title":"Defuse Kit Pouch (Tactical Shooter Hill Town)","summary":"Free 3D model of an open defuse kit pouch for a tactical FPS game, with cutters, a driver and a cable coil. Measures 0.30 by 0.16 by 0.22 m.","description":"Open canvas tool pouch laid on the ground: wire cutters, a long screwdriver, an insulated probe and a coil of cable in a moulded tray. Dimensions 0.30 by 0.16 by 0.22 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. Invented prop with no markings or lettering. The tools are static geometry and carry no gameplay behaviour.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-defuse-kit-bcaf54e3","cdnUrl":"https://cdn.3dassets.dev/assets/27561/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-defuse-kit-bcaf54e3","thumbnailUrl":"https://cdn.3dassets.dev/assets/27561/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27561/v1/poster.webp","blurhash":"U4D]bg~p00^$?b-oxYt700D+0304-%o#0301","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":40532,"triangles":1960,"vertices":1515,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,-0.0000017572978914665027,-0.11225000023841858],"max":[0.15000000596046448,0.16175780601115755,0.11225436289499745]},"sizeMeters":[0.3,0.162,0.225],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:00.676Z","updatedAt":"2026-09-08T00:00:00.803Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27561/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DefuseKitPouchTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27561/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27561/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27561/v1/model.glb\" alt=\"Defuse Kit Pouch (Tactical Shooter Hill Town)\" 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/27561/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/27561/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27550","slug":"tactical-shooter-hill-town-attacker-assault-rifle-b84190ac","title":"Attacker Assault Rifle (Tactical Shooter Hill Town)","summary":"Free 3D model of a attacker assault rifle for a tactical FPS game, an invented archetype with working named parts. Measures 0.06 by 0.33 by 0.87 m.","description":"Attacking team assault rifle with a mid length barrel, a long slotted handguard, a curved magazine and a full top rail. Dimensions 0.06 by 0.33 by 0.87 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The bore is a modelled recess and fires nothing; there is no muzzle flash, projectile, recoil or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-attacker-assault-rifle-b84190ac","cdnUrl":"https://cdn.3dassets.dev/assets/27550/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-attacker-assault-rifle-b84190ac","thumbnailUrl":"https://cdn.3dassets.dev/assets/27550/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27550/v1/poster.webp","blurhash":"U12~W9R,00xw?dM_MutA9EM^%LoP9Eoi%ioZ","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":91560,"triangles":4008,"vertices":3893,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.027979722744661754,0.000019813207764785012,-0.43575218319892883],"max":[0.027979722744661754,0.3250077921356803,0.43575218319892883]},"sizeMeters":[0.056,0.325,0.872],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:55.935Z","updatedAt":"2026-09-07T23:59:56.041Z","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/27550/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 AttackerAssaultRifleTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27550/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/27550/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27550/v1/model.glb\" alt=\"Attacker Assault Rifle (Tactical Shooter Hill Town)\" 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/27550/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/27550/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27549","slug":"tactical-shooter-hill-town-defender-carbine-897b5bd0","title":"Defender Carbine (Tactical Shooter Hill Town)","summary":"Free 3D model of a defender carbine for a tactical FPS game, an invented archetype with working named parts. Measures 0.06 by 0.33 by 0.74 m.","description":"Short barrelled defending team carbine: a compact receiver, a vented handguard, a fixed stock and a curved thirty round magazine. Dimensions 0.06 by 0.33 by 0.74 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The bore is a modelled recess and fires nothing; there is no muzzle flash, projectile, recoil or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-defender-carbine-897b5bd0","cdnUrl":"https://cdn.3dassets.dev/assets/27549/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-defender-carbine-897b5bd0","thumbnailUrl":"https://cdn.3dassets.dev/assets/27549/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27549/v1/poster.webp","blurhash":"U03R{__200xm~qRiDiM|0000a-N400M{?b-;","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":89844,"triangles":3972,"vertices":3802,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.028014025792548185,0.00002157286745871345,-0.36855217814445496],"max":[0.028014025792548185,0.3250072872385037,0.36855217814445496]},"sizeMeters":[0.056,0.325,0.737],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:55.778Z","updatedAt":"2026-09-07T23:59:55.866Z","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/27549/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 DefenderCarbineTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27549/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/27549/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27549/v1/model.glb\" alt=\"Defender Carbine (Tactical Shooter Hill Town)\" 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/27549/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/27549/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27547","slug":"tactical-shooter-hill-town-pump-shotgun-5b373d89","title":"Pump Action Shotgun (Tactical Shooter Hill Town)","summary":"Free 3D model of a pump action shotgun for a tactical FPS game, an invented archetype with working named parts. Measures 0.06 by 0.33 by 0.95 m.","description":"Tube fed pump action shotgun in timber furniture, with a ribbed sliding forend that cycles on its own node. Dimensions 0.06 by 0.33 by 0.95 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The bore is a modelled recess and fires nothing; there is no muzzle flash, projectile, recoil or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-pump-shotgun-5b373d89","cdnUrl":"https://cdn.3dassets.dev/assets/27547/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-pump-shotgun-5b373d89","thumbnailUrl":"https://cdn.3dassets.dev/assets/27547/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27547/v1/poster.webp","blurhash":"U13bE$Os9so_^kI.Myt70dIU,[wh4.xH-:ae","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":129408,"triangles":4284,"vertices":4175,"meshes":5,"materials":4,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.03099765169142378,-0.000016577269653567095,-0.47415217757225037],"max":[0.03099765169142378,0.32499583436765495,0.47415217757225037]},"sizeMeters":[0.062,0.325,0.948],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization","EXT_texture_webp"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:55.602Z","updatedAt":"2026-09-07T23:59:55.696Z","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/27547/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 PumpActionShotgunTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27547/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/27547/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27547/v1/model.glb\" alt=\"Pump Action Shotgun (Tactical Shooter Hill Town)\" 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/27547/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/27547/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27581","slug":"tactical-shooter-hill-town-desert-scout-planting-4b461fe9","title":"Desert Scout Planting Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a kneeling at the objective pose for an attacking team, a static posed figure with no rig or skeleton. Measures 0.57 by 1.32 by 0.82 m.","description":"Desert Scout of the attacking side, in sand olive: a wrapped head scarf, light webbing over a loose shirt and a single hip pouch. The figure kneels on one knee with both hands working at the objective, weapon stowed and hands empty. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. The hands are empty and open over the ground so an objective prop can be placed under them. Dimensions 0.57 by 1.32 by 0.82 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-desert-scout-planting-4b461fe9","cdnUrl":"https://cdn.3dassets.dev/assets/27581/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-desert-scout-planting-4b461fe9","thumbnailUrl":"https://cdn.3dassets.dev/assets/27581/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27581/v1/poster.webp","blurhash":"U88gmO~o0101%Kt5M|Ip019a?a?aRkj]xut6","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":126152,"triangles":6629,"vertices":5157,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.28629274091138723,0,-0.40860316887141823],"max":[0.2862766298740874,1.3193625211715698,0.4086554177280737]},"sizeMeters":[0.573,1.319,0.817],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:09.107Z","updatedAt":"2026-09-08T00:00:09.208Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27581/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DesertScoutPlantingPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27581/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27581/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27581/v1/model.glb\" alt=\"Desert Scout Planting Pose (Tactical Shooter Hill Town)\" 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/27581/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/27581/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27568","slug":"tactical-shooter-hill-town-assault-trooper-crouch-aim-ba290269","title":"Assault Trooper Crouched Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a crouched aim pose for a defending team, a static posed figure with no rig or skeleton. Measures 0.82 by 1.40 by 1.19 m.","description":"Assault Trooper of the defending side, in teal grey: a full combat helmet, a heavy plate carrier with shoulder pads and stacked magazine pouches. The figure is down in a low crouch behind cover, one knee dropped, with the rifle still shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.82 by 1.40 by 1.19 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-assault-trooper-crouch-aim-ba290269","cdnUrl":"https://cdn.3dassets.dev/assets/27568/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-assault-trooper-crouch-aim-ba290269","thumbnailUrl":"https://cdn.3dassets.dev/assets/27568/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27568/v1/poster.webp","blurhash":"U35rA3a000pJ_2oz9ZRP00g4_Nm,0KM{-;%g","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":151116,"triangles":7984,"vertices":6152,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.4096057782789867,0,-0.5939502586598479],"max":[0.4096051323247679,1.4036694765090942,0.5939695239067078]},"sizeMeters":[0.819,1.404,1.188],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:03.875Z","updatedAt":"2026-09-08T00:00:03.973Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27568/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function AssaultTrooperCrouchedAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27568/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27568/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27568/v1/model.glb\" alt=\"Assault Trooper Crouched Aim Pose (Tactical Shooter Hill Town)\" 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/27568/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/27568/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27563","slug":"tactical-shooter-hill-town-patrol-officer-standing-aim-5f18d932","title":"Patrol Officer Standing Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a standing aim pose for a defending team, a static posed figure with no rig or skeleton. Measures 0.75 by 1.75 by 1.28 m.","description":"Patrol Officer of the defending side, in teal grey: a soft peaked cap and a light stab vest over the shirt, with belt pouches and a torch. The figure stands squared to the target with the rifle shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.75 by 1.75 by 1.28 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-patrol-officer-standing-aim-5f18d932","cdnUrl":"https://cdn.3dassets.dev/assets/27563/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-patrol-officer-standing-aim-5f18d932","thumbnailUrl":"https://cdn.3dassets.dev/assets/27563/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27563/v1/poster.webp","blurhash":"U24VL0Mw00?w?^j?DNah4Toz?]Vs4URi?ux^","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":144020,"triangles":7516,"vertices":5832,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.3750370906431549,0,-0.638700815609887],"max":[0.3750370906431549,1.7508584260940552,0.6387046575546265]},"sizeMeters":[0.75,1.751,1.277],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:02.080Z","updatedAt":"2026-09-08T00:00:02.170Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27563/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PatrolOfficerStandingAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27563/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27563/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27563/v1/model.glb\" alt=\"Patrol Officer Standing Aim Pose (Tactical Shooter Hill Town)\" 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/27563/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/27563/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27593","slug":"tactical-shooter-hill-town-veteran-running-1660b930","title":"Veteran Running Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a running pose for an attacking team, a static posed figure with no rig or skeleton. Measures 0.69 by 1.65 by 1.60 m.","description":"Veteran of the attacking side, in sand olive: a full balaclava, a worn leather jacket and a light chest rig over sand trousers. The figure is caught mid stride at a run with the rifle carried low. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.69 by 1.65 by 1.60 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-veteran-running-1660b930","cdnUrl":"https://cdn.3dassets.dev/assets/27593/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-veteran-running-1660b930","thumbnailUrl":"https://cdn.3dassets.dev/assets/27593/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27593/v1/poster.webp","blurhash":"U4681]js00WXMyayx[oe01t6~oM|gKayRQj[","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":139844,"triangles":7498,"vertices":5640,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.3462815582752228,0,-0.8018674426389926],"max":[0.3462815582752228,1.645585298538208,0.8018136620521545]},"sizeMeters":[0.693,1.646,1.604],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:13.938Z","updatedAt":"2026-09-08T00:00:14.035Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27593/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function VeteranRunningPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27593/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27593/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27593/v1/model.glb\" alt=\"Veteran Running Pose (Tactical Shooter Hill Town)\" 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/27593/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/27593/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27583","slug":"tactical-shooter-hill-town-heavy-gunner-standing-aim-9e0a8dfa","title":"Heavy Gunner Standing Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a standing aim pose for an attacking team, a static posed figure with no rig or skeleton. Measures 0.83 by 1.82 by 1.28 m.","description":"Heavy Gunner of the attacking side, in sand olive: a tied bandana, bare forearms and two crossed ammunition belts over a heavy frame. The figure stands squared to the target with the rifle shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.83 by 1.82 by 1.28 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-heavy-gunner-standing-aim-9e0a8dfa","cdnUrl":"https://cdn.3dassets.dev/assets/27583/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-heavy-gunner-standing-aim-9e0a8dfa","thumbnailUrl":"https://cdn.3dassets.dev/assets/27583/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27583/v1/poster.webp","blurhash":"U47wygIW00^%_2oz4:M{00t7~pIV4:M|?H-p","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":153416,"triangles":7736,"vertices":6338,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.41676135973507866,0,-0.6412142815802406],"max":[0.41676135973507866,1.819327712059021,0.6412481069564819]},"sizeMeters":[0.834,1.819,1.282],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:10.197Z","updatedAt":"2026-09-08T00:00:10.301Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27583/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HeavyGunnerStandingAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27583/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27583/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27583/v1/model.glb\" alt=\"Heavy Gunner Standing Aim Pose (Tactical Shooter Hill Town)\" 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/27583/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/27583/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27575","slug":"tactical-shooter-hill-town-breacher-standing-aim-271e6ca8","title":"Breacher Standing Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a standing aim pose for a defending team, a static posed figure with no rig or skeleton. Measures 0.81 by 1.76 by 1.27 m.","description":"Breacher of the defending side, in teal grey: a visored helmet, heavy shoulder and shin pads and a thick front plate. The figure stands squared to the target with the rifle shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.81 by 1.76 by 1.27 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-breacher-standing-aim-271e6ca8","cdnUrl":"https://cdn.3dassets.dev/assets/27575/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-breacher-standing-aim-271e6ca8","thumbnailUrl":"https://cdn.3dassets.dev/assets/27575/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27575/v1/poster.webp","blurhash":"U24x[1jE00XU~qt74nMd4Tbv.mZ~4nM{?b%z","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":153016,"triangles":7992,"vertices":6219,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.40357863353989687,0,-0.6352911118964715],"max":[0.4036009959269658,1.7574189901351929,0.6352803707122803]},"sizeMeters":[0.807,1.757,1.271],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:06.872Z","updatedAt":"2026-09-08T00:00:06.965Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27575/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BreacherStandingAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27575/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27575/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27575/v1/model.glb\" alt=\"Breacher Standing Aim Pose (Tactical Shooter Hill Town)\" 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/27575/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/27575/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27588","slug":"tactical-shooter-hill-town-field-engineer-crouch-aim-76a53f60","title":"Field Engineer Crouched Aim Pose (Tactical Shooter Hill Town)","summary":"Free 3D model of a tactical FPS operator character in a crouched aim pose for an attacking team, a static posed figure with no rig or skeleton. Measures 0.75 by 1.37 by 1.18 m.","description":"Field Engineer of the attacking side, in sand olive: goggles pushed up on the brow and a tool vest of small pouches over rolled sleeves. The figure is down in a low crouch behind cover, one knee dropped, with the rifle still shouldered. This is a static posed figure, with no rig or skeleton: the pose is baked into the mesh and the four poses of this operator ship as four separate models. A generic carbine is modelled into the hands as part of the same mesh and cannot be swapped or removed. Dimensions 0.75 by 1.37 by 1.18 m (X by Y by Z). Metre units, +Y up, the figure faces +Z, ground contact at y = 0 with the origin on the footprint centre. Invented uniform and equipment: no badges, insignia, flags, unit markings or lettering, and no wound, blood or gore geometry. Static geometry; no rig, skeleton, skinning, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-field-engineer-crouch-aim-76a53f60","cdnUrl":"https://cdn.3dassets.dev/assets/27588/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-field-engineer-crouch-aim-76a53f60","thumbnailUrl":"https://cdn.3dassets.dev/assets/27588/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27588/v1/poster.webp","blurhash":"U67nE.IV00^%-:ofIVV[00xt~oD*9GRj-pxu","category":{"slug":"characters","title":"Characters & Creatures"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":146736,"triangles":7480,"vertices":6016,"meshes":6,"materials":6,"textures":0,"animations":[],"boundingBox":{"min":[-0.373367399161458,0,-0.5904782622098508],"max":[0.373367399161458,1.368132543414863,0.5904957056045532]},"sizeMeters":[0.747,1.368,1.181],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T00:00:12.104Z","updatedAt":"2026-09-08T00:00:12.196Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27588/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FieldEngineerCrouchedAimPoseTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27588/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27588/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27588/v1/model.glb\" alt=\"Field Engineer Crouched Aim Pose (Tactical Shooter Hill Town)\" 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/27588/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/27588/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27551","slug":"tactical-shooter-hill-town-marksman-rifle-44d21155","title":"Marksman Rifle (Tactical Shooter Hill Town)","summary":"Free 3D model of a marksman rifle for a tactical FPS game, an invented archetype with working named parts. Measures 0.07 by 0.35 by 1.02 m.","description":"Semi automatic designated marksman rifle with a heavy barrel, a cheek riser stock, a twenty round magazine and a mounted telescopic sight. Dimensions 0.07 by 0.35 by 1.02 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Rigid node-transform clips open, close drive the named parts on their own pivots. There is no skinning and no skeleton; every other surface is static. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The bore is a modelled recess and fires nothing; there is no muzzle flash, projectile, recoil or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-marksman-rifle-44d21155","cdnUrl":"https://cdn.3dassets.dev/assets/27551/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-marksman-rifle-44d21155","thumbnailUrl":"https://cdn.3dassets.dev/assets/27551/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27551/v1/poster.webp","blurhash":"U025}mIo4m%g_4IAMwtR00M_-=WA4m%N.9R%","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"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":93748,"triangles":4144,"vertices":4084,"meshes":5,"materials":3,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.03312369135405709,-0.000004902781265664347,-0.5077521800994873],"max":[0.03312369135405709,0.35301277872420433,0.5077521800994873]},"sizeMeters":[0.066,0.353,1.016],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:57.172Z","updatedAt":"2026-09-07T23:59:57.271Z","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/27551/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 MarksmanRifleTacticalShooterHillTown(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/27551/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/27551/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27551/v1/model.glb\" alt=\"Marksman Rifle (Tactical Shooter Hill Town)\" 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/27551/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/27551/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"27555","slug":"tactical-shooter-hill-town-fragmentation-grenade-5a45f14c","title":"Fragmentation Grenade (Tactical Shooter Hill Town)","summary":"Free 3D model of a fragmentation grenade for a tactical FPS game, an invented archetype standing upright. Measures 0.07 by 0.12 by 0.07 m.","description":"Hand thrown fragmentation grenade with an ovoid scored body, a safety lever and a pull ring on the fuse head. Dimensions 0.07 by 0.12 by 0.07 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The lever and ring are static geometry: nothing detaches, and there is no fuse timer, effect or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-fragmentation-grenade-5a45f14c","cdnUrl":"https://cdn.3dassets.dev/assets/27555/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-fragmentation-grenade-5a45f14c","thumbnailUrl":"https://cdn.3dassets.dev/assets/27555/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27555/v1/poster.webp","blurhash":"U44_z#xu00D%_Nxu9EIURit7t8M{D%kC-;V@","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":25120,"triangles":1356,"vertices":932,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.03270113597367831,0,-0.03270113597367831],"max":[0.03270113597367831,0.11935000121593475,0.03270113597367831]},"sizeMeters":[0.065,0.119,0.065],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:58.820Z","updatedAt":"2026-09-07T23:59:59.037Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27555/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FragmentationGrenadeTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27555/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27555/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27555/v1/model.glb\" alt=\"Fragmentation Grenade (Tactical Shooter Hill Town)\" 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/27555/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/27555/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27557","slug":"tactical-shooter-hill-town-smoke-grenade-fa3e11eb","title":"Smoke Grenade (Tactical Shooter Hill Town)","summary":"Free 3D model of a smoke grenade for a tactical FPS game, an invented archetype standing upright. Measures 0.08 by 0.18 by 0.08 m.","description":"Tall cylindrical smoke grenade with a vented top plate, a banded body, a safety lever and a pull ring. Dimensions 0.08 by 0.18 by 0.08 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The lever and ring are static geometry: nothing detaches, and there is no fuse timer, effect or damage data.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-smoke-grenade-fa3e11eb","cdnUrl":"https://cdn.3dassets.dev/assets/27557/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-smoke-grenade-fa3e11eb","thumbnailUrl":"https://cdn.3dassets.dev/assets/27557/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27557/v1/poster.webp","blurhash":"U268BM-;008_?ws;9EIn0Lae-oRkD%oyx]M|","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":17808,"triangles":816,"vertices":631,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.03850083213560318,0,-0.03850083213560318],"max":[0.03850083213560318,0.1793999969959259,0.03850083213560318]},"sizeMeters":[0.077,0.179,0.077],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:58.984Z","updatedAt":"2026-09-07T23:59:59.197Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27557/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SmokeGrenadeTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27557/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27557/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27557/v1/model.glb\" alt=\"Smoke Grenade (Tactical Shooter Hill Town)\" 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/27557/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/27557/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"27554","slug":"tactical-shooter-hill-town-combat-knife-dd39d49b","title":"Combat Knife (Tactical Shooter Hill Town)","summary":"Free 3D model of a combat knife lying flat for a tactical FPS game, an invented archetype with a ribbed grip. Measures 0.05 by 0.04 by 0.35 m.","description":"Fixed blade combat knife lying on its side: a clip point blade with a serrated spine section, a steel guard, a ribbed rubber grip and a pommel. Dimensions 0.05 by 0.04 by 0.35 m (X by Y by Z). Metre units, +Y up, +Z front; the origin sits on the ground at the footprint centre unless stated otherwise. Lime plaster, terracotta tile, grey limestone, oiled timber, blued iron, bright steel, teal-grey and sand-olive cloth. Static geometry; no rig, skeleton, animation, collision or navigation data. Original invented archetype: it carries no maker, model or product name, and no markings, logos or lettering. The model lies flat so it can be dropped straight onto the ground as a pickup.","status":"published","url":"https://3dassets.dev/assets/tactical-shooter-hill-town-combat-knife-dd39d49b","cdnUrl":"https://cdn.3dassets.dev/assets/27554/v1/model.glb","downloadUrl":"https://3dassets.dev/download/tactical-shooter-hill-town-combat-knife-dd39d49b","thumbnailUrl":"https://cdn.3dassets.dev/assets/27554/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/27554/v1/poster.webp","blurhash":"U35hc7_34m00M{IUaxxu004n_3_4-;?bogIT","category":{"slug":"weapons-tools","title":"Weapons & Tools"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"}],"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":24560,"triangles":1048,"vertices":963,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.027000000700354576,-2.2893953604066763e-7,-0.17632615566253662],"max":[0.027000000700354576,0.040000228045466366,0.17632615566253662]},"sizeMeters":[0.054,0.04,0.353],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-07T23:59:57.514Z","updatedAt":"2026-09-07T23:59:57.602Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/27554/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CombatKnifeTacticalShooterHillTown(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/27554/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/27554/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/27554/v1/model.glb\" alt=\"Combat Knife (Tactical Shooter Hill Town)\" 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/27554/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/27554/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}]}}