{"data":{"id":196,"slug":"fire-and-emergency-services","title":"Fire and Emergency Services","summary":"A fire station and the incident it turns out to: a 4 m modular station shell with appliance bay doors, six emergency vehicles with working wheels, cab doors and locker shutters, the kit that rides in them, and a road traffic collision laid out for extrication.","description":"Everything a developer needs to build a fire station and the job it answers. The station is a 4 m modular shell: floor slabs, wall modules, appliance bay door modules whose shutters roll up, and roof panels, all ported on the same grid so a hall of any width closes into a real building, with a drill tower, hose drying rack, pole drop, kit racking, breathing apparatus charging bay, watch room desk, lockers and mess table to fill it. Six vehicles run on their own wheel nodes and open their own cab doors: a pumping appliance and a rescue tender with six roller shutter lockers each, a ladder platform whose boom lifts, an ambulance with rear doors, a water carrier and a fast response car, with modelled open pose variants of the lockers, the boom and the rear doors. The kit is the real inventory: hose, standpipe, branch, hydrant, foam, extinguishers, breathing apparatus, turnout gear, thermal imaging camera, hooligan bar, axe, hydraulic cutting and spreading tools with their power unit, lifting bags, cribbing, stretcher, spinal board and defibrillator. The incident set is a damaged car with a modelled roof removed variant, a burnt out shell, cones, warning sign, command board, floodlight mast, salvage sheet, scorched wall and rubble. Rigid node transform clips only, no skinning. Every marking, crest and unit number is invented: no real service, livery or manufacturer is reproduced. Original AI assisted CC0 geometry.","url":"https://3dassets.dev/packs/fire-and-emergency-services","coverUrl":"https://cdn.3dassets.dev/assets/29942/v1/poster.webp","assetCount":59,"aiGenerated":true,"aiGeneratedAssetCount":59,"aiModels":["Claude Fable 5.1"],"aiModelUnspecifiedCount":0,"featured":true,"licenseLabel":"CC0 1.0 Universal","totalBytes":6248628,"totalTriangles":137720,"starterScene":{"id":"29942","slug":"fire-and-emergency-services-station-turn-9a0dc357-starter-scene","title":"Station Turnout (Fire and Emergency Services)","summary":"A working fire station on a drill morning: a closed and roofed three bay hall built from the 4 m modules, the watch room and muster kit inside it, six appliances parked out on the forecourt with the ladder platform boom raised, a hydrant and hose run, a kit check laid out on...","description":"A working fire station on a drill morning: a closed and roofed three bay hall built from the 4 m modules, the watch room and muster kit inside it, six appliances parked out on the forecourt with the ladder platform boom raised, a hydrant and hose run, a kit check laid out on the apron, and a road traffic collision set up for extrication in the drill yard under the tower.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-turn-9a0dc357-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/29942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-turn-9a0dc357-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/29942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29942/v1/poster.webp","blurhash":"UBB3scMy9Ytk00Rj%2s:00tRnPVs~W%2kqNH","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1749124,"triangles":60344,"vertices":85954,"meshes":386,"materials":12,"textures":2,"animations":[],"boundingBox":{"min":[-8.180020700027834,0.15754962408710382,-12.180020700027834],"max":[16.14316394329071,14.478425941467286,13.496413922514773]},"sizeMeters":[24.323,14.321,25.676],"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-08T05:11:53.516Z","updatedAt":"2026-09-08T05:11:53.614Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29942/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationTurnoutFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29942/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29942/v1/model.glb\" alt=\"Station Turnout (Fire and Emergency Services)\" 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/29942/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/29942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},"assets":[{"id":"29884","slug":"fire-and-emergency-services-station-floor-slab-8b8a8cf7","title":"Station Floor Slab (Fire and Emergency Services)","summary":"Four metre square concrete apparatus bay floor slab with a centre drainage channel and two expansion joints.","description":"Four metre square concrete apparatus bay floor slab with a centre drainage channel and two expansion joints. Dimensions 4.00 by 0.16 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: west (station-floor) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); east (station-floor) at (2.00, 0.00, 0.00) facing (1, 0, 0); north (station-floor) at (0.00, 0.00, 2.00) facing (0, 0, 1); south (station-floor) at (0.00, 0.00, -2.00) facing (0, 0, -1). Slab 4.00 by 0.16 by 4.00 m, laid on a 4.00 m grid. Ports on all four edges at ground level; the top face is the finished floor at y=0.16. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-floor-slab-8b8a8cf7","cdnUrl":"https://cdn.3dassets.dev/assets/29884/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-floor-slab-8b8a8cf7","thumbnailUrl":"https://cdn.3dassets.dev/assets/29884/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29884/v1/poster.webp","blurhash":"U6C6.G-;00R*-;WBRjof00IU~qay9Ft7t7M{","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"},{"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":51108,"triangles":48,"vertices":112,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-2,-0.00008057065315597578,-2],"max":[2,0.16113683073543109,2]},"sizeMeters":[4,0.161,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-08T05:11:39.496Z","updatedAt":"2026-09-08T05:11:39.616Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29884/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationFloorSlabFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29884/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29884/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29884/v1/model.glb\" alt=\"Station Floor Slab (Fire and Emergency Services)\" 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/29884/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/29884/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29886","slug":"fire-and-emergency-services-station-wall-module-504bcd0a","title":"Station Wall Module (Fire and Emergency Services)","summary":"Four metre station wall module 4.40 m high, with a concrete plinth, a red cill band, pilasters on the module lines and a coping cap.","description":"Four metre station wall module 4.40 m high, with a concrete plinth, a red cill band, pilasters on the module lines and a coping cap. Dimensions 4.00 by 4.60 by 0.36 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Connectors: west (station-wall) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); east (station-wall) at (2.00, 0.00, 0.00) facing (1, 0, 0). Module 4.00 by 4.60 by 0.34 m including the coping. Ports on the west and east module lines at ground level, so a run of modules and bay door modules meets exactly. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-wall-module-504bcd0a","cdnUrl":"https://cdn.3dassets.dev/assets/29886/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-wall-module-504bcd0a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29886/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29886/v1/poster.webp","blurhash":"U3Bpqf~q004n=f-=J84Th|VZJDb^_3~WVs00","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"},{"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":99784,"triangles":120,"vertices":280,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-2.0012635096685236,0,-0.1799737503506257],"max":[2.0012635096685236,4.599999904632568,0.1799737503506257]},"sizeMeters":[4.003,4.6,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-08T05:11:39.711Z","updatedAt":"2026-09-08T05:11:39.846Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29886/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationWallModuleFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29886/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29886/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29886/v1/model.glb\" alt=\"Station Wall Module (Fire and Emergency Services)\" 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/29886/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/29886/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29883","slug":"fire-and-emergency-services-appliance-bay-door-module-cc8bf8d3","title":"Appliance Bay Door Module (Fire and Emergency Services)","summary":"Four metre appliance bay module with a 3.20 by 3.30 m opening and a glazed, slatted up and over canopy door, plus a bay warning light beside the reveal.","description":"Four metre appliance bay module with a 3.20 by 3.30 m opening and a glazed, slatted up and over canopy door, plus a bay warning light beside the reveal. Dimensions 4.00 by 4.60 by 0.44 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: bay-door at (0.00, 3.28, 0.12) m. Connectors: west (station-wall) at (-2.00, 0.00, 0.00) facing (-1, 0, 0); east (station-wall) at (2.00, 0.00, 0.00) facing (1, 0, 0). Module 4.00 by 4.60 by 0.34 m, matching the wall module on the same ports. The leaf is a named hinge node at the head of the opening and lifts inward to sit under the bay ceiling; it is a one piece canopy door rather than a coiling roller, because a coil is not a rigid node transform. Ports on the west and east module lines at ground level. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-appliance-bay-door-module-cc8bf8d3","cdnUrl":"https://cdn.3dassets.dev/assets/29883/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-appliance-bay-door-module-cc8bf8d3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29883/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29883/v1/poster.webp","blurhash":"UA9%u9tR00kB~Wxu9ZE1%1r?MxNGKO%MwJD%","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"},{"slug":"modular","title":"Modular"},{"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":114124,"triangles":500,"vertices":830,"meshes":8,"materials":6,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-2.0001372918256943,0,-0.1799737503506257],"max":[2.0001372918256943,4.599999904632568,0.2599908423606308]},"sizeMeters":[4,4.6,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-08T05:11:39.480Z","updatedAt":"2026-09-08T05:11:39.593Z","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/29883/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 ApplianceBayDoorModuleFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29883/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/29883/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29883/v1/model.glb\" alt=\"Appliance Bay Door Module (Fire and Emergency Services)\" 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/29883/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/29883/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29885","slug":"fire-and-emergency-services-station-roof-panel-ca3e752c","title":"Station Roof Panel (Fire and Emergency Services)","summary":"Four metre square station roof panel: a concrete deck with a membrane layer and two upstand ribs.","description":"Four metre square station roof panel: a concrete deck with a membrane layer and two upstand ribs. Dimensions 4.00 by 0.38 by 4.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Panel 4.00 by 0.38 by 4.00 m, laid on the same 4.00 m grid as the walls. No ports: roof panels are laid edge to edge on the wall coping and carry nothing. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-roof-panel-ca3e752c","cdnUrl":"https://cdn.3dassets.dev/assets/29885/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-roof-panel-ca3e752c","thumbnailUrl":"https://cdn.3dassets.dev/assets/29885/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29885/v1/poster.webp","blurhash":"U497kc-=4Tax9aRj%Lt700D%S7M|~UxvD%Ri","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"},{"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":95624,"triangles":48,"vertices":112,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-2,-0.000090636396865032,-2],"max":[2,0.3799871734843451,2]},"sizeMeters":[4,0.38,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-08T05:11:39.696Z","updatedAt":"2026-09-08T05:11:39.844Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29885/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationRoofPanelFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29885/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29885/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29885/v1/model.glb\" alt=\"Station Roof Panel (Fire and Emergency Services)\" 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/29885/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/29885/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29887","slug":"fire-and-emergency-services-drill-tower-a4ee6e5f","title":"Drill Tower (Fire and Emergency Services)","summary":"Four storey concrete drill tower 12.50 m high, with balcony rails on the open face, window openings a floor, a rear access ladder and a hose hanging davit.","description":"Four storey concrete drill tower 12.50 m high, with balcony rails on the open face, window openings a floor, a rear access ladder and a hose hanging davit. Dimensions 3.40 by 12.46 by 3.42 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Footprint 3.40 by 3.00 m. Static geometry: nothing on the tower moves. Blank concrete throughout, no service crest or unit marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-drill-tower-a4ee6e5f","cdnUrl":"https://cdn.3dassets.dev/assets/29887/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-drill-tower-a4ee6e5f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29887/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29887/v1/poster.webp","blurhash":"U4BDWn?b0000_4xu9FIUM|a#oej;%MWBIUt7","category":{"slug":"environments","title":"Environments & Scenes"},"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":136024,"triangles":816,"vertices":1904,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-1.6999551429955762,0,-1.6651783887161966],"max":[1.6999551429955762,12.460000038146973,1.7501784268631693]},"sizeMeters":[3.4,12.46,3.415],"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-08T05:11:39.857Z","updatedAt":"2026-09-08T05:11:40.002Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29887/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DrillTowerFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29887/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29887/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29887/v1/model.glb\" alt=\"Drill Tower (Fire and Emergency Services)\" 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/29887/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/29887/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29888","slug":"fire-and-emergency-services-hose-drying-rack-87699cf6","title":"Hose Drying Rack (Fire and Emergency Services)","summary":"Free standing hose drying rack 3.60 m tall, with six lengths of lay flat hose hung over twin top rails and their brass couplings at the bottom.","description":"Free standing hose drying rack 3.60 m tall, with six lengths of lay flat hose hung over twin top rails and their brass couplings at the bottom. Dimensions 3.00 by 3.62 by 1.12 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Frame 3.00 by 3.60 by 1.10 m. Static geometry: the hung hose is modelled in its draped pose, because a hanging length is a soft body and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-hose-drying-rack-87699cf6","cdnUrl":"https://cdn.3dassets.dev/assets/29888/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-hose-drying-rack-87699cf6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29888/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29888/v1/poster.webp","blurhash":"UBCGS%xu00M{?bxuIUIU00WB~poLWBWBaxt6","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":71320,"triangles":552,"vertices":1262,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-1.5000014785051556,0,-0.5599526786082402],"max":[1.5000014785051556,3.619999885559082,0.5599526786082402]},"sizeMeters":[3,3.62,1.12],"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-08T05:11:40.003Z","updatedAt":"2026-09-08T05:11:40.161Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29888/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HoseDryingRackFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29888/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29888/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29888/v1/model.glb\" alt=\"Hose Drying Rack (Fire and Emergency Services)\" 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/29888/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/29888/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29890","slug":"fire-and-emergency-services-pole-drop-15b2a3dd","title":"Pole Drop (Fire and Emergency Services)","summary":"Sliding pole drop: a brass pole from the mess floor to the bay, with a collared floor opening, a rubber landing mat and a guard rail round the hole above.","description":"Sliding pole drop: a brass pole from the mess floor to the bay, with a collared floor opening, a rubber landing mat and a guard rail round the hole above. Dimensions 1.50 by 4.78 by 1.41 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Overall 1.50 by 4.78 by 1.50 m. The pole runs from y=0 to y=3.60 and the collar sits at the upper floor level of 3.50 m, so the model can be dropped straight onto a first floor slab. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-pole-drop-15b2a3dd","cdnUrl":"https://cdn.3dassets.dev/assets/29890/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-pole-drop-15b2a3dd","thumbnailUrl":"https://cdn.3dassets.dev/assets/29890/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29890/v1/poster.webp","blurhash":"U45=5^t700IV_Lof8|WBkYayngoe4pWB_1t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":115080,"triangles":432,"vertices":987,"meshes":5,"materials":5,"textures":2,"animations":[],"boundingBox":{"min":[-0.75,-0.000020142663288993945,-0.7050462355418562],"max":[0.75,4.779981431392935,0.7050462355418562]},"sizeMeters":[1.5,4.78,1.41],"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-08T05:11:40.330Z","updatedAt":"2026-09-08T05:11:40.476Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29890/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function PoleDropFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29890/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29890/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29890/v1/model.glb\" alt=\"Pole Drop (Fire and Emergency Services)\" 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/29890/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/29890/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29889","slug":"fire-and-emergency-services-kit-racking-with-turnout-g-bbce3ce5","title":"Kit Racking With Turnout Gear (Fire and Emergency Services)","summary":"Open station kit rack 3.20 m wide holding six sets of turnout gear: coats on hangers, helmets on the shelf and boots stood on the deck.","description":"Open station kit rack 3.20 m wide holding six sets of turnout gear: coats on hangers, helmets on the shelf and boots stood on the deck. Dimensions 3.20 by 2.38 by 0.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Rack 3.20 by 2.38 by 0.70 m. Static geometry: the gear is modelled in its hung pose, because a hanging coat is a soft body and this pack has no skinning. Plain unmarked coats, no crest or unit number. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-kit-racking-with-turnout-g-bbce3ce5","cdnUrl":"https://cdn.3dassets.dev/assets/29889/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-kit-racking-with-turnout-g-bbce3ce5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29889/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29889/v1/poster.webp","blurhash":"U79s@*-o00NI?^-pR5IV0.b^^JVZH^OtpH+s","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":108016,"triangles":2112,"vertices":3000,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.600000023841858,0.00002231800032670428,-0.3500106866938822],"max":[1.600000023841858,2.379977796440591,0.3500106866938822]},"sizeMeters":[3.2,2.38,0.7],"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-08T05:11:40.299Z","updatedAt":"2026-09-08T05:11:40.457Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29889/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function KitRackingWithTurnoutGearFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29889/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29889/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29889/v1/model.glb\" alt=\"Kit Racking With Turnout Gear (Fire and Emergency Services)\" 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/29889/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/29889/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29891","slug":"fire-and-emergency-services-breathing-apparatus-chargi-0c976dad","title":"Breathing Apparatus Charging Bay (Fire and Emergency Services)","summary":"Breathing apparatus charging bench with a four outlet filling manifold, gauges, four cylinders on charge and five spares racked below.","description":"Breathing apparatus charging bench with a four outlet filling manifold, gauges, four cylinders on charge and five spares racked below. Dimensions 2.50 by 2.26 by 0.76 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bench 2.50 by 1.96 by 0.76 m. Static geometry: the manifold hoses and valves do not move, because the flexible hose runs are soft bodies and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-breathing-apparatus-chargi-0c976dad","cdnUrl":"https://cdn.3dassets.dev/assets/29891/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-breathing-apparatus-chargi-0c976dad","thumbnailUrl":"https://cdn.3dassets.dev/assets/29891/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29891/v1/poster.webp","blurhash":"U98qd4M{00og_Nj]D$RQD%xujYM_MxxuoMM{","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":85192,"triangles":888,"vertices":1919,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.25,-0.000050385344958714384,-0.38006042188279204],"max":[1.25,2.2600442621719705,0.37999359111301007]},"sizeMeters":[2.5,2.26,0.76],"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-08T05:11:41.196Z","updatedAt":"2026-09-08T05:11:41.294Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29891/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BreathingApparatusChargingBayFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29891/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29891/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29891/v1/model.glb\" alt=\"Breathing Apparatus Charging Bay (Fire and Emergency Services)\" 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/29891/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/29891/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29895","slug":"fire-and-emergency-services-watch-room-desk-f8766818","title":"Watch Room Desk (Fire and Emergency Services)","summary":"Watch room desk with a drawer pedestal, twin raked screens, a keyboard and handset, under a blank wall call board with status lamps and a turnout bell.","description":"Watch room desk with a drawer pedestal, twin raked screens, a keyboard and handset, under a blank wall call board with status lamps and a turnout bell. Dimensions 2.70 by 2.84 by 1.22 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Desk and board 2.60 by 2.84 by 0.86 m overall. Static geometry: the drawer fronts are panels rather than boxes and do not open. The board face is deliberately blank, with no service crest, station name or unit number. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-watch-room-desk-f8766818","cdnUrl":"https://cdn.3dassets.dev/assets/29895/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-watch-room-desk-f8766818","thumbnailUrl":"https://cdn.3dassets.dev/assets/29895/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29895/v1/poster.webp","blurhash":"U397qs9J00ND$]4pxt-.00-;kXWT9G~qtR4T","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":75796,"triangles":944,"vertices":1332,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-1.2999999523162842,0,-0.7949949617640276],"max":[1.399999976158142,2.839999079080352,0.42999189911546587]},"sizeMeters":[2.7,2.84,1.225],"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-08T05:11:41.795Z","updatedAt":"2026-09-08T05:11:41.900Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29895/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WatchRoomDeskFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29895/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29895/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29895/v1/model.glb\" alt=\"Watch Room Desk (Fire and Emergency Services)\" 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/29895/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/29895/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29893","slug":"fire-and-emergency-services-mess-table-and-chairs-8a49bbf6","title":"Mess Table And Chairs (Fire and Emergency Services)","summary":"Station mess table 2.00 m long with six stacking chairs, a mug and a vacuum jug on the top.","description":"Station mess table 2.00 m long with six stacking chairs, a mug and a vacuum jug on the top. Dimensions 2.00 by 0.98 by 2.02 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Set 2.00 by 0.92 by 2.10 m overall. Static geometry: the chairs are placed rather than parented, so a consumer can split them out of the file if it wants them separately. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-mess-table-and-chairs-8a49bbf6","cdnUrl":"https://cdn.3dassets.dev/assets/29893/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-mess-table-and-chairs-8a49bbf6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29893/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29893/v1/poster.webp","blurhash":"UBA]20kq4.v#}[OrIo#S0KNatlr?0e#8kqGF","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":99080,"triangles":1860,"vertices":2244,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1,-0.00004026207986607133,-1.0096604824066162],"max":[1,0.9800042725729031,1.0096604824066162]},"sizeMeters":[2,0.98,2.019],"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-08T05:11:41.544Z","updatedAt":"2026-09-08T05:11:41.680Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29893/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function MessTableAndChairsFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29893/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29893/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29893/v1/model.glb\" alt=\"Mess Table And Chairs (Fire and Emergency Services)\" 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/29893/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/29893/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29892","slug":"fire-and-emergency-services-station-locker-bank-e9b25a57","title":"Station Locker Bank (Fire and Emergency Services)","summary":"Six door personnel locker bank 2.40 m wide with louvred tops, blank name plates and a sloped-free flat cap.","description":"Six door personnel locker bank 2.40 m wide with louvred tops, blank name plates and a sloped-free flat cap. Dimensions 2.44 by 2.06 by 0.59 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bank 2.44 by 2.06 by 0.56 m. Static geometry: the doors are panels set proud of the carcass and do not open. Name plates are blank. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-locker-bank-e9b25a57","cdnUrl":"https://cdn.3dassets.dev/assets/29892/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-locker-bank-e9b25a57","thumbnailUrl":"https://cdn.3dassets.dev/assets/29892/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29892/v1/poster.webp","blurhash":"U59Q,O_400RO?w-=RQIA00IV-=oIxvbJMxRP","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":67804,"triangles":468,"vertices":1092,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-1.2200000286102295,0.000035043521952937695,-0.27991387026979814],"max":[1.2200000286102295,2.0599648992575883,0.315039518815512]},"sizeMeters":[2.44,2.06,0.595],"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-08T05:11:41.515Z","updatedAt":"2026-09-08T05:11:41.622Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29892/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationLockerBankFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29892/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29892/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29892/v1/model.glb\" alt=\"Station Locker Bank (Fire and Emergency Services)\" 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/29892/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/29892/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29894","slug":"fire-and-emergency-services-pumping-appliance-cdbe8f64","title":"Pumping Appliance (Fire and Emergency Services)","summary":"Crew cab water pumping appliance on a two axle chassis, with six top hinged locker hatches, a rear pump panel, a roof ladder and a deck monitor.","description":"Crew cab water pumping appliance on a two axle chassis, with six top hinged locker hatches, a rear pump panel, a roof ladder and a deck monitor. Dimensions 4.36 by 3.07 by 7.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.25) m; wheel-fr at (1.02, 0.50, 2.25) m; wheel-rl at (-1.02, 0.50, -1.95) m; wheel-rr at (1.02, 0.50, -1.95) m; cab-door-left at (-1.16, 1.85, 3.50) m; cab-door-right at (1.16, 1.85, 3.50) m; shutter-l1 at (-1.21, 2.32, -2.45) m; shutter-l2 at (-1.21, 2.32, -1.05) m; shutter-l3 at (-1.21, 2.32, 0.35) m; shutter-r1 at (1.21, 2.32, -2.45) m; shutter-r2 at (1.21, 2.32, -1.05) m; shutter-r3 at (1.21, 2.32, 0.35) m. Body 7.40 m long on a 4.20 m wheelbase. The locker hatches, both cab doors and the four wheels are named pivot nodes; the roof ladder, the pump panel gauges and the hard suction tube are static. Livery is an invented plain hi-vis block stripe: there is no service crest, unit number or country marking anywhere on the model. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: cab-door-open, cab-door-close, locker-open, locker-close and wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-pumping-appliance-cdbe8f64","cdnUrl":"https://cdn.3dassets.dev/assets/29894/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-pumping-appliance-cdbe8f64","thumbnailUrl":"https://cdn.3dassets.dev/assets/29894/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29894/v1/poster.webp","blurhash":"U69i#n}@0xKO%ONHRPt7005Q=f#;Dh$io~Rj","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":177184,"triangles":5544,"vertices":7452,"meshes":38,"materials":9,"textures":1,"animations":["cab-door-open","cab-door-close","locker-open","locker-close","wheel-roll"],"boundingBox":{"min":[-2.1800000882148742,0,-3.5999999046325684],"max":[2.1800000882148742,3.0736843732877723,3.705670118331909]},"sizeMeters":[4.36,3.074,7.306],"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-08T05:11:42.698Z","updatedAt":"2026-09-08T05:11:42.812Z","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/29894/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 PumpingApplianceFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29894/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/29894/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29894/v1/model.glb\" alt=\"Pumping Appliance (Fire and Emergency Services)\" 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/29894/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/29894/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29896","slug":"fire-and-emergency-services-pumping-appliance-lockers--01922ac3","title":"Pumping Appliance Lockers Open (Fire and Emergency Services)","summary":"The pumping appliance with all six locker hatches swung up, showing the shelved bays behind them.","description":"The pumping appliance with all six locker hatches swung up, showing the shelved bays behind them. Dimensions 4.95 by 3.07 by 7.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.25) m; wheel-fr at (1.02, 0.50, 2.25) m; wheel-rl at (-1.02, 0.50, -1.95) m; wheel-rr at (1.02, 0.50, -1.95) m; cab-door-left at (-1.16, 1.85, 3.50) m; cab-door-right at (1.16, 1.85, 3.50) m. Functional variant for a working scene: the hatch pose is baked into the geometry, so those nodes carry no clip here. The cab doors and wheels still animate. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open, close and wheel-roll. No skinning. No collision or navigation data. Functional variant of pumping-appliance, with its open pose modelled rather than animated.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-pumping-appliance-lockers--01922ac3","cdnUrl":"https://cdn.3dassets.dev/assets/29896/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-pumping-appliance-lockers--01922ac3","thumbnailUrl":"https://cdn.3dassets.dev/assets/29896/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29896/v1/poster.webp","blurhash":"U5AlIk}X0{7d}aIU5kO?00AC^6+{0_^l^Q#7","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":171440,"triangles":5256,"vertices":6780,"meshes":32,"materials":9,"textures":1,"animations":["open","close","wheel-roll"],"boundingBox":{"min":[-2.4747247314453125,0,-3.5999999046325684],"max":[2.4747247314453125,3.0736843732877723,3.705670118331909]},"sizeMeters":[4.949,3.074,7.306],"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-08T05:11:41.864Z","updatedAt":"2026-09-08T05:11:41.996Z","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/29896/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 PumpingApplianceLockersOpenFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29896/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/29896/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29896/v1/model.glb\" alt=\"Pumping Appliance Lockers Open (Fire and Emergency Services)\" 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/29896/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/29896/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29898","slug":"fire-and-emergency-services-ladder-platform-appliance-b824ef96","title":"Ladder Platform Appliance (Fire and Emergency Services)","summary":"Three axle aerial ladder platform appliance with a stowed three section telescopic boom, a work cage, four outrigger jacks and a slew ring.","description":"Three axle aerial ladder platform appliance with a stowed three section telescopic boom, a work cage, four outrigger jacks and a slew ring. Dimensions 4.97 by 3.40 by 10.57 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.90) m; wheel-fr at (1.02, 0.50, 2.90) m; wheel-rl at (-1.02, 0.50, -2.30) m; wheel-rr at (1.02, 0.50, -2.30) m; wheel-rl2 at (-1.02, 0.50, -3.60) m; wheel-rr2 at (1.02, 0.50, -3.60) m; cab-door-left at (-1.16, 1.85, 4.03) m; cab-door-right at (1.16, 1.85, 4.03) m; boom-lift at (0.00, 2.05, -2.00) m. Body 9.90 m long. The boom heel is a named lift node and the six wheels and two cab doors are named spin and hinge nodes. The boom slew ring, the outrigger jacks and the boom hydraulic linkage are deliberately static: a rigid node transform cannot carry the boom through a slew and a lift at once, and faking the ram linkage would cost a consumer more than it gives. Invented plain livery, no crest or unit marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: cab-door-open, cab-door-close, door-open, door-close and wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-ladder-platform-appliance-b824ef96","cdnUrl":"https://cdn.3dassets.dev/assets/29898/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-ladder-platform-appliance-b824ef96","thumbnailUrl":"https://cdn.3dassets.dev/assets/29898/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29898/v1/poster.webp","blurhash":"U78WK$kW0yNHw|NGax%20Jad}tsoAB$*t7EL","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":160512,"triangles":4432,"vertices":5703,"meshes":28,"materials":8,"textures":1,"animations":["cab-door-open","cab-door-close","door-open","door-close","wheel-roll"],"boundingBox":{"min":[-2.4833539796347774,-1.4901161193847656e-8,-4.699999809265137],"max":[2.4833539796347774,3.4000236811058184,5.875003920476547]},"sizeMeters":[4.967,3.4,10.575],"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-08T05:11:42.201Z","updatedAt":"2026-09-08T05:11:42.331Z","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/29898/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 LadderPlatformApplianceFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29898/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/29898/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29898/v1/model.glb\" alt=\"Ladder Platform Appliance (Fire and Emergency Services)\" 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/29898/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/29898/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29897","slug":"fire-and-emergency-services-ladder-platform-appliance--f7af1249","title":"Ladder Platform Appliance Boom Raised (Fire and Emergency Services)","summary":"The aerial appliance with the boom raised to about 54 degrees and the three sections extended over the nose, cage at working height.","description":"The aerial appliance with the boom raised to about 54 degrees and the three sections extended over the nose, cage at working height. Dimensions 4.97 by 14.32 by 10.91 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.90) m; wheel-fr at (1.02, 0.50, 2.90) m; wheel-rl at (-1.02, 0.50, -2.30) m; wheel-rr at (1.02, 0.50, -2.30) m; wheel-rl2 at (-1.02, 0.50, -3.60) m; wheel-rr2 at (1.02, 0.50, -3.60) m; cab-door-left at (-1.16, 1.85, 4.03) m; cab-door-right at (1.16, 1.85, 4.03) m. Functional variant for an incident scene: the boom pose is baked into the geometry, so the lift node carries no clip here. Wheels and cab doors still animate. Origin remains on the chassis footprint at ground level. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open, close and wheel-roll. No skinning. No collision or navigation data. Functional variant of ladder-platform-appliance, with its open pose modelled rather than animated.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-ladder-platform-appliance--f7af1249","cdnUrl":"https://cdn.3dassets.dev/assets/29897/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-ladder-platform-appliance--f7af1249","thumbnailUrl":"https://cdn.3dassets.dev/assets/29897/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29897/v1/poster.webp","blurhash":"U56%vetR0LIU0zoM^PWAABso,[S2}ZNG5*%2","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":160692,"triangles":4432,"vertices":5703,"meshes":28,"materials":8,"textures":1,"animations":["open","close","wheel-roll"],"boundingBox":{"min":[-2.4833539796347774,-1.4901161193847656e-8,-4.699999809265137],"max":[2.4833539796347774,14.318425941467286,6.211428771847157]},"sizeMeters":[4.967,14.318,10.911],"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-08T05:11:42.078Z","updatedAt":"2026-09-08T05:11:42.223Z","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/29897/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 LadderPlatformApplianceBoomRaisedFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29897/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/29897/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29897/v1/model.glb\" alt=\"Ladder Platform Appliance Boom Raised (Fire and Emergency Services)\" 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/29897/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/29897/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29899","slug":"fire-and-emergency-services-rescue-tender-abc0c9c6","title":"Rescue Tender (Fire and Emergency Services)","summary":"Box bodied rescue tender with six locker hatches, a roof light tower, a stowed generator, a line reel and a rear recovery winch.","description":"Box bodied rescue tender with six locker hatches, a roof light tower, a stowed generator, a line reel and a rear recovery winch. Dimensions 4.25 by 3.26 by 6.88 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.00) m; wheel-fr at (1.02, 0.50, 2.00) m; wheel-rl at (-1.02, 0.50, -1.90) m; wheel-rr at (1.02, 0.50, -1.90) m; cab-door-left at (-1.15, 1.85, 3.18) m; cab-door-right at (1.15, 1.85, 3.18) m; shutter-tl1 at (-1.22, 2.42, -2.40) m; shutter-tl2 at (-1.22, 2.42, -1.20) m; shutter-tl3 at (-1.22, 2.42, 0.00) m; shutter-tr1 at (1.22, 2.42, -2.40) m; shutter-tr2 at (1.22, 2.42, -1.20) m; shutter-tr3 at (1.22, 2.42, 0.00) m. Body 7.10 m long. Locker hatches, cab doors and wheels are named pivot nodes; the winch drum, the light tower and the roof stowage are static. Invented plain livery, no crest or unit marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: cab-door-open, cab-door-close, locker-open, locker-close and wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-rescue-tender-abc0c9c6","cdnUrl":"https://cdn.3dassets.dev/assets/29899/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-rescue-tender-abc0c9c6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29899/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29899/v1/poster.webp","blurhash":"U69~,1}s0dJBtmIURO%N0J5Q=yxaH=-VtmM{","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":163180,"triangles":5292,"vertices":6765,"meshes":38,"materials":9,"textures":1,"animations":["cab-door-open","cab-door-close","locker-open","locker-close","wheel-roll"],"boundingBox":{"min":[-2.1224999141693113,-5.960464477539063e-8,-3.5],"max":[2.1224999141693113,3.2601418315240576,3.3806700706481934]},"sizeMeters":[4.245,3.26,6.881],"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-08T05:11:42.873Z","updatedAt":"2026-09-08T05:11:42.969Z","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/29899/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 RescueTenderFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29899/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/29899/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29899/v1/model.glb\" alt=\"Rescue Tender (Fire and Emergency Services)\" 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/29899/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/29899/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29900","slug":"fire-and-emergency-services-ambulance-f22ce1a5","title":"Ambulance (Fire and Emergency Services)","summary":"Front line box bodied ambulance on a van chassis, with a glazed patient compartment, a rear step and twin rear barn doors.","description":"Front line box bodied ambulance on a van chassis, with a glazed patient compartment, a rear step and twin rear barn doors. Dimensions 3.37 by 2.76 by 6.01 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-afl at (-0.92, 0.42, 1.70) m; wheel-afr at (0.92, 0.42, 1.70) m; wheel-arl at (-0.92, 0.42, -1.60) m; wheel-arr at (0.92, 0.42, -1.60) m; cab-door-left at (-1.03, 1.75, 2.90) m; cab-door-right at (1.03, 1.75, 2.90) m; rear-door-left at (-1.06, 1.50, -2.53) m; rear-door-right at (1.06, 1.50, -2.53) m. Body 5.90 m long. Both cab doors, both rear doors and the four wheels are named pivot nodes; the interior is not modelled beyond the shell, so the doors reveal a plain compartment. Invented plain livery, no service crest, unit number or country marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: cab-door-open, cab-door-close, rear-door-open, rear-door-close and wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-ambulance-f22ce1a5","cdnUrl":"https://cdn.3dassets.dev/assets/29900/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-ambulance-f22ce1a5","thumbnailUrl":"https://cdn.3dassets.dev/assets/29900/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29900/v1/poster.webp","blurhash":"U6AJf?{#00K%_4D*Di%M001t%3,I8w-p.8R%","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":145984,"triangles":4744,"vertices":5366,"meshes":29,"materials":8,"textures":1,"animations":["cab-door-open","cab-door-close","rear-door-open","rear-door-close","wheel-roll"],"boundingBox":{"min":[-1.6853025236131798,-1.6689300552652497e-8,-2.9000000953674316],"max":[1.6853025236131798,2.760014036709721,3.1056699752807617]},"sizeMeters":[3.371,2.76,6.006],"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-08T05:11:44.215Z","updatedAt":"2026-09-08T05:11:44.330Z","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/29900/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 AmbulanceFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29900/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/29900/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29900/v1/model.glb\" alt=\"Ambulance (Fire and Emergency Services)\" 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/29900/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/29900/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29902","slug":"fire-and-emergency-services-ambulance-rear-doors-open-f2369805","title":"Ambulance Rear Doors Open (Fire and Emergency Services)","summary":"The ambulance with both rear barn doors swung fully open onto the step, ready to receive a stretcher.","description":"The ambulance with both rear barn doors swung fully open onto the step, ready to receive a stretcher. Dimensions 3.37 by 2.76 by 6.68 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-afl at (-0.92, 0.42, 1.70) m; wheel-afr at (0.92, 0.42, 1.70) m; wheel-arl at (-0.92, 0.42, -1.60) m; wheel-arr at (0.92, 0.42, -1.60) m; cab-door-left at (-1.03, 1.75, 2.90) m; cab-door-right at (1.03, 1.75, 2.90) m. Functional variant: the door pose is baked into the geometry, so the rear door nodes carry no clip here. Cab doors and wheels still animate. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open, close and wheel-roll. No skinning. No collision or navigation data. Functional variant of ambulance, with its open pose modelled rather than animated.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-ambulance-rear-doors-open-f2369805","cdnUrl":"https://cdn.3dassets.dev/assets/29902/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-ambulance-rear-doors-open-f2369805","thumbnailUrl":"https://cdn.3dassets.dev/assets/29902/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29902/v1/poster.webp","blurhash":"U69QHv}F00K$.SIoD$xa005k-;#pHX-W.9Nu","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":148860,"triangles":4744,"vertices":5366,"meshes":29,"materials":8,"textures":1,"animations":["open","close","wheel-roll"],"boundingBox":{"min":[-1.6853025236131798,-1.6689300552652497e-8,-3.5757137912970043],"max":[1.6853025236131798,2.760014036709721,3.1056699752807617]},"sizeMeters":[3.371,2.76,6.681],"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-08T05:11:43.462Z","updatedAt":"2026-09-08T05:11:43.565Z","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/29902/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 AmbulanceRearDoorsOpenFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29902/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/29902/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29902/v1/model.glb\" alt=\"Ambulance Rear Doors Open (Fire and Emergency Services)\" 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/29902/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/29902/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29901","slug":"fire-and-emergency-services-fast-response-car-0ec65a15","title":"Fast Response Car (Fire and Emergency Services)","summary":"Officer fast response estate car in appliance livery, with a roof beacon bar, grille lights and a plain block stripe.","description":"Officer fast response estate car in appliance livery, with a roof beacon bar, grille lights and a plain block stripe. Dimensions 4.17 by 1.70 by 4.70 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-cfl at (-0.78, 0.33, 1.32) m; wheel-cfr at (0.78, 0.33, 1.32) m; wheel-crl at (-0.78, 0.33, -1.36) m; wheel-crr at (0.78, 0.33, -1.36) m. Overall 4.60 m long. Only the four wheels are named nodes; the doors are modelled as body surface rather than separate leaves, so they do not open. Invented plain livery, no crest, badge or real car likeness. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fast-response-car-0ec65a15","cdnUrl":"https://cdn.3dassets.dev/assets/29901/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fast-response-car-0ec65a15","thumbnailUrl":"https://cdn.3dassets.dev/assets/29901/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29901/v1/poster.webp","blurhash":"U9AIus$*0gOU#pNaOTxG0LJ6}s#pBi$k+$JP","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":96020,"triangles":2216,"vertices":2667,"meshes":14,"materials":7,"textures":1,"animations":["wheel-roll"],"boundingBox":{"min":[-2.0859003538949614,-4.291534422273813e-8,-2.3499999046325684],"max":[2.0859003538949614,1.7001069075619148,2.3499999046325684]},"sizeMeters":[4.172,1.7,4.7],"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-08T05:11:43.428Z","updatedAt":"2026-09-08T05:11:43.537Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29901/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 FastResponseCarFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29901/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/29901/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29901/v1/model.glb\" alt=\"Fast Response Car (Fire and Emergency Services)\" 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/29901/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/29901/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29903","slug":"fire-and-emergency-services-water-carrier-3ccdea45","title":"Water Carrier (Fire and Emergency Services)","summary":"Three axle water carrier with a cylindrical tank on cradles, a top manhole, a rear ladder and a three way delivery manifold.","description":"Three axle water carrier with a cylindrical tank on cradles, a top manhole, a rear ladder and a three way delivery manifold. Dimensions 4.57 by 3.10 by 8.25 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: wheel-fl at (-1.02, 0.50, 2.70) m; wheel-fr at (1.02, 0.50, 2.70) m; wheel-rl at (-1.02, 0.50, -2.10) m; wheel-rr at (1.02, 0.50, -2.10) m; wheel-wl2 at (-1.02, 0.50, -3.30) m; wheel-wr2 at (1.02, 0.50, -3.30) m; cab-door-left at (-1.15, 1.85, 3.73) m; cab-door-right at (1.15, 1.85, 3.73) m. Body 8.60 m long, tank 5.00 m by 2.04 m. Six wheels and both cab doors are named pivot nodes; the tank, manhole cover and manifold are static. Invented plain livery, no crest or unit marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open, close and wheel-roll. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-water-carrier-3ccdea45","cdnUrl":"https://cdn.3dassets.dev/assets/29903/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-water-carrier-3ccdea45","thumbnailUrl":"https://cdn.3dassets.dev/assets/29903/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29903/v1/poster.webp","blurhash":"U68zZB}Y4mGFyEIUIUxu005R?I,[H=-p-=Ns","category":{"slug":"vehicles","title":"Vehicles"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":162076,"triangles":4432,"vertices":5916,"meshes":26,"materials":9,"textures":1,"animations":["open","close","wheel-roll"],"boundingBox":{"min":[-2.2846667766571045,0,-4.320000171661377],"max":[2.2846667766571045,3.1001089484206226,3.9306700229644775]},"sizeMeters":[4.569,3.1,8.251],"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-08T05:11:43.726Z","updatedAt":"2026-09-08T05:11:43.876Z","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/29903/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 WaterCarrierFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29903/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/29903/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29903/v1/model.glb\" alt=\"Water Carrier (Fire and Emergency Services)\" 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/29903/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/29903/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29904","slug":"fire-and-emergency-services-hose-reel-ad0d276a","title":"Hose Reel (Fire and Emergency Services)","summary":"Wall or appliance mounted first aid hose reel: a red drum of small bore rubber hose on a spin node, in a painted frame with a guide roller.","description":"Wall or appliance mounted first aid hose reel: a red drum of small bore rubber hose on a spin node, in a painted frame with a guide roller. Dimensions 0.93 by 1.10 by 0.74 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: reel at (0.00, 0.62, 0.00) m. Frame 0.92 by 0.98 by 0.68 m. The drum is a named spin node; the hose wraps turn with it. The lead off length is static, because a running hose is a soft body and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: reel-spin. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-hose-reel-ad0d276a","cdnUrl":"https://cdn.3dassets.dev/assets/29904/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-hose-reel-ad0d276a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29904/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29904/v1/poster.webp","blurhash":"U8Cz;f$*0e[[|^$jFwNH1vaxJ7AXKObbadR*","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":86520,"triangles":948,"vertices":1946,"meshes":7,"materials":4,"textures":1,"animations":["reel-spin"],"boundingBox":{"min":[-0.4611999988555908,0,-0.3400256421657908],"max":[0.4699966529471854,1.100000023841858,0.39896176388390525]},"sizeMeters":[0.931,1.1,0.739],"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-08T05:11:43.860Z","updatedAt":"2026-09-08T05:11:43.980Z","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/29904/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 HoseReelFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29904/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/29904/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29904/v1/model.glb\" alt=\"Hose Reel (Fire and Emergency Services)\" 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/29904/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/29904/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29905","slug":"fire-and-emergency-services-coiled-hose-length-1a372bed","title":"Coiled Hose Length (Fire and Emergency Services)","summary":"Flaked coil of 70 mm lay flat delivery hose with a brass instantaneous coupling and a hi-vis carrying tally.","description":"Flaked coil of 70 mm lay flat delivery hose with a brass instantaneous coupling and a hi-vis carrying tally. Dimensions 0.90 by 0.13 by 0.81 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Coil 0.90 by 0.08 by 0.62 m, resting flat on the ground. Static geometry: the coil is modelled in its stowed pose because a hose is a soft body and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-coiled-hose-length-1a372bed","cdnUrl":"https://cdn.3dassets.dev/assets/29905/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-coiled-hose-length-1a372bed","thumbnailUrl":"https://cdn.3dassets.dev/assets/29905/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29905/v1/poster.webp","blurhash":"UDCGPq-:00IW%Lj=RjfT00IV~pt69Gj_xuR$","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76956,"triangles":1692,"vertices":3994,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.40999359072981,0,-0.4038660772283269],"max":[0.484996579317104,0.12875534035600833,0.4038660772283269]},"sizeMeters":[0.895,0.129,0.808],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:43.912Z","updatedAt":"2026-09-08T05:11:44.016Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29905/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CoiledHoseLengthFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29905/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29905/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29905/v1/model.glb\" alt=\"Coiled Hose Length (Fire and Emergency Services)\" 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/29905/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/29905/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29906","slug":"fire-and-emergency-services-standpipe-9554c673","title":"Standpipe (Fire and Emergency Services)","summary":"Twin outlet hydrant standpipe with a chrome barrel, brass instantaneous outlets, a red bar handle and hand wheels.","description":"Twin outlet hydrant standpipe with a chrome barrel, brass instantaneous outlets, a red bar handle and hand wheels. Dimensions 0.52 by 1.01 by 0.43 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Overall 0.42 by 0.98 by 0.32 m, resting on its base flange. Static geometry: the hand wheels do not turn, since a quarter turn valve reads no differently in a still model. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-standpipe-9554c673","cdnUrl":"https://cdn.3dassets.dev/assets/29906/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-standpipe-9554c673","thumbnailUrl":"https://cdn.3dassets.dev/assets/29906/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29906/v1/poster.webp","blurhash":"U97^Svj=0Kog}ss.5lRkv$oMKNRjRSjISwSx","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":24068,"triangles":536,"vertices":1129,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.2607499957084656,0,-0.13001724132635256],"max":[0.2607499957084656,1.0070671572252163,0.3050147415356697]},"sizeMeters":[0.521,1.007,0.435],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:44.315Z","updatedAt":"2026-09-08T05:11:44.421Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29906/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StandpipeFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29906/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29906/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29906/v1/model.glb\" alt=\"Standpipe (Fire and Emergency Services)\" 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/29906/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/29906/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29907","slug":"fire-and-emergency-services-branch-nozzle-b4e235ce","title":"Branch Nozzle (Fire and Emergency Services)","summary":"Adjustable hand controlled branch with an instantaneous inlet, a red barrel, a chrome flow collar and a pistol grip.","description":"Adjustable hand controlled branch with an instantaneous inlet, a red barrel, a chrome flow collar and a pistol grip. Dimensions 0.12 by 0.17 by 0.51 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Overall 0.11 by 0.13 by 0.50 m, lying on its grip. Static geometry: the flow collar and trigger do not move. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-branch-nozzle-b4e235ce","cdnUrl":"https://cdn.3dassets.dev/assets/29907/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-branch-nozzle-b4e235ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/29907/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29907/v1/poster.webp","blurhash":"U58NIPM|A8xZWF4;jGxu00xZ]=W-xq~USgIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":16852,"triangles":336,"vertices":698,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.060732443091757814,0.000017557087056120635,-0.22499999403953552],"max":[0.060732443091757814,0.17075000703334808,0.2849999964237213]},"sizeMeters":[0.121,0.171,0.51],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:44.433Z","updatedAt":"2026-09-08T05:11:44.587Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29907/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BranchNozzleFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29907/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29907/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29907/v1/model.glb\" alt=\"Branch Nozzle (Fire and Emergency Services)\" 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/29907/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/29907/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29908","slug":"fire-and-emergency-services-fire-hydrant-09cb0c64","title":"Fire Hydrant (Fire and Emergency Services)","summary":"Below ground fire hydrant in its concrete pit, with a chrome valve, a brass outlet and a hinged tread plate cover.","description":"Below ground fire hydrant in its concrete pit, with a chrome valve, a brass outlet and a hinged tread plate cover. Dimensions 0.74 by 0.47 by 0.74 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cover at (0.00, 0.40, -0.34) m. Pit 0.74 by 0.45 by 0.74 m, sitting flush at ground level. The cover plate is a named hinge node on the far edge. Blank plate face: no marking, service crest or country identifier. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-hydrant-09cb0c64","cdnUrl":"https://cdn.3dassets.dev/assets/29908/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-hydrant-09cb0c64","thumbnailUrl":"https://cdn.3dassets.dev/assets/29908/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29908/v1/poster.webp","blurhash":"UABg9@?c4nMx00M_-;t68^RPD*NG~p%3-;t7","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":106000,"triangles":232,"vertices":520,"meshes":8,"materials":5,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-0.3700000047683716,0.000025640230745360704,-0.3700000047683716],"max":[0.3700000047683716,0.47120030530727747,0.3700000047683716]},"sizeMeters":[0.74,0.471,0.74],"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-08T05:11:45.064Z","updatedAt":"2026-09-08T05:11:45.181Z","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/29908/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 FireHydrantFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29908/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/29908/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29908/v1/model.glb\" alt=\"Fire Hydrant (Fire and Emergency Services)\" 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/29908/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/29908/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29909","slug":"fire-and-emergency-services-foam-drum-49defeec","title":"Foam Drum (Fire and Emergency Services)","summary":"Twenty five litre foam concentrate drum in dark plastic with rolling hoops, a red screw cap and a blank label panel.","description":"Twenty five litre foam concentrate drum in dark plastic with rolling hoops, a red screw cap and a blank label panel. Dimensions 0.59 by 0.91 by 0.59 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Drum 0.59 by 0.91 by 0.56 m. Static geometry. The label panel is deliberately blank: there is no product name, brand or hazard mark on this model. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-foam-drum-49defeec","cdnUrl":"https://cdn.3dassets.dev/assets/29909/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-foam-drum-49defeec","thumbnailUrl":"https://cdn.3dassets.dev/assets/29909/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29909/v1/poster.webp","blurhash":"U27UPI_40000^,S09Yxb00D%-;?bt,s.nhNa","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":73520,"triangles":612,"vertices":1428,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.2949778789872489,0,-0.2949778789872489],"max":[0.2949778789872489,0.9100001738515434,0.2949778789872489]},"sizeMeters":[0.59,0.91,0.59],"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-08T05:11:45.272Z","updatedAt":"2026-09-08T05:11:45.371Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29909/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FoamDrumFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29909/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29909/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29909/v1/model.glb\" alt=\"Foam Drum (Fire and Emergency Services)\" 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/29909/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/29909/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29910","slug":"fire-and-emergency-services-fire-extinguisher-3b898007","title":"Fire Extinguisher (Fire and Emergency Services)","summary":"Nine litre water fire extinguisher with a squeeze grip head, a pressure gauge, a side hose and a blank label panel.","description":"Nine litre water fire extinguisher with a squeeze grip head, a pressure gauge, a side hose and a blank label panel. Dimensions 0.31 by 0.61 by 0.18 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Overall 0.22 by 0.60 by 0.19 m. Static geometry. Every label face is blank: there is no manufacturer name, standard number or approval mark on this model. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-extinguisher-3b898007","cdnUrl":"https://cdn.3dassets.dev/assets/29910/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-extinguisher-3b898007","thumbnailUrl":"https://cdn.3dassets.dev/assets/29910/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29910/v1/poster.webp","blurhash":"U58pG$-p0055o#SLV?we0|M{}F-qNao0xGOD","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":65100,"triangles":392,"vertices":858,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0,-0.08998993246775143],"max":[0.16000076435354227,0.6075528264045715,0.08998993246775143]},"sizeMeters":[0.31,0.608,0.18],"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-08T05:11:45.463Z","updatedAt":"2026-09-08T05:11:45.575Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29910/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireExtinguisherFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29910/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29910/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29910/v1/model.glb\" alt=\"Fire Extinguisher (Fire and Emergency Services)\" 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/29910/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/29910/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29912","slug":"fire-and-emergency-services-fire-extinguisher-foam-3e72a2ab","title":"Fire Extinguisher Foam (Fire and Emergency Services)","summary":"Foam fire extinguisher: the same body in the cream banded livery used for foam charges.","description":"Foam fire extinguisher: the same body in the cream banded livery used for foam charges. Dimensions 0.31 by 0.61 by 0.18 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Colour variant of the water extinguisher, with the label and gauge faces remapped to a cream band. Geometry is identical. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data. Colour variant of fire-extinguisher.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-extinguisher-foam-3e72a2ab","cdnUrl":"https://cdn.3dassets.dev/assets/29912/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-extinguisher-foam-3e72a2ab","thumbnailUrl":"https://cdn.3dassets.dev/assets/29912/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29912/v1/poster.webp","blurhash":"U79~{S?a0000%Mf+M{i_0KE1}t^+I:jFs:X8","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":20644,"triangles":392,"vertices":858,"meshes":5,"materials":5,"textures":0,"animations":[],"boundingBox":{"min":[-0.15000000596046448,0,-0.08998993246775143],"max":[0.16000076435354227,0.6075528264045715,0.08998993246775143]},"sizeMeters":[0.31,0.608,0.18],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:45.588Z","updatedAt":"2026-09-08T05:11:45.690Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29912/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireExtinguisherFoamFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29912/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29912/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29912/v1/model.glb\" alt=\"Fire Extinguisher Foam (Fire and Emergency Services)\" 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/29912/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/29912/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29911","slug":"fire-and-emergency-services-fire-extinguisher-co2-8ff6ff35","title":"Fire Extinguisher CO2 (Fire and Emergency Services)","summary":"Carbon dioxide fire extinguisher: a taller pressure body with a rigid swivel horn on the discharge arm instead of a hose.","description":"Carbon dioxide fire extinguisher: a taller pressure body with a rigid swivel horn on the discharge arm instead of a hose. Dimensions 0.27 by 0.70 by 0.42 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Functional variant of the water extinguisher: the horn and the taller body are real geometry differences, not a repaint. Overall 0.24 by 0.70 by 0.36 m. Static geometry, blank labels. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data. Functional variant of fire-extinguisher, with its open pose modelled rather than animated.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-extinguisher-co2-8ff6ff35","cdnUrl":"https://cdn.3dassets.dev/assets/29911/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-extinguisher-co2-8ff6ff35","thumbnailUrl":"https://cdn.3dassets.dev/assets/29911/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29911/v1/poster.webp","blurhash":"U47v+KKO00[C?HofE1V@1av~|{B.ivRiOrx]","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":62908,"triangles":364,"vertices":800,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.09000000357627869,0,-0.0900227136017038],"max":[0.17999931192586888,0.7049999833106995,0.3277662104965402]},"sizeMeters":[0.27,0.705,0.418],"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-08T05:11:45.560Z","updatedAt":"2026-09-08T05:11:45.677Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29911/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireExtinguisherCO2FireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29911/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29911/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29911/v1/model.glb\" alt=\"Fire Extinguisher CO2 (Fire and Emergency Services)\" 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/29911/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/29911/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29913","slug":"fire-and-emergency-services-breathing-apparatus-stand-2bef988a","title":"Breathing Apparatus Stand (Fire and Emergency Services)","summary":"Self contained breathing apparatus set on a floor stand: backplate, cylinder, harness, gauge line and the face mask hung beside it.","description":"Self contained breathing apparatus set on a floor stand: backplate, cylinder, harness, gauge line and the face mask hung beside it. Dimensions 0.61 by 1.22 by 0.44 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stand 0.50 by 1.24 by 0.44 m. Static geometry: the harness straps and the gauge hose are modelled in their hung pose because they are soft bodies and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-breathing-apparatus-stand-2bef988a","cdnUrl":"https://cdn.3dassets.dev/assets/29913/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-breathing-apparatus-stand-2bef988a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29913/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29913/v1/poster.webp","blurhash":"U15X}qWu00s}?ZI99Z_4EUxWx9E94}-;-z4n","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":66892,"triangles":556,"vertices":802,"meshes":7,"materials":7,"textures":1,"animations":[],"boundingBox":{"min":[-0.24996443676781924,0,-0.21997084675496756],"max":[0.36135029792785645,1.2200027447287427,0.21997084675496756]},"sizeMeters":[0.611,1.22,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-08T05:11:45.878Z","updatedAt":"2026-09-08T05:11:45.994Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29913/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BreathingApparatusStandFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29913/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29913/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29913/v1/model.glb\" alt=\"Breathing Apparatus Stand (Fire and Emergency Services)\" 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/29913/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/29913/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29914","slug":"fire-and-emergency-services-fire-helmet-3e9ba3af","title":"Fire Helmet (Fire and Emergency Services)","summary":"Structural firefighting helmet in hi-vis yellow with a drop down visor, chrome visor pivots and a chin strap, resting on its brim.","description":"Structural firefighting helmet in hi-vis yellow with a drop down visor, chrome visor pivots and a chin strap, resting on its brim. Dimensions 0.33 by 0.23 by 0.39 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Helmet 0.30 by 0.24 by 0.34 m. Static geometry: the visor is modelled down and does not lift. Shell is plain: no crest, rank marking or service name. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-helmet-3e9ba3af","cdnUrl":"https://cdn.3dassets.dev/assets/29914/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-helmet-3e9ba3af","thumbnailUrl":"https://cdn.3dassets.dev/assets/29914/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29914/v1/poster.webp","blurhash":"UCDviPRp01xn--RnIXt300jX~nWGD+%G--N0","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":25152,"triangles":592,"vertices":1122,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1650127906684371,-0.0000022045396436271014,-0.16378788650035858],"max":[0.1650127906684371,0.23400220191703924,0.22906088829040527]},"sizeMeters":[0.33,0.234,0.393],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:45.976Z","updatedAt":"2026-09-08T05:11:46.087Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29914/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireHelmetFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29914/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29914/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29914/v1/model.glb\" alt=\"Fire Helmet (Fire and Emergency Services)\" 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/29914/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/29914/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29915","slug":"fire-and-emergency-services-turnout-gear-stand-f96cbbec","title":"Turnout Gear Stand (Fire and Emergency Services)","summary":"Turnout coat on a floor stand with a pair of fire boots at its foot: hi-vis banded red coat, storm collar and rubber boots with pull loops.","description":"Turnout coat on a floor stand with a pair of fire boots at its foot: hi-vis banded red coat, storm collar and rubber boots with pull loops. Dimensions 0.84 by 1.67 by 0.67 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stand 0.68 by 1.67 by 0.62 m. Static geometry: the coat is modelled in its hung pose, because a garment is a soft body and this pack has no skinning. The coat carries no crest, name panel or unit number. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-turnout-gear-stand-f96cbbec","cdnUrl":"https://cdn.3dassets.dev/assets/29915/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-turnout-gear-stand-f96cbbec","thumbnailUrl":"https://cdn.3dassets.dev/assets/29915/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29915/v1/poster.webp","blurhash":"U89Pp2%1019b]ms:AWI:12Rk}Txt1eS2=Hsp","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":75792,"triangles":780,"vertices":1334,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.42202178413322894,0,-0.3348715084696411],"max":[0.42202178413322894,1.6699999570846558,0.3348715084696411]},"sizeMeters":[0.844,1.67,0.67],"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-08T05:11:47.221Z","updatedAt":"2026-09-08T05:11:47.342Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29915/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function TurnoutGearStandFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29915/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29915/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29915/v1/model.glb\" alt=\"Turnout Gear Stand (Fire and Emergency Services)\" 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/29915/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/29915/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29916","slug":"fire-and-emergency-services-thermal-imaging-camera-d46e21b6","title":"Thermal Imaging Camera (Fire and Emergency Services)","summary":"Hand held thermal imaging camera with a rubber armoured body, a lens hood, a rear display and a side carrying loop, stood on its grip.","description":"Hand held thermal imaging camera with a rubber armoured body, a lens hood, a rear display and a side carrying loop, stood on its grip. Dimensions 0.19 by 0.24 by 0.14 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Camera 0.22 by 0.24 by 0.12 m. Static geometry: the display is a flat glass face rather than an emissive screen, so a consumer can drive it with its own material. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-thermal-imaging-camera-d46e21b6","cdnUrl":"https://cdn.3dassets.dev/assets/29916/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-thermal-imaging-camera-d46e21b6","thumbnailUrl":"https://cdn.3dassets.dev/assets/29916/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29916/v1/poster.webp","blurhash":"UIBN1BN302xm~nof9IRkRj%IRoIYWCt5WDRl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15456,"triangles":456,"vertices":561,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.07999816845595303,0,-0.06300000101327896],"max":[0.10999671734083198,0.23999999463558197,0.0820000022649765]},"sizeMeters":[0.19,0.24,0.145],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:46.688Z","updatedAt":"2026-09-08T05:11:46.812Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29916/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ThermalImagingCameraFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29916/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29916/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29916/v1/model.glb\" alt=\"Thermal Imaging Camera (Fire and Emergency Services)\" 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/29916/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/29916/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29917","slug":"fire-and-emergency-services-hooligan-bar-53e0e73a","title":"Hooligan Bar (Fire and Emergency Services)","summary":"Forcible entry hooligan bar: a red shaft with a chrome fork and adze at one end and a pointed pike at the other, lying on the ground.","description":"Forcible entry hooligan bar: a red shaft with a chrome fork and adze at one end and a pointed pike at the other, lying on the ground. Dimensions 0.18 by 0.13 by 1.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bar 0.14 by 0.09 by 1.24 m, lying flat. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-hooligan-bar-53e0e73a","cdnUrl":"https://cdn.3dassets.dev/assets/29917/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-hooligan-bar-53e0e73a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29917/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29917/v1/poster.webp","blurhash":"U67mW_nl2so|s.E1R*$*0eW.|_rsI=^l$*9[","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":11060,"triangles":388,"vertices":420,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.06637833858276122,-0.000018446380143186114,-0.625],"max":[0.11149337733531707,0.13106179111624244,0.6876852512359619]},"sizeMeters":[0.178,0.131,1.313],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:46.995Z","updatedAt":"2026-09-08T05:11:47.102Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29917/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HooliganBarFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29917/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29917/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29917/v1/model.glb\" alt=\"Hooligan Bar (Fire and Emergency Services)\" 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/29917/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/29917/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29918","slug":"fire-and-emergency-services-fire-axe-cccaaa50","title":"Fire Axe (Fire and Emergency Services)","summary":"Firefighting pick head axe with a chrome head, a moulded shaft and a hi-vis grip band, lying on the ground.","description":"Firefighting pick head axe with a chrome head, a moulded shaft and a hi-vis grip band, lying on the ground. Dimensions 0.05 by 0.16 by 0.91 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Axe 0.05 by 0.13 by 0.94 m, lying flat. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-fire-axe-cccaaa50","cdnUrl":"https://cdn.3dassets.dev/assets/29918/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-fire-axe-cccaaa50","thumbnailUrl":"https://cdn.3dassets.dev/assets/29918/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29918/v1/poster.webp","blurhash":"U77nUP9JxTR*%F9H%Koz00%JtSV@D?~oD+My","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":9708,"triangles":280,"vertices":327,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.024997406920002206,-0.000008137989939885348,-0.4300000071525574],"max":[0.024997406920002206,0.16231566863149566,0.47771185636520386]},"sizeMeters":[0.05,0.162,0.908],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:47.031Z","updatedAt":"2026-09-08T05:11:47.137Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29918/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FireAxeFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29918/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29918/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29918/v1/model.glb\" alt=\"Fire Axe (Fire and Emergency Services)\" 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/29918/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/29918/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29919","slug":"fire-and-emergency-services-hydraulic-cutting-tool-eef16a24","title":"Hydraulic Cutting Tool (Fire and Emergency Services)","summary":"Hydraulic rescue cutter with a red body, a rear control handle, a top carrying handle, crossed chrome blades and a hose tail.","description":"Hydraulic rescue cutter with a red body, a rear control handle, a top carrying handle, crossed chrome blades and a hose tail. Dimensions 0.29 by 0.33 by 1.19 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Cutter 0.19 by 0.33 by 1.00 m including the hose tail, resting on its body. Static geometry: the blades are modelled part open and the jaw linkage is left still, because a rigid node cannot drive the two blades from one channel. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-hydraulic-cutting-tool-eef16a24","cdnUrl":"https://cdn.3dassets.dev/assets/29919/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-hydraulic-cutting-tool-eef16a24","thumbnailUrl":"https://cdn.3dassets.dev/assets/29919/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29919/v1/poster.webp","blurhash":"U57K0k-;0|NGI;M{rrxu00E1}Gs:].-;PAIU","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":19100,"triangles":656,"vertices":714,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.1448438431256225,-0.000015259254965385716,-0.6000000238418579],"max":[0.1448438431256225,0.330008243176194,0.5946277976036072]},"sizeMeters":[0.29,0.33,1.195],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:47.244Z","updatedAt":"2026-09-08T05:11:47.349Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29919/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HydraulicCuttingToolFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29919/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29919/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29919/v1/model.glb\" alt=\"Hydraulic Cutting Tool (Fire and Emergency Services)\" 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/29919/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/29919/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29920","slug":"fire-and-emergency-services-hydraulic-spreading-tool-1ed4c3f9","title":"Hydraulic Spreading Tool (Fire and Emergency Services)","summary":"Hydraulic rescue spreader with a red body, twin toothed arms held part open, a control handle and a hose tail.","description":"Hydraulic rescue spreader with a red body, twin toothed arms held part open, a control handle and a hose tail. Dimensions 0.38 by 0.33 by 1.29 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Spreader 0.28 by 0.33 by 1.10 m including the hose tail, resting on its body. Static geometry: the arms are modelled part open and the spread linkage is left still, since one rigid node cannot drive both arms. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-hydraulic-spreading-tool-1ed4c3f9","cdnUrl":"https://cdn.3dassets.dev/assets/29920/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-hydraulic-spreading-tool-1ed4c3f9","thumbnailUrl":"https://cdn.3dassets.dev/assets/29920/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29920/v1/poster.webp","blurhash":"U4711d?v0|Z%E2Mxi_tR00Di}FXS^j.8k=RO","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":21384,"triangles":704,"vertices":838,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.18749435497428238,-0.000015259254965385716,-0.6000000238418579],"max":[0.18749435497428238,0.3300220580187709,0.6902012228965759]},"sizeMeters":[0.375,0.33,1.29],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:47.301Z","updatedAt":"2026-09-08T05:11:47.404Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29920/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function HydraulicSpreadingToolFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29920/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29920/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29920/v1/model.glb\" alt=\"Hydraulic Spreading Tool (Fire and Emergency Services)\" 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/29920/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/29920/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29921","slug":"fire-and-emergency-services-rescue-tool-power-unit-e343d693","title":"Rescue Tool Power Unit (Fire and Emergency Services)","summary":"Petrol hydraulic power unit for the rescue tools: a red pump body in a carrying frame with a recoil starter, brass hose couplings and a hinged lid.","description":"Petrol hydraulic power unit for the rescue tools: a red pump body in a carrying frame with a recoil starter, brass hose couplings and a hinged lid. Dimensions 0.66 by 0.77 by 0.47 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: lid at (0.00, 0.66, -0.21) m. Unit 0.66 by 0.77 by 0.48 m. The lid is a named hinge node on the back edge. The pump, starter and couplings are static, and the hose runs to the tools are not modelled because a live hose is a soft body. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-rescue-tool-power-unit-e343d693","cdnUrl":"https://cdn.3dassets.dev/assets/29921/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-rescue-tool-power-unit-e343d693","thumbnailUrl":"https://cdn.3dassets.dev/assets/29921/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29921/v1/poster.webp","blurhash":"U89s3u-U0e9]3WX7:*wK5QNaxG$k{fs9B9J,","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":65260,"triangles":400,"vertices":735,"meshes":7,"materials":5,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.3300117414515059,0,-0.22001128136405815],"max":[0.3300117414515059,0.7699999809265137,0.25000701798897773]},"sizeMeters":[0.66,0.77,0.47],"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-08T05:11:48.598Z","updatedAt":"2026-09-08T05:11:48.751Z","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/29921/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 RescueToolPowerUnitFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29921/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/29921/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29921/v1/model.glb\" alt=\"Rescue Tool Power Unit (Fire and Emergency Services)\" 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/29921/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/29921/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29922","slug":"fire-and-emergency-services-lifting-air-bag-set-1fca1c5f","title":"Lifting Air Bag Set (Fire and Emergency Services)","summary":"Pair of high pressure lifting air bags with a twin lever controller and its supply hoses, laid out ready for a lift.","description":"Pair of high pressure lifting air bags with a twin lever controller and its supply hoses, laid out ready for a lift. Dimensions 1.40 by 0.27 by 0.83 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Set 1.02 by 0.20 by 0.90 m as laid out. Static geometry: the bags are modelled deflated and flat, since inflation is a deformation and this pack has no skinning or blend shapes. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-lifting-air-bag-set-1fca1c5f","cdnUrl":"https://cdn.3dassets.dev/assets/29922/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-lifting-air-bag-set-1fca1c5f","thumbnailUrl":"https://cdn.3dassets.dev/assets/29922/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29922/v1/poster.webp","blurhash":"U25EjNIp00^*rxt3ScV|00nm~WInFpRV,vSv","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":23884,"triangles":660,"vertices":1014,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.699999988079071,-0.000005795840003083863,-0.5600000023841858],"max":[0.699999988079071,0.2699976119423673,0.2750000059604645]},"sizeMeters":[1.4,0.27,0.835],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:47.607Z","updatedAt":"2026-09-08T05:11:47.698Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29922/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function LiftingAirBagSetFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29922/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29922/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29922/v1/model.glb\" alt=\"Lifting Air Bag Set (Fire and Emergency Services)\" 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/29922/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/29922/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29923","slug":"fire-and-emergency-services-cribbing-block-stack-362c1973","title":"Cribbing Block Stack (Fire and Emergency Services)","summary":"Timber cribbing stack of five crossed layers with two stepped wedges on top, for supporting a vehicle during an extrication.","description":"Timber cribbing stack of five crossed layers with two stepped wedges on top, for supporting a vehicle during an extrication. Dimensions 0.50 by 0.53 by 0.56 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stack 0.50 by 0.52 by 0.50 m. Static geometry: the blocks are placed rather than parented, so a consumer can take one layer out of the file. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-cribbing-block-stack-362c1973","cdnUrl":"https://cdn.3dassets.dev/assets/29923/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-cribbing-block-stack-362c1973","thumbnailUrl":"https://cdn.3dassets.dev/assets/29923/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29923/v1/poster.webp","blurhash":"UAJa}[~q00IUkCRjRjj[00M{4nIUM_t7xuWA","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":14848,"triangles":432,"vertices":688,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.24999306026087745,2.689939955780041e-7,-0.2775000035762787],"max":[0.24999306026087745,0.5266803197282335,0.2775000035762787]},"sizeMeters":[0.5,0.527,0.555],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:48.389Z","updatedAt":"2026-09-08T05:11:48.497Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29923/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function CribbingBlockStackFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29923/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29923/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29923/v1/model.glb\" alt=\"Cribbing Block Stack (Fire and Emergency Services)\" 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/29923/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/29923/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29925","slug":"fire-and-emergency-services-stretcher-629b477a","title":"Stretcher (Fire and Emergency Services)","summary":"Wheeled ambulance stretcher with a canvas deck, a raised head pad, two restraint straps and a pair of trolley wheels at the foot.","description":"Wheeled ambulance stretcher with a canvas deck, a raised head pad, two restraint straps and a pair of trolley wheels at the foot. Dimensions 0.65 by 0.76 by 2.00 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Stretcher 0.62 by 0.77 by 2.00 m. Static geometry: the frame does not fold or raise, and the wheels are not rigged, because the folding undercarriage is a linkage rather than a single rigid node. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-stretcher-629b477a","cdnUrl":"https://cdn.3dassets.dev/assets/29925/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-stretcher-629b477a","thumbnailUrl":"https://cdn.3dassets.dev/assets/29925/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29925/v1/poster.webp","blurhash":"UB9@I+bc4.xu~qIUIUxu00D%%2t700s:?HR+","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":61412,"triangles":332,"vertices":596,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.3249916074098941,-0.000001979363711546167,-1],"max":[0.3249916074098941,0.7608511385795206,1]},"sizeMeters":[0.65,0.761,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-08T05:11:48.719Z","updatedAt":"2026-09-08T05:11:48.841Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29925/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StretcherFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29925/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29925/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29925/v1/model.glb\" alt=\"Stretcher (Fire and Emergency Services)\" 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/29925/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/29925/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29924","slug":"fire-and-emergency-services-spinal-board-b87881e9","title":"Spinal Board (Fire and Emergency Services)","summary":"Hi-vis spinal immobilisation board with three body straps, moulded hand holds down both edges and a head block at the top.","description":"Hi-vis spinal immobilisation board with three body straps, moulded hand holds down both edges and a head block at the top. Dimensions 0.46 by 0.08 by 1.82 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Board 0.46 by 0.11 by 1.82 m, lying flat. Static geometry: the straps are modelled flat across the board. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-spinal-board-b87881e9","cdnUrl":"https://cdn.3dassets.dev/assets/29924/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-spinal-board-b87881e9","thumbnailUrl":"https://cdn.3dassets.dev/assets/29924/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29924/v1/poster.webp","blurhash":"UCBWSHs;9bxtxZ9IRkxs01NG?YWCIp~n%1E3","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15932,"triangles":420,"vertices":662,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.23124087794559697,-0.00004179584294503741,-0.9100000262260437],"max":[0.23124087794559697,0.08304179268389886,0.9100000262260437]},"sizeMeters":[0.462,0.083,1.82],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:48.698Z","updatedAt":"2026-09-08T05:11:48.825Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29924/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SpinalBoardFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29924/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29924/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29924/v1/model.glb\" alt=\"Spinal Board (Fire and Emergency Services)\" 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/29924/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/29924/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29926","slug":"fire-and-emergency-services-defibrillator-b0ea5b09","title":"Defibrillator (Fire and Emergency Services)","summary":"Portable automated defibrillator in a hi-vis case with a hinged lid, a status display, two control buttons and the pad pouch inside.","description":"Portable automated defibrillator in a hi-vis case with a hinged lid, a status display, two control buttons and the pad pouch inside. Dimensions 0.34 by 0.23 by 0.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: lid at (0.00, 0.16, -0.14) m. Unit 0.34 by 0.25 by 0.28 m. The lid is a named hinge node on the back edge. Blank case and display: no brand, model name or instruction graphic. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-defibrillator-b0ea5b09","cdnUrl":"https://cdn.3dassets.dev/assets/29926/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-defibrillator-b0ea5b09","thumbnailUrl":"https://cdn.3dassets.dev/assets/29926/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29926/v1/poster.webp","blurhash":"U8G[}Z_200NEx.?XaP9K00M_~lV_IWN2tQtN","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":17100,"triangles":440,"vertices":531,"meshes":6,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.17000000178813934,-0.000006411516674048601,-0.14001251406160212],"max":[0.17000000178813934,0.22998886230416332,0.17000000178813934]},"sizeMeters":[0.34,0.23,0.31],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:48.882Z","updatedAt":"2026-09-08T05:11:49.051Z","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/29926/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 DefibrillatorFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29926/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/29926/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29926/v1/model.glb\" alt=\"Defibrillator (Fire and Emergency Services)\" 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/29926/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/29926/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29927","slug":"fire-and-emergency-services-first-aid-grab-bag-2c26407c","title":"First Aid Grab Bag (Fire and Emergency Services)","summary":"Soft sided first aid grab bag in red canvas with a carrying handle, side pockets, a hi-vis band and a plain white cross panel.","description":"Soft sided first aid grab bag in red canvas with a carrying handle, side pockets, a hi-vis band and a plain white cross panel. Dimensions 0.50 by 0.41 by 0.32 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bag 0.50 by 0.33 by 0.32 m. Static geometry: the bag is modelled packed and closed, since a fabric bag is a soft body and this pack has no skinning. The cross is a plain white panel, not a service or organisation emblem. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-first-aid-grab-bag-2c26407c","cdnUrl":"https://cdn.3dassets.dev/assets/29927/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-first-aid-grab-bag-2c26407c","thumbnailUrl":"https://cdn.3dassets.dev/assets/29927/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29927/v1/poster.webp","blurhash":"U8Du3^?]0K+b1%wN=Yo|008{v~O?^gXM9aIV","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":55132,"triangles":216,"vertices":346,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.25,-0.00001372736879973191,-0.1500137333292642],"max":[0.25,0.40999039269491033,0.17000793321393257]},"sizeMeters":[0.5,0.41,0.32],"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-08T05:11:48.982Z","updatedAt":"2026-09-08T05:11:49.094Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29927/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function FirstAidGrabBagFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29927/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29927/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29927/v1/model.glb\" alt=\"First Aid Grab Bag (Fire and Emergency Services)\" 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/29927/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/29927/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29928","slug":"fire-and-emergency-services-burnt-car-shell-ba7e968d","title":"Burnt Car Shell (Fire and Emergency Services)","summary":"Burnt out hatchback shell: soot black bodywork, no glazing, a sagged roof, the bonnet up on its stop and a scorch shadow on the ground.","description":"Burnt out hatchback shell: soot black bodywork, no glazing, a sagged roof, the bonnet up on its stop and a scorch shadow on the ground. Dimensions 2.00 by 1.52 by 4.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Shell 2.00 by 1.52 by 4.60 m including the ground scorch. Static geometry: nothing on the shell moves. Original invented body shape with no manufacturer name, badge or real car likeness. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-burnt-car-shell-ba7e968d","cdnUrl":"https://cdn.3dassets.dev/assets/29928/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-burnt-car-shell-ba7e968d","thumbnailUrl":"https://cdn.3dassets.dev/assets/29928/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29928/v1/poster.webp","blurhash":"U06RGl~q00x@9F00D%_3004;?IRSt8~q~qo#","category":{"slug":"vehicles","title":"Vehicles"},"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":39860,"triangles":1544,"vertices":1786,"meshes":2,"materials":2,"textures":0,"animations":[],"boundingBox":{"min":[-0.9998931644869982,-0.00011535374381244079,-2.299999952316284],"max":[0.9998931644869982,1.5201153346703262,2.299999952316284]},"sizeMeters":[2,1.52,4.6],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:49.269Z","updatedAt":"2026-09-08T05:11:49.382Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29928/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function BurntCarShellFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29928/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29928/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29928/v1/model.glb\" alt=\"Burnt Car Shell (Fire and Emergency Services)\" 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/29928/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/29928/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29929","slug":"fire-and-emergency-services-damaged-car-f38b9a89","title":"Damaged Car (Fire and Emergency Services)","summary":"Hatchback damaged in a road traffic collision: a folded offside wing, a shed front bumper, broken glass on the road and an intact roof ready to be cut.","description":"Hatchback damaged in a road traffic collision: a folded offside wing, a shed front bumper, broken glass on the road and an intact roof ready to be cut. Dimensions 2.50 by 1.57 by 5.47 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Car 2.00 by 1.52 by 4.34 m including the shed bumper. Static geometry: the doors are surface detail rather than leaves, so nothing opens. Original invented body shape with no manufacturer name, badge or real car likeness. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-damaged-car-f38b9a89","cdnUrl":"https://cdn.3dassets.dev/assets/29929/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-damaged-car-f38b9a89","thumbnailUrl":"https://cdn.3dassets.dev/assets/29929/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29929/v1/poster.webp","blurhash":"U57nd$o#00Mx-;IAIU.800Ri_N%M4T-=.8Di","category":{"slug":"vehicles","title":"Vehicles"},"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":117740,"triangles":2780,"vertices":3030,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.2699365487274632,0.00006545869694440931,-2.2300000190734863],"max":[1.225047098654221,1.5741028815756188,3.2376532554626465]},"sizeMeters":[2.495,1.574,5.468],"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-08T05:11:49.322Z","updatedAt":"2026-09-08T05:11:49.426Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29929/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DamagedCarFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29929/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29929/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29929/v1/model.glb\" alt=\"Damaged Car (Fire and Emergency Services)\" 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/29929/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/29929/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29930","slug":"fire-and-emergency-services-damaged-car-roof-removed-d3c28ed2","title":"Damaged Car Roof Removed (Fire and Emergency Services)","summary":"The same damaged hatchback with the roof cut off and laid beside it, pillars cut back to stubs with bright cut faces.","description":"The same damaged hatchback with the roof cut off and laid beside it, pillars cut back to stubs with bright cut faces. Dimensions 3.92 by 1.53 by 5.47 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Functional variant for an extrication scene: the cut is real geometry, not a hidden roof. Car and laid roof 3.90 by 1.52 by 4.34 m together. Static geometry. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data. Functional variant of damaged-car, with its open pose modelled rather than animated.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-damaged-car-roof-removed-d3c28ed2","cdnUrl":"https://cdn.3dassets.dev/assets/29930/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-damaged-car-roof-removed-d3c28ed2","thumbnailUrl":"https://cdn.3dassets.dev/assets/29930/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29930/v1/poster.webp","blurhash":"U47-mCad00oh?bofDiM{00WV_Nay8_Ri?c-;","category":{"slug":"vehicles","title":"Vehicles"},"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":118308,"triangles":2516,"vertices":3054,"meshes":6,"materials":6,"textures":1,"animations":[],"boundingBox":{"min":[-1.2699999809265137,0.00006545869694440931,-2.2300000190734863],"max":[2.650177990250233,1.5342235400925222,3.237602446800469]},"sizeMeters":[3.92,1.534,5.468],"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-08T05:11:50.196Z","updatedAt":"2026-09-08T05:11:50.290Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29930/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function DamagedCarRoofRemovedFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29930/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29930/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29930/v1/model.glb\" alt=\"Damaged Car Roof Removed (Fire and Emergency Services)\" 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/29930/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/29930/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29932","slug":"fire-and-emergency-services-road-cone-de6533ce","title":"Road Cone (Fire and Emergency Services)","summary":"Seven hundred and fifty millimetre road traffic cone: a red cone with a white reflective sleeve on a square black base.","description":"Seven hundred and fifty millimetre road traffic cone: a red cone with a white reflective sleeve on a square black base. Dimensions 0.36 by 0.76 by 0.36 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Cone 0.36 by 0.76 by 0.36 m. Static geometry. The sleeve is plain white: no marking, contractor name or country identifier. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-road-cone-de6533ce","cdnUrl":"https://cdn.3dassets.dev/assets/29932/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-road-cone-de6533ce","thumbnailUrl":"https://cdn.3dassets.dev/assets/29932/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29932/v1/poster.webp","blurhash":"U39r;E=y000z8_RktmxZ0ySe}[xH],niF_XS","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":53272,"triangles":148,"vertices":321,"meshes":3,"materials":3,"textures":1,"animations":[],"boundingBox":{"min":[-0.18000000715255737,-0.000005646545359123956,-0.18000000715255737],"max":[0.18000000715255737,0.7599999904632568,0.18000000715255737]},"sizeMeters":[0.36,0.76,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-08T05:11:50.425Z","updatedAt":"2026-09-08T05:11:50.541Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29932/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RoadConeFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29932/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29932/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29932/v1/model.glb\" alt=\"Road Cone (Fire and Emergency Services)\" 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/29932/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/29932/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29933","slug":"fire-and-emergency-services-incident-warning-sign-f7c4db1d","title":"Incident Warning Sign (Fire and Emergency Services)","summary":"Folding A frame incident warning sign: a red bordered blank diamond plate on a hi-vis banded stand with two lamp heads.","description":"Folding A frame incident warning sign: a red bordered blank diamond plate on a hi-vis banded stand with two lamp heads. Dimensions 1.01 by 1.74 by 1.26 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Sign 1.02 by 1.70 by 0.62 m as opened. Static geometry: the frame is modelled opened and does not fold. The plate is deliberately blank, so a consumer can put its own legend on it, and it carries no country specific symbol. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-incident-warning-sign-f7c4db1d","cdnUrl":"https://cdn.3dassets.dev/assets/29933/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-incident-warning-sign-f7c4db1d","thumbnailUrl":"https://cdn.3dassets.dev/assets/29933/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29933/v1/poster.webp","blurhash":"U596wD^*000L[9i^6TOt0ySK^6nT3ppH{ziJ","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":57652,"triangles":344,"vertices":465,"meshes":4,"materials":4,"textures":1,"animations":[],"boundingBox":{"min":[-0.5039392113685608,-0.000027768058991073374,-0.6299999952316284],"max":[0.5039392113685608,1.7439391911029816,0.6299999952316284]},"sizeMeters":[1.008,1.744,1.26],"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-08T05:11:50.600Z","updatedAt":"2026-09-08T05:11:50.720Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29933/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IncidentWarningSignFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29933/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29933/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29933/v1/model.glb\" alt=\"Incident Warning Sign (Fire and Emergency Services)\" 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/29933/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/29933/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29931","slug":"fire-and-emergency-services-incident-command-board-f7517da7","title":"Incident Command Board (Fire and Emergency Services)","summary":"Free standing incident command board: a raked white magnetic face on a tread plate post, with blank crew tallies and sector strips.","description":"Free standing incident command board: a raked white magnetic face on a tread plate post, with blank crew tallies and sector strips. Dimensions 1.04 by 1.86 by 0.50 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Board 1.04 by 1.87 by 0.52 m. Static geometry. Every tally and strip is a plain colour block: there is no legend, service crest or unit number, so a consumer can letter it. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-incident-command-board-f7517da7","cdnUrl":"https://cdn.3dassets.dev/assets/29931/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-incident-command-board-f7517da7","thumbnailUrl":"https://cdn.3dassets.dev/assets/29931/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29931/v1/poster.webp","blurhash":"U58Dz[-U005Q~V%14:9uL1tRrDIA5STJ=xml","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":70248,"triangles":1008,"vertices":938,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.5199999809265137,0,-0.2500202986858411],"max":[0.5199999809265137,1.8574022644734032,0.2500202986858411]},"sizeMeters":[1.04,1.857,0.5],"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-08T05:11:50.411Z","updatedAt":"2026-09-08T05:11:50.523Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29931/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function IncidentCommandBoardFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29931/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29931/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29931/v1/model.glb\" alt=\"Incident Command Board (Fire and Emergency Services)\" 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/29931/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/29931/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29935","slug":"fire-and-emergency-services-floodlight-mast-0184947c","title":"Floodlight Mast (Fire and Emergency Services)","summary":"Tripod floodlight mast with a telescopic column, twin lamp heads on a tilting yoke and a supply lead coiled at the foot.","description":"Tripod floodlight mast with a telescopic column, twin lamp heads on a tilting yoke and a supply lead coiled at the foot. Dimensions 1.64 by 3.01 by 1.60 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: mast-tilt at (0.00, 2.72, 0.00) m. Mast 1.44 by 2.96 by 1.44 m at working height. The lamp yoke is a named tilt node; the column telescope and the tripod legs are static, because the leg spread and the column lift are linkages rather than single rigid nodes. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-floodlight-mast-0184947c","cdnUrl":"https://cdn.3dassets.dev/assets/29935/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-floodlight-mast-0184947c","thumbnailUrl":"https://cdn.3dassets.dev/assets/29935/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29935/v1/poster.webp","blurhash":"U04Ld#o*00R1?wpH4THrpF%fMe8x_4t8ISIS","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":76648,"triangles":1004,"vertices":1214,"meshes":8,"materials":6,"textures":1,"animations":["open","close"],"boundingBox":{"min":[-0.8999999761581421,0,-0.8421120971116569],"max":[0.7431639432907104,3.0099743732808983,0.753786238995507]},"sizeMeters":[1.643,3.01,1.596],"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-08T05:11:50.672Z","updatedAt":"2026-09-08T05:11:50.832Z","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/29935/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 FloodlightMastFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29935/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/29935/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29935/v1/model.glb\" alt=\"Floodlight Mast (Fire and Emergency Services)\" 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/29935/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/29935/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29934","slug":"fire-and-emergency-services-salvage-sheet-roll-4a7099e7","title":"Salvage Sheet Roll (Fire and Emergency Services)","summary":"Rolled salvage sheet with red webbing straps and an unrolled leading edge lying flat on the ground.","description":"Rolled salvage sheet with red webbing straps and an unrolled leading edge lying flat on the ground. Dimensions 1.42 by 0.42 by 0.88 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Roll 1.40 by 0.42 by 0.72 m. Static geometry: the sheet is modelled rolled, because unrolling is a deformation and this pack has no skinning. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-salvage-sheet-roll-4a7099e7","cdnUrl":"https://cdn.3dassets.dev/assets/29934/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-salvage-sheet-roll-4a7099e7","thumbnailUrl":"https://cdn.3dassets.dev/assets/29934/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29934/v1/poster.webp","blurhash":"UCEVmK-;00Rjn4xugMIU00Mx~qSgpIVtaK%M","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":15460,"triangles":372,"vertices":648,"meshes":3,"materials":3,"textures":0,"animations":[],"boundingBox":{"min":[-0.7099999785423279,0.000019227512137343084,-0.20998047164671987],"max":[0.7099999785423279,0.4199804650902089,0.6700268082242699]},"sizeMeters":[1.42,0.42,0.88],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:50.647Z","updatedAt":"2026-09-08T05:11:50.829Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29934/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function SalvageSheetRollFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29934/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29934/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29934/v1/model.glb\" alt=\"Salvage Sheet Roll (Fire and Emergency Services)\" 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/29934/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/29934/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29937","slug":"fire-and-emergency-services-drain-cover-8c39089e","title":"Drain Cover (Fire and Emergency Services)","summary":"Road gully drain cover in a concrete surround: a ribbed tread plate lid on a hinged edge over a plain dark chamber.","description":"Road gully drain cover in a concrete surround: a ribbed tread plate lid on a hinged edge over a plain dark chamber. Dimensions 0.82 by 0.22 by 0.66 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: cover at (0.00, 0.14, -0.30) m. Cover 0.82 by 0.22 by 0.66 m, sitting flush at ground level. The lid is a named hinge node on the far edge. Blank plate: no marking, utility name or country identifier. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-drain-cover-8c39089e","cdnUrl":"https://cdn.3dassets.dev/assets/29937/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-drain-cover-8c39089e","thumbnailUrl":"https://cdn.3dassets.dev/assets/29937/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29937/v1/poster.webp","blurhash":"UA9Qs;%gITRi00j[xufR4TMxNHfk_Noextfl","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"exterior","title":"Exterior"},{"slug":"kit","title":"Kit / Set"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":102108,"triangles":168,"vertices":392,"meshes":6,"materials":4,"textures":2,"animations":["open","close"],"boundingBox":{"min":[-0.4099999964237213,0.000010684056971937972,-0.33001952896742603],"max":[0.4099999964237213,0.22001266252671842,0.33001952896742603]},"sizeMeters":[0.82,0.22,0.66],"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-08T05:11:51.072Z","updatedAt":"2026-09-08T05:11:51.215Z","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/29937/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 DrainCoverFireAndEmergencyServices(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/29937/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/29937/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29937/v1/model.glb\" alt=\"Drain Cover (Fire and Emergency Services)\" 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/29937/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/29937/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}},{"id":"29936","slug":"fire-and-emergency-services-wheelie-bin-fire-prop-18cd8894","title":"Wheelie Bin Fire Prop (Fire and Emergency Services)","summary":"Burnt out wheeled refuse bin with a slumped and melted front face, a warped lid and an ash smear on the ground under it.","description":"Burnt out wheeled refuse bin with a slumped and melted front face, a warped lid and an ash smear on the ground under it. Dimensions 1.10 by 1.02 by 1.10 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Bin 0.64 by 1.05 by 1.10 m including the ash. Static geometry: the lid is modelled warped open and does not hinge. Blank body, no council or contractor marking. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-wheelie-bin-fire-prop-18cd8894","cdnUrl":"https://cdn.3dassets.dev/assets/29936/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-wheelie-bin-fire-prop-18cd8894","thumbnailUrl":"https://cdn.3dassets.dev/assets/29936/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29936/v1/poster.webp","blurhash":"U06*UJ~q009F00D%Ioxu0K00aJ~q%M-;~qoz","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":10728,"triangles":344,"vertices":464,"meshes":1,"materials":1,"textures":0,"animations":[],"boundingBox":{"min":[-0.550000011920929,0.00001584903457607645,-0.45000001788139343],"max":[0.550000011920929,1.0199841318919376,0.6500000059604645]},"sizeMeters":[1.1,1.02,1.1],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Fable 5.1","downloads":0,"publishedAt":"2026-09-08T05:11:51.019Z","updatedAt":"2026-09-08T05:11:51.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29936/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function WheelieBinFirePropFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29936/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29936/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29936/v1/model.glb\" alt=\"Wheelie Bin Fire Prop (Fire and Emergency Services)\" 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/29936/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/29936/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29938","slug":"fire-and-emergency-services-gas-cylinder-da420c91","title":"Gas Cylinder (Fire and Emergency Services)","summary":"Industrial gas cylinder with a shoulder valve, a side spindle and a tread plate guard collar, standing on its foot ring.","description":"Industrial gas cylinder with a shoulder valve, a side spindle and a tread plate guard collar, standing on its foot ring. Dimensions 0.33 by 1.38 by 0.33 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Cylinder 0.33 by 1.38 by 0.33 m. Static geometry: the valve does not turn. The label panel is deliberately blank, with no gas name, hazard diamond or supplier mark, so a consumer can label it for its own setting. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-gas-cylinder-da420c91","cdnUrl":"https://cdn.3dassets.dev/assets/29938/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-gas-cylinder-da420c91","thumbnailUrl":"https://cdn.3dassets.dev/assets/29938/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29938/v1/poster.webp","blurhash":"U59rb8-B0K0|$+jFRjXS2[R*{fxaTJbvrqiw","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":67336,"triangles":420,"vertices":936,"meshes":5,"materials":5,"textures":1,"animations":[],"boundingBox":{"min":[-0.16500000655651093,0,-0.16250237164174822],"max":[0.16500000655651093,1.3800088501840244,0.16350251626460144]},"sizeMeters":[0.33,1.38,0.326],"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-08T05:11:51.871Z","updatedAt":"2026-09-08T05:11:51.983Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29938/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function GasCylinderFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29938/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29938/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29938/v1/model.glb\" alt=\"Gas Cylinder (Fire and Emergency Services)\" 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/29938/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/29938/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29940","slug":"fire-and-emergency-services-scorched-wall-section-82feeec2","title":"Scorched Wall Section (Fire and Emergency Services)","summary":"Scorched masonry wall section 2.60 m wide, with a blown out window opening, soot plumes above it and a broken top course.","description":"Scorched masonry wall section 2.60 m wide, with a blown out window opening, soot plumes above it and a broken top course. Dimensions 2.69 by 2.85 by 0.40 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Section 2.66 by 2.90 by 0.40 m. Static geometry. The face is blank render: no signage, address or country specific detail. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-scorched-wall-section-82feeec2","cdnUrl":"https://cdn.3dassets.dev/assets/29940/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-scorched-wall-section-82feeec2","thumbnailUrl":"https://cdn.3dassets.dev/assets/29940/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29940/v1/poster.webp","blurhash":"U4DJO|%M00_3-:~qoe4n4nofIU9F%N_3M{00","category":{"slug":"environments","title":"Environments & Scenes"},"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":65100,"triangles":684,"vertices":642,"meshes":2,"materials":2,"textures":1,"animations":[],"boundingBox":{"min":[-1.3300436143363317,0,-0.1999899108958433],"max":[1.3568417434180577,2.8541243076324463,0.1999899108958433]},"sizeMeters":[2.687,2.854,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-08T05:11:52.416Z","updatedAt":"2026-09-08T05:11:52.527Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29940/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function ScorchedWallSectionFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29940/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29940/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29940/v1/model.glb\" alt=\"Scorched Wall Section (Fire and Emergency Services)\" 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/29940/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/29940/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29939","slug":"fire-and-emergency-services-rubble-pile-ec713669","title":"Rubble Pile (Fire and Emergency Services)","summary":"Loose pile of broken masonry and scorched concrete with reinforcing bar ends poking out of it, about two metres across.","description":"Loose pile of broken masonry and scorched concrete with reinforcing bar ends poking out of it, about two metres across. Dimensions 2.03 by 0.71 by 2.31 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Pile 2.30 by 0.58 by 2.30 m. Static geometry: the blocks are placed, not simulated, and no two share a face plane. Service palette: signal red, high visibility yellow, charcoal, galvanised steel, station brick and glass, with scorch and soot on the incident pieces. Static geometry; no rig, animation, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-rubble-pile-ec713669","cdnUrl":"https://cdn.3dassets.dev/assets/29939/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-rubble-pile-ec713669","thumbnailUrl":"https://cdn.3dassets.dev/assets/29939/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29939/v1/poster.webp","blurhash":"U997eLoe00%MM{WBj[ay00Rk~qRj%ft7j@j[","category":{"slug":"environments","title":"Environments & Scenes"},"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":169464,"triangles":3348,"vertices":2890,"meshes":3,"materials":3,"textures":2,"animations":[],"boundingBox":{"min":[-1.1685881614685059,-0.000013020481578585041,-1.1234004497528076],"max":[0.8652457767480695,0.7110909490246694,1.1842893362045288]},"sizeMeters":[2.034,0.711,2.308],"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-08T05:11:52.255Z","updatedAt":"2026-09-08T05:11:52.348Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29939/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function RubblePileFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29939/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29939/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29939/v1/model.glb\" alt=\"Rubble Pile (Fire and Emergency Services)\" 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/29939/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/29939/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}},{"id":"29942","slug":"fire-and-emergency-services-station-turn-9a0dc357-starter-scene","title":"Station Turnout (Fire and Emergency Services)","summary":"A working fire station on a drill morning: a closed and roofed three bay hall built from the 4 m modules, the watch room and muster kit inside it, six appliances parked out on the forecourt with the ladder platform boom raised, a hydrant and hose run, a kit check laid out on...","description":"A working fire station on a drill morning: a closed and roofed three bay hall built from the 4 m modules, the watch room and muster kit inside it, six appliances parked out on the forecourt with the ladder platform boom raised, a hydrant and hose run, a kit check laid out on the apron, and a road traffic collision set up for extrication in the drill yard under the tower.","status":"published","url":"https://3dassets.dev/assets/fire-and-emergency-services-station-turn-9a0dc357-starter-scene","cdnUrl":"https://cdn.3dassets.dev/assets/29942/v1/model.glb","downloadUrl":"https://3dassets.dev/download/fire-and-emergency-services-station-turn-9a0dc357-starter-scene","thumbnailUrl":"https://cdn.3dassets.dev/assets/29942/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/29942/v1/poster.webp","blurhash":"UBB3scMy9Ytk00Rj%2s:00tRnPVs~W%2kqNH","category":{"slug":"environments","title":"Environments & Scenes"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"kit","title":"Kit / Set"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":1749124,"triangles":60344,"vertices":85954,"meshes":386,"materials":12,"textures":2,"animations":[],"boundingBox":{"min":[-8.180020700027834,0.15754962408710382,-12.180020700027834],"max":[16.14316394329071,14.478425941467286,13.496413922514773]},"sizeMeters":[24.323,14.321,25.676],"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-08T05:11:53.516Z","updatedAt":"2026-09-08T05:11:53.614Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/29942/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function StationTurnoutFireAndEmergencyServices(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/29942/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/29942/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/29942/v1/model.glb\" alt=\"Station Turnout (Fire and Emergency Services)\" 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/29942/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/29942/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}],"demo":null}}