Миксеры

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

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

Выбор оптимального программного обеспечения для моделирования часто бывает трудным, так как непросто найти программу, в которой был бы весь необходимый функционал. FreelanceToday предлагает вашему вниманию 20 бесплатных программ для 3D-моделирования.

Daz Studio – это мощное и при этом совершенно бесплатное программное обеспечение для трехмерного моделирования. Нельзя сказать, что это легкий для освоения инструмент – новичкам придется долго изучать возможности программы. Создатели программы позаботились о пользовательском опыте, но удобство Daz Studio удастся оценить далеко не сразу. Одной из фишек программы является создание 3D-изображений с GPU ускорением во время рендеринга, что дает возможность создавать очень реалистичные модели. Также в Daz Studio имеется поддержка создания сцен и функционал для анимации моделей.

Доступно для : Windows, | OS X

Бесплатное программное обеспечение для 3D-моделирования Open SCAD создано для серьезного проектирования (промдизайн, интерьеры, архитектура). Художественные аспекты создателей программы интересовали в гораздо меньшей степени. В отличие от других программ подобного плана, Open SCAD не является интерактивным инструментом – это 3D-компилятор, который отображает детали проекта в трехмерном виде.

Доступно для: Windows, | OS X | Linux

Программа AutoDesk 123D – это большой набор различных инструментов для CAD и 3D-моделирования. С помощью программы можно проектировать, создавать и визуализировать практически любые 3D-модели. AutoDesk также поддерживает технологию 3D-печати. Основной сайт AutoDesk 123D имеет несколько сателлитов, где можно найти множество интересных бесплатных 3D-моделей, с которыми можно поэкспериментировать или просто использовать их в личных целях.

Доступно для: Windows, | OS X | IOS |

Meshmixer 3.0 позволяет проектировать и визуализировать 3D-конструкции путем объединения двух или нескольких моделей всего за несколько простых шагов. В программе для этого имеется удобная функция «cut and paste», то есть можно вырезать из модели нужные части и вставлять их в другую модель. Программа даже поддерживает лепку – пользователь может создавать виртуальную скульптуру, формируя и уточняя поверхность точно так же, как если бы он лепил модель из глины. И все это в режиме реального времени! Программа поддерживает 3D-печать, готовые модели полностью оптимизированы для отправки в принтер.

Доступно для : Windows, | OS X

3DReshaper является доступным и простым в использовании программным обеспечением для 3D-моделирования. Программу можно использовать в различных областях, таких как искусство, горнодобывающая промышленность, гражданское строительство или судостроение. 3DReshaper поставляется с поддержкой различных сценариев и текстур и имеет множество полезных инструментов и функций, облегчающих процесс трехмерного моделирования.

Доступно для : Windows

Бесплатная программа 3D Crafter предназначена для 3D-моделирования в режиме реального времени и создания анимаций. Основная фишка данного редактора – интуитивно понятный подход «drag-and-drop». Сложные модели могут быть построены с помощью простых форм, программа поддерживает скульптурное моделирование и 3D-печать. Это один из самых удобных инструментов для создания анимации.

Доступно для : Windows

PTC Creo – это комплексная система, созданная специально для инженеров, работающих в сфере машиностроения, а также для конструкторов и технологов. Программа также будет полезна для дизайнеров, которые создают продукты, используя методы автоматизированного проектирования. Прямое моделирование позволяет создавать конструкции по существующим чертежам или использовать программу для визуализации новых идей. Изменения в геометрию объекта можно внести очень быстро, что существенно ускоряет процесс работы. Программа, в отличие от предыдущих, платная, однако есть 30-дневный триал и бесплатная версия для преподавателей и студентов.

Доступно для : Windows

Бесплатное программное обеспечение LeoCAD – это система автоматизированного проектирования виртуальных моделей LEGO. Есть версии для Windows, Mac OS и Linux. Программа может стать хорошей альтернативой Lego Digital Designer (LDD), так как имеет простой интерфейс, поддерживает ключевые кадры и работает в режиме анимации. Именно поддержка анимации выделяет LeoCAD на фоне других программ подобного плана.

Доступно для : Windows, | OS X | Linux

Программа VUE Pioneer поможет создать трехмерную модель для визуализации ландшафта. Софт может быть полезен для продвинутых пользователей, которые ищут удобные инструменты для рендеринга. Pioneer позволяет создавать удивительные 3D-ландшафты благодаря наличию большого количества пресетов и обеспечивает прямой доступ к Cornucopia 3D -контенту. С помощью программы можно создать множество эффектов освещения.

Доступно для : Windows, | OS X

Netfabb – это не только программа для просмотра интерактивных трехмерных сцен, с его помощью можно анализировать, редактировать и изменять 3D-модели. Программа поддерживает 3D-печать и является самым легким и простым инструментом с точки зрения установки и использования.

Доступно для : Windows, | OS X | Linux

