KevlarBeaver

KevlarBeaver

На Пикабу
в топе авторов на 619 месте
46 рейтинг 1 подписчик 0 подписок 2 поста 0 в горячем
Награды:
5 лет на Пикабу

Комплекс Физических Программ

Это моя собственная разработка - Makarov Physics Suite, комплекс интерактивных программ и симуляций по физике, математическому моделированию и компьютерной графике.

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

Сейчас в нём уже несколько десятков разных симуляций. И, наверное, проще не рассказывать о них абстрактно, а просто показать несколько примеров.

Например, здесь можно посмотреть на визуализацию молекулярных структур. Такие модули для меня интересны не столько как «красивая картинка», сколько как возможность сделать объект наглядным и интерактивным — чтобы его можно было рассматривать, вращать и исследовать.

А это уже совсем другая задача — гравитационная симуляция большого количества объектов.

Здесь интересно то, что каждая частица взаимодействует с остальными, поэтому при прямом расчёте количество вычислений очень быстро становится огромным. Для подобных задач приходится использовать алгоритмические оптимизации, например Barnes–Hut, и думать уже не только о физике, но и о производительности.

Отдельное направление проекта — оптика.

Можно размещать источники света, линзы и другие объекты, менять их параметры и непосредственно наблюдать, как распространяются лучи.

Мне всегда нравилась идея виртуальной лаборатории, где вместо заранее записанной анимации пользователь сам собирает эксперимент.

Есть и более привычные физические эксперименты: электричество, электромагнетизм, цепи, катушки и другие системы.

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

По сути, программа одновременно является редактором схемы и симулятором.

Некоторые эксперименты выглядят уже значительно менее «учебно».

Я стараюсь делать визуализацию так, чтобы происходящее было не только математически интересно, но и просто приятно было наблюдать.

Есть различные волновые модели: распространение волн, интерференция и взаимодействие с объектами.

Такие вещи особенно хорошо показывают, зачем вообще нужна компьютерная симуляция. Формулу можно написать на бумаге, но когда видишь процесс в движении, интуитивно понимать его становится намного проще.

Одна из моих любимых тем — моделирование жидкостей.

Здесь используется SPH (Smoothed Particle Hydrodynamics): жидкость представляется большим количеством взаимодействующих частиц, а поверхность затем визуализируется уже как единый объём.

Уточка физически совершенно необязательна.

Но без уточки эксперимент был бы объективно хуже.

Есть и более абстрактные модели: поля, частицы, распределения, динамические системы и различные математические эксперименты.

Иногда результат получается настолько необычным, что программу можно просто запустить и некоторое время смотреть, что она делает.

И, конечно, есть обычная механика: твёрдые тела, столкновения, конструкции, гравитация и устойчивость систем.


Практически весь этот проект я делаю самостоятельно.

Основная часть написана на C#/.NET. Для графики использую в том числе OpenGL, для некоторых расчётов — GPU. В проекте есть как обычная растеризация, так и ray tracing/path tracing, разные численные методы и собственные реализации физических алгоритмов.

Но конечная цель для меня не в том, чтобы собрать коллекцию технических демонстраций.

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

Сейчас проект всё ещё активно развивается. Я постепенно переделываю старые модули, унифицирую интерфейс, оптимизирую расчёты и добавляю новые эксперименты.

Буду рад мнению людей, которым интересна физика, программирование, компьютерная графика или просто необычные симуляции.

Особенно интересно узнать: какой модуль из показанных вам кажется самым интересным и что ещё стоило бы добавить в такой комплекс?

Если будет интерес, в следующих постах могу отдельно разобрать некоторые симуляции подробнее — уже с рассказом о том, какая физика и какие алгоритмы там используются.

Показать полностью 10
3

Комплекс Физических Программ

Последние несколько лет я в свободное время делаю довольно большой проект — комплекс программ для моделирования физики.

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

Сейчас там уже несколько десятков разных модулей. Например:

— гравитационные системы и N-body симуляции;
— жидкости на основе SPH;
— оптика;
— ray tracing и path tracing;
— электрические цепи;
— электромагнитные и волновые процессы;
— реакционно-диффузионные системы;
— симуляции частиц;
— различные 2D/3D физические эксперименты и визуализации.

Причём мне интересно не просто нарисовать красивую анимацию. Я стараюсь делать именно интерактивные модели, где можно менять параметры, двигать объекты, ставить эксперименты и смотреть, что из этого получится.

Например, в модуле с оптикой можно собирать сцену с источниками света и оптическими объектами, а изображение рассчитывается с помощью ray tracing/path tracing. В других модулях можно наблюдать поведение жидкости, гравитационных систем или различных полей.

Проект написан в основном на C#/.NET, но в отдельных местах я использую OpenGL, GPU-вычисления и другие вещи, которые позволяют считать всё это достаточно быстро.

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

Пока это ещё не законченный продукт, но проект уже достаточно большой, поэтому стало интересно показать его людям со стороны.

Если здесь есть физики, преподаватели, разработчики игр/графики, люди, занимающиеся математическим моделированием, CAD/CAE или просто любители подобных вещей — мне было бы интересно услышать мнение.

Особенно интересно:

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

Если тема зайдёт, могу отдельно сделать несколько постов и подробнее показать разные модули и то, как они устроены изнутри.

https://store.steampowered.com/app/4861360/Makarov_Physics_S...

Показать полностью 3
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества