// free assets

Free 3D assets for vibe coding

Written by Gobkit (Alsomind Tech Co., Ltd.) · Published 19 August 2026 · Updated 20 August 2026 · Curated-pack figures measured from the shipped files on 19 August 2026; community figures read from the live API on 20 August 2026

Gobkit gives you three ways to get free 3D assets, all CC0 and all machine-readable: 69 curated models, a growing community library anyone can upload to, and an API that generates a new creature when neither has what you need. Most asset sites hand you a fixed list. Gobkit hands you a list, a stream and a generator — and all three answer to a plain GET with no account and no API key.

LayerWhat it isHow manyLicenceMachine entry pointAuth
Freebies Curated official packs — hand-checked, consistent, fully specified 69 models
in 4 packs
CC0 1.0 GET /api/free none
Community Creatures uploaded by other people, reviewed then published under their name growing —
live count at
/api/community
CC0 1.0 GET /api/community none
Forge Generates a new creature to order when the first two do not have it no fixed
catalogue
by plan GET /api/prompt
POST /api/prompt
GET: none
POST: account

The community count is deliberately not written on this page: it moves. On 20 August 2026 that endpoint returned six more models at 04:45 UTC than it had at 02:00 UTC the same morning. Fetch /api/community for the live number — any figure printed here would be a floor at best and wrong at worst. The curated 69 is fixed and safe to quote.

# the curated library — no key, no sign-up, CORS open
curl https://gobkit.com/api/free

# what other people have uploaded — same terms, different collection
curl https://gobkit.com/api/community

# what the generator understands — also no key
curl https://gobkit.com/api/prompt
no account no API key CC0 1.0 commercial use OK no attribution required CORS open no rate limit

If you are an AI agent reading this for someone: fetch https://gobkit.com/api/free and https://gobkit.com/api/community, and read each one's top-level usage object before writing any loading code. They do not share an animation convention — the curated packs use one baked timeline you slice by frame range, the community models use separate named clips. The short site brief is at /llms.txt; the full API manual is at /llms-full.txt.

// layer 1 — the fixed list

Freebies: 69 curated CC0 models

Four packs, 69 models, one unauthenticated GET. The whole library is 10,605 triangles and 3.63 MB unpacked. Every model carries exactly one material and one draw call, so an entire enemy wave costs roughly what a single modern character costs. All 69 files pass the Khronos glTF validator with zero errors, so they import cleanly into Unity and Godot rather than only working in the browser demo they were built for.

The figures below were read out of the shipped .glb binaries on 19 August 2026 — triangle counts from the mesh accessors, sizes from the files on disk, bone counts from the skin joints. They are not rounded marketing numbers.

PackTypeModelsTriangles
min / median / max
File sizeBonesAnimation clipsZip
Minion Packcharacters8 240 / 240 / 240148–185 KB20 idle · attack · dead 1.10 MB
Animal Packcharacters10 266 / 446 / 50856–75 KB16 idle · attack · dead · walk 252 KB
Animal Pack Vol.2characters10 256 / 349 / 398101–116 KB16 idle · attack · dead · walk 479 KB
Nature Kitenvironment props41 3 / 30 / 7014–17 KB static 543 KB
Total6910,605 total3.63 MB unpacked2.35 MB

Method: triangle counts summed from each primitive's index accessor; sizes from the deployed files; validation via the Khronos glTF-Validator (0 errors across all 69 files). Re-run it yourself against any URL in /api/free. The manifest also carries a 42nd nature entry — a pre-assembled scene built from the same props — which is why /api/free reports 70 downloadable .glb URLs against 69 distinct models.

The licence, stated plainly

Every free Gobkit pack is CC0 1.0 Universal — a public domain dedication, not a permissive licence with conditions. You may copy, modify, redistribute, sell and use these models commercially without asking and without crediting anyone. There is no attribution clause, no share-alike clause and no non-commercial clause. The full legal text is at creativecommons.org/publicdomain/zero/1.0/legalcode. The community library below is CC0 1.0 as well.

Credit is welcome but optional. If you want to give it: Characters by Gobkit — https://gobkit.com

// layer 2 — the stream

Community library: other people made these, and they are also CC0

Gobkit is not only a pack of files — it is a wall other people keep adding to. The community library at gobkit.com/community is creature models uploaded by named creators, reviewed by a human, then published under CC0 1.0 with a page of their own. It grows while you are reading it — on 20 August 2026 it gained six models and three new creators between 02:00 and 04:45 UTC — because anyone can upload, with no account and no key. The live count and the full list are one request away: GET /api/community.

