Портал
Недавно я купил 3D принтер. Быстро выяснилось, что это лучший подарок себе за много лет.
Попечатав немного чужие модели с makerworld и printables, погрузился в новый, чудный мир - построения инженерных CAD моделей. С каждым новым вопросом я проваливался глубже и глубже в кроличью нору. Быстро оказалось, что печатать и адаптировать чужие модели совсем не так интересно, как создавать новые модели для других людей. Открыл для себя параметрический дизайн, Fusion 360. Flanges, hinges, dovetail, chamfer, fillet, loft, sweep, extrude, revolve. Я этих слов не знал даже толком. Всё это стало частью лексикона, теперь я у мамы настоящий инженер-архитектор, а не этот программист, которых развелось!

Ладно... быстро выяснилось, есть модели, которые тяжело/неудобно рисовать статичными, пусть и параметрическими, чертежами - программно генерируемые штукенции. К примеру, всяческие формы со сложными ребрами с замысловатым синусоидальным распределением. Вспомнил тригонометрию и тангенс. Узнал такие абстрактные понятия, как Platonic Solids, открыл для себя что Эйлер, великий математик, в 1736 году пытался решить проблему "семи мостов" в Кёнигсберге (теперь Калининграде) (можно ли пройти по каждому из 7 мостов города, но по каждому только один раз?) - открыл новый раздел математики.

Теория графов - всегда для меня это звучало скучно. Я вообще слаб в алгоритмах, больше продукт и конечный результат меня интересует. И тут вдруг всё это засияло красками, и обрело вес и смысл, когда я задался простым вопросом: как спроектировать и напечатать рандомный лабиринт для шарика? Называется эта штука Гамильтонов путь в планаре.
На этом погружение не остановилось. Я узнал, что можно описывать 3D модели программным кодом. О, это уже знакомая среда, тут меньше тыкать мышкой! Есть великолепная штука - OpenSCAD. Фактически, DSL для 3д моделирования.
Понятное дело, сложную геометрию описать программно оказалось сложно. Сунулся в ChatGPT и Gemini - оказалось, что они сносно выдают базовый OpenSCAD "скелет". Но галлюцинируют жёстко, и типовой воркфлоу получился такой: просим ChatGPT выдать OpenSCAD код → несём код в OpenSCAD редактор → рендерим там модельку → ужасаемся результату → делаем скриншот → рисуем на скриншоте стрелки и выделяем проблемы → опять идём в ChatGPT, и так по кругу.
Увлекательнейшее занятие, скажу я вам, и даже неплохой результат выдавало (к десятой итерации).
Догадайтесь к чему это привело? Антон бросил все дела, забросил даже собственно печать на 3D принтере, и вместо этого начал собирать браузерный редактор - "Cursor для OpenSCAD" - который по промпту выдаёт .scad код и сразу рендерит его в модель. И самое главное - позволяет быстро итерировать скриншотами.
Для архитектуры и сборки проекта использовал одновременно Claude Code, Codex, и Cursor - переключался между ними, максимально используя доступные тарифы за 20 баксов, и обычную доку в markdown, чтобы не лочиться на конкретного кодинг агента. Никаких скиллов и новых модных штук. Интерфейс аннотации скриншотов точился долго и упорно, да и в вообще - весь интерфейс редактора три раза сильно переделывался, после размышлений и фидбека первых пользователей.
Стек
UI на Shadcn+React, деплой в докер, бекенд - Node.js + pg, очереди - pg-boss, LLM модель пока Gemini 3 Flash.
Что характерно, я максимально избегаю Gemini CLI, который все еще выглядит самым слабым CLI агентом из моего опыта (Antigravity многие хвалят, но у меня не завелся вообще). А вот сама модель Gemini 3 по API показалась оптимальной для конкретного кейса в плане цены-качества (генерация OpenSCAD кода с наименьшим количеством глюков).
Результаты
Вот несколько примеров того, что позволяет делать ModelRift сейчас. Любой человек, знакомый с CAD редакторами, усмехнется - ведь это легко делается за 10 минут в SolidWorks или Fusion - и будет прав. Но. Куча людей не планирует изучать CAD редакторы, не желает ставить тяжелый софт, но все еще хочет напечатать себе органайзер в шкафчик, а спроектированный кем-то Gridfinity - это скучно. ModelRift спроектирует несложную деталь за пару минут.

вдолбить в LLM чертеж - сложно.


видео-демка с интерфейсом - ниже.
Про деньги
LLM стоит денег. Я люблю деньги.
Поэтому ModelRift платный. Оплата зарубежными картами, принимаю через Stripe на американскую C-Corp.
10 долларов = 500 кредитов. 500 кредитов - примерно сотня простых моделек.
Но сейчас всем новеньким выдается 250 кредитов в подарок - можно приобщиться к миру продуктового дизайна. Не стесняйся, проходи, пробуй спроектировать коробочку, задавай вопросы!
Про планы
Улучшать сам процесс моделирования. ModelRift слаб в сборках. Сделать кейс для наушников, с FDM-печатаемой петлей - это пока сложно. Но примерно понятно как это реализовать (кодовое магическое слово - BOSL2). Но об этом в следующий раз.
Ссылка на проект:
ModelRift.
Видео-демка №1 (кратко)
Видео-демка №2 (подробнее, с голосом, плохой звук, плохой англ)

https://modelrift.com

сделал полноценный сайт - лендинг, блог, шоукейс моделей, видео демка
публичный сборник OpenSCAD моделей, можно стартануть и редактировать любую одной кнопкой:
https://modelrift.com/models
Написал обстоятельный блог пост про то, почему OpenSCAD:
https://modelrift.com/blog/why-openscad
Не по теме поста, но рядом: есть еще классная связка cad-программы rhino + надстройки grasshopper. В архитектуре для похожих задач - "золотой стандарт", работает с nurbs, для 3D печати тоже должно подойти.
еще один проект - делаем красивые крючки для одежды.
иногда ModelRift жестко глючит на элементарных вещах, и тогда с ним надо построже - главное, не забыть скриншот в чат прикрепить через Annotation Mode.