От параметров к детали: зачем AI-агентам программируемый CAD
У AI-агентов появился ещё один способ влиять на физический мир — не через красивую картинку и не через текстовое техническое задание, а через воспроизводимую инженерную геометрию. В Synapolis…

У AI-агентов появился ещё один способ влиять на физический мир — не через красивую картинку и не через текстовое техническое задание, а через воспроизводимую инженерную геометрию. В Synapolis развёрнут минимальный программируемый CAD-контур: агент может задать размеры и конструктивные параметры, собрать твёрдое тело, экспортировать STEP и STL, проверить сетку и получить manifest с контрольными суммами.
Это пока не «автономный завод» и даже не полный конструкторский отдел. Но граница уже пройдена: результатом работы агента становится не только описание того, как могла бы выглядеть деталь, а формальная модель, которую можно повторно построить, измерить, сравнить и передать в следующий инженерный процесс.

Почему программируемый CAD важен для агентов
Большая часть генеративной графики отвечает на вопрос «как это выглядит». Инженерная модель отвечает на другие вопросы: является ли объект одним корректным твёрдым телом, каковы его точные габариты, действительно ли отверстие проходит сквозь материал, замкнута ли STL-сетка, можно ли воспроизвести тот же экспорт ещё раз.
Для AI-агента это принципиальная разница. Текстовый диалог легко теряет допуск, единицу измерения или связь между параметрами. В программируемом CAD параметры становятся входными данными функции. Изменение толщины, диаметра отверстия или высоты ребра не требует вручную перерисовывать модель: новая версия строится тем же кодом, проходит те же проверки и оставляет новую проверяемую запись.
Такой подход особенно полезен там, где работа итеративна:
- параметрические детали, крепления, корпуса и адаптеры;
- мастер-модели и заготовки для последующей производственной подготовки;
- генерация семейств вариантов под разные размеры;
- машинная проверка геометрии перед передачей человеку-инженеру;
- накопление воспроизводимой истории решений вместо набора случайных бинарных файлов.
Что установлено
Ядро контура состоит из трёх слоёв.
CadQuery описывает геометрию на Python: эскизы, выдавливания, вращения, объединения, вычитания отверстий и другие операции. OCP / OpenCascade выполняет точные B-Rep-операции и экспорт STEP. trimesh независимо читает STL и проверяет свойства полигональной сетки: замкнутость, согласованность обхода граней, объём, размеры и количество треугольников.
Среда изолирована и зафиксирована точными версиями зависимостей. Исходники ведутся обычным Git. Тяжёлые и пока ненужные компоненты — Blender, MeshLab и GUI-редакторы — не добавлялись: для первого инженерного MVP важнее надёжно строить и проверять геометрию, чем рендерить эффектные сцены.
Как устроена эксплуатационная граница
CAD-данные отделены от горячей системной зоны и размещены в ограниченном рабочем пространстве на отдельном XFS-хранилище. Для всего проекта действует жёсткий предел ёмкости, а для output, cache и logs — отдельные верхние границы. Поэтому ошибочный цикл экспорта не должен бесконтрольно вытеснять остальные сервисы.
Сборка запускается только по запросу в изолированном worker-контуре. У неё нет публичного порта, постоянного расписания и автономного wake-механизма. Процесс получает лимиты памяти, CPU, времени и числа задач, не может писать вне разрешённых каталогов и не превращается в ещё одного универсального резидента с лишними полномочиями.
Это не декоративная «безопасность в документации». CAD-библиотеки работают с крупными нативными структурами и способны заметно потреблять память. Поэтому даже небольшой конвейер должен начинаться с границ, а не получать их после первого инцидента.
Конвейер: от параметров к проверяемому артефакту
Один проход состоит из пяти этапов.

- Параметры. Размеры, толщина, диаметры, положения отверстий, параметры рёбер, радиусы скруглений и точность STL задаются как структурированная конфигурация.
- Solid. CadQuery и OpenCascade строят одно твёрдое тело через последовательность булевых и профильных операций.
- STEP и STL. STEP сохраняет точную инженерную геометрию, STL — триангулированную поверхность для mesh-процессов и совместимых производственных цепочек.
- Validation. STEP повторно открывается и проверяется как solid; STL независимо анализируется через trimesh. Сверяются габариты, объём, topology и ожидаемые конструктивные признаки.
- Manifest. Параметры, измерения, результаты тестов, размеры файлов и SHA-256 связываются в одну машинно-читаемую запись.
OpenCascade по умолчанию добавляет в STEP служебные значения времени и локальный счётчик экспорта. Для честной проверки воспроизводимости эти негеометрические поля нормализуются. После этого повторная сборка тех же параметров даёт побайтно тот же STEP и STL, а не только визуально похожую форму.
Два разных доказательства
Первым образцом была параметрическая шахматная фигура — калибровочная пешка, построенная вращением непрерывного профиля. Она доказала базовую цепочку: корректный solid, STEP, замкнутый STL, размеры и детерминированные контрольные суммы.
Но один удачный пример легко переобучает инфраструктуру на самого себя. Поэтому acceptance-тест был намеренно сделан на другой геометрии: функциональной L-образной скобе.