Бесплатная программа NaroCad – это полноценная и расширяемая система автоматического проектирования, основанная на технологии OpenCascade, и работающая на платформах Windows и Linux. В программе имеется весь необходимый функционал, имеется поддержка основных и усовершенствованных операций трехмерного моделирования. Функции программы могут быть расширены с помощью плагинов и программного интерфейса.

Доступно для : Windows, | Linux

LEGO Digital Designer позволяет строить трехмерные модели с использованием виртуальных кирпичиков (блоков) конструктора LEGO. Результат можно экспортировать в различные форматы и продолжить работу в других 3D-редакторах.

Доступно для : Windows, | OS X

Бесплатную программу ZCAD можно использовать для создания 2D и 3D- чертежей. Редактор поддерживает различные платформы и обеспечивает большие углы обзора. Наличие множества удобных инструментов, позволяет решить большинство проблем, связанных с моделированием трехмерных объектов. Пользовательский интерфейс программы простой и понятный, что существенно облегчает процесс рисования. Готовый проект можно сохранить в формате AutoCAD и других популярных 3D-форматах.

Доступно для : Windows, | Linux

Бесплатная версия Houdini FX, Houdini Apprentice, пригодится студентам, художникам и любителям, создающим некоммерческие проекты трехмерных моделей. Программа обладает несколько урезанным, но вместе с тем достаточно широким функционалом и тщательно продуманным пользовательским интерфейсом. К недостаткам бесплатной версии можно отнести водяной знак, который отображается на 3D-визуализации.

Доступно для : Windows, | OS X | Linux

Приложение для создания рабочих дизайн-листов позволяет создавать достаточно подробные 3D-модели. Создатели программы позаботились о функциях, позволяющих устранять проблемные места путем изменений и дополнений к существующему дизайну. Также с помощью DesignSpark можно быстро изменить концепцию 3D-продукта. Программа поддерживает прямую технику моделирования и 3D-печать моделей.

Доступно для : Windows

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

Доступно для : Windows, | OS X | Linux

Бесплатная программа Sculptris откроет перед пользователями окно в захватывающий мир 3D. Особенностями Sculptris являются удобная навигация и простота использования. Программу легко освоит даже новичок, у которого нет никакого опыта в цифровом искусстве или трехмерном моделировании. Процесс работы построен так, что можно забыть о геометрии и просто создавать модель, при этом бережно расходуя ресурсы компьютера.

Доступно для: Windows, | Linux

Программу MeshMagic можно использовать для 3D-рендеринга файлов, а также для создания двухмерных объектов или их конвертации в 3D. Программное обеспечение имеет интуитивно понятный интерфейс и может использоваться для решения самых разных задач. В настоящее время Mesh Magic поддерживает только Windows. Результат сохраняется в популярном формате STL, который можно открыть и редактировать в большинстве онлайн и оффлайн инструментов для 3D-моделирования.

Доступно для : Windows

Open Cascade – это комплект разработчика программного обеспечения, предназначенный для создания приложений, связанных с 3D-CAD. Он включает в себя специальные, разработанный сообществом C++ библиотеки классов, которые можно использовать для моделирования, визуализации и обмена данных, а также для быстрой разработки приложений.

Доступно для : Windows, | OS X | Linux

Here is a list of Best Free Physics Simulation Software For Windows . These free Physics simulation games let you understand the basics of Physics theories, like Gravitation, Ohm’s law, Newton’s laws of motion , etc. All these Physics games are also suitable for kids. Some of these Physics games come with built-in simulation, with the help of which you can understand the effect of a change of a certain variable on a physical quantity.

You will also find a Physics simulation software in this list which is based on the Ohm’s law . On varying resistance and voltage in a circuit, it shows you the effect of changing these variables on electric current.

This list of free Physics simulation games also contain some games that will take you to the space adventure. With the help of simulations, you can view and understand the various phases of the moon and learn how these phases change with respect to the Earth’s movement. These games also provide the basic information about each planet and the only star in our Solar System, the Sun.

My favorite Physics Simulation software:

Magnetic Adventure and Physics for Kids are my favorite Physics simulation software in this list.

Magnetic Adventure : It is a real-time Physics game based on the Laws of Magnetism. It helps you learn the properties of a magnet. By playing this game, you can learn how a magnetic substance differs from a non-magnetic one. This interesting Physics game comes with a lot of exciting levels. Follow the rules of Magnetism in order to complete each level.

Physics For Kids : It is one of the best Physics games for kids. It comes with many interesting levels based on different theories of Physics. Some of these include: Force, Potential Energy and Kinetic Energy, Solar System, Inertia , etc.

Explore the list and give a try to these Physics games.

A Magnetic Adventure

A Magnetic Adventure is an interesting Physics simulation game for Windows. It is based on the laws of magnetism. In this game, you have to move an object with the help of a magnet and drop it at its destination point. This game is not so easy as it sounds, as there are several obstructions in each level. Tackle these obstructions by following the rules of Magnetism and complete a level. This free Physics simulation game comes with 50 interesting levels. As you move ahead in the game, you have to face more difficult obstructions.

