Free rock 3D models for three.js (GLB, CC BY and CC0)

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.

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:

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

Stylized rock by Mayantique
CC BY 4.0 · 1,462 triangles · 0.224 MB · stylized · 2 m tall
asset_search {"pick": "c6b9a92e244c4f3bb676ddb6b5bde5c3"}

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.

ROCK

ROCK by DimaSP
CC BY 4.0 · 530 triangles · 0.194 MB · realistic · 0.5 m tall
asset_search {"pick": "1fe4ae0ea0cf4d08a4c6b9254033913a"}

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.

Granite stone yello 02

Granite stone yello 02 by 3dhdscan
CC BY 4.0 · 29,876 triangles · 0.539 MB · scanned · 0.3 m tall
asset_search {"pick": "eda7cdacdb0849b398569bdaf3a8cf07"}

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.

Rock L 7

Rock L 7 by tienbass99
CC BY 4.0 · 563 triangles · 0.074 MB · stylized · 2 m tall
asset_search {"pick": "b3852f5002504def8017dd6446920cef"}

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.

Rock Al 5

Rock Al 5 by tienbass99
CC BY 4.0 · 563 triangles · 0.069 MB · realistic · 2 m tall
asset_search {"pick": "7ad61fbb89f6401fa4856f515f182bf1"}

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.

Egg of Rock

Egg of Rock by Kigha
CC BY 4.0 · 6,636 triangles · 0.163 MB · stylized · 0.4 m tall
asset_search {"pick": "42cf4d4a72034a5895cc68a200bf61e0"}

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.

Stylized Rock | Agustin Hönnun

Stylized Rock | Agustin Hönnun by Agustín Hönnun
CC BY 4.0 · 886 triangles · 0.137 MB · stylized · 1 m tall
asset_search {"pick": "ae21c3d47cb14323a3bb06ccb562e368"}

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.

American Rock Salt Mine Pink Halite

American Rock Salt Mine Pink Halite by Digital Atlas of Ancient Life
CC0 · 225,506 triangles · 1.168 MB · realistic · 0.09 m tall
asset_search {"pick": "29d53ccb88dd4c058c44ea7d40a24ff4"}

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.

Stone

Stone by velius_valmont
CC BY 4.0 · 2,836 triangles · 0.068 MB · sci-fi · 0.3 m tall
asset_search {"pick": "46e086aa4bbe43a7a1e9406e17ebcaa9"}

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.

Pixel Rock

Pixel Rock by Liam Moffitt
CC BY 4.0 · 3,816 triangles · 0.24 MB · voxel · 1 m tall
asset_search {"pick": "1b2e1c0e45b64a87a186b5a3bc82cca7"}

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.

Glowing Magic Rock

Glowing Magic Rock by Ben Lebreux
CC BY 4.0 · 1,140 triangles · 0.144 MB · low-poly · 2 m tall
asset_search {"pick": "2dcedc4619434d549b4ada36ee3f398b"}

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.

Rock n' Moss

Rock n' Moss by berzerkey
CC BY 4.0 · 960 triangles · 0.79 MB · realistic · 0.5 m tall
asset_search {"pick": "1c9443d3083641eaa8ddc3bafd630823"}

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.

Kalemegdan Stone

Kalemegdan Stone by Ilya.Shevelev
CC BY 4.0 · 7,271 triangles · 0.252 MB · realistic · 1.5 m tall
asset_search {"pick": "9a96d0c731364cb0a38b2d7380ead160"}

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.

Fantasy Rock

Fantasy Rock by Nivia-3d
CC BY 4.0 · 8,676 triangles · 0.429 MB · stylized · 1 m tall
asset_search {"pick": "b8cc5ea579604c54811f14c6f89cc44d"}

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.

Low poly Stone for games

Low poly Stone for games by Mr_JeaMo
CC BY 4.0 · 116 triangles · 0.01 MB · low-poly · 0.5 m tall
asset_search {"pick": "55159d7e048d4bd48e61a4c7838a7b1e"}

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.

MOSS STONE 1

MOSS STONE 1 by ERION ARTWORK
CC BY 4.0 · 156 triangles · 0.007 MB · voxel · 1 m tall
asset_search {"pick": "9bfb887f54d54193a93e3d258f4d53f9"}

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.

Stone Slime

Stone Slime by fantasticfrontier
CC BY 4.0 · 124 triangles · 0.007 MB · stylized · 0.3 m tall
asset_search {"pick": "135fdf2cf0164ac7ad38f5d9e4afe237"}

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.

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.