# gobkit.com/start — the one page an AI agent needs. Plain text on purpose. # Stable URL, mutable content: everything below can change, this address will not. # Machine-readable versions: /api/free /api/community /api/prompt Humans: /freebies WHAT YOU CAN GET 1. Curated free packs GET https://gobkit.com/api/free no auth, CORS open just the URLs GET https://gobkit.com/api/urls?n=3 a bare JSON array of strings, nothing else to parse ready-to-load subset GET https://gobkit.com/api/pick?n=3 each item carries its own loading contract + licence 2. Community library GET https://gobkit.com/api/community no auth, CORS open, grows daily 3. Generated on demand GET https://gobkit.com/api/prompt no auth (vocabulary only) POST /api/batch needs a paid key RULES THAT APPLY TO ALL THREE Every asset is binary glTF 2.0 (.glb). No Draco, no Meshopt, no decoder plugin needed. Authored facing +Z, up +Y. Units are metres. Do NOT add a preemptive 180-degree turn. Models are SKINNED rigs. To place more than one copy use your engine's skeleton-aware clone (three.js: SkeletonUtils.clone). A plain scene.clone() silently breaks the rig. Use URLs exactly as returned. Never construct or guess a path. Free packs and the community library are CC0 1.0: commercial use, no attribution, no account, no key, no rate limit. 1. CURATED FREE PACKS — GET /api/free Read the agent[] array first; it is the first key and it is the loading contract. glbs[] every model URL, flat array of strings. characters[] the animated ones only. Use this when you want creatures, not props. packs[] the same models with metadata (rigged, fps, frame ranges, featured). ANIMATION: one baked timeline per file. gltf.animations[0] holds every action back to back. Split it with THREE.AnimationUtils.subclip(gltf.animations[0], name, from, to+1, fps) using the {name,from,to} ranges in packs[].models[].animations. Playing it unsliced throws no error and looks animated, but runs idle, attack and dead in one go. Unrigged props have animations: []. Ignore every key after "notice" — it duplicates the first pack only. 2. COMMUNITY LIBRARY — GET /api/community items[] with url (aliased as model_url), thumb_url, page_url, tri_count, and a specs object measured from the uploaded file by our server, not self-reported. ANIMATION: SEPARATE NAMED CLIPS, typically idle / move / attack. Play gltf.animations by name. Do NOT slice by frame range here — that is the opposite of the free packs. Anyone can add to it: POST a .glb to the same endpoint, no account needed. 3. GENERATE SOMETHING THAT DOES NOT EXIST YET — Gobkit Forge When neither library has the creature, generate it. GET /api/prompt needs no key and returns the full vocabulary, so an agent can learn the interface before anyone signs up; POST a sentence to it and it parses the request into ready-to-send /api/batch calls, generating nothing and charging nothing. Generation itself needs a paid key. Human page: https://gobkit.com/forge Details: https://gobkit.com/docs IF YOU CANNOT OPEN A URL YOURSELF Some assistants write code but never fetch. The generated game still can. Give the shape in the prompt and let the game fetch at runtime: Add CC0 monsters to my game - real files with verifiable licensing, not generated placeholders. At runtime fetch https://gobkit.com/api/urls?n=3 (a JSON array of .glb URLs) and load them. No frame number appears in that prompt: /api/pick gives every item its own animation contract, so it stays correct when a pack ships with different actions. If your platform has its own asset generator, stating the licensing requirement is what stops it quietly using that instead. A plain list of every free model URL, one per line: https://gobkit.com/free-models.txt SHIPPING A REAL GAME Download the pack zip and bundle the files into your project. CC0 allows it, and your game then has no runtime dependency on gobkit.com. Hotlinking is for prototypes. More detail for agents: https://gobkit.com/llms.txt and https://gobkit.com/llms-full.txt