Пусть агент сам подберёт модели.
У каждой модели на Codels есть машиночитаемый двойник. API-ключ не нужен, CORS включён, URL стабильны. Нажмите Копировать для ИИ-агента на странице модели или направьте агента на https://codels.download/llms.txt — пусть ищет сам.
Что «Копировать для ИИ-агента» кладёт в буфер обмена
Add the 3D model "Pine Tree" from the Codels library to this three.js project.
1. First read the agent page (preview image, size, parts and ready-to-use code):
https://codels.download/m/pine-tree.md?snow=true
2. Then integrate it:
- Preferred: ES module https://codels.download/m/pine-tree.js?snow=true — exports createPineTree(): THREE.Group …
- Or the binary glTF: https://codels.download/m/pine-tree.glb?snow=true
- React Three Fiber component: https://codels.download/m/pine-tree.jsx?snow=true
Conventions: meters, +Y up, front faces +Z, origin at the center of the base (y = 0).Парящие модели (пикапы, планеты) отцентрированы относительно начала координат, а настенные объекты прилегают задней стороной к плоскости z = 0 — на каждой странице для агента указано точное положение начала координат.
MCP-сервер
Подключите Codels к Claude Code, Cursor, Windsurf или любому MCP-клиенту. Агент получит шесть инструментов: search_models, get_model (возвращает превью с 4 ракурсами, которое агент действительно видит), get_model_code, list_packs, get_pack и list_categories.
claude mcp add --transport http codels https://codels.download/mcpДругие клиенты (напр. mcp.json в Cursor):
{
"mcpServers": {
"codels": {
"url": "https://codels.download/mcp"
}
}
}Эндпоинты
/m/<slug>.mdСтраница для агента: описание, превью, размеры, таблица частей, параметры и полный код three.js — всё за один запрос.
/m/<slug>.jsES-модуль, экспортирующий create<Name>(): THREE.Group. Без зависимостей, кроме three.
/m/<slug>.jsxКомпонент React Three Fiber.
/m/<slug>.instanced.jsМодуль инстансинга: bake<Name>() (одна геометрия на материал) + create<Name>Instances(count, place) — сотни копий за несколько вызовов отрисовки.
/m/<slug>.htmlСамостоятельная демо-страница (three.js из CDN).
/m/<slug>.png · .sheet.pngПревью-рендер / лист с 4 ракурсами (3/4, спереди, сбоку, сверху), чтобы агенты могли «видеть» модель.
/m/<slug>.glb · .gltf · .obj · .stl · .jsonБинарный/JSON glTF, OBJ с цветами вершин, STL, исходный CodelSpec.
/api/v1/models?q=&category=&tags=&sort=Поиск с фасетами. Возвращает URL для каждого результата.
/api/v1/models/<slug> · /api/v1/tags · /api/v1/categoriesМетаданные, поиск тегов с количеством моделей, дерево категорий.
/c/<pack>.md · .js · .zip · .jsonНаборы и публичные коллекции: обзор для агента, один ES-модуль со всеми моделями или ZIP с GLB и модулями.
/llms.txtМашиночитаемое руководство по сайту.
/mcpЭндпоинт Model Context Protocol (Streamable HTTP) с инструментами поиска, превью и кода.
Параметрические варианты
Параметрические модели принимают свои параметры как query-строку в любом URL. На странице .md перечислены все параметры с их диапазонами.
// fetch a taller pine with snow caps as a ready ES module
const src = await fetch('https://codels.download/m/pine-tree.js?height=5.5&snow=true').then((r) => r.text());Использование кода
import * as THREE from 'three';
import { createPineTree } from './pine-tree.js';
const forest = new THREE.Group();
for (let i = 0; i < 40; i++) {
const tree = createPineTree();
tree.position.set((Math.random() - 0.5) * 60, 0, (Math.random() - 0.5) * 60);
tree.rotation.y = Math.random() * Math.PI * 2;
tree.scale.setScalar(0.8 + Math.random() * 0.5);
forest.add(tree);
}
scene.add(forest);Поиск из кода
const res = await fetch('https://codels.download/api/v1/models?q=medieval+barrel&sort=relevance');
const { items } = await res.json();
console.log(items[0].urls.code); // → https://codels.download/m/<slug>.jsЛимиты запросов и API-ключи
Всё работает без ключа (120 запросов к API в минуту с одного IP). Для более интенсивного использования создайте бесплатный API-ключ: 1 200 запросов в минуту и статистика использования. Передавайте его как Authorization: Bearer cdl_… — ответы содержат заголовок X-RateLimit-Remaining, а ответ 429 подскажет, когда повторить запрос.
curl -H "Authorization: Bearer cdl_your_key" "https://codels.download/api/v1/models?q=barrel"
claude mcp add --transport http codels https://codels.download/mcp --header "Authorization: Bearer cdl_your_key"