Настройка локальной нейросети (LLM) для генерации 3D моделей в OpenSCAD и FreeCAD
Некоторое время я рассказывал, как создать 3D модель для своих целей не имея навыков проектирования и/или работы в CAD приложениях — с помощью нейросетей и OpenSCAD/FreeCAD можно получить готовый файл STL для печати на 3D принтере.
Так вот, гораздо удобнее делать все это на домашнем компьютере, без подписок и без заморочек с онлайн-доступом к сервисам.
Достаточно локально установленной нейросети (LLM) и настроенной связки «провайдер + мост (MCP)» для приложения проектирования.
Если вы представляете, что хотите спроектировать, и у вас есть конкретика — общие размеры, назначение, описание внешнего вида, — такая связка позволяет сделать файл STL для 3D-принтера локально, без утечек данных в интернет. И без оплаты подписок, естественно. В продолжение этой статьи про генерацию моделей.
Что понадобится сделать: установка Ollama и модели Qwen3 8B, установка OpenSCAD, FreeCAD и Blender, два режима работы (CLI и MCP) и тестовые задания: шестерни для моего Pip-Boy и корпус под плату ESP32-C3.
Требования к железу. Указываю то, с чем работаю. Если у вас производительнее — значит будет проще и легче:
• Компьютер с 16 ГБ оперативной памяти. У меня это мини-ПК на Intel Core Ultra 5 226V: 4 производительных и 4 энергоэффективных ядра, встроенная графика Arc 130V, 16 ГБ LPDDR5X. Дискретная видеокарта не обязательна: модель на 8 миллиардов параметров в 4-битном сжатии занимает около 5 ГБ и работает на процессоре или встроенной графике.
• 15–20 ГБ свободного места на SSD: модель, три CAD-программы и Python.
• Windows 10/11. Всё описанное работает и в Linux, меняются только пути.
• Ollama — «движок», который запускает нейросеть локально.
• Модель Qwen3 8B в квантизации Q4_K_M (или Q5_K_M, если памяти больше).
• OpenSCAD, FreeCAD, Blender — бесплатные программы с открытым кодом.
• Python 3.12 — для скрипта-связки и MCP-сервера.
Какую выбрать LLM — да любую, которая вас устраивает. Все меняется достаточно быстро, и уже через неделю можно будет уверенно говорить что N-версия лучше, чем M-предыдущая, или Y-сборка одного типа умнее и быстрее ворочается, чем X-сборка другого. Если не сильно вникать, а просто взять и попробовать, то рассмотрим линейку Qwen3: доступны как простые модели 0.6B, 1.7B, 4B, 8B, так и старше 14B и 27B. Есть и более серьезные, но и более требовательные к ресурсам (памяти 128+ Гб, не буду рассматривать сейчас такое). Для CAD-задач на 16 ГБ памяти разумный выбор — это Qwen3 8B. Модель 4B заметно чаще путается в синтаксисе, а 14B на 16 ГБ уже тесно вместе с CAD-программами в памяти компьютера. Хотя если у вас 32 или 64 Гб памяти, то рассмотрите и эти варианты (Qwen3.8-27B).
Шаг 1. Ollama и модель Qwen3
Ollama скачивается с сайта ollama.com, установка — обычный «Далее — Далее — Готово». После установки в трее появляется значок ламы, а в системе — команда ollama. Сервер Ollama слушает адрес localhost:11434, к нему могут обращаться любые программы на этом компьютере. Наружу ничего не уходит.
Модель скачивается одной командой:
Пара слов о буквах в названии. Q4 и Q5 — сколько бит в среднем приходится на один вес нейросети. Q4_K_M — золотая середина: модель занимает примерно в 3 раза меньше памяти, чем исходная, а качество падает незначительно. Q5_K_M весит около 5,9 ГБ, немного точнее в коде и арифметике, но и медленнее. В библиотеке Ollama такого варианта нет, его берут из официального репозитория Qwen на Hugging Face той же командой:
Второй важный момент — размер контекста. По умолчанию Ollama даёт модели окно на 4096 токенов. Для генерации CAD-кода этого мало: системная инструкция, пример, задание, ответ модели и текст ошибки быстро переполняют окно, и модель «забывает» начало разговора. Поэтому я сделал свою версию модели с окном 24 тысячи токенов. Создаём текстовый файл Modelfile:
Лайфхак для встроенной графики. Ollama по умолчанию считает на процессоре, а встроенную графику Intel Arc и AMD Radeon игнорирует. Если запустить сервер с двумя переменными окружения, вычисления переезжают на графическое ядро через Vulkan:

