{"data":{"id":"34061","slug":"wind-and-solar-energy-farm-solar-inverter-cabinet-86cdbef0","title":"Solar Inverter Cabinet (Wind and Solar Energy Farm)","summary":"A string inverter cabinet: a 2.1 m grey enclosure on a plinth with a rain hood, cooling louvres, a hazard plate and two front doors that swing open on their own hinges.","description":"A string inverter cabinet: a 2.1 m grey enclosure on a plinth with a rain hood, cooling louvres, a hazard plate and two front doors that swing open on their own hinges. Dimensions 1.50 by 2.15 by 1.04 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: door-left at (-0.65, 0.24, 0.37) m; door-right at (0.65, 0.24, 0.37) m. The two door leaves are separate nodes hinged on the outer stiles and share one open and close pair. The switchgear inside is not modelled; the cable gland box at the back is fixed. Renewables low-poly palette: turbine white, concrete grey, site grass, galvanised steel, charcoal, photovoltaic blue, safety yellow and warning red. Rigid node-transform clips: open and close. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/wind-and-solar-energy-farm-solar-inverter-cabinet-86cdbef0","cdnUrl":"https://cdn.3dassets.dev/assets/34061/v1/model.glb","downloadUrl":"https://3dassets.dev/download/wind-and-solar-energy-farm-solar-inverter-cabinet-86cdbef0","thumbnailUrl":"https://cdn.3dassets.dev/assets/34061/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/34061/v1/poster.webp","blurhash":"U5FFvy~q0000?b%MIUD%00M{-;xb?b%MIUD%","category":{"slug":"roads-infrastructure","title":"Roads & Infrastructure"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"stylized","title":"Stylized"},{"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":16996,"triangles":264,"vertices":792,"meshes":8,"materials":4,"textures":0,"animations":["open","close"],"boundingBox":{"min":[-0.7500346418477307,0,-0.6100288290359567],"max":[0.7500346418477307,2.1492247581481934,0.43500076244125024]},"sizeMeters":[1.5,2.149,1.045],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T06:20:38.031Z","updatedAt":"2026-09-11T06:20:38.134Z","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/34061/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 SolarInverterCabinetWindAndSolarEnergyFarm(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/34061/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/34061/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/34061/v1/model.glb\" alt=\"Solar Inverter Cabinet (Wind and Solar Energy Farm)\" 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/34061/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/34061/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}}}