# Free terrain 3D models for three.js (GLB, CC BY)
https://paprika3d.com/docs/models/terrain

24 free terrain models for three.js from the 210 in the paprika3d asset library (CC BY), as meshopt GLB files: each with its author, license, credit line, triangles and file size, and the asset_search call that fetches it.

## What the library holds

The paprika3d asset library holds 210 terrain models among its 57,732 models. All of them are licensed CC BY 4.0, which asks you to credit the author wherever you use the model; each card below carries the credit line to paste. 2 are AI-generated, from Scenario's 3D Collection, and say so on their card.

204 of the 210 pass the library's quality checks: textured (or drawn in vertex colours, for a low-poly or voxel model), not flat, at most 15 MB, with a name, a description and a real-world height. Among those, the median model has 10,500 triangles, with the middle half between 4,000 and 34,200, and the median file is 0.17 MB, with nine in ten at most 1.2 MB. The median one stands 10 m tall at real size. 2 carry a texture of 2048 px, the library's largest; the rest are smaller. 19 are animated and 7 rigged. The most common styles are low-poly (102), stylized (65) and realistic (20).

## Terrain models in a three.js scene

A terrain model here is a sculpted piece: a hill, a mountain, a valley diorama or a floating landscape, mostly low-poly (102 of the 204 that pass). Real sizes vary a great deal, since some authors modelled a whole mountain at full scale; pick with a `height` to get it in your scene's units, and set the camera's `far` plane to cover it.

To walk a character over it, cast a ray straight down from above the character each frame with `THREE.Raycaster` against the terrain mesh and set the character's height from the hit point. A raycast tests every triangle, so for a dense terrain add the `three-mesh-bvh` library and call `computeBoundsTree()` on the geometry, which makes each cast cheap. These pieces are closed sculpted scenery, not heightmaps: to deform the ground under a road or a footprint, build that patch as a `PlaneGeometry` whose vertices you can move, and blend it into the model at its edges.

## Fetch one and load it

With the paprika3d plugin in Claude Code, or its MCP server in any other agent, the agent searches the library in words or picks a model by the id on its card. `pick` downloads the file into the project's `assets/` folder (`public/assets/` under vite), adds the credit line to `assets/CREDITS.md` and answers with the code that loads it at real size. Give `cwd`, the project folder, as with every paprika3d tool.

```text
asset_search {"query": "terrain", "cwd": "."}
asset_search {"pick": "52ea645803c344a5bd6e7846abf195da", "cwd": "."}
```

Every file is a binary glTF (.glb) compressed with meshopt, so GLTFLoader needs the meshopt decoder that ships with three.js. The origin sits at the bottom centre of each model, so it stands on the floor where you place it:

```js
import * as THREE from 'three';
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import { MeshoptDecoder } from 'three/addons/libs/meshopt_decoder.module.js';

const loader = new GLTFLoader().setMeshoptDecoder(MeshoptDecoder);
const gltf = await loader.loadAsync('assets/terrain-object-4-52ea64.glb');
scene.add(gltf.scene);
```

## 24 terrain models to start from

Chosen from the 204 that pass the checks: the ones agents picked most through `asset_search` first, then the ones whose name says what they are, then lighter files, with at most 2 per author. Each CC BY card ends with its credit line: paste it into your credits, as the license requires.