This game is the introduction to properties of a magnet. By playing it, you can learn what a magnet is, how it works and what types of materials are attracted by a magnet.

How to play this Physics game:

In each level, a task will be given to you. Follow the properties of a magnet to solve each task. Move metallic items in the game with the help of a magnet. Place the magnet over a metallic object and move your mouse by holding its left click. The object starts moving along with the magnet. Release left click of mouse to drop that object. That’s all.

Awesome graphics and cool sound effects make this game more enjoyable and interesting. As you move ahead in the game, you will face more complicated Physics puzzles. Remember, a magnet can attract only metallic objects.

Features of A Magnetic Adventure:

  • It lets you create more than one player profiles.
  • It comes with an auto-save feature, which saves your game automatically on exit.
  • A lot of challenging levels are a great time-pass.
  • You can play it in full screen as well as on compact screen mode.

So, what are you waiting for? Install this free Physics game on your PC. A lot of Physics puzzles are waiting for you.

Home Page Download Page

Physics Sandbox Games

In this article, I have introduced you to a lot of Physics simulation games. Now, there is an entirely different class of Physics Simulation games, called, . These games let you create your own simulations and test them. You can check the link I posted earlier to check out a lot of Physics Sandbox games that you can use for Physics Simulation. My favorite from that list is Algodoo.

Algodoo is an interesting Physics simulation software in this segment. This is actually a Physics Sandbox game, which comes with 2D high definition graphics. It lets you learn Gravitational Forces, Friction, Elasticity, Density, Flow, Viscosity , and much more with fun. The best part of this freeware is that it lets you create your own Physics scenes and simulate them.

Let’s understand its interface. It comes with a number of tools to create Physics simulations:

  • Plane Tool : With the help of this tool, you can draw a plane on the screen at any angle. It also displays the angle at which you turn a plane. This helps you create a slope or an inclined plane tilted at a certain angle.
  • Move Tool : You can move any object in the scene by using this tool.
  • Rotate Tool : It lets you rotate an object at a certain angle.
  • Scale Tool : Used for changing dimensions of an object.
  • Cut Tool : You can cut an object at any cross section with the help of this tool.
  • Polygon Tool : Use this tool to draw closed shapes.
  • Brush Tool : Brush tool is used to draw both open and closed shapes.
  • Box Creation Tool : This tool is used to draw squares and rectangles.
  • Circle Creation Tool : This tool is used to draw circles.
  • Gear Tool : This tool is used for creating gears.
  • Chain Tool : This tool creates a chain.

Several other tools are available in this freeware. Use all these tools to create good Physics animations and save them.

Draw multiple gears and join them so as to understand the mechanics. You can draw fulcrum, pulley, and many other animations. It all depends on your creativity.

This is a great Physics simulation software. Download it and enjoy.

Home Page Download Page

Physics for Kids

Physics for kids is very cool Physics game suitable for kids. This Windows 10 app comes with different levels based on different theories of Physics . As this game is developed for kids, it features only an introductory part of theories of Physics . Kids can learn different Physics laws by performing practicals. Lots of interesting levels are added to this Physics games for kids, which include: Energy, Force, Friction, Free Fall, Potential Energy and Kinetic Energy, Newton, Inertia, Solar System , etc. Out of these levels, some come with Physics games, while some feature simulation.

Each Physics game comes with cute animated characters. All the levels of this Physics game are very easy, so that kids can easily play them and understand the concept behind them. For example, Lever is a very interesting game, which teaches about the result of applying effort on a fulcrum. In this level, you have to simply drop a little penguin on the empty end of the fulcrum, which tosses the pig resting on the other end of the fulcrum in the air. If strong effort is applied, pig will be tossed higher in the air.

If I talk about simulations, Solar System is one of these. The Solar System simulation lets you learn the names of all 9 planets of our Solar System.

The best part of the game is that these levels come with explanations. Kids can read these explanations while playing the game in order to understand which laws of Physics imply that level.

Home Page Download Page

Battery Resistor Circuit

Battery Resistor Circuit is a real time Physics simulation game. It comes with a simple electrical circuit with different electrical components, like ammeter, resistance, a temperature indicator, etc. It works on the Ohm’s law. You can vary voltage and resistance of the circuit to see its effect on the flow of current.

By varying the resistance and voltage of the circuit, you can analyze what is happening in the circuit. It also shows the direction of flow of electrons in the circuit and inside the battery. So, you can know about the flow of electrons inside and outside a battery. It also displays the number of electron counts and what is going on inside a battery during the flow of current. Moreover, there is an ammeter connected to the circuit. This ammeter shows the current readings of current with respect to change in voltage and resistance.

Solar System 3D Simulator

