Codels
ИИ-агенты и разработчики

Пусть агент сам подберёт модели.

У каждой модели на 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>.js

ES-модуль, экспортирующий 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"