{"data":{"id":"35454","slug":"clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2","title":"Jacket on a hanger (Clothing Rail and Wardrobe)","summary":"A navy jacket on a beech hanger with open lapels, a full length zip with a modelled pull and two patch pockets, cut a little fuller than a shirt so it reads as outerwear on a rail.","description":"A navy jacket on a beech hanger with open lapels, a full length zip with a modelled pull and two patch pockets, cut a little fuller than a shirt so it reads as outerwear on a rail. Dimensions 0.67 by 0.83 by 0.17 m (X by Y by Z). Metre units, +Y up, front toward +Z. The origin is free and sits at the point where the hook rests down on a rail, so placing it at a rail top hangs it on the rail. It hangs on its hanger: the whole model, garment and hanger together, sits below the origin, so dropping it at a rail top puts it on the rail. The fabric is static geometry in a settled pose: there is no cloth simulation and no skinning in this library, so nothing here drapes, swings or creases at runtime. Every swing ticket, size cube face, neck label and sign panel is blank: no clothing brand, retailer or trade dress anywhere in this pack. Static geometry; no rig, collision or navigation data.","status":"published","url":"https://3dassets.dev/assets/clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2","cdnUrl":"https://cdn.3dassets.dev/assets/35454/v1/model.glb","downloadUrl":"https://3dassets.dev/download/clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2","thumbnailUrl":"https://cdn.3dassets.dev/assets/35454/v1/thumb.webp","posterUrl":"https://cdn.3dassets.dev/assets/35454/v1/poster.webp","blurhash":"U67xI7x^00Dioft8M{M_4TM_.A%MS4Wm%Lxb","category":{"slug":"props","title":"Props & Furniture"},"tags":[{"slug":"modern","title":"Modern"},{"slug":"realistic","title":"Realistic"},{"slug":"interior","title":"Interior"}],"license":{"slug":"cc0-1.0","name":"CC0 1.0 Universal","url":"https://creativecommons.org/publicdomain/zero/1.0/","attributionRequired":false},"contributor":{"username":"3dassets","name":"3D Assets","url":"https://3dassets.dev/u/3dassets"},"stats":{"fileSize":52992,"triangles":1188,"vertices":2635,"meshes":4,"materials":4,"textures":0,"animations":[],"boundingBox":{"min":[-0.33320000767707825,-0.8240000009536743,-0.08000245588320082],"max":[0.33320000767707825,0.007262674160301685,0.09401148014058089]},"sizeMeters":[0.666,0.831,0.174],"hasDraco":false,"hasMeshopt":false,"hasKTX2":false,"extensionsUsed":["KHR_mesh_quantization"]},"aiGenerated":true,"aiModel":"Claude Opus 5","downloads":0,"publishedAt":"2026-09-11T15:20:54.479Z","updatedAt":"2026-09-11T15:20:54.593Z","usage":{"threejs":"import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'\n\nconst loader = new GLTFLoader()\nloader.load('https://cdn.3dassets.dev/assets/35454/v1/model.glb', (gltf) => {\n  scene.add(gltf.scene)\n})","r3f":"import { useGLTF } from '@react-three/drei'\n\nexport function JacketOnAHangerClothingRailAndWardrobe(props) {\n  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35454/v1/model.glb')\n  return <primitive object={scene} {...props} />\n}\nuseGLTF.preload('https://cdn.3dassets.dev/assets/35454/v1/model.glb')","modelViewer":"<model-viewer src=\"https://cdn.3dassets.dev/assets/35454/v1/model.glb\" alt=\"Jacket on a hanger (Clothing Rail and Wardrobe)\" 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/35454/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/35454/v1/model.glb\")) await gltf.InstantiateMainSceneAsync(transform);"}}}