# briq — voxel game assets, readable by agents briq.market is a marketplace of voxel game assets: artists build in MagicaVoxel, briq converts every .vox to game-ready GLB (plus AR variants) that loads in three.js, Unity, Godot, Unreal and Blender. Some assets carry a skeleton rig and named animation clips, baked into downloadable GLBs. Every asset has a Creative Commons license chosen by its creator, and creators keep 90% of every sale. Everything below is stable, JSON, and keyless. ## Do you need a key? No — there are no API keys. Anonymous access covers the whole published catalog (browse, search, per-asset detail, matching) and keyless GLB downloads of every FREE asset at stable URLs. Be straight with your user about where the line is: - FREE means the base price is $0. A sale price of $0 does not count: sale files would die when the sale ends, so they are never served keyless. - Paid assets are purchased by a human on the website — every asset carries its `url` for exactly that handoff. - The editable .vox source (any asset) requires a free account on the website; keyless downloads are GLB only. Rate limits: downloads 60/hour, demand reports 5/day, per client. Reads are unlimited. Every response carries an `access` object stating your tier and what it can do — read it rather than guessing. ## API Base: https://briq.market/api/v1 (self-describing: GET /api/v1) - GET /api/v1/assets browse/search. Params: q, category, tags (comma-separated, matches ANY), license, rigged=1, animated=1, rig_standard=briq-v1, free=1, max_price (USD, exclusive), sort, page. 24 per page. Malformed params are ignored, never an error. - GET /api/v1/assets/{id} one asset: price in integer cents, license with deed URL, files[] with available GLB variants (base | animated | rigged | ar) and animation clip names, gallery images. - GET /api/v1/assets/{id}/matching what goes WITH it: more from the creator, then similar assets. One asset into a scene. - GET /api/v1/assets/{id}/download?format=glb&file={fileId}&variant=animated FREE assets only. A permanent fetch URL: each hit 302-redirects to a storage URL that expires in an hour. Download the file into your project (see Downloads below) — browser pages cannot load briq files cross-origin. `file` defaults to the primary file; `variant` defaults to base. `?meta=1` returns license + attribution JSON instead of redirecting. - GET /api/v1/categories category slugs with published counts. - POST /api/v1/requests {"query": "...", "note"?: "...", "email"?: "..."} — tell briq what you needed and could not find. A filtered search reports `coverage` ("none" | "poor" | "ok"). On none or poor, SAY SO to your user and offer to POST /requests. Do not substitute something unrelated: a pine tree offered for a lunar base is worse than an honest no, and the request itself shapes what gets made next. ## MCP The same catalog as an MCP server — one HTTP endpoint, no install, no key: https://briq.market/mcp claude mcp add --transport http briq https://briq.market/mcp Common config shape for other clients: {"mcpServers": {"briq": {"type": "http", "url": "https://briq.market/mcp"}}} Tools: search_assets, get_asset, find_matching, get_download, list_categories, get_help, report_need. Six only read; report_need files a note about something missing. Nothing buys, deletes, or changes an account. ## Downloads and attribution - Fetch the GLB once and SAVE IT INTO YOUR PROJECT (e.g. assets/knight.glb). Games should not depend on briq at runtime, and browser pages cannot hotlink briq files (cross-origin loading is not enabled). The /download URL is permanent, so build scripts can re-fetch it any time; the storage URL it redirects to expires in an hour and must never be saved anywhere. - Prefer variant=animated for characters when has_animations is true — the GLB ships with its skeleton and clips baked in. ## Standard rig (briq-v1): drop-in animated characters Assets with `rig_standard: "briq-v1"` share one humanoid skeleton and their animated GLB is GUARANTEED to carry these 12 clips by exact name: idle, walk, run, jump-start, jump-loop, jump-end, combat-idle, attack, hit, death, interact, dance That makes them interchangeable: write the movement code once, swap any briq-v1 character in without touching it. Find them with `rig_standard=briq-v1` (add free=1 for keyless downloads) and download `variant=animated`. Play clips by name: const mixer = new THREE.AnimationMixer(gltf.scene); const walk = THREE.AnimationClip.findByName(gltf.animations, "walk"); mixer.clipAction(walk).play(); // update mixer in your render loop Per-clip metadata rides `extras.briq` on each animation: - `loop`: whether to loop it (idle/walk/run/jump-loop/combat-idle/dance loop; the rest play once — use THREE.LoopOnce). - `speed` (walk and run): the character's travel rate in ITS OWN units per second. Move the character at exactly this speed while the loop plays and the feet never slide — it is pre-scaled per character, so a chibi walks slower than a giant with zero math on your side. Most briq-v1 assets also carry extra clips beyond the guaranteed 12 — currently a gun set (gun-idle, gun-aim, gun-aim-up, gun-aim-down, gun-shoot, gun-reload). Check `files[].animation_clips` per asset. The gun poses expect a weapon: parent your gun mesh to the bone (Object3D) named "RightHand" and it will follow the hand through every clip. All characters face +Z at rest, feet at y=0, so one movement system fits all. - License headers ride every download: X-Briq-License, X-Briq-License-Url, X-Briq-Creator, X-Briq-Asset. CC BY-family licenses require crediting the creator; `?meta=1` includes a ready-to-paste `attribution` line for a credits screen or README. CC0 needs no credit. ## Loading a GLB in three.js Download first, load the local copy: curl -L "https://briq.market/api/v1/assets/{id}/download?format=glb" \ -o assets/knight.glb import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js"; new GLTFLoader().load( "assets/knight.glb", (gltf) => scene.add(gltf.scene), ); In a plain page (no bundler) your import map needs BOTH entries, and the trailing slash on "three/addons/" is required: Browsers refuse ES modules over file:// — serve the page over http (python3 -m http.server). ## License (summary) Each asset carries its own Creative Commons license (CC BY … CC0), shown in every API response with a deed URL and a plain-words note. Respect ND (no derivatives) and NC (no commercial use) variants when they appear. The catalog itself is licensed source for building games — not training data: using it to train, fine-tune or benchmark a commercial 3D asset generator is not permitted. ## Honest catalog note briq is small and growing. If coverage is poor for what your user needs, say so and report the need — requests are reviewed within about 48 hours and feed what gets commissioned and built next. ## Humans Store: https://briq.market · Working instructions for agents mid-build: https://briq.market/prompt.txt