{"data":{"id":"37612","slug":"radio-telescope-array-and-field-station-dish-antenna-s-357d0abf","title":"Small Parabolic Dish Antenna (Radio Telescope Array and Field Station)","summary":"A three metre parabolic dish on a short pedestal, the outrigger of a field array or a monitoring antenna beside the cabins, slewing and tilting on its own nodes.","description":"A three metre parabolic dish on a short pedestal, the outrigger of a field array or a monitoring antenna beside the cabins, slewing and tilting on its own nodes. Dimensions 3.00 by 4.48 by 2.98 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at ground level. Animated pivot nodes: azimuth at (0.00, 1.82, 0.00) m; elevation at (0.00, 2.95, 0.00) m. Reflector 3.0 m across with a 0.68 m rise and the feed at the 0.83 m focus. The azimuth turret turns about the pedestal axis and the reflector tilts about the yoke axle at 2.95 m, with the feed quadripod and counterweight carried by the reflector node. Modelled at forty five degrees elevation. Radio array low-poly palette: antenna white, concrete grey, galvanised steel, charcoal, pale and dark steppe earth, dry scrub and safety red. Rigid node-transform clips: spin and tilt. No skinning. No collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/radio-telescope-array-and-field-station-dish-antenna-s-357d0abf","cdnUrl":"https://cdn.3dassets.dev/assets/37612/v1/model.glb","downloadUrl":"https://3dassets.dev/download/radio-telescope-array-and-field-station-dish-antenna-s-357d0abf","thumbnailUrl":"https://cdn.3dassets.dev/assets/37612/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/37612/v1/poster.webp","blurhash":"UCCsmq-;009F~qt79FWB00M{?bxu00Rj-;of","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"low-poly","title":"Low Poly"},{"slug":"exterior","title":"Exterior"},{"slug":"animated","title":"Animated"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":49092,"triangles":916,"vertices":2748,"meshes":6,"materials":3,"textures":0,"animations":["spin","tilt"],"boundingBox":{"min":[-1.5,-0.000026853202638413287,-1.4424978494644165],"max":[1.5,4.483027860328161,1.5380278603281599]},"sizeMeters":[3,4.483,2.981],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-12T05:41:19.077Z","updatedAt":"2026-09-12T05:41:19.173Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\nimport { AnimationMixer } from 'three'\n\nlet mixer\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/37612/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 SmallParabolicDishAntennaRadioTelescopeArrayAndFieldStation(props) {\n  const { scene, animations } = useGLTF('https://cdn.3dassets.dev/assets/37612/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/37612/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/37612/v1/model.glb\" alt=\"Small Parabolic Dish Antenna (Radio Telescope Array and Field Station)\" 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/37612/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/37612/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);\n// Clips import as legacy AnimationClips on the root; GetComponent<Animation>().Play() starts the first."}}}