Solar System 3D Simulator is a free Physics simulation for Windows. This Physics simulation will take you to a real-time space adventure. Explore our solar system with this free Physics simulator. It displays an animation of 9 planets revolving around the only star of our Solar System, the Sun.

It is an educational software, which provides you the basic information of 9 planets of our Solar System. There is a button Planetary Information provided on the interface, clicking which opens a separate window containing basic information of all 9 planets. This information includes: Diameter, Orbital radius, Mass, Density, Temperature , etc. of each planet. Besides this, it also displays the number of moons of each planet.

It is a very basic Physics simulation game, which provides only a basic information, hence it is good for kindergarten kids. This free Physics simulation helps kids to learn the names of all 9 planets of our Solar System in correct chronological order.

General Features of this free Physics simulation:

  • Zoom in and zoom out features are available in this free Physics simulation software.
  • It lets you vary the revolution speed of planets.
  • Orbits: You can view or hide orbits by clicking this button.
  • View: This button simulates the 3D model in different angles.
Home Page Download Page

Asynx Planetarium

Asynx Planetarium is another Physics simulation in this segment. Download this free Physics simulation on your PC and start a space adventure. Unlike Solar System 3D Simulator software in this list, this Physics simulation not only provides information about the Sun and its planets, but also comes with a good collection of Constellations. There are more than 90 Constellations in the software. Some of these include: Draco – the Dragon, Libra – the Scales, Leo – the Lion, Mensa – the Table Mountain, Musca – the Fly, Taurus – the Bull , etc. It also displays the phases of the moon in real time simulation with different Constellations.

It comes with control buttons, with the help of which you can start/stop the simulation, vary its speed, zoom in and zoom out of the Physics animation. It also comes with a sync button. Enabling sync feature, it simulates the phases of the moon with respect to the Solar System simulation. It also displays the phases of the moon in real time. Moreover, it also displays the Longitude, Latitude, and Astronomical Unit from the Sun for each planet. Apart from these features, you can view the simulation of Inner Planets and Outer planets.

Like Solar System 3D Simulator, it also provides you the basic information of each planet and the Sun, which includes: Planet name, altitude, distance from the Earth, distance from the Sun, gravity, temperature , etc.

This free Physics animation software is available in more than 5 languages. Some of these are English, French, German, Czech, Spanish, Russian, etc.

The International Astronomical Union declared Pluto as a Dwarf Planet in 2006, but this Physics simulation freeware has only 8 Planets.

Home Page Download Page

Chain Reaction

Chain Reaction is another free Physics game in this list. This is a Windows 10 Physics Simulation app that is based on the concept of chain reactions. There are more than 20 exciting levels, which comprise of a closed box in which there are freely moving atomic particles. Your aim is to carry chain reactions in this closed box by triggering a Red dot to complete a level. To start a chain reaction, just left click using mouse. As a chain reaction starts, these atomic particles start sticking on the Red dot, which results in fusion of atoms. This is termed as an Explosion in the game. Due to the fusion of atoms, the area near the Red dot starts increasing, which increases the rate of fusion.

To complete a level, you have to explode the given number of atoms. For each explosion, you will get some points.

Home Page Download Page

Heart Box

Heart Box is another free Physics game for PC. This free Windows 10 app is based on the theory of Gravity. Everything on the Earth is attracted towards the Earth by its gravitational pull. Follow this theory of Gravity to clear all levels of the game.

How to play this free Physics simulation game:

Heart Box is very simple Physics game for Windows 10. There is a square box (named Heart Box here) provided in the game. Your aim is to take that box to the bucket provided in the game by creating a slope. Initially Heart Box is placed on a horizontal rod placed on two small square boxes. You have to cleave one of these boxes in order to create a slope, so Heart Box starts sliding. In this way, you have to make a path which guides Heart Box to destination point.

This Physics game comes with a lot of interesting levels. You have to complete the previous level to jump to the next one. But, if you want to play any random level, you have to purchase its full version, which comes with all levels unlocked.

NOTE : This is an Ad supported version.

Home Page Download Page

States Of Matter

States Of Matter is another Physics simulation software in this list. This software simulates states of matter and lets you know the effect of the change in temperature on different states of matter. Simulation is provided for all three states of matter. i.e. solid, liquid, and gas. You can study these three states of matter with real-time simulation. Download this Physics simulation freeware and observe what happens to atoms and molecules of different states of matter when you increase or decrease the temperature.

It features two types of simulations: One is Solid, Liquid, Gas , and other is Phase Changes . Both the simulations comprise of a closed vessel, a thermometer, and a temperature controller, but in the latter simulation, there are two other components, a pump and a pressure gauge.

Experiments are carried out on four different elements (Neon, Argon, Oxygen, and Water) in a closed vessel by varying temperature of the vessel. The thermometer displays the current temperature inside the vessel.

