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

17 free rocks for three.js from the 45 in the paprika3d asset library (CC BY and CC0), 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 45 rocks among its 57,732 models. 43 of them are licensed CC BY 4.0, which asks you to credit the author wherever you use the model, and 2 are CC0, which asks nothing. 1 are AI-generated, from Scenario's 3D Collection, and say so on their card.

45 of the 45 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 4,880 triangles, with the middle half between 960 and 37,000, and the median file is 0.22 MB, with nine in ten at most 1.3 MB. The median one stands 1 m tall at real size. 1 carry a texture of 2048 px, the library's largest; the rest are smaller. The most common styles are stylized (16), realistic (14) and low-poly (5).

## Rocks in a three.js scene

Rocks repeat more than other props, so the work is hiding the repetition. Load several different rocks, then scatter each through an `InstancedMesh` with a random rotation on all three axes and an uneven scale (stretch one axis a little); one rock seen at many angles reads as many rocks. Sink each copy slightly into the ground so no gap shows beneath it: its origin is the bottom of its bounds, so a rock set at ground height merely touches it.

Scanned and realistic rocks carry their look in a normal map and a detailed colour texture. Dense ones go past the 37,000 triangles of the upper quartile here, and `model_audit` shows the count and texture sizes before you place hundreds. For physics, give a rock a sphere, box or convex-hull collider, never the render mesh. On a large map, split the scatter into one `InstancedMesh` per area: three.js culls an instanced mesh as a whole, by the sphere around all its instances, so a single map-wide one is drawn every frame.