Шаг 2. OpenSCAD, FreeCAD и Blender
OpenSCAD (openscad.org) — «программируемый» CAD. В нём нет мышки и эскизов: модель описывается текстом из кубов, цилиндров и булевых операций. Поэтому он идеален для нейросети: модель пишет текст, OpenSCAD превращает его в геометрию. Окно делится на редактор кода слева и 3D-просмотр справа. F5 — быстрый предпросмотр, F6 — полный рендер, F7 — экспорт в STL. Есть консольный режим: openscad -o model.stl model.scad собирает STL без открытия окна. В комплекте идёт библиотека MCAD с готовыми эвольвентными шестернями — она нам пригодится.
FreeCAD (freecad.org) — полноценная параметрическая САПР: эскизы, дерево построения, сборки, чертежи. Для нейросети важно другое: внутри FreeCAD работает Python, и всё, что делается мышкой, можно сделать кодом через модуль Part. FreeCAD сохраняет STEP — формат, который понимают любые «взрослые» CAD и в котором хранятся точные поверхности, а не треугольники. Для работы без окна есть freecadcmd.exe.
Blender (blender.org) — пакет для 3D-графики. Для печати он нужен реже, но незаменим, когда деталь нужно показать: сделать визуализацию, проверить, как детали стоят рядом, вылепить органическую форму. Python в Blender встроен (модуль bpy), консольный режим запускается ключом --background. И у Blender есть самый популярный MCP-сервер из всех CAD-программ — к нему вернёмся ниже.
Все три программы ставятся обычными установщиками или распаковываются из архива (portable-версии). Я держу их в папках без пробелов в пути: C:\AiCAD\OpenSCAD, C:\AiCAD\FreeCAD — так меньше проблем со скриптами. Аккуратно с кириллицей в путях — не всегда срабатывает корректно.
Два способа подружить нейросеть с CAD: CLI и MCP
Сама по себе нейросеть только пишет текст. Чтобы из текста получился STL, нужен мост между моделью и программой. Я использую два варианта.
CLI-режим (командная строка). Небольшой скрипт на Python отправляет задание в Ollama, получает ответ, вырезает из него блок кода, сохраняет в файл и запускает CAD-программу в консольном режиме. Если программа вернула ошибку, скрипт отправляет её текст обратно нейросети с просьбой исправить код. Цикл повторяется, пока не получится STL или не кончатся попытки. Всё прозрачно и работает с любой моделью, даже не умеющей вызывать инструменты.
MCP-режим (Model Context Protocol). MCP — открытый протокол, который придумали в Anthropic, а теперь поддерживают почти все ИИ-клиенты. Программа-сервер сообщает нейросети список своих «инструментов» с описанием: «собрать модель OpenSCAD из кода», «запустить скрипт FreeCAD». Нейросеть сама решает, когда и какой инструмент вызвать, получает результат и продолжает работу. Вы общаетесь с моделью в чате, а она «руками» MCP-сервера строит детали.
Для MCP нужно три компонента:
• модель, умеющая вызывать инструменты (tool calling). Qwen3 это умеет — в ollama show у неё указана возможность tools;
• MCP-клиент — чат, который подключает модель к серверам. Для Ollama я использую консольный ollmcp (пакет mcp-client-for-ollama); MCP поддерживают также LM Studio, Open WebUI и агент OpenCode;
• MCP-сервер для CAD-программы. Для Blender есть готовый blender-mcp: аддон внутри Blender открывает локальный порт, и нейросеть видит сцену и меняет её прямо в открытом окне. Для FreeCAD и OpenSCAD тоже есть серверы от энтузиастов, но я написал свой на полсотни строк — так проще понять, что происходит.
Ниже я начинаю с CLI: он проще в отладке и честнее показывает, на что способна модель 8B.
Скрипт-связка для CLI-режима
Сердце CLI-режима — мой скрипт cad_agent.py, около 200 строк на чистом Python без сторонних библиотек. Запуск выглядит так:
Что он делает:
• отправляет в Ollama системную инструкцию («ты инженер OpenSCAD, отвечай одним блоком кода, единицы — миллиметры, sin и cos принимают градусы…») и текст задания;
• вырезает из ответа блок кода и сохраняет в .scad или .py;
• запускает openscad.exe, freecadcmd.exe или blender.exe --background; для FreeCAD сам дописывает экспорт в STEP и STL, для Blender — экспорт STL и сохранение .blend;
• читает журнал программы. Ошибкой считается не только ERROR, но и предупреждения вида «неизвестный модуль», «неизвестная переменная», «параметр не существует»: OpenSCAD в таких случаях молча пропускает кусок модели и рапортует об успехе;
• проверяет габариты готового STL (ключ --expect). Если деталь собралась, но размер не тот, это тоже ошибка;
• отправляет текст ошибки модели с просьбой прислать исправленный код. По умолчанию 4 попытки.
Ключ --hint добавляет к инструкции файл-подсказку. Ниже станет понятно, почему это главный параметр всей статьи.
Тест 1. Шестерни для Pip-Boy
Задание на большую шестерню: прямозубая, 24 зуба, модуль 1 мм, толщина 5 мм, центральное отверстие 5 мм с лыской под вал мотора (D-профиль), четыре облегчающих отверстия 4 мм на радиусе 7 мм.
Сразу скажу, что нейросети часто ошибаются. Это как с картинками, на которых было по шесть пальцев. Ничего страшного, если вы знаете, что хотите и умеете проверять результат. Нейросети нужно написать, что и как получилось не так, и что нужно переделать. Если говорить про эту шестерню — то это классическая ловушка для нейросети. Эвольвентный профиль зуба надо считать, и маленькая модель либо пишет свою «математику» с ошибками, либо подключает библиотеку и путает её параметры. В OpenSCAD есть встроенная библиотека MCAD с модулем gear(), и я сразу подсказал модели её использовать. Дальше началось интересное — у меня вышло четыре версии одной шестерни: три ошибки и правильная деталь
• Первая версия не собралась вовсе: модель назвала переменную module, а это зарезервированное слово OpenSCAD.
• Вторая «собралась успешно», но вместо шестерни получился цилиндр. Модель забыла строку use <MCAD/involute_gears.scad>, OpenSCAD написал предупреждение «неизвестный модуль gear» и пропустил его. После этого я научил скрипт считать такие предупреждения ошибкой.
• Третья — первая настоящая шестерня, но отверстия съехали к центру и слились в одно, лыски нет.
• Четвёртая зациклилась на формуле: шаг зацепления модель считала как 24·π·m, и шестерня получалась диаметром 10,9 мм вместо 26. Подсказка «circular_pitch = 180·m» не помогала — модель упорно возвращала ошибку.
Решение оказалось простым и, на мой взгляд, главным выводом всей статьи. Модели на 8 миллиардов параметров нужно давать не правила, а готовый работающий пример. Я написал шаблон шестерни с другими числами (30 зубьев, модуль 1,5, шесть отверстий) и положил его в подсказку с фразой «скопируй структуру, поменяй только числа». Результат — правильная шестерня с первой попытки за 26 секунд:
На будущее — можно подсказки (визуализацию) делать с помощью других нейросетей, с помощью сканирования (положить в сканер старую, но сломанную шестерню и попросить дорисовать), с помощью фото/эскизов и прочих файлов с примерами. Полученные шестерни, которые я использовал в проекте Pipboy 3000, сделаны как раз нейросетью: габариты 25,99 × 25,99 × 5 мм — ровно то, что должно быть у шестерни с 24 зубьями модуля 1 (диаметр вершин 26 мм). Малая шестерня на 12 зубьев со ступицей 8 мм по тому же шаблону тоже собралась с первой попытки: модель сама поняла, как задать ступицу через параметры библиотеки.

Тест 2. Корпус под плату ESP32-C3
Задание: коробка с внутренним размером 56 × 32 × 20 мм, стенки и дно 2 мм, окно 10 × 4,5 мм под USB-C в торце на высоте 4 мм, четыре стойки 5 мм с отверстиями 2,5 мм под саморезы, по верхнему краю фальц под крышку.
Сначала — без подсказок. Результат меня одновременно рассмешил и многому научил:
Qwen3 написала код так, будто OpenSCAD — это Python: box = cube(...), post = translate(...) * post. В OpenSCAD объекты нельзя складывать в переменные. Все четыре попытки упали на одной и той же строке: модель получала текст ошибки и присылала тот же код с косметическими правками.
FreeCAD-версия того же корпуса без подсказки собралась сразу — Python модель знает лучше. Но геометрия оказалась неверной: вместо полости модель «вырезала» горизонтальные плиты, и высота коробки вышла 14 мм вместо 22. Проверка габаритов это поймала, но за четыре попытки модель так и не нашла ошибку.
Тогда я сделал то же, что с шестернёй: шаблон коробки другого размера (70 × 40 × 25 мм, круглое отверстие в торце, стойки, фальц) для OpenSCAD и такой же для FreeCAD. Обе версии корпуса собрались с первой попытки: OpenSCAD за 47 секунд, FreeCAD со скруглёнными вертикальными рёбрами R3 — тоже первым ответом. Габариты 60 × 36 × 22 мм совпали до десятых.
Корпус ESP32-C3 по шаблону: OpenSCAD и FreeCAD, все четыре стойки и окно USB-C на месте.

