Magneto Solver: Пишем симулятор магнитных полей на WebGPU и боремся с тензором Максвелла. DIY или Сделай сам.. DIY или Сделай сам. FDM.. DIY или Сделай сам. FDM. gemini.. DIY или Сделай сам. FDM. gemini. JavaScript.. DIY или Сделай сам. FDM. gemini. JavaScript. llm.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект. магнитное поле.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект. магнитное поле. симуляция физики.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект. магнитное поле. симуляция физики. Физика.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект. магнитное поле. симуляция физики. Физика. численные методы.. DIY или Сделай сам. FDM. gemini. JavaScript. llm. Open source. pet-project. three.js. WebGPU. искусственный интеллект. магнитное поле. симуляция физики. Физика. численные методы. электродвигатель.
maneto solver

maneto solver

Мечта об идеальном двигателе

Мне кажется, я знаю, как должен быть устроен идеальный электродвигатель. Но чтобы это доказать, нужен инструмент.
Существующий софт убивал все желание творить:

  • Ansys Maxwell – мощный, но тяжелый и часто просто отказывается запускаться.

  • FEMM – быстрый, но его интерфейс – пример того, как не надо делать UI в 21 веке.

  • SimScale – удобно, но медленно, и бесплатные лимиты кончаются слишком быстро.

За зимние каникулы (плюс пара дней) мы написали свой солвер.
Почти весь код написан нейросетью. Пару лет назад я бы в это не поверил, но сегодня мы с ней создали сложный инженерный софт.

Про ИИ и ресурсы

Весь проект сделан на бесплатной версии Gemini.
Даже очень щедрых лимитов (спасибо Гуглу) постоянно не хватало. Это показательно: будь у нас больше ресурсов – мы бы сделали намного больше. Миру (и особенно мне) нужно намного больше вычислительных мощностей для ИИ.

Технологии: WebGPU и один файл

Весь софт — это один HTML файл. Никаких серверов, установок и зависимостей.
Чтобы считать быстро, мы используем WebGPU. Все вычисления идут на видеокарте.

  • Разрешение: Спокойно перевариваем сетку 16К (о чем другие реал-тайм солверы могут только мечтать).

  • Сходимость: Экстремально быстрая (потратили уйму времени на тюнинг алгоритмов).

  • Рендер: Визуализация на Three.js, так как обычный Canvas 2D тормозил на таких объемах.

Что умеет солвер

Интерфейс, в котором хочется работать:

  1. Декартова или полярная система координат — сетка строится секторами, что идеально для вращающихся машин.

  2. Sweep (Развертка) — задаем диапазон (угол/позицию), софт прогоняет симуляцию и строит графики.

  3. «Зарядка» магнитов — уникальная фича: можно нарисовать «пустой» магнит в поле катушки, нажать кнопку, и он запомнит намагниченность.

  4. Запись видео — рендер вебмки прямо из браузера.

Расчет поля B

Расчет поля B

Проблема: Силы и Момент

Тут мы сломали немало копий.
Считать силы в реал-тайме через Тензор Максвелла на прямоугольной сетке и полуать качественный результат в котором можно быть уверенным – не получилось(

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

расчет момента методом виртуальных перемещений

расчет момента методом виртуальных перемещений

Ссылки

Проект Open Source.

Планы

В далекой перспективе думаю сделать 3D расчет на GPU с использованием адаптивной сетки (уплотнение вокселей в местах интереса).

А пока — буду рад фидбеку. Какого функционала вам не хватает?

Автор: mozg4d

Источник

Rambler's Top100