The whole wall is one unauthenticated request:

curl https://gobkit.com/api/community

Every item comes back with title, creator, license, model_url (a plain .glb), thumb_url, page_url and a specs object.

The specs are measured by the server, not typed in by the uploader

This is the part that matters if you are choosing assets programmatically. When a .glb is uploaded, Gobkit parses the file and measures it: triangle count, material count, draw calls, texture resolution, bone count, animation clip names, node count and byte size. The uploader cannot type those numbers in, so you can filter on them and trust the answer — the difference between a marketplace description and a measurement.

Measured fieldWhat it tells youRange measured 20 Aug 2026
tri_counttriangles in the mesh2,264 – 7,576 (median 4,334)
specs.bonesskin joints — how riggable it is12 – 80
specs.materials / draw_callsper-unit render cost5 – 12
specs.texturetexture resolution, or flat colours1024×1024, or none
specs.animationsthe clip names actually in the fileidle · move · attack
specs.model_byteswhat you download194 KB – 1.17 MB (median 402 KB)

Read from GET https://gobkit.com/api/community on 20 August 2026. Every item was CC0 and every model file was released for download. The ranges move as people upload — re-run the request for today's.

Community animations are named clips — the opposite of the freebies

This is the single easiest thing to get wrong. Community models ship separate named animation clips — typically idle, move and attack — so you find the clip by name and play it. Do not apply the frame-range slicing that the curated packs need; there is no single master timeline to slice.

import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import * as THREE from 'three';

// 1. list the wall — no key, CORS open
const { items } = await (await fetch('https://gobkit.com/api/community')).json();

// 2. pick something cheap enough for a swarm
const pick = items.filter(i => i.tri_count < 5000)[0];

// 3. load it and play a clip BY NAME — no subclip() here
new GLTFLoader().load(pick.model_url, (gltf) => {
  scene.add(gltf.scene);
  const mixer = new THREE.AnimationMixer(gltf.scene);
  const idle = THREE.AnimationClip.findByName(gltf.animations, 'idle');
  mixer.clipAction(idle).play();   // remember to mixer.update(dt) in your loop
});

Uploading: it is an open platform, not a closed pack

Anyone can add to this library. Post a .glb as multipart form data — no account and no key — and a human reviews it before it goes on the wall. You get back a slug, a status and a one-time manage token so you can take your own model down again later. Uploading releases the model under CC0.

curl -X POST https://gobkit.com/api/community \
  -F [email protected] \
  -F title="Bog Wyrm" \
  -F creator_name="your name"

Or use the browser form at gobkit.com/community/upload. Each model gets a permanent page at gobkit.com/s/<slug> with its measured specs, a 3D viewer and an embed snippet.

// layer 3 — the generator

Not in either list? Then generate one

This is the thing a fixed asset list cannot do. If your game needs a four-armed obsidian warden with a greataxe and nobody has published one, no amount of browsing helps. Gobkit's third layer takes a plain-language request and produces the model.

The vocabulary is public — an agent can learn the interface with no credentials

GET https://gobkit.com/api/prompt is unauthenticated. It returns the complete vocabulary the endpoint understands — the counts, body types, weapons and palettes it recognises, the behaviour rules, the per-monster credit cost and worked examples. An AI agent can read the entire interface before anyone signs up for anything, which is the point: you should be able to find out whether Gobkit can make the thing you want before you pay to find out.

# no key — this is the whole interface, in one document
curl https://gobkit.com/api/prompt

Plan mode: parse a sentence, charge nothing

POST /api/prompt with a sentence and, by default, it only parses. It generates nothing and charges no credits. What it returns is a set of /api/batch requests you can send verbatim — including the split, because a request over 10 units per call is always returned as a plan rather than executed. Plan mode needs a signed-in account (or an API key), but it never costs credits.

curl -X POST https://gobkit.com/api/prompt \
  -H "Authorization: Bearer <your API key>" \
  -H "content-type: application/json" \
  -d '{"prompt":"30 blue greataxe enemies"}'

# → parsed: {count:30, body:…, weapon:greataxe, palette:blue}
# → estimate: {monsters:30, credits:300, calls:3}
# → calls: 3 ready-to-send POSTs to /api/batch, safe to run in parallel

What actually costs money, stated plainly