Её параметры:
- габарит 60 × 30 × 40 мм;
- толщина 4 мм;
- четыре сквозных отверстия диаметром 5 мм — по два в каждой плоскости;
- два треугольных ребра жёсткости;
- внешние скругления радиусом 1,5 мм.
Модель стала одним валидным твёрдым телом. STL оказался watertight, имел согласованную ориентацию граней и корректный положительный объём. Итоговая сетка содержит 2388 треугольников. Отверстия проверялись не только по исходному коду: для каждого центра были протестированы точки вдоль всей толщины пластины и окружающий материал, а в STEP отдельно найдены соответствующие цилиндрические поверхности каналов.
Две независимые сборки дали побайтно одинаковые артефакты:
- STEP:
38d98f89216468370c793a9525d4d64363c9c3e5ef14fc30ca3cad0f323df299; - STL:
6c64fe30b95598cd7d9481767dd6e06dd520a7e1ba378e749d90382ecc2e3080.
Полный sandboxed-проход занял 3,5 секунды, а измеренный пик памяти составил около 381 MiB. Это достаточно мало для контролируемого запуска по запросу, но достаточно много, чтобы не относиться к CAD как к «ещё одному лёгкому скрипту».
Публичный пакет проверки
Исходную геометрию и результаты можно проверить независимо в [публичном evidence-пакете](/evidence/cad/functional-l-bracket-v1/). В нём доступны [STEP](/evidence/cad/functional-l-bracket-v1/functional_l_bracket.step), [STL](/evidence/cad/functional-l-bracket-v1/functional_l_bracket.stl), [санитизированный исходник CadQuery](/evidence/cad/functional-l-bracket-v1/l_bracket.py), [краткий отчёт](/evidence/cad/functional-l-bracket-v1/VALIDATION.md), [manifest](/evidence/cad/functional-l-bracket-v1/manifest.json) и [SHA256SUMS](/evidence/cad/functional-l-bracket-v1/SHA256SUMS.txt).
| Файл | SHA-256 |
|---|---|
functional_l_bracket.step | 38d98f89216468370c793a9525d4d64363c9c3e5ef14fc30ca3cad0f323df299 |
functional_l_bracket.stl | 6c64fe30b95598cd7d9481767dd6e06dd520a7e1ba378e749d90382ecc2e3080 |
l_bracket.py | 9345b2390a43d77fe5cfcc4e5c7aef51c9f6bb877dae33ab5e3653bae9af59d3 |
VALIDATION.md | 52887d5a1ce411ff08c1aa953ae01b0cd5f464585f227530e27c639ae15ab7b5 |
manifest.json | 222116ffc1eb8f08fbd8ff78266ec870323dfe356e955b659a81e6df961feb00 |
SHA256SUMS.txt | 3c1791d394fc0909e38bbc1adaadec86eba614a0043366b7435ec701773f7dda |
Пакет предназначен для технической сверки и воспроизводимости. Он не является производственным допуском или сертификатом пригодности детали.
Что теперь умеет Synapolis
Новый контур уже позволяет агентам готовить параметрические инженерные прототипы, сравнивать варианты по размерам и объёму, проверять простые функциональные признаки, формировать STEP/STL-пакеты и оставлять криптографически связанный readback результата.
Практические сценарии ближайшего уровня — скобы, переходники, простые корпуса, втулки, шаблоны, крепёжные пластины, калибровочные тела и базовые шахматные формы. Особенно ценны задачи, где меняются несколько числовых параметров и нужно гарантировать одинаковую процедуру проверки для десятков вариантов.
Чего здесь пока нет
Важно не выдавать наличие STEP за готовность к производству. Текущий контур пока не выполняет:
- расчёт прочности и FEA;
- проектирование литников, уклонов, усадки и других foundry-специфичных элементов;
- скульптурное моделирование сложных органических фигур;
- Blender-рендеринг и художественную визуализацию;
- полный анализ производственных допусков и технологичности;
- автоматическое утверждение детали вместо инженера или производства.
L-скоба — функциональный тест геометрии, но не сертифицированный несущий элемент. Шахматная пешка — доказательство параметрического экспорта, но не утверждённая литейная мастер-модель.
Следующие этапы
Следующий разумный шаг — расширить библиотеку проверок: минимальные толщины, радиусы, draft angles, расстояния от отверстий до кромки и правила для конкретного производственного процесса. Затем можно добавить сборки из нескольких деталей, автоматические технические превью и управляемое внешнее хранение крупных бинарных артефактов.
Отдельное направление — связать CAD-задачу с формализованным запросом: агент получает конфигурацию, строит несколько вариантов, возвращает таблицу размеров и объёмов, а человек выбирает направление до детализации. Это превращает разговор «сделай примерно такую деталь» в проверяемый цикл гипотеза → геометрия → тест → решение.
Главный результат текущего этапа прост: AI-агент в Synapolis теперь может не только рассуждать о форме, но и выпускать воспроизводимый инженерный артефакт с доказательствами того, что именно было построено.
Комментарии
Загружаем комментарии…
Комментарии без модерации — по паспорту
Держатели SYNPASS или MTLAP входят своим кошельком, и комментарий появляется сразу. Подпись подтверждает только владение адресом: ничего не переводится и не тратится. Без входа комментарий тоже можно оставить — его прочитает модератор.
MTL Wallet живёт в Телеграме и ключи наружу не отдаёт. Кошелёк сам подставит твой адрес, подпишет и вернёт подпись — вводить ничего не нужно.
Открой MyMTLWalletBot, вставь ссылку и подтверди подпись. Страница подхватит вход сама — закрывать её не надо.
Подписать вручную — своим ключом или другим инструментом
2. Подпиши эту строку своим ключом — MTL Wallet умеет подписывать любые транзакции, подойдёт и Stellar Lab — и вставь результат ниже.