GLB Primitives 6
3D models · 6 files · CC0-1.0
Six small, dependency-free GLB files to drop into a Three.js scene, <model-viewer>, Spline, Blender or any glTF 2.0 viewer. Every model is centred on the origin, Y-up, and scaled so its longest side is exactly 2 units — swap one for another and the camera framing still works.
What’s inside
| File | Shape | Material | Tris |
|---|---|---|---|
bottle.glb | Lathe body with a soft shoulder + separate aluminium cap (two primitives) | bottle-green gloss / brushed aluminium | 8.6k |
card.glb | Credit-card proportions (3.37 : 2.125), bevelled edges, standing in XY | matte charcoal | 2.0k |
coin.glb | Bevelled cylinder with a raised rim, lying flat | gold, metallic | 8.4k |
ring.glb | Torus, radius 1 : tube 0.32 | silver, metallic | 10.8k |
knot.glb | Torus knot (p = 2, q = 3) | copper, metallic | 12.3k |
tile.glb | Rounded square plate, bevelled, lying flat | off-white ceramic | 3.2k |
Each file carries POSITION + NORMAL + 16-bit indices, one pbrMetallicRoughness material per primitive, no textures, no UVs, no animation — so there is nothing to strip and nothing to license. Normals are crease-smoothed: bevels shade softly while hard edges stay crisp.
Usage
import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
const { scene: coin } = await new GLTFLoader().loadAsync('/assets/packs/glb-primitives-6/coin.glb');
scene.add(coin); // metallic materials need scene.environment (e.g. RoomEnvironment) to read correctly
The pack is built by node src/content/assets/glb-primitives-6/make.mjs, which also re-parses every file, loads it with GLTFLoader in headless Chromium and renders the contact sheet above — the preview is literally the loader’s output.
Download
- Download ZIP (6 × GLB)386 KB
- bottle.glb159 KB
- card.glb36 KB
- coin.glb153 KB
- ring.glb194 KB
- knot.glb223 KB
- tile.glb58 KB
- LICENSE.txt
License: CC0-1.0 — Original work by MOTION/LAB, generated from three.js geometry with a hand-rolled GLB writer and released under CC0 1.0 — no attribution required.
- models
- glb
- gltf
- 3d
- three.js
- pbr
- product
- primitives

Used in these effects
Interactive 3D Product (GLTF) Rotate + Orbit
A GLB perfume flask idles on a slow turntable under a key/fill/rim studio rig with a soft contact shadow; drag to orbit with damping, pick a finish to tween the PBR colour, and labels track points on the model.
- threejs
- gsap
Pinned Product Rotate + Labels
A pinned Three.js bottle (procedural bevelled lathe, brushed cap, studio lighting) turns 360° as you scroll; four feature labels fade in at the rotation angle where their part faces you, with leader lines projected from 3D anchors.
- threejs
- gsap
- scrolltrigger
- svg