Pull to refresh

Comments 21

Очень похоже на 3D моделирование белка — третичная структура. Только это реальные научные вычисления, каждый атом имеет физику и модель, реального атома. А структура белка определяет как это всё будет работать

да, при увеличении кол-ва связей у частиц, происходит укрупнение «молекул». Еще есть вариант, когда начинается самосжимание, так как связей много и они перевешивают отталкивание частиц.
Еще были попытки самому строить связи, не хаотично, добавить нейронную сеть и генетический алгоритм. Задача была научиться перемещаться, нейросеть могла управлять длинной связей между частицами.
Спасибо за прекрасные картинки.

Кстати, об идеях. Давно ищу специалиста, способного заинтересоваться молекулярным 3D-макетирование. Но только не с шариками и т.п., а с модулями, максимально точно описывающими электронные оболочки атомов и молекул:
habr.com/ru/post/374003
sketchfab.com/3d-models/04338d9336644387a1f559ba709360c6
sketchfab.com/3d-models/50dda13c406e4354a0a6c3f2c3f0f91c
Читал Вашу статью когда решал что делать, идея орбит(оболочек) интересная, но хотелось самоорганизации частиц. Как вариант думал сделать определенные углы для связей. А так пишите в личку, может смогу чем помочь. Просто если говорить о полноценном конструкторе оболочек, то скорее всего это уже работа для коллектива, если прототип чтобы двигался то возможно.

Не пробовали добиться шаблонов из игры Жизнь? Планер, ружье и т.д… В 3д выглядело бы интересно мне кажется

клеточный автомат «Жизнь» работает в дискретном варианте пространства и времени, упрощенно по клеточкам и тикам времени целочисленным. Есть правила и эти правила порождают в клетке жизнь или убивают или сохраняют. Сотояний клетки два 0 и 1.
Усложнить можно добавив непрерывное время и вещественное значение для клетки.
чтото типа такого:

Но это 2D, в 3D получаем разные варианты куда идти, частицы отдельные, дискретное простраство, силовые поля. Но в лоб думаю фигуры из «жизни» не повторить, правила изменятся сильно.
За основу взял с++, добавил поддержку CUDA как вычислительной платформы, частиц много и центральный процессор явно не справится с такой нагрузкой в реальном времени

Ты недооцениваешь центральный процессор. Из любопытства делаю в Unity симуляцию жидкости — те же частицы с взаимодействиями между соседями. Старый 4-ядерный i5 тянет в реальном времени 10-50 тысяч частиц, в зависимости от их плотности и распределения в пространстве. Под реальным временем понимается 60 fps.

с центральным процессором наверное на «ты» ) у меня nvidia 1080 хромает после 4000, код конечно неоптимальный в части вычислений, но у карты 2560 ядер так что это не так уж и важно в этом случае. Unity c# с интерпретатором на борту и проблемами с поддержкой многопоточности даже на центральном процессоре, но все может быть. Minecraft на java написан. Хотя там с физикой так себе )

Насколько я понял, у тебя ведь не n-body задача, где все взаимодействуют со всеми, где бы они ни находились. Если n-body, то претензия снимается.


Если у частиц есть какой-то предельный радиус, дальше которого они друг друга не «видят», то должно быть не от 700 до 3000 частиц, а на порядок больше и 60 fps безо всяких GPU. C GPU должны быть сотни тысяч и миллионы, т.к. задача параллелится.

полностью поддерживаю про производительность )
лучше чем биткоины считать, ее как раз дешево купил у фермеров, когда спад был криптовалют. Вопрос оптимизации, для любой задачи есть свои критерии, тянет и хорошо, надо было бы больше-быстрее, пришлось бы делать код сложнее.
В статье «Жизнь на частицах», от 28 февраля 2019 в 19:08, habr.com/ru/post/442128 есть ссылка «Исходники Код, на Java». а как его дело запустить в Хроме?
вопрошаю здесь, так как в указанной стаье прошли сроки возможности оставить.
Там еще ровно перед ней есть ссылка на JS-версию, ее можно в хроме открыть :)
«Поиграть Реализация на JS от v1vendi „

есть. но интересено самому запустить. плюс хочерся поредактировать. в резлизации от ввивенди не знаю как поменять коэффициэнты взаимодействия. меняю — меня всё пропадает.
есдинственное как получается — Ф11, полный экран и нет. тогда можно поддолкнуть нижние частицы.
Sign up to leave a comment.

Articles