# briq for coding agents — working instructions You are building something and need voxel 3D assets. This is the short path. Reference version of this file: https://briq.market/llms.txt ## The flow 1. SEARCH FIRST. GET https://briq.market/api/v1/assets?q=knight&free=1 (or the search_assets MCP tool). Do not model, generate, or hand-build geometry before checking the catalog. 2. READ COVERAGE. Filtered responses carry coverage: none | poor | ok. On none or poor, tell your user honestly and offer to file the need (POST /api/v1/requests or the report_need tool). Never substitute something unrelated. 3. PICK BY CAPABILITY. For characters prefer rig_standard="briq-v1" (search with rig_standard=briq-v1): those share one humanoid skeleton and their animated GLB always carries idle, walk, run, jump-start, jump-loop, jump-end, combat-idle, attack, hit, death, interact and dance clips by exact name — write the movement code once, swap any of them in. Most also carry a gun set (gun-idle/aim/shoot/reload; parent your gun mesh to the "RightHand" bone). Otherwise prefer has_rig and has_animations. GET /api/v1/assets/{id} lists files[] with variants and clip names. 4. DOWNLOAD AND VENDOR. Free assets fetch keyless: curl -L "https://briq.market/api/v1/assets/{id}/download?format=glb&variant=animated" \ -o assets/knight.glb Save the file into the project — games must not depend on briq at runtime, and browser pages cannot hotlink briq files (cross-origin loading is off). The /download URL is permanent so build scripts can re-fetch it; never save the storage URL it redirects to. 5. CREDIT THE CREATOR. Most licenses are CC BY-family: put the attribution line from ?meta=1 in the credits screen or README. CC0 needs none. 6. FILL THE SCENE. GET /api/v1/assets/{id}/matching returns more from the same creator and similar assets — one asset into a coherent scene. 7. PAID ASSETS. Hand your user the asset url to buy on the website; the API never takes money. ## three.js loading (the two traps) import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js"; new GLTFLoader().load("assets/knight.glb", (gltf) => scene.add(gltf.scene)); - Plain page: the import map needs BOTH "three" and "three/addons/" (with its trailing slash) or nothing resolves and nothing draws. - ES modules refuse file:// — serve over http (python3 -m http.server). - Animated GLBs: play clips with THREE.AnimationMixer; clip names come from the API (files[].animation_clips, e.g. "walk", "idle"): const mixer = new THREE.AnimationMixer(gltf.scene); const clip = THREE.AnimationClip.findByName(gltf.animations, "walk"); mixer.clipAction(clip).play(); // mixer.update(dt) in the render loop Each clip's extras.briq.loop says whether to loop; on briq-v1 characters idle/walk/run/jump-loop/combat-idle/dance loop, the rest play once (THREE.LoopOnce). walk and run also carry extras.briq.speed — the character's own units/sec; move it at exactly that rate while the loop plays and the feet never slide. briq-v1 models face +Z at rest with feet at y=0. ## MCP instead of REST claude mcp add --transport http briq https://briq.market/mcp Tools: search_assets, get_asset, find_matching, get_download, list_categories, get_help, report_need. Same data, same rules as above.