Честное замечание: модель расставила стойки «по углам», как просили, а не по отверстиям реальной платы. Координаты крепёжных отверстий конкретной платы нейросеть не знает — их нужно брать из документации или мерить штангенциркулем и прописывать в задании. А в целом — корпус готов, stl экспортировано, все нарезается и готово к печати.

Тест 3. Ручка-крутилка в Blender
Задание: ручка для переключателя Pip-Boy диаметром 22 мм и высотой 14 мм, 18 продольных рёбер накатки, фаска сверху, риска-указатель на торце, глухое отверстие 6 мм под вал энкодера.
Без подсказки Blender-версия закончилась хуже всего. Модель начала писать код и ушла в бесконечный повтор: Классическая болезнь маленьких моделей: зацикливание на одной строке.

Это известное поведение маленьких моделей. Спасают две вещи: ограничение длины ответа (в скрипте теперь стоит num_predict = 2500 токенов, чтобы не ждать до переполнения окна) и тот же приём с шаблоном. С примером ручки других размеров модель выдала рабочий код за 45 секунд с первой попытки, габариты 22 × 22 × 14 мм.
Забавная деталь: в шаблоне было 128 граней у конуса, а модель «переписала» это число как 123. На геометрию не повлияло, но хорошо показывает, что даже копирование чисел маленькая модель делает не идеально. Проверять результат нужно всегда.
Все детали, сгенерированные Qwen3 8B, в одной сцене Blender.

MCP-режим: Qwen3 управляет открытым Blender
Теперь самое эффектное. В Blender ставится аддон MCP for Blender (проект blender-mcp): он открывает в Blender локальный порт 9876. MCP-сервер запускается командой uvx blender-mcp (uv — менеджер пакетов Python, ставится одной командой с сайта astral.sh) и пересылает команды нейросети в открытое окно. Клиент — ollmcp:
Файл mcp_blender.json описывает сервер:
Две важные мелочи. Первая: имя модели указывайте с тегом :latest, иначе ollmcp молча подставит первую попавшуюся модель — у меня это оказалась gemma4 на 26 миллиардов параметров, которая в 16 ГБ просто не поместится. Вторая — про приватность: у blender-mcp есть сбор статистики (по умолчанию выключен и включается только с вашего согласия), переменная DISABLE_TELEMETRY отключает его наглухо. Кроме того, среди девяти инструментов сервера есть облачные — генерация 3D-моделей и поиск ассетов в интернете. Если нужна полная автономность, отключите их в ollmcp командой /tools: ollmcp подключил blender-mcp: 9 инструментов, модель Qwen3 8B с поддержкой tools.

Задание в чате: поставить малую шестерню в зацепление с большой — межосевое расстояние 18 мм по оси X, нижние грани на одной высоте. Для модуля 1 мм и 24 + 12 зубьев межосевое расстояние (24 + 12) / 2 = 18 мм.
Перед выполнением кода ollmcp показывает его и ждёт подтверждения. Это правильный подход: модель выполняет произвольный Python внутри Blender, и видеть, что именно она собирается сделать, полезно.

Что получилось за три сообщения:
• Первый ответ. Модель запросила список объектов сцены, но передала в фильтр оба имени через запятую и получила пустой ответ. Сама разобралась, со второй попытки нашла объекты и передвинула шестерню на 18 мм по X. Отчиталась: «выровнял нижние грани». На деле скопировала координату Z центра большой шестерни, и малая (высотой 12 мм) ушла на 3,5 мм под пол.
• Второй ответ. После моего замечания модель исправила Z правильно и даже вывела проверку: нижние грани на Z = 0. В тексте ответа при этом перепутала, какая шестерня 5 мм, а какая 12.
• Третий ответ. Нюанс, о котором модель не подумала: у обеих шестерён зуб стоит на оси X, поэтому в точке контакта «зуб упирается в зуб». Попросил повернуть малую на половину углового шага — 360 / 12 / 2 = 15°. Сделала с первого раза. Я проверил булевым пересечением: до поворота зубья пересекались на 13,4 мм³, после — ноль.
Результат в окне Blender: шестерня 12 зубьев на своём месте, X = 24,038 мм, Z = 6 мм.

Шестерни в зацеплении после трёх сообщений в чате.

По времени: первый ответ занял около 14 минут, из них 6,5 минуты модель «размышляла». У Qwen3 по умолчанию включён режим размышлений (thinking). Для таких задач его лучше выключить: в ollmcp это команда /tm, и ответы приходят за 1–2 минуты. Ещё одна причина медлительности — описания девяти инструментов blender-mcp занимают несколько тысяч токенов, и модель перечитывает их на каждом шаге.
MCP-режим со своим сервером: где 8B не хватает
Второй сценарий — мой сервер cad_mcp.py. Он даёт модели четыре инструмента: собрать модель в OpenSCAD, во FreeCAD, в Blender и показать список готовых файлов. Внутри — те же функции, что в CLI-скрипте, поэтому проверки ошибок одинаковые. Пишется такой сервер на официальной библиотеке mcp для Python в несколько строк на инструмент: функция с описанием и декоратором @mcp.tool().
Тут меня ждала неочевидная ловушка: в JSON-конфиге ollmcp я написал Windows-пути с одинарными обратными слэшами. JSON такое не прощает, а ollmcp не ругается — просто запускается без единого инструмента. Пишите пути прямыми слэшами: C:/AiCAD/… — Windows их понимает.
Задание было простым до неприличия: шайба-проставка, наружный диаметр 10 мм, отверстие 3,2 мм под М3, толщина 2 мм, фаска 0,5 мм. С выключенными размышлениями ответ пришёл за полминуты, а дальше начались чудеса:

