
Мечта об идеальном двигателе
Мне кажется, я знаю, как должен быть устроен идеальный электродвигатель. Но чтобы это доказать, нужен инструмент.
Существующий софт убивал все желание творить:
Ansys Maxwell - мощный, но тяжелый и часто просто отказывается запускаться.
FEMM - быстрый, но его интерфейс - пример того, как не надо делать UI в 21 веке.
SimScale - удобно, но медленно, и бесплатные лимиты кончаются слишком быстро.
За зимние каникулы (плюс пара дней) мы написали свой солвер.
Почти весь код написан нейросетью. Пару лет назад я бы в это не поверил, но сегодня мы с ней создали сложный инженерный софт.
Про ИИ и ресурсы
Весь проект сделан на бесплатной версии Gemini.
Даже очень щедрых лимитов (спасибо Гуглу) постоянно не хватало. Это показательно: будь у нас больше ресурсов - мы бы сделали намного больше. Миру (и особенно мне) нужно намного больше вычислительных мощностей для ИИ.
Технологии: WebGPU и один файл
Весь софт — это один HTML файл. Никаких серверов, установок и зависимостей.
Чтобы считать быстро, мы используем WebGPU. Все вычисления идут на видеокарте.
Разрешение: Спокойно перевариваем сетку 16К (о чем другие реал-тайм солверы могут только мечтать).
Сходимость: Экстремально быстрая (потратили уйму времени на тюнинг алгоритмов).
Рендер: Визуализация на Three.js, так как обычный Canvas 2D тормозил на таких объемах.
Что умеет солвер
Интерфейс, в котором хочется работать:
Декартова или полярная система координат — сетка строится секторами, что идеально для вращающихся машин.
Sweep (Развертка) — задаем диапазон (угол/позицию), софт прогоняет симуляцию и строит графики.
«Зарядка» магнитов — уникальная фича: можно нарисовать «пустой» магнит в поле катушки, нажать кнопку, и он запомнит намагниченность.
Запись видео — рендер вебмки прямо из браузера.

Проблема: Силы и Момент
Тут мы сломали немало копий.
Считать силы в реал-тайме через Тензор Максвелла на прямоугольной сетке и получать качественный результат в котором можно быть уверенным - не получилось(
В итоге мы внедрили Метод Виртуальных Перемещений.
Как видно на скриншоте, он дает идеально гладкие графики момента и сил в режиме Sweep. Результат отличный, но ради этого пришлось пожертвовать интерактивностью - силы считаются только в режиме развертки, а не в реальном времени под мышкой. Даже если вам просто нужно посчитать магнитик на холодильник - нужно прогонять sweep

Ссылки
Проект Open Source.
Планы
В далекой перспективе думаю сделать 3D расчет на GPU с использованием адаптивной сетки (уплотнение вокселей в местах интереса).
А пока — буду рад фидбеку. Какого функционала вам не хватает?
Комментарии (10)

dinalt2006
27.01.2026 07:47Красиво выглядит! Неясно, как задается схема обмотки в машине. Не хватает документации. Работа программистов - на отлично! Но пока что это инструмент "в себе". Редактор геометрии, редактор обмотки... Вот мне очень нужен подобный инструмент для расчета машины с пятифазным статором. И кстати, а что там у вас с ротором и его обмотками?
А вообще - КРУТО, молодцы !
mozg4d Автор
27.01.2026 07:47по слоям в DXF. Например в DXF может быть два объекта copper. в одни подаете 5 ампер на квадратный мм, в другой - минус 5.
Сплайны рисуются во внешнем софте. Обмотки могут быть какие угодно у статора или у роторапредполагается что документация не нужна, т.к. можно ссылку ИИ закинуть, обн объяснит

rPman
27.01.2026 07:47У меня слово солвер ассоциируется с решателем, который в контексте статьи, подбирал бы конфигурацию ротора двигателя с целью максимизации какого-либо иного параметра, в предельных значениях... как именно это второй вопрос, я смутно догадываюсь что способ задания предельных значений изменений задают в больших продуктах буквально кодом, а точнее определяют саму модель параметрически (по типу как в scad) и задают уже логику подбора параметров.
Логичное продолжение вашего проекта в этом направлении
p.s. проект вообще крутой, переход к 3d (даже с ограничениями) сделает его еще круче

sergerz
27.01.2026 07:47Шикарная вещь мирового уровня, но документация никакая. Пишите документацию, будет вам счастье и успех. Причем надо описывать со всех сторон. Чтобы любой профан пришел и посчитал. Не напишете - умрет без развития. А такому продукту развитие нужно обязательно. У нас с рассчетами двигателей очень плохо.

JerryI
27.01.2026 07:47Потрясающе!
Было бы здорово увидеть статью про то как оно работает и архитектуру в стиле старого Хабра :)

vlados_s_s
27.01.2026 07:47Добрый день, успехов в дальнейшем развитии программы!
Я для своих нужд, к слову, использую COMSOL MULTYPHYSICS. Там уже есть встроенные библиотеки с физикой (в том числе электромагнетизм), создан е геометрии, сетки, настройка решателей (алгоритмов), разнообразная постобработка, вроде как даже есть возможность обработка внутренней нейронкой. А если не хватает встроенных библиотек с физикой, можно всегда использовать библиотеку PDE (part differential equations), которую как раз использую я для моделирования сверхпроводниковой электроники. В статике считаю 3D сетку на 10 миллионов элементов за несколько часов на своем обычном ноутбуке итерационным решателем.
В общем, можете ещё COMSOL попробовать, если не пробовали. В динамике там тоже можно моделировать спокойно.
rPman
Проект не смотрел (хотя по описанию уже выглядит круто), но вопрос, солвер работает именно в динамике? В зависимости от скорости вращения (частоты) начинают работать характеристики материалла, из чего сделаны магнитопроводы (феррит, прессованный изолированный железный порошок или ленты/нити эти в свою очередь от их ориентации работают) из-за вихревых токов, которые в свою очередь генерируют свое поле.
mozg4d Автор
расчет только в статике(
Тип магнитопроводов можно выбрать из дропдацна, там много вариантов