Phase Changes simulation of this freeware shows the pressure inside the vessel with respect to temperature. You can increase pressure by increasing the temperature of the vessel and vice-versa. If you want to vary pressure at a constant temperature, you can vary it by adding more molecules of an element with the help of a pump.

By changing the states of a particular element, you can observe the strength of covalent bonds among molecules and the effect of temperature on these covalent bonds.

Home Page Download Page

Magnet and Compass

position:="" relative="" top:="" left:="">

Magnet and Compass is another free Physics simulation software for PC. This is a very simple Physics simulation software, which teaches you about the electromagnetic fields of the Earth. It shows how the needle in a magnetic compass deflects and guides us in correct direction. You can vary the strength of the magnet field. A field meter is also provided in the software, with the help of which you can check the intensity of magnetic field at different points.

This free Physics simulation lets you learn the working principle of a magnetic compass.

Volodya писал(а):

Пытался скачать триальную версию Matlab/Simulink + SimMechanics, но на сайте разработчиков, после заполнения форм, сообщили, что позволят скачать в случае, если у них самих возникнет желание, тогда они сами свяжутся.

Да. Они, как правило, дают скачивать SimMechanics, если у Вас уже имеется лицензия Матлаба...

Если Вы с мех-мата, то очень вероятно, что там имеются студенческие лицензии Матлаба. Дело в том, что Матлаб, беру смелость это заявить, наиболее распространенный и универсальный на сегодняшний день пакет программ прикладной математики, как в академической среде, так и на производстве (например, на нашем заводе). SimMechanics это, так называемый, тулбокс - расширение ядра по определенной тематике. Кроме механики существуют штук 20 тулбоксов, например, обработка сигналов, статистика, оптимизация и тд. Каждый тулбокс снабжен стандартным графическим интерфейсом, позволяющим создавать модель нужной архитектуры, работая мышью. Именно, нужно перетягивать нужные иконки используемых обьектов в рабочеее поле и определять "входы" и "выходы" обьектов. Каждый из тулбоксов может приобретаться опционально, в зависимости от конкретных потребностей.

Справедливости ради, замечу, что SimMechanics - относительно свежий тулбокс (впервые появился года 3 назад), т.е., скорее всего, не обладает такой стабильностью, как, например, Simulink, существующий уже целую "вечность".

Лично я использую Матлаб в 2-х ситуациях. Во-первых, если нужно проверить новый алгоритм или метод, то Матлаб позволяет без лишней суеты программировать в С стиле. Плюс к этому в пакет встроены оптимизированные векторные операции (BLAS), линейная алгебра (LAPACK) и очень продвинутый интерфейс визуализации 2-3D диаграмм. Во-вторых, когда возникает необходимость использовать в нашей программе разнообразные математические функции, то компиллятор (это своего рода тулбокс Matlab Compiler) позволяет скомпилировать файлы программы Матлаб (m-files) в DLLину. Mathworks разрешает 3-м лицам пользоваться такой DLLиной бесплатно (не нужна дополнительная лицензия).

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

Volodya писал(а):

На сайте разработчиков ITI-SIM + SimulationX 2.0 я не нашёл ссылок для скачивания триальной версии.

Я намеренно дал ссылку, т.к. это более дешевая альтернатива ADAMS. Впрочем, если нужно, как было написано вначале, расчитывать соударения тел сложной формы, то не уверен, что ITI-SIM или Матлаб помогут. Сама по себе 3-D модель удара - это целая отдельная сложная наука.

Volodya писал(а):

Например, задан массив частиц, в виде точек в 3-х мерном пространстве, твёрдого тела. Каждая частица обладает массой, вектором скорости. Верно ли, что вектора скоростей всех частиц одного абсолютно твёрдого тела параллельны?

Нет, т.к. тело может вращаться, мгновеннная ось вращения...

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

Для примера возьмём простую задачу Коши.
Дано: и . Найти аппроксимированное решение для .

Рассмотрим задачу с геометрической точки зрения и посмотрим на значение и касательную в точке . Из того, что нам дано, имеем и


Мы пока не знаем как выглядит , но мы знаем что возле точки , значение близко к касательной. Теперь постараемся вычислить для маленького значения , воспользовавшись касательной. Для начала попробуем .


Если расписать, то мы приближаем значение следующим образом:

Так, для .
​​
Теперь мы можем продолжить вычислять для других точек. Хотя, конечно, мы нашли не точное значение , но если наше приближённое значение очень близко к точному, то аппроксимированная касательная тоже будет очень близка к действительной!

$$display$$\begin{aligned}​f(t,y(t))&​=y(t)\\​f(0.5,1.5)​&=1.5​​\end{aligned}$$display$$



Далее, продвинемся ещё на единиц вправо по касательной.


Повторим процесс и получим угловой коэффициент касательной :


Процедуру можно проводить рекурсивно и для этого выведем формулу:

Данный численный метод решения дифференциальных уравнений называется методом Эйлера. Для общего случая шаг x += v * delta_t .