• Первая версия вместо фаски вырезала на краю маленький цилиндр — получилась дырка. В отчёте модель так и написала: фаска «выглядит как цилиндрический выступ на краю».
• Вторая версия придумала несуществующий параметр pos=[0,0,2] у цилиндра. OpenSCAD выдал предупреждение и проигнорировал его, а мой сервер ответил «OK». Пришлось дописать проверку: предупреждение «not specified as parameter» теперь тоже ошибка.
• Третья версия приклеила конус сверху вместо срезания кромки. Деталь стала толщиной 2,5 мм, а конус перекрыл отверстие.
Вывод: в «свободном» чате без шаблона модель 8B ненадёжна даже на шайбе. MCP хорош, когда нужно что-то сделать с уже готовыми объектами — передвинуть, повернуть, расставить, проверить. Новую геометрию надёжнее генерировать CLI-скриптом с шаблоном и проверкой размеров.
Что я вынес из экспериментов
• Шаблон важнее модели. Правила в инструкции 8B-модель читает через раз, а работающий пример копирует почти без ошибок. Для каждого типа деталей (шестерня, коробка, ручка, кронштейн) имеет смысл один раз сделать шаблон — и дальше менять только размеры.
• Проверяйте не только ошибки, но и результат. Пропущенный модуль, выдуманный параметр, неверный размер — всё это OpenSCAD собирает «успешно». Сравнение габаритов STL с ожидаемыми ловит большую часть таких случаев.
• Ограничивайте длину ответа. Маленькие модели иногда зацикливаются; лимит в 2–3 тысячи токенов экономит минуты ожидания.
• Выключайте размышления для простых действий в MCP-режиме — разница в скорости в разы.
• Встроенная графика — бесплатное ускорение. Vulkan в Ollama удвоил скорость генерации на Arc 130V.
• Размеры и привязки задаёте вы. Нейросеть не знает, где у вашей платы крепёжные отверстия и как должна стоять шестерня относительно соседней. Чем точнее задание, тем меньше итераций. Я вообще держу под рукой штангенциркуль и стараюсь обмерять и давать нейросети все нужные установочные размеры.
• STL перед печатью загоняйте в слайсер для проверки. Модель могла сделать стенку тоньше сопла или «висящую» в воздухе деталь — это видно только при нарезке.
Но: идея работает, модели делаются, приложения пишутся (c VS Code и Android Studio тоже настраивается, но чуть сложнее). Не с первого раза, да. Но сделать что-то что очень желаете — можно. Или хотя бы приблизиться к этому.

