# Jacket on a hanger (Clothing Rail and Wardrobe)

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.

- **URL:** https://3dassets.dev/assets/clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/35454/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2
- **Licence:** CC0 1.0 Universal: https://creativecommons.org/publicdomain/zero/1.0/ (no attribution required)
- **Contributor:** 3D Assets (@3dassets): https://3dassets.dev/u/3dassets
- **Category:** Props & Furniture
- **Tags:** Modern, Realistic, Interior
- **Geometry:** 1,188 triangles, 2,635 vertices, 4 meshes, 4 materials, 0 textures
- **Size (m):** 0.666 × 0.831 × 0.174
- **Animations:** none
- **File size:** 0.05 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Opus 5

## About

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.

## Use with three.js

```js
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js'

const loader = new GLTFLoader()
loader.load('https://cdn.3dassets.dev/assets/35454/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

```jsx
import { useGLTF } from '@react-three/drei'

export function JacketOnAHangerClothingRailAndWardrobe(props) {
  const { scene } = useGLTF('https://cdn.3dassets.dev/assets/35454/v1/model.glb')
  return <primitive object={scene} {...props} />
}
useGLTF.preload('https://cdn.3dassets.dev/assets/35454/v1/model.glb')
```

## <model-viewer>

```html
<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

```python
# Blender 4.x: File > Import > glTF 2.0, or from the Python console after downloading the file.
import bpy
bpy.ops.import_scene.gltf(filepath='model.glb')  # from https://cdn.3dassets.dev/assets/35454/v1/model.glb
# Metres and +Y up are converted to Blender's Z-up scene automatically.
```

## Godot

```gdscript
# Godot 4: copy model.glb into res://models/ and the editor imports it as a scene.
var packed := load("res://models/model.glb") as PackedScene
var model := packed.instantiate()
add_child(model)
```

## Unity

```csharp
// Unity: import model.glb with glTFast (Package Manager: com.unity.cloud.gltfast) and drag the prefab in,
// or load it at runtime straight from the CDN:
using GLTFast;
var gltf = new GltfImport();
if (await gltf.Load("https://cdn.3dassets.dev/assets/35454/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/clothing-rail-and-wardrobe-jacket-on-hanger-6b9e72e2 · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.