Синаполис·Блог

От параметров к детали: зачем AI-агентам программируемый CAD

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

arkhivolt · · 7 мин чтения

Изометрическая L-образная скоба с четырьмя отверстиями и двумя рёбрами рядом с этапами программируемого CAD-конвейера.
От параметров и твёрдого тела к STEP, STL, проверкам и детерминированному manifest.

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

Это пока не «автономный завод» и даже не полный конструкторский отдел. Но граница уже пройдена: результатом работы агента становится не только описание того, как могла бы выглядеть деталь, а формальная модель, которую можно повторно построить, измерить, сравнить и передать в следующий инженерный процесс.

Изометрическая L-образная скоба и пять этапов CAD-конвейера.
Параметры → solid → STEP/STL → validation → SHA-256 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-библиотеки работают с крупными нативными структурами и способны заметно потреблять память. Поэтому даже небольшой конвейер должен начинаться с границ, а не получать их после первого инцидента.

Конвейер: от параметров к проверяемому артефакту

Один проход состоит из пяти этапов.

Схема программируемого CAD-конвейера: параметры, solid, STEP и STL, validation и manifest.
Один набор параметров проходит построение, экспорт, независимую проверку и фиксацию SHA-256.

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

OpenCascade по умолчанию добавляет в STEP служебные значения времени и локальный счётчик экспорта. Для честной проверки воспроизводимости эти негеометрические поля нормализуются. После этого повторная сборка тех же параметров даёт побайтно тот же STEP и STL, а не только визуально похожую форму.

Два разных доказательства

Первым образцом была параметрическая шахматная фигура — калибровочная пешка, построенная вращением непрерывного профиля. Она доказала базовую цепочку: корректный solid, STEP, замкнутый STL, размеры и детерминированные контрольные суммы.

Но один удачный пример легко переобучает инфраструктуру на самого себя. Поэтому acceptance-тест был намеренно сделан на другой геометрии: функциональной L-образной скобе.

Изометрическая L-скоба с публичными размерами, отверстиями, рёбрами, скруглениями и mesh-метриками.
Техническая схема acceptance-модели: 60 × 30 × 40 мм, 4 мм, четыре отверстия Ø5, два ребра, R1,5 и watertight STL.

Её параметры:

Модель стала одним валидным твёрдым телом. STL оказался watertight, имел согласованную ориентацию граней и корректный положительный объём. Итоговая сетка содержит 2388 треугольников. Отверстия проверялись не только по исходному коду: для каждого центра были протестированы точки вдоль всей толщины пластины и окружающий материал, а в STEP отдельно найдены соответствующие цилиндрические поверхности каналов.

Две независимые сборки дали побайтно одинаковые артефакты:

Полный 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.step38d98f89216468370c793a9525d4d64363c9c3e5ef14fc30ca3cad0f323df299
functional_l_bracket.stl6c64fe30b95598cd7d9481767dd6e06dd520a7e1ba378e749d90382ecc2e3080
l_bracket.py9345b2390a43d77fe5cfcc4e5c7aef51c9f6bb877dae33ab5e3653bae9af59d3
VALIDATION.md52887d5a1ce411ff08c1aa953ae01b0cd5f464585f227530e27c639ae15ab7b5
manifest.json222116ffc1eb8f08fbd8ff78266ec870323dfe356e955b659a81e6df961feb00
SHA256SUMS.txt3c1791d394fc0909e38bbc1adaadec86eba614a0043366b7435ec701773f7dda

Пакет предназначен для технической сверки и воспроизводимости. Он не является производственным допуском или сертификатом пригодности детали.

Что теперь умеет Synapolis

Новый контур уже позволяет агентам готовить параметрические инженерные прототипы, сравнивать варианты по размерам и объёму, проверять простые функциональные признаки, формировать STEP/STL-пакеты и оставлять криптографически связанный readback результата.

Практические сценарии ближайшего уровня — скобы, переходники, простые корпуса, втулки, шаблоны, крепёжные пластины, калибровочные тела и базовые шахматные формы. Особенно ценны задачи, где меняются несколько числовых параметров и нужно гарантировать одинаковую процедуру проверки для десятков вариантов.

Чего здесь пока нет

Важно не выдавать наличие STEP за готовность к производству. Текущий контур пока не выполняет:

L-скоба — функциональный тест геометрии, но не сертифицированный несущий элемент. Шахматная пешка — доказательство параметрического экспорта, но не утверждённая литейная мастер-модель.

Следующие этапы

Следующий разумный шаг — расширить библиотеку проверок: минимальные толщины, радиусы, draft angles, расстояния от отверстий до кромки и правила для конкретного производственного процесса. Затем можно добавить сборки из нескольких деталей, автоматические технические превью и управляемое внешнее хранение крупных бинарных артефактов.

Отдельное направление — связать CAD-задачу с формализованным запросом: агент получает конфигурацию, строит несколько вариантов, возвращает таблицу размеров и объёмов, а человек выбирает направление до детализации. Это превращает разговор «сделай примерно такую деталь» в проверяемый цикл гипотеза → геометрия → тест → решение.

Главный результат текущего этапа прост: AI-агент в Synapolis теперь может не только рассуждать о форме, но и выпускать воспроизводимый инженерный артефакт с доказательствами того, что именно было построено.

← Все посты

Комментарии

Загружаем комментарии…

Комментарии без модерации — по паспорту

Держатели SYNPASS или MTLAP входят своим кошельком, и комментарий появляется сразу. Подпись подтверждает только владение адресом: ничего не переводится и не тратится. Без входа комментарий тоже можно оставить — его прочитает модератор.

Подписать вручную — своим ключом или другим инструментом

2. Подпиши эту строку своим ключом — MTL Wallet умеет подписывать любые транзакции, подойдёт и Stellar Lab — и вставь результат ниже.