## 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": "rock", "cwd": "."}
asset_search {"pick": "c6b9a92e244c4f3bb676ddb6b5bde5c3", "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/stylized-rock-c6b9a9.glb');
scene.add(gltf.scene);
```

## 17 rocks to start from

Chosen from the 45 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.

![Stylized rock](https://paprika3d.com/media/assets/c6b9a92e244c4f3bb676ddb6b5bde5c3.webp)

**[Stylized rock](https://sketchfab.com/3d-models/c6b9a92e244c4f3bb676ddb6b5bde5c3)** by [Mayantique](https://sketchfab.com/mayantique)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 1,462 triangles · 0.224 MB · stylized · 2 m tall<br>`asset_search {"pick": "c6b9a92e244c4f3bb676ddb6b5bde5c3"}`

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

![ROCK](https://paprika3d.com/media/assets/1fe4ae0ea0cf4d08a4c6b9254033913a.webp)

**[ROCK](https://sketchfab.com/3d-models/1fe4ae0ea0cf4d08a4c6b9254033913a)** by [DimaSP](https://sketchfab.com/huekmakorek)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 530 triangles · 0.194 MB · realistic · 0.5 m tall<br>`asset_search {"pick": "1fe4ae0ea0cf4d08a4c6b9254033913a"}`

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

![Granite stone yello 02](https://paprika3d.com/media/assets/eda7cdacdb0849b398569bdaf3a8cf07.webp)

**[Granite stone yello 02](https://sketchfab.com/3d-models/eda7cdacdb0849b398569bdaf3a8cf07)** by [3dhdscan](https://sketchfab.com/3dhdscan)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 29,876 triangles · 0.539 MB · scanned · 0.3 m tall<br>`asset_search {"pick": "eda7cdacdb0849b398569bdaf3a8cf07"}`

<small>Credit: "Granite stone yello 02" by 3dhdscan (https://sketchfab.com/3d-models/eda7cdacdb0849b398569bdaf3a8cf07) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Rock L 7](https://paprika3d.com/media/assets/b3852f5002504def8017dd6446920cef.webp)

**[Rock L 7](https://sketchfab.com/3d-models/b3852f5002504def8017dd6446920cef)** by [tienbass99](https://sketchfab.com/tienbass99)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 563 triangles · 0.074 MB · stylized · 2 m tall<br>`asset_search {"pick": "b3852f5002504def8017dd6446920cef"}`

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

![Rock Al 5](https://paprika3d.com/media/assets/7ad61fbb89f6401fa4856f515f182bf1.webp)

**[Rock Al 5](https://sketchfab.com/3d-models/7ad61fbb89f6401fa4856f515f182bf1)** by [tienbass99](https://sketchfab.com/tienbass99)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 563 triangles · 0.069 MB · realistic · 2 m tall<br>`asset_search {"pick": "7ad61fbb89f6401fa4856f515f182bf1"}`

<small>Credit: "Rock Al 5" by tienbass99 (https://sketchfab.com/3d-models/7ad61fbb89f6401fa4856f515f182bf1) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Egg of Rock](https://paprika3d.com/media/assets/42cf4d4a72034a5895cc68a200bf61e0.webp)

**[Egg of Rock](https://sketchfab.com/3d-models/42cf4d4a72034a5895cc68a200bf61e0)** by [Kigha](https://sketchfab.com/Kigha)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 6,636 triangles · 0.163 MB · stylized · 0.4 m tall<br>`asset_search {"pick": "42cf4d4a72034a5895cc68a200bf61e0"}`

<small>Credit: "Egg of Rock" by Kigha (https://sketchfab.com/3d-models/42cf4d4a72034a5895cc68a200bf61e0) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Stylized Rock \| Agustin Hönnun](https://paprika3d.com/media/assets/ae21c3d47cb14323a3bb06ccb562e368.webp)

**[Stylized Rock \| Agustin Hönnun](https://sketchfab.com/3d-models/ae21c3d47cb14323a3bb06ccb562e368)** by [Agustín Hönnun](https://sketchfab.com/Agustin_Honnun)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 886 triangles · 0.137 MB · stylized · 1 m tall<br>`asset_search {"pick": "ae21c3d47cb14323a3bb06ccb562e368"}`

<small>Credit: "Stylized Rock \| Agustin Hönnun" by Agustín Hönnun (https://sketchfab.com/3d-models/ae21c3d47cb14323a3bb06ccb562e368) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![American Rock Salt Mine Pink Halite](https://paprika3d.com/media/assets/29d53ccb88dd4c058c44ea7d40a24ff4.webp)

**[American Rock Salt Mine Pink Halite](https://sketchfab.com/3d-models/29d53ccb88dd4c058c44ea7d40a24ff4)** by [Digital Atlas of Ancient Life](https://sketchfab.com/DigitalAtlasOfAncientLife)<br>[CC0](https://creativecommons.org/publicdomain/zero/1.0/) · 225,506 triangles · 1.168 MB · realistic · 0.09 m tall<br>`asset_search {"pick": "29d53ccb88dd4c058c44ea7d40a24ff4"}`

<small>CC0, no credit needed. Optional credit: "American Rock Salt Mine Pink Halite" by Digital Atlas of Ancient Life (https://sketchfab.com/3d-models/29d53ccb88dd4c058c44ea7d40a24ff4) is licensed under CC0 1.0 (https://creativecommons.org/publicdomain/zero/1.0/). Optimized for the web by paprika3D.</small>

![Stone](https://paprika3d.com/media/assets/46e086aa4bbe43a7a1e9406e17ebcaa9.webp)

**[Stone](https://sketchfab.com/3d-models/46e086aa4bbe43a7a1e9406e17ebcaa9)** by [velius_valmont](https://sketchfab.com/velius_valmont)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 2,836 triangles · 0.068 MB · sci-fi · 0.3 m tall<br>`asset_search {"pick": "46e086aa4bbe43a7a1e9406e17ebcaa9"}`

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

![Pixel Rock](https://paprika3d.com/media/assets/1b2e1c0e45b64a87a186b5a3bc82cca7.webp)

**[Pixel Rock](https://sketchfab.com/3d-models/1b2e1c0e45b64a87a186b5a3bc82cca7)** by [Liam Moffitt](https://sketchfab.com/divadan)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 3,816 triangles · 0.24 MB · voxel · 1 m tall<br>`asset_search {"pick": "1b2e1c0e45b64a87a186b5a3bc82cca7"}`

<small>Credit: "Pixel Rock" by Liam Moffitt (https://sketchfab.com/3d-models/1b2e1c0e45b64a87a186b5a3bc82cca7) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Glowing Magic Rock](https://paprika3d.com/media/assets/2dcedc4619434d549b4ada36ee3f398b.webp)

**[Glowing Magic Rock](https://sketchfab.com/3d-models/2dcedc4619434d549b4ada36ee3f398b)** by [Ben Lebreux](https://sketchfab.com/ben.lebreux)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 1,140 triangles · 0.144 MB · low-poly · 2 m tall<br>`asset_search {"pick": "2dcedc4619434d549b4ada36ee3f398b"}`

<small>Credit: "Glowing Magic Rock" by Ben Lebreux (https://sketchfab.com/3d-models/2dcedc4619434d549b4ada36ee3f398b) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Rock n' Moss](https://paprika3d.com/media/assets/1c9443d3083641eaa8ddc3bafd630823.webp)

**[Rock n' Moss](https://sketchfab.com/3d-models/1c9443d3083641eaa8ddc3bafd630823)** by [berzerkey](https://sketchfab.com/berzerkey)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 960 triangles · 0.79 MB · realistic · 0.5 m tall<br>`asset_search {"pick": "1c9443d3083641eaa8ddc3bafd630823"}`

<small>Credit: "Rock n' Moss" by berzerkey (https://sketchfab.com/3d-models/1c9443d3083641eaa8ddc3bafd630823) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Kalemegdan Stone](https://paprika3d.com/media/assets/9a96d0c731364cb0a38b2d7380ead160.webp)

**[Kalemegdan Stone](https://sketchfab.com/3d-models/9a96d0c731364cb0a38b2d7380ead160)** by [Ilya.Shevelev](https://sketchfab.com/Ilya.Shevelev)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 7,271 triangles · 0.252 MB · realistic · 1.5 m tall<br>`asset_search {"pick": "9a96d0c731364cb0a38b2d7380ead160"}`

<small>Credit: "Kalemegdan Stone" by Ilya.Shevelev (https://sketchfab.com/3d-models/9a96d0c731364cb0a38b2d7380ead160) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Fantasy Rock](https://paprika3d.com/media/assets/b8cc5ea579604c54811f14c6f89cc44d.webp)

**[Fantasy Rock](https://sketchfab.com/3d-models/b8cc5ea579604c54811f14c6f89cc44d)** by [Nivia-3d](https://sketchfab.com/niviapoles)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 8,676 triangles · 0.429 MB · stylized · 1 m tall<br>`asset_search {"pick": "b8cc5ea579604c54811f14c6f89cc44d"}`

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

![Low poly Stone for games](https://paprika3d.com/media/assets/55159d7e048d4bd48e61a4c7838a7b1e.webp)

**[Low poly Stone for games](https://sketchfab.com/3d-models/55159d7e048d4bd48e61a4c7838a7b1e)** by [Mr_JeaMo](https://sketchfab.com/Mr_JeaMo)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 116 triangles · 0.01 MB · low-poly · 0.5 m tall<br>`asset_search {"pick": "55159d7e048d4bd48e61a4c7838a7b1e"}`

<small>Credit: "Low poly Stone for games" by Mr_JeaMo (https://sketchfab.com/3d-models/55159d7e048d4bd48e61a4c7838a7b1e) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![MOSS STONE 1](https://paprika3d.com/media/assets/9bfb887f54d54193a93e3d258f4d53f9.webp)

**[MOSS STONE 1](https://sketchfab.com/3d-models/9bfb887f54d54193a93e3d258f4d53f9)** by [ERION ARTWORK](https://sketchfab.com/erion-artwork)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 156 triangles · 0.007 MB · voxel · 1 m tall<br>`asset_search {"pick": "9bfb887f54d54193a93e3d258f4d53f9"}`

<small>Credit: "MOSS STONE 1" by ERION ARTWORK (https://sketchfab.com/3d-models/9bfb887f54d54193a93e3d258f4d53f9) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Optimized for the web by paprika3D.</small>

![Stone Slime](https://paprika3d.com/media/assets/135fdf2cf0164ac7ad38f5d9e4afe237.webp)

**[Stone Slime](https://sketchfab.com/3d-models/135fdf2cf0164ac7ad38f5d9e4afe237)** by [fantasticfrontier](https://sketchfab.com/fantasticfrontier)<br>[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) · 124 triangles · 0.007 MB · stylized · 0.3 m tall<br>`asset_search {"pick": "135fdf2cf0164ac7ad38f5d9e4afe237"}`

<small>Credit: "Stone Slime" by fantasticfrontier (https://sketchfab.com/3d-models/135fdf2cf0164ac7ad38f5d9e4afe237) 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.