Локальная связка Qwen3 8B + Ollama + OpenSCAD/FreeCAD/Blender работает на обычном мини-ПК с 16 ГБ памяти, без видеокарты и без интернета. Не нужно 100500 миллионов на домашний сервер и топовые видеокарты, если у вас не ИИ-ферма. Шестерни, корпус и ручка для Pip-Boy получились с первой попытки за полминуты-минуту каждая, но только после того, как я дал модели по одному готовому примеру. Без примеров модель на 8 миллиардов параметров путает синтаксис, выдумывает параметры и уверенно отчитывается о несделанном, так что лучше использовать более продвинутые модели на 14B и 27B (нужно 24 или 32 Гб памяти). MCP-режим впечатляет, когда нейросеть двигает детали прямо в открытом Blender, но для создания новой геометрии надёжнее простой скрипт с проверками. Да и в целом, лучше обзавестись своей подборкой промптом для создания моделей, которые вы часто используете (тот же корпус для РЭА — один раз написал, а потом меняй размеры, двигай туда-сюда отверстия под разъемы, стойки — профит).
Облачные модели пока умнее — тут сложно спорить, зато здесь никто не видит ваших чертежей и никто не выставит счёт за подписку и не заблокирует доступ.
Дисклеймер: Ни в коем случае никого не принуждаю использовать нейросети, и не принуждаю следовать именно этому способу установки/настройки. Настроить MCP-связку можно на базе также LM Studio, Open WebUI и OpenCode — для кого то это будет проще, для кого-то нагляднее. Есть варианты настройки под Linux — смысл работа от этого не меняется. Я просто поделился опытом и рассказал, как делаю сам. Лично мне за глаза хватает ИИ в роли помощника, например, для генерации кода для Arduino IDE с работой через командную строку (Arduino CLI) — пишу, что нужно (примеры LLM ищет в интернете), подключаю плату — нейросеть сама находит на нужном порту плату, определяет ее тип и прошивает. Очень удобно, раньше на это тратил много времени, сейчас автоматизировал вот такой сборкой.
Небольшое добавление. Пока оформлял статью, появилось новое CAD-приложение, которое не менее интересно, чем OpenSCAD, FreeCAD и Blender вместе взятые. Речь идет про Solid craft, у него тоже есть свой MCP сервер и локальные LLM работают с этим приложением (сделал в тестовом варианте коробочку для РЭА).
Всем добра!
Так вот, гораздо удобнее делать все это на домашнем компьютере, без подписок и без заморочек с онлайн-доступом к сервисам.
Достаточно локально установленной нейросети (LLM) и настроенной связки «провайдер + мост (MCP)» для приложения проектирования.
Если вы представляете, что хотите спроектировать, и у вас есть конкретика — общие размеры, назначение, описание внешнего вида, — такая связка позволяет сделать файл STL для 3D-принтера локально, без утечек данных в интернет. И без оплаты подписок, естественно. В продолжение этой статьи про генерацию моделей.
Что понадобится сделать: установка Ollama и модели Qwen3 8B, установка OpenSCAD, FreeCAD и Blender, два режима работы (CLI и MCP) и тестовые задания: шестерни для моего Pip-Boy и корпус под плату ESP32-C3.
Требования к железу. Указываю то, с чем работаю. Если у вас производительнее — значит будет проще и легче:
• Компьютер с 16 ГБ оперативной памяти. У меня это мини-ПК на Intel Core Ultra 5 226V: 4 производительных и 4 энергоэффективных ядра, встроенная графика Arc 130V, 16 ГБ LPDDR5X. Дискретная видеокарта не обязательна: модель на 8 миллиардов параметров в 4-битном сжатии занимает около 5 ГБ и работает на процессоре или встроенной графике.
• 15–20 ГБ свободного места на SSD: модель, три CAD-программы и Python.
• Windows 10/11. Всё описанное работает и в Linux, меняются только пути.
• Ollama — «движок», который запускает нейросеть локально.
• Модель Qwen3 8B в квантизации Q4_K_M (или Q5_K_M, если памяти больше).
• OpenSCAD, FreeCAD, Blender — бесплатные программы с открытым кодом.
• Python 3.12 — для скрипта-связки и MCP-сервера.
Какую выбрать LLM — да любую, которая вас устраивает. Все меняется достаточно быстро, и уже через неделю можно будет уверенно говорить что N-версия лучше, чем M-предыдущая, или Y-сборка одного типа умнее и быстрее ворочается, чем X-сборка другого. Если не сильно вникать, а просто взять и попробовать, то рассмотрим линейку Qwen3: доступны как простые модели 0.6B, 1.7B, 4B, 8B, так и старше 14B и 27B. Есть и более серьезные, но и более требовательные к ресурсам (памяти 128+ Гб, не буду рассматривать сейчас такое). Для CAD-задач на 16 ГБ памяти разумный выбор — это Qwen3 8B. Модель 4B заметно чаще путается в синтаксисе, а 14B на 16 ГБ уже тесно вместе с CAD-программами в памяти компьютера. Хотя если у вас 32 или 64 Гб памяти, то рассмотрите и эти варианты (Qwen3.8-27B).
Шаг 1. Ollama и модель Qwen3
Ollama скачивается с сайта ollama.com, установка — обычный «Далее — Далее — Готово». После установки в трее появляется значок ламы, а в системе — команда ollama. Сервер Ollama слушает адрес localhost:11434, к нему могут обращаться любые программы на этом компьютере. Наружу ничего не уходит.
Модель скачивается одной командой:
ollama pull qwen3:8bТег qwen3:8b — это квантизация Q4_K_M, файл около 5,2 ГБ. Проверить можно командой ollama show qwen3:8b: в строке quantization будет Q4_K_M.
Пара слов о буквах в названии. Q4 и Q5 — сколько бит в среднем приходится на один вес нейросети. Q4_K_M — золотая середина: модель занимает примерно в 3 раза меньше памяти, чем исходная, а качество падает незначительно. Q5_K_M весит около 5,9 ГБ, немного точнее в коде и арифметике, но и медленнее. В библиотеке Ollama такого варианта нет, его берут из официального репозитория Qwen на Hugging Face той же командой:ollama pull hf.co/Qwen/Qwen3-8B-GGUF:Q5_K_MДля 16 ГБ ОЗУ я рекомендую Q4_K_M: остаётся память для самих CAD-программ. Q5_K_M имеет смысл при 32 ГБ или видеокарте с 8+ ГБ памяти (обратите внимание — если железо позволяет, то имеет смысл так и сделать).Второй важный момент — размер контекста. По умолчанию Ollama даёт модели окно на 4096 токенов. Для генерации CAD-кода этого мало: системная инструкция, пример, задание, ответ модели и текст ошибки быстро переполняют окно, и модель «забывает» начало разговора. Поэтому я сделал свою версию модели с окном 24 тысячи токенов. Создаём текстовый файл Modelfile:
FROM qwen3:8b
PARAMETER num_ctx 24576
и выполняем:ollama create qwen3-8b-24k -f ModelfileЭта команда создаёт новую конфигурацию модели Qwen3 8B с увеличенным контекстным окном до 24 576 токенов (24k) взамен стандартного значения, которое использовалось при запуске. Это уже не еще одна установка, а создание ее отдельного профиля для работы (конфигурации для контурной цели), более удобного для написания кода. Новая конфигурация не занимает места на диске — она ссылается на тот же файл весов. Окно можно задать и в каждом запросе, но увеличение контекста стоит занимаемого места в оперативной памяти: с контекстом 16k модель занимает в ОЗУ уже 7,9 ГБ вместо 5,9 ГБ.Лайфхак для встроенной графики. Ollama по умолчанию считает на процессоре, а встроенную графику Intel Arc и AMD Radeon игнорирует. Если запустить сервер с двумя переменными окружения, вычисления переезжают на графическое ядро через Vulkan:
set OLLAMA_VULKAN=1
set OLLAMA_IGPU_ENABLE=1
ollama serve
Забегая вперед скажу, что даже вот такая встроенная видеокарта в пару-тройку раз быстрее справляется с вычислениями, чем CPU. На моём мини-ПК генерация выросла с 7,6 до 15–16 токенов в секунду, а чтение длинного промпта ускорилось примерно в 10 раз. Я запускаю такую копию Ollama на соседнем порту 11435 (переменная OLLAMA_HOST=127.0.0.1:11435), чтобы не трогать основную. На скриншоте — Ollama на встроенной Arc 130V: в логе видно, что веса и кэш легли в Vulkan0.
Шаг 2. OpenSCAD, FreeCAD и Blender
OpenSCAD (openscad.org) — «программируемый» CAD. В нём нет мышки и эскизов: модель описывается текстом из кубов, цилиндров и булевых операций. Поэтому он идеален для нейросети: модель пишет текст, OpenSCAD превращает его в геометрию. Окно делится на редактор кода слева и 3D-просмотр справа. F5 — быстрый предпросмотр, F6 — полный рендер, F7 — экспорт в STL. Есть консольный режим: openscad -o model.stl model.scad собирает STL без открытия окна. В комплекте идёт библиотека MCAD с готовыми эвольвентными шестернями — она нам пригодится.
FreeCAD (freecad.org) — полноценная параметрическая САПР: эскизы, дерево построения, сборки, чертежи. Для нейросети важно другое: внутри FreeCAD работает Python, и всё, что делается мышкой, можно сделать кодом через модуль Part. FreeCAD сохраняет STEP — формат, который понимают любые «взрослые» CAD и в котором хранятся точные поверхности, а не треугольники. Для работы без окна есть freecadcmd.exe.
Blender (blender.org) — пакет для 3D-графики. Для печати он нужен реже, но незаменим, когда деталь нужно показать: сделать визуализацию, проверить, как детали стоят рядом, вылепить органическую форму. Python в Blender встроен (модуль bpy), консольный режим запускается ключом --background. И у Blender есть самый популярный MCP-сервер из всех CAD-программ — к нему вернёмся ниже.
Все три программы ставятся обычными установщиками или распаковываются из архива (portable-версии). Я держу их в папках без пробелов в пути: C:\AiCAD\OpenSCAD, C:\AiCAD\FreeCAD — так меньше проблем со скриптами. Аккуратно с кириллицей в путях — не всегда срабатывает корректно. Два способа подружить нейросеть с CAD: CLI и MCP
Сама по себе нейросеть только пишет текст. Чтобы из текста получился STL, нужен мост между моделью и программой. Я использую два варианта.
CLI-режим (командная строка). Небольшой скрипт на Python отправляет задание в Ollama, получает ответ, вырезает из него блок кода, сохраняет в файл и запускает CAD-программу в консольном режиме. Если программа вернула ошибку, скрипт отправляет её текст обратно нейросети с просьбой исправить код. Цикл повторяется, пока не получится STL или не кончатся попытки. Всё прозрачно и работает с любой моделью, даже не умеющей вызывать инструменты.MCP-режим (Model Context Protocol). MCP — открытый протокол, который придумали в Anthropic, а теперь поддерживают почти все ИИ-клиенты. Программа-сервер сообщает нейросети список своих «инструментов» с описанием: «собрать модель OpenSCAD из кода», «запустить скрипт FreeCAD». Нейросеть сама решает, когда и какой инструмент вызвать, получает результат и продолжает работу. Вы общаетесь с моделью в чате, а она «руками» MCP-сервера строит детали.
Для MCP нужно три компонента:
• модель, умеющая вызывать инструменты (tool calling). Qwen3 это умеет — в ollama show у неё указана возможность tools;
• MCP-клиент — чат, который подключает модель к серверам. Для Ollama я использую консольный ollmcp (пакет mcp-client-for-ollama); MCP поддерживают также LM Studio, Open WebUI и агент OpenCode;
• MCP-сервер для CAD-программы. Для Blender есть готовый blender-mcp: аддон внутри Blender открывает локальный порт, и нейросеть видит сцену и меняет её прямо в открытом окне. Для FreeCAD и OpenSCAD тоже есть серверы от энтузиастов, но я написал свой на полсотни строк — так проще понять, что происходит.
Ниже я начинаю с CLI: он проще в отладке и честнее показывает, на что способна модель 8B.
Скрипт-связка для CLI-режима
Сердце CLI-режима — мой скрипт cad_agent.py, около 200 строк на чистом Python без сторонних библиотек. Запуск выглядит так:
python cad_agent.py --backend openscad --name pipboy_gear24 --task-file tasks\pipboy_gear24.txt --hint hints\gear_template.txt --expect 26x26x5Что он делает:
• отправляет в Ollama системную инструкцию («ты инженер OpenSCAD, отвечай одним блоком кода, единицы — миллиметры, sin и cos принимают градусы…») и текст задания;
• вырезает из ответа блок кода и сохраняет в .scad или .py;
• запускает openscad.exe, freecadcmd.exe или blender.exe --background; для FreeCAD сам дописывает экспорт в STEP и STL, для Blender — экспорт STL и сохранение .blend;
• читает журнал программы. Ошибкой считается не только ERROR, но и предупреждения вида «неизвестный модуль», «неизвестная переменная», «параметр не существует»: OpenSCAD в таких случаях молча пропускает кусок модели и рапортует об успехе;
• проверяет габариты готового STL (ключ --expect). Если деталь собралась, но размер не тот, это тоже ошибка;
• отправляет текст ошибки модели с просьбой прислать исправленный код. По умолчанию 4 попытки.
Ключ --hint добавляет к инструкции файл-подсказку. Ниже станет понятно, почему это главный параметр всей статьи.
Тест 1. Шестерни для Pip-Boy
Задание на большую шестерню: прямозубая, 24 зуба, модуль 1 мм, толщина 5 мм, центральное отверстие 5 мм с лыской под вал мотора (D-профиль), четыре облегчающих отверстия 4 мм на радиусе 7 мм.
Сразу скажу, что нейросети часто ошибаются. Это как с картинками, на которых было по шесть пальцев. Ничего страшного, если вы знаете, что хотите и умеете проверять результат. Нейросети нужно написать, что и как получилось не так, и что нужно переделать. Если говорить про эту шестерню — то это классическая ловушка для нейросети. Эвольвентный профиль зуба надо считать, и маленькая модель либо пишет свою «математику» с ошибками, либо подключает библиотеку и путает её параметры. В OpenSCAD есть встроенная библиотека MCAD с модулем gear(), и я сразу подсказал модели её использовать. Дальше началось интересное — у меня вышло четыре версии одной шестерни: три ошибки и правильная деталь
• Первая версия не собралась вовсе: модель назвала переменную module, а это зарезервированное слово OpenSCAD.• Вторая «собралась успешно», но вместо шестерни получился цилиндр. Модель забыла строку use <MCAD/involute_gears.scad>, OpenSCAD написал предупреждение «неизвестный модуль gear» и пропустил его. После этого я научил скрипт считать такие предупреждения ошибкой.
• Третья — первая настоящая шестерня, но отверстия съехали к центру и слились в одно, лыски нет.
• Четвёртая зациклилась на формуле: шаг зацепления модель считала как 24·π·m, и шестерня получалась диаметром 10,9 мм вместо 26. Подсказка «circular_pitch = 180·m» не помогала — модель упорно возвращала ошибку.
Решение оказалось простым и, на мой взгляд, главным выводом всей статьи. Модели на 8 миллиардов параметров нужно давать не правила, а готовый работающий пример. Я написал шаблон шестерни с другими числами (30 зубьев, модуль 1,5, шесть отверстий) и положил его в подсказку с фразой «скопируй структуру, поменяй только числа». Результат — правильная шестерня с первой попытки за 26 секунд:
На будущее — можно подсказки (визуализацию) делать с помощью других нейросетей, с помощью сканирования (положить в сканер старую, но сломанную шестерню и попросить дорисовать), с помощью фото/эскизов и прочих файлов с примерами. Полученные шестерни, которые я использовал в проекте Pipboy 3000, сделаны как раз нейросетью: габариты 25,99 × 25,99 × 5 мм — ровно то, что должно быть у шестерни с 24 зубьями модуля 1 (диаметр вершин 26 мм). Малая шестерня на 12 зубьев со ступицей 8 мм по тому же шаблону тоже собралась с первой попытки: модель сама поняла, как задать ступицу через параметры библиотеки.
Тест 2. Корпус под плату ESP32-C3
Задание: коробка с внутренним размером 56 × 32 × 20 мм, стенки и дно 2 мм, окно 10 × 4,5 мм под USB-C в торце на высоте 4 мм, четыре стойки 5 мм с отверстиями 2,5 мм под саморезы, по верхнему краю фальц под крышку.
Сначала — без подсказок. Результат меня одновременно рассмешил и многому научил:
Qwen3 написала код так, будто OpenSCAD — это Python: box = cube(...), post = translate(...) * post. В OpenSCAD объекты нельзя складывать в переменные. Все четыре попытки упали на одной и той же строке: модель получала текст ошибки и присылала тот же код с косметическими правками.FreeCAD-версия того же корпуса без подсказки собралась сразу — Python модель знает лучше. Но геометрия оказалась неверной: вместо полости модель «вырезала» горизонтальные плиты, и высота коробки вышла 14 мм вместо 22. Проверка габаритов это поймала, но за четыре попытки модель так и не нашла ошибку.
Тогда я сделал то же, что с шестернёй: шаблон коробки другого размера (70 × 40 × 25 мм, круглое отверстие в торце, стойки, фальц) для OpenSCAD и такой же для FreeCAD. Обе версии корпуса собрались с первой попытки: OpenSCAD за 47 секунд, FreeCAD со скруглёнными вертикальными рёбрами R3 — тоже первым ответом. Габариты 60 × 36 × 22 мм совпали до десятых.
Корпус ESP32-C3 по шаблону: OpenSCAD и FreeCAD, все четыре стойки и окно USB-C на месте.

