# Hanging Scroll Pair (Imperial China Palace and Garden)

A pair of hanging scrolls on a wall rail: silk mounts with timber rollers and abstract brushed fields, hung side by side.

- **URL:** https://3dassets.dev/assets/imperial-china-palace-and-garden-hanging-scroll-pair-81f2dffc
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/36208/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/imperial-china-palace-and-garden-hanging-scroll-pair-81f2dffc
- **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:** Historical, Stylized, Interior
- **Geometry:** 572 triangles, 830 vertices, 6 meshes, 6 materials, 0 textures
- **Size (m):** 1.5 × 1.52 × 0.09
- **Animations:** none
- **File size:** 0.02 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Opus 5

## About

A pair of hanging scrolls on a wall rail: silk mounts with timber rollers and abstract brushed fields, hung side by side. Overall 1.50 by 1.52 by 0.09 m (X by Y by Z). Metre units, +Y up, the side a visitor approaches from toward +Z, resting on y=0. Rail 1.5 m wide, hanging to 0.44 m above the floor when mounted at 1.93 m; the painted faces look toward +Z. The silk is rigid and the painted fields are abstract blocks with no characters. Every carved and painted motif is invented and no surface carries characters of any script. 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/36208/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

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

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

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/36208/v1/model.glb" alt="Hanging Scroll Pair (Imperial China Palace and Garden)" 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/36208/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/36208/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/imperial-china-palace-and-garden-hanging-scroll-pair-81f2dffc · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.