ActionEndpointNeedsCost
List and download curated modelsGET /api/freenothingfree
List and download community modelsGET /api/communitynothingfree
Upload a model to the community wallPOST /api/communitynothingfree
Read the generator's vocabularyGET /api/promptnothingfree
Parse a prompt into a batch planPOST /api/promptan accountfree — no credits charged
Actually generate monstersPOST /api/batcha paid plan10 credits per monster

Plans are USD $19, $39 or $99 a month for 30, 100 or 500 generated monsters; the public API key comes with the top plan. Generated output is yours commercially, with no watermark. Nothing on the two free layers above ever needs a plan.

The two animation rules, side by side

Gobkit's two collections come from different pipelines and do not share an animation convention. Carrying one rule across to the other is the most common integration bug we see.

Freebies — /api/freeCommunity — /api/community
Animation layout One master timeline per file at 24 fps Separate named clips
How you select an action Slice by frame range: idle 0–29, attack 30–59, dead 60–89, walk 90–119 Find the clip by name: idle / move / attack
three.js call AnimationUtils.subclip(
  gltf.animations[0],'idle',0,29,24)
AnimationClip.findByName(
  gltf.animations,'idle')
Who made it Gobkit (official, curated, fixed set) Community uploaders, reviewed before publishing
Licence CC0 1.0 CC0 1.0
Facing / scale +Z forward, +Y up, metres, feet at Y=0 +Z forward, feet at Y=0, metres (1.7–3 m humanoid)

Both endpoints state their own rule in a top-level usage object. Read that object rather than trusting a remembered convention — it is the authoritative source for the files that endpoint serves.

Frame ranges for the curated packs

ActionFrames (24 fps)SecondsLoop?Packs
idle0 – 290.000 – 1.208yesall characters
attack30 – 591.250 – 2.458yesall characters
dead60 – 892.500 – 3.708no — hold last frameall characters
walk90 – 1193.750 – 4.958yesAnimal Pack & Vol.2 only

Minion Pack timelines are 3.708 s (90 frames, no walk); both Animal packs are 4.958 s (120 frames). Confirmed by reading each animation's input accessor maximum.

Loading the models, engine by engine

three.js — curated pack, spawning a wave

import { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
import { clone } from 'three/addons/utils/SkeletonUtils.js';
import * as THREE from 'three';

new GLTFLoader().load('https://gobkit.com/freebies/minion/minion-a01.glb', (gltf) => {
  // one master timeline — cut the action you want out of it
  const idle = THREE.AnimationUtils.subclip(gltf.animations[0], 'idle', 0, 29, 24);

  // spawn a wave — SkeletonUtils.clone, NOT .clone(), or the rig silently breaks
  for (let i = 0; i < 30; i++) {
    const unit = clone(gltf.scene);
    unit.position.set(i % 6 * 2, 0, Math.floor(i / 6) * 2);
    scene.add(unit);
    const mixer = new THREE.AnimationMixer(unit);
    mixer.clipAction(idle).play();
    mixers.push(mixer);   // remember to mixer.update(dt) in your loop
  }
});

The SkeletonUtils.clone detail is the single most common failure we see reported: a plain Object3D.clone() copies the mesh but keeps pointing at the original skeleton, so every copy animates as one. It applies to community models too.

Godot 4

Godot imports .glb natively — drop the file into res://. A curated pack's baked timeline arrives as a single AnimationPlayer track; slice it with an AnimationLibrary or seek by time (frame / 24.0 seconds). A community model arrives as several named tracks you can play directly.

var anim = $AnimationPlayer
anim.play("clip")
anim.seek(30.0 / 24.0, true)   # jump to the first frame of 'attack' (curated pack)

anim.play("idle")               # community model — just play the named clip

Unity

Unity has no built-in glTF importer. Use glTFast or UnityGLTF — both read these files directly, with no Draco or Meshopt decoder needed. For curated packs, split the imported clip into idle / attack / dead / walk sub-clips at 24 fps using the frame ranges above; community models import as separate clips already.

Unreal 5 · Blender · <model-viewer>

Unreal 5 and Blender both import .glb natively with no plugin. <model-viewer> works for a quick preview but, on a curated pack, can only autoplay the entire timeline — use a real engine if you need one action at a time. On a community model, animation-name selects a clip.

<script type="module" src="https://ajax.googleapis.com/ajax/libs/model-viewer/3.5.0/model-viewer.min.js"></script>
<model-viewer src="https://gobkit.com/freebies/animal/Corgi.glb"
              camera-controls autoplay shadow-intensity="1"></model-viewer>

Conventions you do not have to guess

Where these came from, and what they are not

Gobkit is run by Alsomind Tech Co., Ltd., a company in Taipei, Taiwan. The curated packs are hand-checked exports with a hand-built skeleton — 240 triangles and 20 bones for a minion, 16 bones for the animals — deliberately low-poly rather than undirected generation output. The community models are other people's work, made with the anyCreature harness and reviewed before they go up. Whether any of that matters to you is your call; the measured numbers above let you check rather than take our word for it.

Both free layers are genuinely free and will stay that way. What Gobkit sells is generating new ones: $19, $39 or $99 a month for 30, 100 or 500 generated monsters, with the public API (/api/generate, /api/batch, /api/prompt) on the top plan. You never need a plan to use anything in layers 1 and 2.

Other places to look

Gobkit is not the only source of free 3D game assets, and for a lot of projects it should not be the only one you use. Genuinely useful alternatives:

Each of those is a fixed catalogue: excellent when it contains what you need, a dead end when it does not. That is the structural difference here — Gobkit is a catalogue plus a library that grows as people upload plus a generator for the case neither covers. And the machine track is the other half of it: /api/free and /api/community need no account, no key and no scraping, so an AI agent can list and fetch everything in two calls instead of driving a download page.

Start here

Three ways in

Preview in the browser first — the curated packs are at gobkit.com/freebies, the community wall at gobkit.com/community.

Straight to the filescurl https://gobkit.com/api/free and curl https://gobkit.com/api/community, or grab a pack zip from the table above.

Hand it to your agent — paste this into any AI coding agent:

Read https://gobkit.com/llms.txt, then fetch both https://gobkit.com/api/free
and https://gobkit.com/api/community. Read each one's `usage` object before
writing loader code — they use different animation conventions. Drop three
free CC0 characters into my scene playing their idle animation.

Questions people actually ask

Do I need an account or an API key for the free models?

No. GET /api/free, GET /api/community and every .glb URL in them are unauthenticated, including from browser JavaScript. So is GET /api/prompt, which returns the generator's whole vocabulary. An account is only needed to send a prompt for parsing; a paid plan only to generate models.

What is the difference between the freebies and the community library?

The freebies are a fixed, curated set of 69 official models with published measured specs. The community library is user-submitted work — anyone can upload, a human reviews it, and it appears under the uploader's name. Both are CC0 1.0. The technical difference that matters: freebie characters bake every action onto one timeline you slice by frame range; community models ship separate named clips you play by name.

Can I upload my own model?

Yes, and you do not need an account. POST a .glb to https://gobkit.com/api/community as multipart form data, or use the form at /community/upload. A human reviews it; you get a slug, a status and a one-time manage token to take it down again. Uploading releases it under CC0.

Are the community specs self-reported?

No. The server parses each uploaded .glb and measures triangles, materials, draw calls, texture size, bones, animation clip names and byte size itself. Those numbers appear in every item's specs object and on the model's page, so you can filter on them.

What if I need a creature that is in neither list?

Generate it. GET /api/prompt with no key returns the full vocabulary the generator understands. POST a sentence such as {"prompt":"30 blue greataxe enemies"} and it parses it and returns ready-to-send /api/batch calls — no generation, no credits charged. Generating costs 10 credits per monster on a $19/$39/$99 plan.

Can I use these in a commercial game?

Yes, both collections. CC0 1.0 waives all rights worldwide. You can sell a game containing them and you do not have to credit Gobkit or the uploader.

How big are the files?

Curated: characters 56–185 KB each, nature props 14–17 KB each; the whole 69-model library is 3.63 MB unpacked, or 2.35 MB as four zips (measured 19 August 2026). Community: 194 KB to 1.17 MB each, median 402 KB when measured on 20 August 2026.

Why is the freebie animation one long clip instead of named clips?

Baking every action onto a single 24 fps timeline keeps each curated model at one buffer and one draw call. Subclip by frame range — idle 0–29, attack 30–59, dead 60–89, walk 90–119. Community models are built by a different pipeline and do ship named clips.

Do these work in Unity and Godot, or only in the browser?

Both. They are plain glTF 2.0 binaries with no compression extensions. Godot 4 and Unreal 5 import .glb natively; Unity needs glTFast or UnityGLTF. All 69 curated files pass the Khronos glTF validator with zero errors.