Game-ready low-poly assets: flat-shaded vertex colors, a single material and one draw call per model, so scenes stay fast even on mobile. Start with the free models below; themed kits are on the way. Every asset ships as a GLB plus a drop-in ES module for three.js.
Every free model is hotlinkable. This is the real snippet for Nobori Banner:
// GLB: works in three.js, Unity, Godot, Blender
new GLTFLoader().load(
'https://polyfork.dev/cdn/nobori-banner-ae4d88.glb',
(gltf) => scene.add(gltf.scene)
);
// or the drop-in ES module (three.js, zero loaders):
import { createAsset } from 'https://polyfork.dev/cdn/nobori-banner-ae4d88.mjs';
scene.add(createAsset());
The usual way a free-asset scene falls apart is that the tree came from one pack, the house from another and the barrel from a third, so three different ideas of colour, proportion and shading end up in one frame. Everything here is built to one specification: flat-shaded vertex colour, no textures, a shared palette discipline and the same chunky proportions, so a model published this week sits next to one from months ago without looking pasted in.
Every model is modelled in metres with its origin on the ground, and doors, crates and characters are sized against each other rather than against nothing. Import a set and they stand at the right heights immediately, which is the difference between assembling a scene and spending an evening typing scale factors.
Each model publishes its exact triangle count and draw calls, and props sit in the low hundreds of triangles rather than an unstated few thousand. On a single material they also merge: a fence, a well and a stack of crates can become one draw call for the lot, which is what keeps a scene alive on a phone.
Lids, wheels, doors and hatches are separate named groups with the pivot already placed at the hinge or axle, so opening a chest or turning a wheel is one rotation on a named node. Named groups survive the GLB export, so this holds in Unity and Godot as well as in three.js.
The same models publish as ES modules that import in one line with no loader, which is a different workflow from dropping a GLB into an engine. The free 3D models for three.js page covers that side.
All 1340 models on this page come to 167.7 MB together. They are flat-shaded vertex colour on one material with no textures, which is where the size goes and why they draw in one call. Measured from the files being served right now, not rounded down for a landing page.
The hard part of free game assets is not finding one model, it is finding a hundred that look like they belong together. These are the places worth knowing, and what each is actually strong at:
| Source | Best for | Style consistency | Engines |
|---|---|---|---|
| Kenney | Big public-domain kits, the reference point for free game art | Excellent within a pack, and there are a lot of packs | OBJ, FBX, glTF: anything |
| KayKit and other itch.io creators | Characters, dungeons and nature packs with real personality | Excellent within a creator, varies wildly between them | GLTF and FBX, engine-agnostic |
| Poly Pizza | Searching thousands of free low-poly models with no login | Mixed: it aggregates many authors, including the old Google Poly set | GLB and OBJ, any engine |
| Unity Asset Store | Drop-in packages that configure themselves | Good per package | Unity only |
| OpenGameArt | Genuinely public-domain art when licence clarity matters most | Low: a community grab bag spanning decades | Whatever the author uploaded |
| Polyfork | Scenes assembled from many parts that have to match | One style across the whole catalogue, one palette discipline, one scale | GLB for Unity, Godot, Unreal, Blender; ES module for three.js |
Low poly keeps draw calls and file sizes tiny, which means fast loading and smooth frame rates on weak hardware and mobile. The flat-shaded style also stays visually consistent across a whole scene.
Any engine that imports glTF: Unity, Godot, Unreal, Blender and web engines like three.js and Babylon.js. three.js users also get a zero-loader ES module per asset.
Assets in a kit share one palette, one scale and one shape language, so anything you combine looks like it belongs to the same game.
Yes, the license covers commercial games, apps and client work with no attribution. Reselling or redistributing the raw assets is the only thing not allowed.