Course outline
Licences and Asset Sources
In one line
A model you download belongs to someone. CC0 means no conditions; CC BY means credit the authors; many "free" models forbid redistribution. Check each file's licence where you found it, keep the credit with the file, and show it on the page.
Think of it like this
A library book is free to read, but you may not photocopy it and sell the copies. Free models online are like that: free to look at does not mean free to put in your product.
Words you'll meet
New words in this topic, in plain English. Come back here whenever one feels fuzzy.
- licence
- The legal permission that says what you may do with someone's work: use, change, sell, and on what conditions.
- CC0
- A Creative Commons dedication to the public domain: no conditions at all.
- CC BY 4.0
- A Creative Commons licence that allows any use if you credit the authors, link the licence and note changes.
- attribution
- The credit line a licence asks for: who made it and under which licence.
Step by step
01Read what the file says
The live example loads the Fox and prints its gltf.asset block. It has a copyright string naming the authors and "CC-BY 4.0", and the file's glTF version, but no generator.
02Check the source page
The Khronos sample's README says more than the file: the model itself is CC0, the rigging, animation and conversion are CC BY 4.0. The source page is the authority; the file's metadata can be incomplete or missing.
03Write the credit down
The example keeps a CREDITS table in code and prints the line the page would show. In your project, keep the same table in LICENSES.md and show the lines on the page where each model appears.
04Prefer models you may change
Lumen needs to recolour and resize parts, so licences that forbid changes (ND) or commercial use (NC) are out, whatever the model looks like. CC0 and CC BY are the safe choices; your own models are the safest.
Try it yourself
- 1
Read the bike's own asset block
Change the URL to
/data/3d/models/lumen-bike.glb. It prints{"version":"2.0","generator":"THREE.GLTFExporter r186"}: no copyright, because three.js's exporter does not write one. Add it yourself before sharing: setjson.asset.copyrightwhen exporting a .gltf, or use glTF Transform. - 2
Open this course's licence file
Open
/data/3d/LICENSES.mdon this site in a new tab. Every asset the course uses is listed with its source, licence, credit and the date it was checked: the pattern to copy for your own project.
Code & diagrams
Fox model by PixelMannen (CC0), rigging and animation by tomkranis (CC BY 4.0), glTF conversion by @AsoboStudio and @scurest (CC BY 4.0), from the Khronos glTF Sample Assets.
Console
Run the scene to see its console.Expected console output
asset block in the file: {"copyright":"CC-BY 4.0 Model by PixelMannen https://opengameart.org/content/fox-and-shiba and @tomkranis https://sketchfab.com/3d-models/low-poly-fox-by-pixelmannen-animated-371dea88d7e04a76af5763f2a36866bc and @AsoboStudio with @scurest https://github.com/KhronosGroup/glTF-Sample-Models/pull/150#issuecomment-406300118","version":"2.0"}
animations: Survey, Walk, Run
credit shown on the page: Model by PixelMannen (CC0), rigging and animation by tomkranis (CC BY 4.0), glTF by @AsoboStudio and @scurest (CC BY 4.0)Break it on purpose
Errors are the best teachers. Make each change, read the error, guess what went wrong, then reveal the answer.
Break #1
Trust the file instead of the source
Suppose you read only the Fox's asset.copyright ("CC-BY 4.0 …") and credit the whole model as CC BY 4.0, by the three names in it.
Myth vs fact
Myth
If a model is free to download, it is free to use in a product.
Fact
Downloading and using are different permissions. Many free models forbid commercial use (NC), changes (ND) or redistribution. Read the licence for each file.
Pro corner
Extra depth for experienced readers. New to this? Skip it for now and come back later.
- ▸
Shipping a model in a web page is redistribution: anyone can download the .glb from the Network panel. A licence that allows "use in your project" but not redistribution of the file effectively forbids putting it on a public website.
- ▸
Keep your own exported files' provenance too: record which code, which three.js version and which glTF Transform settings produced each file (this course's are in the
LICENSES.mdrows for the bike files:/data/3d/LICENSES.md), so the file can be rebuilt when a part changes.
Remember this
- 1
The problem this solves: the internet is full of excellent 3D models, and many cannot legally ship in a commercial showroom. A licence problem found after launch means taking the product down, or worse. Checking takes a minute per file.
- 2
The licences you will meet. CC0 (Creative Commons Zero): no conditions; use, change and sell, no credit required (Poly Haven's HDR images and textures in this course are CC0). CC BY 4.0: use and change freely, but you must credit the authors, link the licence and say if you changed it. CC BY-NC: no commercial use, so not for Lumen. CC BY-ND: no changes, so no recolouring the bike. Custom licences: read them; some sample models forbid redistribution altogether.
- 3
One file, several licences. The Fox in this course is a good warning. Its model is CC0 (by PixelMannen), but its rigging and animation (tomkranis) and its conversion to glTF (@AsoboStudio and @scurest) are CC BY 4.0. So the file as a whole needs credit. The file's own
asset.copyrightfield just says "CC-BY 4.0" and names the people: the full story was only on the model's page. - 4
Where to find models. Sources that state licences clearly: Poly Haven (all CC0), Kenney (game assets, CC0), the Khronos glTF Sample Assets (licence per model, in each model's README), Sketchfab (licence shown per model; filter by "downloadable" and licence). Marketplaces sell models with their own licence terms. Making your own (as this course did with the bike) avoids the question.
- 5
Keep the credit with the file. Store a
LICENSES.mdnext to your assets (this site's is at/data/3d/LICENSES.md): file, source, licence, credit line, date checked. Show CC BY credits where the model appears, for example a small "Fox model by…" line under the canvas or on a credits page linked from it.
Explain it without notes
What is the difference between CC0 and CC BY 4.0 for a model on Lumen's website?
Why is the Fox's own copyright field not enough to credit it correctly?
Practice
Write a LICENSES.md entry for a Poly Haven HDR image you add to your showroom.
Add a credit line under the canvas that shows the credits of every model in the scene, from a CREDITS table keyed by file name.
Done when you can
Tell CC0, CC BY, NC and ND apart and say which Lumen can use
Find a model's licence on its source page, not only in the file
Keep a LICENSES.md and show CC BY credits on the page