Free terrain 3D models for three.js (GLB, CC BY)

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.

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:

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)

Terrain (Object 4) by alvinharyanto
CC BY 4.0 · 6,146 triangles · 0.14 MB · low-poly · 15 m tall
asset_search {"pick": "52ea645803c344a5bd6e7846abf195da"}

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.

Celta

Celta by e-restrepo1114
CC BY 4.0 · 6,057 triangles · 0.126 MB · stylized · 20 m tall
asset_search {"pick": "b0dbf7e538854246ae17e42f3731af3f"}

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.

Texture of terrein low poly

Texture of terrein low poly by pame_chavez
CC BY 4.0 · 6,804 triangles · 0.488 MB · low-poly · 10 m tall
asset_search {"pick": "c5a24e46f61a4b80a1c59825135b50d0"}

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.

a hill

a hill by phatpuke
CC BY 4.0 · 3,038 triangles · 0.064 MB · low-poly · 3 m tall
asset_search {"pick": "1dea36be37cd4043beffe0ed032c2921"}

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.

mountains river

mountains river by Fedor KoNsTaNtInOv
CC BY 4.0 · 15,569 triangles · 0.079 MB · low-poly · 80 m tall
asset_search {"pick": "d0afff6dc9514104a595e6ed9e771bfd"}

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.

Low Poly Landscape

Low Poly Landscape by Fabsle
CC BY 4.0 · 6,707 triangles · 0.07 MB · low-poly · 10 m tall
asset_search {"pick": "399417248cbf4d6a828457e9f4de8275"}

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.

Cliff

Cliff by gilelnekave
CC BY 4.0 · 4,256 triangles · 0.06 MB · low-poly · 5 m tall
asset_search {"pick": "c0e4981788894e15ba6c56f199950c67"}

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.

Finished Mountain Diorama

Finished Mountain Diorama by christian.nazar
CC BY 4.0 · 2,407 triangles · 0.116 MB · low-poly · 0.5 m tall
asset_search {"pick": "241aef30692943d98d065bab595096e0"}

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.

Mountain Route

Mountain Route by aycasert_
CC BY 4.0 · 31,512 triangles · 0.273 MB · low-poly · 30 m tall
asset_search {"pick": "9deee5e560ad4daface5f99903b6bc9d"}

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.

Snow Mountain

Snow Mountain by nigromancer
CC BY 4.0 · 1,115 triangles · 0.075 MB · low-poly · 1500 m tall
asset_search {"pick": "28d511ddb8624eee9684e93824e543f5"}

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.

low poly floating mountain

low poly floating mountain by Akbaragill
CC BY 4.0 · 13,480 triangles · 0.103 MB · low-poly · 8 m tall
asset_search {"pick": "f12e86ebce6f44b98e8cc79d699e279d"}

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.

Low poly landscape island

Low poly landscape island by Marco X
CC BY 4.0 · 7,325 triangles · 0.181 MB · low-poly · 50 m tall
asset_search {"pick": "140e0e026e80470999ab1a1dd11f4035"}

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.

Landscape_NEW

Landscape_NEW by Cxrly97
CC BY 4.0 · 81,932 triangles · 0.351 MB · low-poly · 30 m tall
asset_search {"pick": "8edf385eaf194dd289fbd770672733ea"}

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.

Glass Mountain

Glass Mountain by Adan
CC BY 4.0 · 588 triangles · 0.041 MB · stylized · 0.5 m tall
asset_search {"pick": "bbed0db98b944fadbeecda64d6fd415a"}

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.

Mountain

Mountain by Doge3465
CC BY 4.0 · 81,656 triangles · 1.006 MB · stylized · 1000 m tall
asset_search {"pick": "b6bc6828d6184702849ccbbac41f72bd"}

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.

Mountain View

Mountain View by suvtab
CC BY 4.0 · 4,126 triangles · 0.046 MB · low-poly · 10 m tall
asset_search {"pick": "48582a6a0eef4f5193ef5b18fd7e4397"}

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.

Low-poly snowy mountain peak

Low-poly snowy mountain peak by Scenario
CC BY 4.0 · 306 triangles · 0.337 MB · low-poly · 3 m tall · AI-generated
asset_search {"pick": "scn_C5PMkQ13mwg9UrEkfCRp6jCP"}

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.

The Old Upsiedaisieum Mine

The Old Upsiedaisieum Mine by doggerel1
CC BY 4.0 · 70,000 triangles · 1.241 MB · stylized · 15 m tall · animated
asset_search {"pick": "0e0d887856d54ed3935c06f8dcd3bc5d"}

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.

meatBall77 | schoolHomework | Practice001

meatBall77 | schoolHomework | Practice001 by meatBall77
CC BY 4.0 · 20,705 triangles · 0.442 MB · low-poly · 10 m tall · animated
asset_search {"pick": "18938d30dd3f41e58771b4f8aac910c7"}

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.

Floating Island Piece

Floating Island Piece by Shackerz_Design
CC BY 4.0 · 39,005 triangles · 3.497 MB · stylized · 5 m tall
asset_search {"pick": "7c2850177a454beaa936bd1efe2bae50"}

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.

Tiny world

Tiny world by mizda3d
CC BY 4.0 · 15,166 triangles · 0.218 MB · low-poly · 800 m tall
asset_search {"pick": "2aa07e72adeb4fd3bb6bd1b944d750d2"}

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.

Ostrov

Ostrov by robari
CC BY 4.0 · 7,926 triangles · 0.127 MB · low-poly · 5 m tall
asset_search {"pick": "c9893d5ee49844ab961994dadcff257f"}

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.

Nature_Plate_27

Nature_Plate_27 by BlackSpire
CC BY 4.0 · 34 triangles · 0.025 MB · low-poly · 5 m tall
asset_search {"pick": "49e3159c1d9b4e5583ed989f7a47a13d"}

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.

TARANAK Itogether

TARANAK Itogether by Tom.Bywater
CC BY 4.0 · 3,554 triangles · 0.4 MB · realistic · 2518 m tall
asset_search {"pick": "b15c41633c2844ef9b3f1c447b43fdc0"}

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.

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.