Честное замечание: модель расставила стойки «по углам», как просили, а не по отверстиям реальной платы. Координаты крепёжных отверстий конкретной платы нейросеть не знает — их нужно брать из документации или мерить штангенциркулем и прописывать в задании. А в целом — корпус готов, stl экспортировано, все нарезается и готово к печати.

Тест 3. Ручка-крутилка в Blender
Задание: ручка для переключателя Pip-Boy диаметром 22 мм и высотой 14 мм, 18 продольных рёбер накатки, фаска сверху, риска-указатель на торце, глухое отверстие 6 мм под вал энкодера.
Без подсказки Blender-версия закончилась хуже всего. Модель начала писать код и ушла в бесконечный повтор: Классическая болезнь маленьких моделей: зацикливание на одной строке.

Это известное поведение маленьких моделей. Спасают две вещи: ограничение длины ответа (в скрипте теперь стоит num_predict = 2500 токенов, чтобы не ждать до переполнения окна) и тот же приём с шаблоном. С примером ручки других размеров модель выдала рабочий код за 45 секунд с первой попытки, габариты 22 × 22 × 14 мм.
Забавная деталь: в шаблоне было 128 граней у конуса, а модель «переписала» это число как 123. На геометрию не повлияло, но хорошо показывает, что даже копирование чисел маленькая модель делает не идеально. Проверять результат нужно всегда.
Все детали, сгенерированные Qwen3 8B, в одной сцене Blender.