В нашем конкретном случае, пошаговое решение выглядит так:

Используя данный метод, результаты удобно представлять в виде таблицы:

Оказывается, у нашей задачи есть красивое аналитическое решение :


Как вы думаете, что произойдёт, если в методе Эйлера уменьшить шаг?


Разница между аппроксимированным и точным решениями уменьшается с уменьшением ! К тому же, вдобавок к уменьшению шага, можно использовать и другие методы численного интегрирования, которые могут привести к лучшему результату, такие как метод средних прямоугольников , метод Рунге-Кутты и метода Адамса .

Настало время кодить!

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

Т.к. я больше всего знаком с JavaScript, и мне нравится ясность, которую добавляют в код аннотации, все примеры будут написаны на TypeScript .

А начнём мы с версии, в которой подразумевали, что это одномерный массив чисел, прямо как в нашей математической модели.

Function runSimulation(// y(0) = y0 y0: number, // dy/dt(t) = f(t, y(t)) f: (t: number, y: number) => number, // показывает текущее состояние симуляции render: (y: number) => void) { // Шаг вперёд на 1/60 секунды за тик // Если анимация будет 60fps то это приведёт к симуляции в рельном времени const h = 1 / 60.0; function simulationStep(ti: number, yi: T) { render(yi) requestAnimationFrame(function() { const fi = f(ti, yi) // t_{i+1} = t_i + h const tNext = ti + h // y_{i+1} = y_i + h f(t_i, y_i) const yNext = for (let j = 0; j < y.length; j++) { yNext.push(yi[j] + h * fi[j]); } simulationStep(tNext, yNext) } } simulationStep(0, y0) }
Оперировать с одномерными массивами не всегда удобно, можно абстрагировать функции сложения и умножения процесса симуляции в интерфейс и получить краткую обобщённую реализацию симуляции используя TypeScript Generics .

Interface Numeric { plus(other: T): T times(scalar: number): T } function runSimulation>(y0: T, f: (t: number, y: T) => T, render: (y: T) => void) { const h = 1 / 60.0; function simulationStep(ti: number, yi: T) { render(yi) requestAnimationFrame(function() { // t_{i+1} = t_i + h const tNext = ti + h // y_{i+1} = y_i + h f(t_i, y_i) const yNext = yi.plus(f(ti, yi).times(h)) simulationStep(yNext, tNext) }) } simulationStep(y0, 0.0) }
Положительной стороной данного подхода является возможность сконцентрироваться на основе симуляции: что именно эту симуляцию отличает от любой другой. Используем пример симуляции с двумя объектами, упомянутыми выше:

Код симуляция двух объектов

// Состояние симуляции двух объектов в один тик времени class TwoParticles implements Numeric { constructor(readonly x1: Vec2, readonly v1: Vec2, readonly x2: Vec2, readonly v2: Vec2) { } plus(other: TwoParticles) { return new TwoParticles(this.x1.plus(other.x1), this.v1.plus(other.v1), this.x2.plus(other.x2), this.v2.plus(other.v2)); } times(scalar: number) { return new TwoParticles(this.x1.times(scalar), this.v1.times(scalar), this.x2.times(scalar), this.v2.times(scalar)) } } // dy/dt (t) = f(t, y(t)) function f(t: number, y: TwoParticles) { const { x1, v1, x2, v2 } = y; return new TwoParticles(// dx1/dt = v1 v1, // dv1/dt = G*m2*(x2-x1)/|x2-x1|^3 x2.minus(x1).times(G * m2 / Math.pow(x2.minus(x1).length(), 3)), // dx2/dt = v2 v2, // dv2/dt = G*m1*(x1-x1)/|x1-x2|^3 x1.minus(x2).times(G * m1 / Math.pow(x1.minus(x2).length(), 3))) } // y(0) = y0 const y0 = new TwoParticles(/* x1 */ new Vec2(2, 3), /* v1 */ new Vec2(1, 0), /* x2 */ new Vec2(4, 1), /* v2 */ new Vec2(-1, 0)) const canvas = document.createElement("canvas") canvas.width = 400; canvas.height = 400; const ctx = canvas.getContext("2d")!; document.body.appendChild(canvas); // Текущее состояние симуляции function render(y: TwoParticles) { const { x1, x2 } = y; ctx.fillStyle = "white"; ctx.fillRect(0, 0, 400, 400); ctx.fillStyle = "black"; ctx.beginPath(); ctx.ellipse(x1.x*50 + 200, x1.y*50 + 200, 15, 15, 0, 0, 2 * Math.PI); ctx.fill(); ctx.fillStyle = "red"; ctx.beginPath(); ctx.ellipse(x2.x*50 + 200, x2.y*50 + 200, 30, 30, 0, 0, 2 * Math.PI); ctx.fill(); } // Запускаем! runSimulation(y0, f, render)


Если подшаманить с числами, то можно получить симуляцию орбиты Луны!Симуляция орбиты Луны, 1 пикс. = 2500 км. 1 сек. симуляции равна 1 дню на Земле. Пропорция Луны к Земле увеличена в 10 раз

Столкновения и ограничения

Приведённая математическая модель и в самом деле симулирует физический мир, но в некоторых случаях метод численного интегрирования, к сожалению, ломается.

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

Состояние симуляции можно описать так:

Где это высота мяча над поверхностью, а его скорость. Если отпустить мяч с высоты 0.8 метра, то получим:

Если изобразить график , то получим нечто следующее:


Во время падения мяча производная функции вычисляется достаточно легко:

С ускорением свободного падения, .

Но что произойдёт, когда мяч коснётся поверхности? То, что мяч достиг поверхности мы можем узнать по . Но при численном интегрировании, в один момент времени мяч может находиться над поверхностью, а уже в следующий под ней: .

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

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

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

Function runSimulation>(y0: T, f: (t: number, y: T) => T, applyConstraints: (y: T) => T, iterationsPerFrame: number, render: (y: T) => void) { const frameTime = 1 / 60.0 const h = frameTime / iterationsPerFrame function simulationStep(yi: T, ti: number) { render(yi) requestAnimationFrame(function () { for (let i = 0; i < iterationsPerFrame; i++) { yi = yi.plus(f(ti, yi).times(h)) yi = applyConstraints(yi) ti = ti + h } simulationStep(yi, ti) }) } simulationStep(y0, 0.0) }
И теперь уже можно написать код нашего прыгающего мячика:

Код прыгающего мячика

const g = -9.8; // m / s^2 const r = 0.2; // m class Ball implements Numeric { constructor(readonly x: number, readonly v: number) { } plus(other: Ball) { return new Ball(this.x + other.x, this.v + other.v) } times(scalar: number) { return new Ball(this.x * scalar, this.v * scalar) } } function f(t: number, y: Ball) { const { x, v } = y return new Ball(v, g) } function applyConstraints(y: Ball): Ball { const { x, v } = y if (x <= 0 && v < 0) { return new Ball(x, -v) } return y } const y0 = new Ball(/* x */ 0.8, /* v */ 0) function render(y: Ball) { ctx.clearRect(0, 0, 400, 400) ctx.fillStyle = "#EB5757" ctx.beginPath() ctx.ellipse(200, 400 - ((y.x + r) * 300), r * 300, r * 300, 0, 0, 2 * Math.PI) ctx.fill() } runSimulation(y0, f, applyConstraints, 30, render)


Внимание разработчикам!

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

До скорого!

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

На всё изложенное меня вдохновили материалы лекции SIGGRAPH, точно так же как и в симуляции жидкости . Если хотите найти более исчерпывающую информацию о вышеизложенном, то взгляните на материалы курса SIGGRAPH 2001 «Введение в физическое моделирование» . Привожу ссылку на курс 1997 года, т.к. Pixar похоже удалила версию 2001.

Только зарегистрированные пользователи могут участвовать в опросе. , пожалуйста.

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

Snapshots of the Universe – удивительное приложение для iOS, не так давно выпущенное самим Стивеном Хокингом совместно с компанией Random House . Приложение состоит из восьми экспериментов, которые дают пользователям возможность не только получить базовые знания по физике, но и познакомиться с принципами, управляющими нашей Вселенной. В рамках предложенных экспериментов игроки могут отправлять ракеты в открытый космос, собирать собственные звёздные системы, искать и изучать чёрные дыры. Каждый эксперимент можно проводить бесчисленное количество раз, изменяя физические параметры и наблюдая за появляющимися эффектами. Чтобы лучше понять эксперименты, можно зайти в раздел объяснения результатов и посмотреть видео. Приложение доступно на iTunes . Cтоимость игры от великого физика составляет всего лишь $4,99.

Это игра с уникальным сочетанием особенностей аркады и головоломки, место действия которых – мир субатомных частиц. Взяв под контроль одного из кварков, вы должны вести переговоры с фундаментальными силами Вселенной. Другие частицы будут притягиваться и отталкиваться, соединяться и изменять полярность, задача несчастного кварка - не терять контроль и избегать разрушения. Через всю игру красной нитью проходит история Элисон – молодого физика с нелёгким прошлым. Её путешествие через субатомный мир протекает в воспоминаниях и в конечном счёте приводит к удивительным открытиям. На сайте представлена бесплатная демо-версия, за полную придётся заплатить от 5-ти до 50-ти долларов – в зависимости от особенностей вашей системы.

Игра от первого лица, разработанная лабораторией игр (MIT), даёт возможность игрокам познакомиться с восприятием пространства на околосветовых скоростях и понять теорию относительности. Задача игрока – перемещаться по 3D-пространству, собирать сферические объекты, которые замедляют скорость света на фиксированные значения, что даёт возможность наблюдать за различными визуальными эффектами эйнштейновской теории.

Чем медленнее движется излучение - тем яснее проступают некоторые физические эффекты. К 90-му собранному камню свет будет распространяться со скоростью пешехода, что заставит вас почувствовать себя героями сюрреалистического мира. Среди явлений, с которыми может познакомиться герой во время игры, эффект Допплера (изменение при движении игрока длина волны регистрируемого им света, что приводит к изменению окраски видимых предметов, которая смещается в ультрафиолет и инфракрасную область), абберация света (увеличение яркости света в направлении движения), релятивистское замедление времени (различия между субъективным ощущением времени игрока и протекании времени во внешнем мире), преобразование Лоренца (искажение пространства на околосветовых скоростях) и т.д.

Crayon Physics Deluxe - это 2D-пазл/игра «в песочнице», которая даёт возможность испытать игрокам, что было бы, если бы их рисунки могли превращаться в реальные физические объекты. Задача игрока – помогать шарику собирать звёздочки, рисуя подходящие для его движения поверхности – мосты, переправы, рычаги и т.д. Всё происходит в волшебном мире детского рисунка, где инструментами игрока являются восковые карандашики. Как минимум игра развивает художественное видение и творческие способности, как максимум – позволяет познакомиться с основами механики - гравитацией, ускорением и трением. Для теста на сайте представлена демо-версия , полную версию для PC, Mac и Linux можно приобрести за $19,95, приложения на Android и iOS обойдутся в $2,99.

Впрочем, для тех, кто только приступил к изучению движения тел и различных физических сил, будет также интересно ознакомиться с образовательной видеоигрой Physics Playground. Игра представляет собой площадку, на которой игроку нужно выполнять достаточно простые действия – с помощью зелёного шара сбивать красный воздушный шарик. Вот тут-то и начинается классическая механика: без правильного применения законов Ньютона игрокам вряд ли удастся сконструировать в интерактивной среде механизмы, которые помогут привести в движение шарик. Впрочем, можно пользоваться и интуицией – главное, что на протяжении 80-ти уровней интуитивные знания, позволяющие достигать цели, постепенно приводят к пониманию закономерностей, которые лежат в основе классической механики. Игра разработана компанией Empirical Game , которая занимается созданием развивающих образовательных игр. В открытом доступе её, к сожалению, нет, однако разработчики предлагают связаться с ними, если вас заинтересовал этот продукт. В полной версии можно отслеживать успехи игроков с помощью анализа журналов лог-файла.

«Наука, индустрия развлечений и игра слились в красивом уникальном творческом опыте Newton’s Playground. Манипулируйте Вселенной, создавайте невероятные сочетания планет и запускайте гравитацию», - говорят создатели приложения. Newton’s Playground – интерактивное приложение, которое базируется на моделях, отражающих гравитационную взаимосвязь различных тел. Имитируя гравитационные отношения планет, небольшое приложение Newton’s Playground даёт своим игрокам возможность понаблюдать за взаимодействием сфер, плавающих в открытом пространстве, или же самому поэкспериментировать с массой и плотностью различных тел и создать собственную Солнечную систему. Все расчёты основаны на исследованиях института астрономии Sverre Aarseth"s. Стоимость приложения в App Store – $1,99.

«Algodoo создает новую синергию между наукой и искусством», - гласит надпись на одной из страниц игры. Algodoo – это уникальная платформа 2D-моделирования физических экспериментов от Algoryx Simulation AB . С помощью мультяшных образов и интерактивных инструментов Algodoo позволяет создавать удивительные изобретения, разрабатывать игры для использования в классе или специальные эксперименты для лабораторных занятий по физике. В процессе своих естествоиспытаний и создания различных механизмов участники игры могут использовать жидкости, пружины, шарниры, двигатели, световые лучи, различные индикаторы, оптику и линзы. Моделируя различные конструкции и меняя параметры, игроки изучают трение, преломление, силу тяжести и т.д. Для новичков на сайте представлено подробное руководство , а также создан канал Youtube , на котором можно посмотреть десятки видео по теме. Для Windows и Mac доступны бесплатные версии игры, приложение для iPad стоит $4,99.

Autodesk ForceEffect – приложение для инженеров, которые занимаются различного рода проектированием. С помощью Autodesk ForceEffect можно делать инженерные расчёты прямо на мобильном устройстве. Это существенно облегчает работу по дизайну на стадии создания концепции, так как мгновенно определяет жизнеспособность конструкции. Впрочем, приложение будет интересно и тем, кто хотел бы узнать, как различные силы влияют на объекты. Таким энтузиастам вместо схемы дома для эксперимента можно взять обычный велосипед и на основе его фото провести ряд экспериментов, которые покажут, какую нагрузку он способен выдержать и что влияет на равновесие велосипеда. Особенно приятно, что приложение находится в открытом доступе и бесплатно доступно для Android , iOS .