![Terrain (Object 4)](https://paprika3d.com/media/assets/52ea645803c344a5bd6e7846abf195da.webp)

**[Terrain (Object 4)](https://sketchfab.com/3d-models/52ea645803c344a5bd6e7846abf195da)** by [alvinharyanto](https://sketchfab.com/alvinharyanto)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 6,146 triangles · 0.14 MB · low-poly · 15 m tall<br>`asset_search {"pick": "52ea645803c344a5bd6e7846abf195da"}`

<small>Credit: "Terrain (Object 4)" by alvinharyanto (https://sketchfab.com/3d-models/52ea645803c344a5bd6e7846abf195da) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Celta](https://paprika3d.com/media/assets/b0dbf7e538854246ae17e42f3731af3f.webp)

**[Celta](https://sketchfab.com/3d-models/b0dbf7e538854246ae17e42f3731af3f)** by [e-restrepo1114](https://sketchfab.com/EmanuelRestrepoVelez)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 6,057 triangles · 0.126 MB · stylized · 20 m tall<br>`asset_search {"pick": "b0dbf7e538854246ae17e42f3731af3f"}`

<small>Credit: "Celta" by e-restrepo1114 (https://sketchfab.com/3d-models/b0dbf7e538854246ae17e42f3731af3f) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Texture of terrein low poly](https://paprika3d.com/media/assets/c5a24e46f61a4b80a1c59825135b50d0.webp)

**[Texture of terrein low poly](https://sketchfab.com/3d-models/c5a24e46f61a4b80a1c59825135b50d0)** by [pame_chavez](https://sketchfab.com/pame_chavez)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 6,804 triangles · 0.488 MB · low-poly · 10 m tall<br>`asset_search {"pick": "c5a24e46f61a4b80a1c59825135b50d0"}`

<small>Credit: "Texture of terrein low poly" by pame_chavez (https://sketchfab.com/3d-models/c5a24e46f61a4b80a1c59825135b50d0) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![a hill](https://paprika3d.com/media/assets/1dea36be37cd4043beffe0ed032c2921.webp)

**[a hill](https://sketchfab.com/3d-models/1dea36be37cd4043beffe0ed032c2921)** by [phatpuke](https://sketchfab.com/phatpuke)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 3,038 triangles · 0.064 MB · low-poly · 3 m tall<br>`asset_search {"pick": "1dea36be37cd4043beffe0ed032c2921"}`

<small>Credit: "a hill" by phatpuke (https://sketchfab.com/3d-models/1dea36be37cd4043beffe0ed032c2921) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![mountains river](https://paprika3d.com/media/assets/d0afff6dc9514104a595e6ed9e771bfd.webp)

**[mountains river](https://sketchfab.com/3d-models/d0afff6dc9514104a595e6ed9e771bfd)** by [Fedor KoNsTaNtInOv](https://sketchfab.com/fkon408)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 15,569 triangles · 0.079 MB · low-poly · 80 m tall<br>`asset_search {"pick": "d0afff6dc9514104a595e6ed9e771bfd"}`

<small>Credit: "mountains river" by Fedor KoNsTaNtInOv (https://sketchfab.com/3d-models/d0afff6dc9514104a595e6ed9e771bfd) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Low Poly Landscape](https://paprika3d.com/media/assets/399417248cbf4d6a828457e9f4de8275.webp)

**[Low Poly Landscape](https://sketchfab.com/3d-models/399417248cbf4d6a828457e9f4de8275)** by [Fabsle](https://sketchfab.com/fabsle)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 6,707 triangles · 0.07 MB · low-poly · 10 m tall<br>`asset_search {"pick": "399417248cbf4d6a828457e9f4de8275"}`

<small>Credit: "Low Poly Landscape" by Fabsle (https://sketchfab.com/3d-models/399417248cbf4d6a828457e9f4de8275) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Cliff](https://paprika3d.com/media/assets/c0e4981788894e15ba6c56f199950c67.webp)

**[Cliff](https://sketchfab.com/3d-models/c0e4981788894e15ba6c56f199950c67)** by [gilelnekave](https://sketchfab.com/gilelnekave)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 4,256 triangles · 0.06 MB · low-poly · 5 m tall<br>`asset_search {"pick": "c0e4981788894e15ba6c56f199950c67"}`

<small>Credit: "Cliff" by gilelnekave (https://sketchfab.com/3d-models/c0e4981788894e15ba6c56f199950c67) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Finished Mountain Diorama](https://paprika3d.com/media/assets/241aef30692943d98d065bab595096e0.webp)

**[Finished Mountain Diorama](https://sketchfab.com/3d-models/241aef30692943d98d065bab595096e0)** by [christian.nazar](https://sketchfab.com/christian.nazar)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 2,407 triangles · 0.116 MB · low-poly · 0.5 m tall<br>`asset_search {"pick": "241aef30692943d98d065bab595096e0"}`

<small>Credit: "Finished Mountain Diorama" by christian.nazar (https://sketchfab.com/3d-models/241aef30692943d98d065bab595096e0) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Mountain Route](https://paprika3d.com/media/assets/9deee5e560ad4daface5f99903b6bc9d.webp)

**[Mountain Route](https://sketchfab.com/3d-models/9deee5e560ad4daface5f99903b6bc9d)** by [aycasert\_](https://sketchfab.com/aycasert_)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 31,512 triangles · 0.273 MB · low-poly · 30 m tall<br>`asset_search {"pick": "9deee5e560ad4daface5f99903b6bc9d"}`

<small>Credit: "Mountain Route" by aycasert\_ (https://sketchfab.com/3d-models/9deee5e560ad4daface5f99903b6bc9d) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Snow Mountain](https://paprika3d.com/media/assets/28d511ddb8624eee9684e93824e543f5.webp)

**[Snow Mountain](https://sketchfab.com/3d-models/28d511ddb8624eee9684e93824e543f5)** by [nigromancer](https://sketchfab.com/nigromancer)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 1,115 triangles · 0.075 MB · low-poly · 1500 m tall<br>`asset_search {"pick": "28d511ddb8624eee9684e93824e543f5"}`

<small>Credit: "Snow Mountain" by nigromancer (https://sketchfab.com/3d-models/28d511ddb8624eee9684e93824e543f5) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![low poly floating mountain](https://paprika3d.com/media/assets/f12e86ebce6f44b98e8cc79d699e279d.webp)

**[low poly floating mountain](https://sketchfab.com/3d-models/f12e86ebce6f44b98e8cc79d699e279d)** by [Akbaragill](https://sketchfab.com/akbaragill)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 13,480 triangles · 0.103 MB · low-poly · 8 m tall<br>`asset_search {"pick": "f12e86ebce6f44b98e8cc79d699e279d"}`

<small>Credit: "low poly floating mountain" by Akbaragill (https://sketchfab.com/3d-models/f12e86ebce6f44b98e8cc79d699e279d) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Low poly landscape island](https://paprika3d.com/media/assets/140e0e026e80470999ab1a1dd11f4035.webp)

**[Low poly landscape island](https://sketchfab.com/3d-models/140e0e026e80470999ab1a1dd11f4035)** by [Marco X](https://sketchfab.com/marco.x)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 7,325 triangles · 0.181 MB · low-poly · 50 m tall<br>`asset_search {"pick": "140e0e026e80470999ab1a1dd11f4035"}`

<small>Credit: "Low poly landscape island" by Marco X (https://sketchfab.com/3d-models/140e0e026e80470999ab1a1dd11f4035) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Landscape_NEW](https://paprika3d.com/media/assets/8edf385eaf194dd289fbd770672733ea.webp)

**[Landscape_NEW](https://sketchfab.com/3d-models/8edf385eaf194dd289fbd770672733ea)** by [Cxrly97](https://sketchfab.com/Cxrly97)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 81,932 triangles · 0.351 MB · low-poly · 30 m tall<br>`asset_search {"pick": "8edf385eaf194dd289fbd770672733ea"}`

<small>Credit: "Landscape_NEW" by Cxrly97 (https://sketchfab.com/3d-models/8edf385eaf194dd289fbd770672733ea) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Glass Mountain](https://paprika3d.com/media/assets/bbed0db98b944fadbeecda64d6fd415a.webp)

**[Glass Mountain](https://sketchfab.com/3d-models/bbed0db98b944fadbeecda64d6fd415a)** by [Adan](https://sketchfab.com/Apdigivid.)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 588 triangles · 0.041 MB · stylized · 0.5 m tall<br>`asset_search {"pick": "bbed0db98b944fadbeecda64d6fd415a"}`

<small>Credit: "Glass Mountain" by Adan (https://sketchfab.com/3d-models/bbed0db98b944fadbeecda64d6fd415a) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Mountain](https://paprika3d.com/media/assets/b6bc6828d6184702849ccbbac41f72bd.webp)

**[Mountain](https://sketchfab.com/3d-models/b6bc6828d6184702849ccbbac41f72bd)** by [Doge3465](https://sketchfab.com/phunnipath)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 81,656 triangles · 1.006 MB · stylized · 1000 m tall<br>`asset_search {"pick": "b6bc6828d6184702849ccbbac41f72bd"}`

<small>Credit: "Mountain" by Doge3465 (https://sketchfab.com/3d-models/b6bc6828d6184702849ccbbac41f72bd) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Mountain View](https://paprika3d.com/media/assets/48582a6a0eef4f5193ef5b18fd7e4397.webp)

**[Mountain View](https://sketchfab.com/3d-models/48582a6a0eef4f5193ef5b18fd7e4397)** by [suvtab](https://sketchfab.com/suvtab)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 4,126 triangles · 0.046 MB · low-poly · 10 m tall<br>`asset_search {"pick": "48582a6a0eef4f5193ef5b18fd7e4397"}`

<small>Credit: "Mountain View" by suvtab (https://sketchfab.com/3d-models/48582a6a0eef4f5193ef5b18fd7e4397) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Low-poly snowy mountain peak](https://paprika3d.com/media/assets/scn_C5PMkQ13mwg9UrEkfCRp6jCP.webp)

**[Low-poly snowy mountain peak](https://huggingface.co/datasets/scenario-labs/3d-collection/tree/main/assets/scenario_asset_C5PMkQ13mwg9UrEkfCRp6jCP)** by [Scenario](https://www.scenario.com)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 306 triangles · 0.337 MB · low-poly · 3 m tall · AI-generated<br>`asset_search {"pick": "scn_C5PMkQ13mwg9UrEkfCRp6jCP"}`

<small>Credit: "Low-poly snowy mountain peak" by Scenario (https://huggingface.co/datasets/scenario-labs/3d-collection/tree/main/assets/scenario_asset_C5PMkQ13mwg9UrEkfCRp6jCP) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). AI-generated with meshy-7-1-txt23d. Optimized for the web by paprika3D.</small>

![The Old Upsiedaisieum Mine](https://paprika3d.com/media/assets/0e0d887856d54ed3935c06f8dcd3bc5d.webp)

**[The Old Upsiedaisieum Mine](https://sketchfab.com/3d-models/0e0d887856d54ed3935c06f8dcd3bc5d)** by [doggerel1](https://sketchfab.com/doggerel1)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 70,000 triangles · 1.241 MB · stylized · 15 m tall · animated<br>`asset_search {"pick": "0e0d887856d54ed3935c06f8dcd3bc5d"}`

<small>Credit: "The Old Upsiedaisieum Mine" by doggerel1 (https://sketchfab.com/3d-models/0e0d887856d54ed3935c06f8dcd3bc5d) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![meatBall77 \| schoolHomework \| Practice001](https://paprika3d.com/media/assets/18938d30dd3f41e58771b4f8aac910c7.webp)

**[meatBall77 \| schoolHomework \| Practice001](https://sketchfab.com/3d-models/18938d30dd3f41e58771b4f8aac910c7)** by [meatBall77](https://sketchfab.com/wishPeaceNHappiness)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 20,705 triangles · 0.442 MB · low-poly · 10 m tall · animated<br>`asset_search {"pick": "18938d30dd3f41e58771b4f8aac910c7"}`

<small>Credit: "meatBall77 \| schoolHomework \| Practice001" by meatBall77 (https://sketchfab.com/3d-models/18938d30dd3f41e58771b4f8aac910c7) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Floating Island Piece](https://paprika3d.com/media/assets/7c2850177a454beaa936bd1efe2bae50.webp)

**[Floating Island Piece](https://sketchfab.com/3d-models/7c2850177a454beaa936bd1efe2bae50)** by [Shackerz_Design](https://sketchfab.com/Shackerz_Design)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 39,005 triangles · 3.497 MB · stylized · 5 m tall<br>`asset_search {"pick": "7c2850177a454beaa936bd1efe2bae50"}`

<small>Credit: "Floating Island Piece" by Shackerz_Design (https://sketchfab.com/3d-models/7c2850177a454beaa936bd1efe2bae50) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Tiny world](https://paprika3d.com/media/assets/2aa07e72adeb4fd3bb6bd1b944d750d2.webp)

**[Tiny world](https://sketchfab.com/3d-models/2aa07e72adeb4fd3bb6bd1b944d750d2)** by [mizda3d](https://sketchfab.com/mizda3d)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 15,166 triangles · 0.218 MB · low-poly · 800 m tall<br>`asset_search {"pick": "2aa07e72adeb4fd3bb6bd1b944d750d2"}`

<small>Credit: "Tiny world" by mizda3d (https://sketchfab.com/3d-models/2aa07e72adeb4fd3bb6bd1b944d750d2) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Ostrov](https://paprika3d.com/media/assets/c9893d5ee49844ab961994dadcff257f.webp)

**[Ostrov](https://sketchfab.com/3d-models/c9893d5ee49844ab961994dadcff257f)** by [robari](https://sketchfab.com/robari)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 7,926 triangles · 0.127 MB · low-poly · 5 m tall<br>`asset_search {"pick": "c9893d5ee49844ab961994dadcff257f"}`

<small>Credit: "Ostrov" by robari (https://sketchfab.com/3d-models/c9893d5ee49844ab961994dadcff257f) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Nature_Plate_27](https://paprika3d.com/media/assets/49e3159c1d9b4e5583ed989f7a47a13d.webp)

**[Nature_Plate_27](https://sketchfab.com/3d-models/49e3159c1d9b4e5583ed989f7a47a13d)** by [BlackSpire](https://sketchfab.com/blackspire)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 34 triangles · 0.025 MB · low-poly · 5 m tall<br>`asset_search {"pick": "49e3159c1d9b4e5583ed989f7a47a13d"}`

<small>Credit: "Nature_Plate_27" by BlackSpire (https://sketchfab.com/3d-models/49e3159c1d9b4e5583ed989f7a47a13d) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![TARANAK Itogether](https://paprika3d.com/media/assets/b15c41633c2844ef9b3f1c447b43fdc0.webp)

**[TARANAK Itogether](https://sketchfab.com/3d-models/b15c41633c2844ef9b3f1c447b43fdc0)** by [Tom.Bywater](https://sketchfab.com/Tom.Bywater)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 3,554 triangles · 0.4 MB · realistic · 2518 m tall<br>`asset_search {"pick": "b15c41633c2844ef9b3f1c447b43fdc0"}`

<small>Credit: "TARANAK Itogether" by Tom.Bywater (https://sketchfab.com/3d-models/b15c41633c2844ef9b3f1c447b43fdc0) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

## Related

- [Free tree 3D models for three.js (GLB, CC BY)](https://paprika3d.com/docs/models/trees)
- [Free palm tree 3D models for three.js (GLB, CC BY)](https://paprika3d.com/docs/models/palm-trees)
- [Free flower 3D models for three.js (GLB, CC BY)](https://paprika3d.com/docs/models/flowers)

Counts from the library's catalog on 2026-10-28. The models are their authors' work under the license on each card; paprika3d converted them for the web.

Updated 2026-10-28.