MCP-режим: Qwen3 управляет открытым Blender
Теперь самое эффектное. В Blender ставится аддон MCP for Blender (проект blender-mcp): он открывает в Blender локальный порт 9876. MCP-сервер запускается командой uvx blender-mcp (uv — менеджер пакетов Python, ставится одной командой с сайта astral.sh) и пересылает команды нейросети в открытое окно. Клиент — ollmcp:
pip install mcp-client-for-ollama
ollmcp -j mcp_blender.json -m qwen3-8b-24k:latestФайл mcp_blender.json описывает сервер:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": ["blender-mcp"],
"env": { "DISABLE_TELEMETRY": "true" }
}
}
}Две важные мелочи. Первая: имя модели указывайте с тегом :latest, иначе ollmcp молча подставит первую попавшуюся модель — у меня это оказалась gemma4 на 26 миллиардов параметров, которая в 16 ГБ просто не поместится. Вторая — про приватность: у blender-mcp есть сбор статистики (по умолчанию выключен и включается только с вашего согласия), переменная DISABLE_TELEMETRY отключает его наглухо. Кроме того, среди девяти инструментов сервера есть облачные — генерация 3D-моделей и поиск ассетов в интернете. Если нужна полная автономность, отключите их в ollmcp командой /tools: ollmcp подключил blender-mcp: 9 инструментов, модель Qwen3 8B с поддержкой tools.

Задание в чате: поставить малую шестерню в зацепление с большой — межосевое расстояние 18 мм по оси X, нижние грани на одной высоте. Для модуля 1 мм и 24 + 12 зубьев межосевое расстояние (24 + 12) / 2 = 18 мм.
Перед выполнением кода ollmcp показывает его и ждёт подтверждения. Это правильный подход: модель выполняет произвольный Python внутри Blender, и видеть, что именно она собирается сделать, полезно.

Что получилось за три сообщения:
• Первый ответ. Модель запросила список объектов сцены, но передала в фильтр оба имени через запятую и получила пустой ответ. Сама разобралась, со второй попытки нашла объекты и передвинула шестерню на 18 мм по X. Отчиталась: «выровнял нижние грани». На деле скопировала координату Z центра большой шестерни, и малая (высотой 12 мм) ушла на 3,5 мм под пол.
• Второй ответ. После моего замечания модель исправила Z правильно и даже вывела проверку: нижние грани на Z = 0. В тексте ответа при этом перепутала, какая шестерня 5 мм, а какая 12.
• Третий ответ. Нюанс, о котором модель не подумала: у обеих шестерён зуб стоит на оси X, поэтому в точке контакта «зуб упирается в зуб». Попросил повернуть малую на половину углового шага — 360 / 12 / 2 = 15°. Сделала с первого раза. Я проверил булевым пересечением: до поворота зубья пересекались на 13,4 мм³, после — ноль.
Результат в окне Blender: шестерня 12 зубьев на своём месте, X = 24,038 мм, Z = 6 мм.

Шестерни в зацеплении после трёх сообщений в чате.

По времени: первый ответ занял около 14 минут, из них 6,5 минуты модель «размышляла». У Qwen3 по умолчанию включён режим размышлений (thinking). Для таких задач его лучше выключить: в ollmcp это команда /tm, и ответы приходят за 1–2 минуты. Ещё одна причина медлительности — описания девяти инструментов blender-mcp занимают несколько тысяч токенов, и модель перечитывает их на каждом шаге.
MCP-режим со своим сервером: где 8B не хватает
Второй сценарий — мой сервер cad_mcp.py. Он даёт модели четыре инструмента: собрать модель в OpenSCAD, во FreeCAD, в Blender и показать список готовых файлов. Внутри — те же функции, что в CLI-скрипте, поэтому проверки ошибок одинаковые. Пишется такой сервер на официальной библиотеке mcp для Python в несколько строк на инструмент: функция с описанием и декоратором @mcp.tool().
Тут меня ждала неочевидная ловушка: в JSON-конфиге ollmcp я написал Windows-пути с одинарными обратными слэшами. JSON такое не прощает, а ollmcp не ругается — просто запускается без единого инструмента. Пишите пути прямыми слэшами: C:/AiCAD/… — Windows их понимает.
Задание было простым до неприличия: шайба-проставка, наружный диаметр 10 мм, отверстие 3,2 мм под М3, толщина 2 мм, фаска 0,5 мм. С выключенными размышлениями ответ пришёл за полминуты, а дальше начались чудеса:

