# Castle Wall Under Assault (Medieval Siege and Castle Defence)

Forty metres of defended curtain on the 4 m wall grid, with a barred gate, a cracked bay and an open breach in it. Timber hoardings bracket the wall head in two runs, defenders work the merlons over a pitch cauldron, braziers and stocked arrows, and a repair scaffold stands...

- **URL:** https://3dassets.dev/assets/medieval-siege-and-castle-defence-castle-639472aa-starter-scene
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/28895/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/medieval-siege-and-castle-defence-castle-639472aa-starter-scene
- **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:** Environments & Scenes
- **Tags:** Medieval, Low Poly, Kit / Set
- **Geometry:** 28,904 triangles, 67,012 vertices, 281 meshes, 8 materials, 0 textures
- **Size (m):** 40.245 × 9.123 × 40.377
- **Animations:** none
- **File size:** 1.25 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Fable 5.1

## About

Forty metres of defended curtain on the 4 m wall grid, with a barred gate, a cracked bay and an open breach in it. Timber hoardings bracket the wall head in two runs, defenders work the merlons over a pitch cauldron, braziers and stocked arrows, and a repair scaffold stands behind the breach. Below, the ram penthouse is at the gate, the siege tower is closing on the eastern wall and hooked ladders are on the stone with men climbing them. Back in the field the trebuchets, the mangonel and the springald shoot from behind gabions and mantlets with their crews, and the besiegers camp sits inside its own gated palisade at the rear.

## Use with three.js

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

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

## React Three Fiber

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

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

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/28895/v1/model.glb" alt="Castle Wall Under Assault (Medieval Siege and Castle Defence)" 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/28895/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/28895/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/medieval-siege-and-castle-defence-castle-639472aa-starter-scene · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.