# Fish Shoal Plate (Sunken City and Underwater Ruins)

Decorative shoal plate: twenty six flat fish forms on two crossed cards, about 3.2 m wide and 1.9 m tall, for hanging over a ruin.

- **URL:** https://3dassets.dev/assets/sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c
- **GLB (direct, CORS *, immutable):** https://cdn.3dassets.dev/assets/36998/v1/model.glb
- **Download (counted):** https://3dassets.dev/download/sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c
- **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:** Effects & Primitives
- **Tags:** Fantasy, Low Poly, Exterior
- **Geometry:** 520 triangles, 1,560 vertices, 1 meshes, 1 materials, 0 textures
- **Size (m):** 3.508 × 1.731 × 2.892
- **Animations:** none
- **File size:** 0.02 MB
- **Downloads:** 0
- **AI used (contributor-reported):** yes; model: Claude Opus 5

## About

Decorative shoal plate: twenty six flat fish forms on two crossed cards, about 3.2 m wide and 1.9 m tall, for hanging over a ruin. Dimensions 3.51 by 1.73 by 2.89 m (X by Y by Z). Metre units, +Y up, +Z front, origin on the footprint at seabed level. Flat decoration rather than creatures: the forms are solid, unrigged and unanimated, and the pack contains no animals of any kind. The origin is at the foot of the cards; place it a metre or two above the seabed. Sunken city palette: weathered grey limestone and dark algae stained stone, pale silt, deep green weed, coral pink, waterlogged timber, tarnished bronze and one translucent blue emissive for glow, bubbles and light. Static geometry; no rig, animation, 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/36998/v1/model.glb', (gltf) => {
  scene.add(gltf.scene)
})
```

## React Three Fiber

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

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

## <model-viewer>

```html
<model-viewer src="https://cdn.3dassets.dev/assets/36998/v1/model.glb" alt="Fish Shoal Plate (Sunken City and Underwater Ruins)" 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/36998/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/36998/v1/model.glb")) await gltf.InstantiateMainSceneAsync(transform);
```

---
JSON: https://3dassets.dev/api/v1/assets/sunken-city-and-underwater-ruins-fish-shoal-plate-0fcb472c · Loads with a plain GLTFLoader: no Draco/KTX2 loaders needed.