• Первая версия вместо фаски вырезала на краю маленький цилиндр — получилась дырка. В отчёте модель так и написала: фаска «выглядит как цилиндрический выступ на краю».
• Вторая версия придумала несуществующий параметр pos=[0,0,2] у цилиндра. OpenSCAD выдал предупреждение и проигнорировал его, а мой сервер ответил «OK». Пришлось дописать проверку: предупреждение «not specified as parameter» теперь тоже ошибка.
• Третья версия приклеила конус сверху вместо срезания кромки. Деталь стала толщиной 2,5 мм, а конус перекрыл отверстие.
Вывод: в «свободном» чате без шаблона модель 8B ненадёжна даже на шайбе. MCP хорош, когда нужно что-то сделать с уже готовыми объектами — передвинуть, повернуть, расставить, проверить. Новую геометрию надёжнее генерировать CLI-скриптом с шаблоном и проверкой размеров.
Что я вынес из экспериментов
• Шаблон важнее модели. Правила в инструкции 8B-модель читает через раз, а работающий пример копирует почти без ошибок. Для каждого типа деталей (шестерня, коробка, ручка, кронштейн) имеет смысл один раз сделать шаблон — и дальше менять только размеры.
• Проверяйте не только ошибки, но и результат. Пропущенный модуль, выдуманный параметр, неверный размер — всё это OpenSCAD собирает «успешно». Сравнение габаритов STL с ожидаемыми ловит большую часть таких случаев.
• Ограничивайте длину ответа. Маленькие модели иногда зацикливаются; лимит в 2–3 тысячи токенов экономит минуты ожидания.
• Выключайте размышления для простых действий в MCP-режиме — разница в скорости в разы.
• Встроенная графика — бесплатное ускорение. Vulkan в Ollama удвоил скорость генерации на Arc 130V.
• Размеры и привязки задаёте вы. Нейросеть не знает, где у вашей платы крепёжные отверстия и как должна стоять шестерня относительно соседней. Чем точнее задание, тем меньше итераций. Я вообще держу под рукой штангенциркуль и стараюсь обмерять и давать нейросети все нужные установочные размеры.
• STL перед печатью загоняйте в слайсер для проверки. Модель могла сделать стенку тоньше сопла или «висящую» в воздухе деталь — это видно только при нарезке.
Но: идея работает, модели делаются, приложения пишутся (c VS Code и Android Studio тоже настраивается, но чуть сложнее). Не с первого раза, да. Но сделать что-то что очень желаете — можно. Или хотя бы приблизиться к этому.

Локальная связка Qwen3 8B + Ollama + OpenSCAD/FreeCAD/Blender работает на обычном мини-ПК с 16 ГБ памяти, без видеокарты и без интернета. Не нужно 100500 миллионов на домашний сервер и топовые видеокарты, если у вас не ИИ-ферма. Шестерни, корпус и ручка для Pip-Boy получились с первой попытки за полминуты-минуту каждая, но только после того, как я дал модели по одному готовому примеру. Без примеров модель на 8 миллиардов параметров путает синтаксис, выдумывает параметры и уверенно отчитывается о несделанном, так что лучше использовать более продвинутые модели на 14B и 27B (нужно 24 или 32 Гб памяти). MCP-режим впечатляет, когда нейросеть двигает детали прямо в открытом Blender, но для создания новой геометрии надёжнее простой скрипт с проверками. Да и в целом, лучше обзавестись своей подборкой промптом для создания моделей, которые вы часто используете (тот же корпус для РЭА — один раз написал, а потом меняй размеры, двигай туда-сюда отверстия под разъемы, стойки — профит).
Облачные модели пока умнее — тут сложно спорить, зато здесь никто не видит ваших чертежей и никто не выставит счёт за подписку и не заблокирует доступ.
Дисклеймер: Ни в коем случае никого не принуждаю использовать нейросети, и не принуждаю следовать именно этому способу установки/настройки. Настроить MCP-связку можно на базе также LM Studio, Open WebUI и OpenCode — для кого то это будет проще, для кого-то нагляднее. Есть варианты настройки под Linux — смысл работа от этого не меняется. Я просто поделился опытом и рассказал, как делаю сам. Лично мне за глаза хватает ИИ в роли помощника, например, для генерации кода для Arduino IDE с работой через командную строку (Arduino CLI) — пишу, что нужно (примеры LLM ищет в интернете), подключаю плату — нейросеть сама находит на нужном порту плату, определяет ее тип и прошивает. Очень удобно, раньше на это тратил много времени, сейчас автоматизировал вот такой сборкой.
Небольшое добавление. Пока оформлял статью, появилось новое CAD-приложение, которое не менее интересно, чем OpenSCAD, FreeCAD и Blender вместе взятые. Речь идет про Solid craft, у него тоже есть свой MCP сервер и локальные LLM работают с этим приложением (сделал в тестовом варианте коробочку для РЭА).
Всем добра!
Самые обсуждаемые обзоры
+45
А вот где ИИ реально крут применительно к 3д печати — это фигурки. Создать модель по 2д рисунку, поменять позу, детали — вот тут реально работает хорошо и экономит время
Шестерня — для примера.
Тут речь про то, что можно в целом ускорить создание моделей и переложить большую часть- на ИИ. Кинул фото «сделай так» (например боковины станка 6040), дал установочные размеры рельс HGR15, размеры профиля, nema23 — и на выходе будет чертеж. Распечатал, приложил к фанере — пропилил — можно собирать станок.
Особенно актуально — если хорошую идею закрыли подпиской. Показал фото, получилось также (или лучше, если указать на ошибки)
Сейчас всякие коробочки-корпуса для проектов неплохо выходят с LLM. Код — аналогично. Код для приложения из Pipboy также написал с помощью ИИ.
Сейчас можно подключить KiCAD и делать печатные платы для ЛУТ и небольших проектов (проверять, естественно)
А задания в свободной форме текстом пишете «сделай то то...» (ну и плюс базовые размеры и рефренс)
Сейчас музыка — ии, книги — ии, фильмы- ии
Так модель просто шаблон заполняет, или я что-то пропустил?
У неё подключен CAD с функциями вызова (чтобы чертить)
И она сама чертит. Ну что поняла- чертит и как умеет. Она ошибается — ей нужно указывать на ошибки, чтобы переделывала. С нескольких итерации выходит прилично.
И второе — надо очень подробно и очень четко описывать что где и как находится, иногда со ссылками на сандарты (например резьбма SPT40 и тд) — и даже в этом случае оно получается с 10-15 попытки. Очень хорошо если получается декомпозировать модели на отдельные куски и не пихать их в одну сцену.
Про 10-15 попытку не знаю — зависит от сложности.
Пробовал реверс корпуса мышки сделать по фото — тяжело, что не знает, не может выдумать
Тренировка ресурсов требует.