Algodoo — бесплатная 2D-песочница, основанная на физике, от компании (известной просто как Algoryx), являющаяся преемником популярного физического приложения Phun. Она была выпущена 1 сентября 2009 года и позиционируется как обучающий инструмент, компьютерная игра с открытым концом, инструмент для анимации и инженерный инструмент.

Программное обеспечение работает с настольными и портативными компьютерами, планшетами с сенсорным экраном и интерактивными досками, такими как SMART Boards. Физический движок в Algodoo использует линейный решатель ограничений SPOOK Клода Лакурсьера и модифицированную версию вычислительного метода гидродинамики сглаженных частиц (SPH). В App Store оно стоит 4,99 фунта стерлингов и доступно только для iPad.

Эта программа используется множеством людей, включая преподавателей, студентов и обычных детей. Algodoo достаточно популярен на таких сайтах, как List Of Freeware и Download Cloud в качестве программы-песочницы по физике благодаря своей комплексности, простому графическому интерфейсу и нулевой цене.

История В 2008 году Эмиль Эрнерфельдт создал интерактивный 2D-симулятор физики для своей магистерской диссертации по информатике в Умеоском университете в Швеции. Этот проект был выпущен для публичного и некоммерческого использования под названием «Phun» и привлёк значительное внимание после того, как видеоролик с использованием Эрнерфельдтом этого программного обеспечения стал вирусным на YouTube.

В мае 2008 года Эрнерфельдт передал проект Phun компании Algoryx Simulation AB, основанной в 2007 году бывшим научным руководителем Эрнерфельдта в Университете Умео, Кеннетом Бодином. В 2009 году Phun был переиздан под названием «Algodoo» (сочетание слов algorithm и do). Изменение названия было вызвано тем, что слово «phun» используется многими сайтами, которые считаются неприемлемыми для юных пользователей, а также тем, что регистрация товарного знака «phun» была практически невозможна.

В октябре 2011 года Algoryx выпустила две новые версии: Algodoo for Education и Algodoo 2.0.0. В феврале 2017 года Algodoo для iPad была обновлена до версии 2.1.2 для сохранения функциональности с iOS 10. Начиная с апреля 2024 года, Algoryx начала выпускать публичные бета-версии версии 2.2.0, добавив поддержку 64-битной архитектуры для Windows, поддержку Apple Silicon и исправления нескольких давних проблем. Это завершилось стабильным выпуском версии 2.2.1 на всех платформах.

Графический пользовательский интерфейс Графический пользовательский интерфейс (GUI) Algodoo включает в себя несколько перемещаемых панелей инструментов, расположенных по краям экрана, в том числе верхнюю панель меню, панель инструментов браузера, (общую) панель инструментов, панель инструментов параметров инструментов, панель инструментов управления моделированием/окружением и панель инструментов свойств. Среди прочего, эти панели инструментов предоставляют пользователю возможность менять язык; запускать обучающие материалы; просматривать и сохранять сцены; находить и делиться сценами в Интернете; рисовать, редактировать сцены и взаимодействовать с ними; увеличивать и уменьшать масштаб; воспроизводить и приостанавливать моделирование; отменять и повторять действия; включать/выключать гравитацию, трение воздуха и фоновую сетку; а также изменять свойства выбранного объекта, такие как тип материала и цвет.

На общей панели инструментов пользователи могут использовать следующие инструменты для создания и перемещения фигур:

Инструмент «Плоскость» (A) — используется для создания бесконечных плоскостей. Также может быть нарисован с помощью инструмента «Эскиз», нарисовав Т-образную фигуру, указывающую на ориентацию плоскости. Инструмент «Кисть» (B) — используется для рисования фигур мазками кисти. Инструмент «Круг» (C) — используется для создания кругов. Также можно рисовать с помощью инструмента «Эскиз». Инструмент перетаскивания (D) — используется для приложения силы к объекту во время выполнения симуляции. Жидкости и плоскости перетаскивать нельзя. Инструмент «Трассировка» (E) — используется для прикрепления трассировки к объекту (которая рисует траекторию движения объекта). Также может быть нарисован с помощью инструмента «Эскиз», нарисовав закрашенный круг. Инструмент «Фиксация» (F) — используется для соединения объекта с объектом позади него или с фоном. Также может быть нарисован с помощью инструмента «Эскиз», образуя форму вигвама, похожего на песочные часы, но без верхушки. Инструмент для создания шестерен (G) — используется для создания шестерен с осями. Инструмент «Ось» (H) — используется для соединения объекта с нижележащим объектом или фоном с помощью оси. Также может быть нарисован с помощью инструмента «Эскиз», нарисовав небольшой кружок. Инструмент «Эскиз» (K) — единый инструмент, выполняющий функции многих других инструментов. Рисование линии вниз, которая ничего не касается, запускает и приостанавливает воспроизведение. Движение вправо или влево отменяет/повторяет действие. Инструмент «Лазерная ручка» (L) — используется для создания лазерного луча. Инструмент перемещения (M) — используется для перемещения объектов. Инструмент «Цепь» (N) — используется для создания цепей и канатов. Также может быть нарисован с помощью инструмента «Эскиз», проведя линию к объекту. Инструмент для крепления двигателя (O) — используется для прикрепления двигателя к объекту. Инструмент «Многоугольник» (P) — используется для рисования фигур произвольной формы. Инструмент масштабирования (R) — используется для изменения размера объекта (по обеим осям одинаково с помощью клавиши SHIFT, на целочисленные значения, такие как 2x или 3x, с помощью клавиши CTRL). Инструмент «Пружина» (S) — используется для соединения двух объектов пружиной (или для соединения одного объекта и фона аналогичным образом). Также может быть нарисован с помощью инструмента «Эскиз», проведя линию с петлей, идущей к объекту. Инструмент «Нож» (T) — используется для разрезания многоугольников вдоль нарисованной линии. Также это можно сделать с помощью инструмента «Эскиз», нарисовав линию, проходящую через объект. Инструмент «Текстура» (U) — используется для перемещения, масштабирования и вращения текстуры объекта (текстура здесь используется в смысле наложения изображения на объект). Инструмент «Коробка» (X) — используется для создания прямоугольников (или квадратов с помощью SHIFT). Также может быть нарисован с помощью инструмента «Эскиз», путем рисования прямоугольника или квадрата. Инструмент «Вращение» — используется для вращения объектов. Инструмент «Ластик» — используется для удаления объектов.

Выпадающее меню (доступное двойным щелчком или щелчком правой кнопкой мыши по объекту) включает в себя несколько инструментов для разжижения объектов; превращения их в губки; клонирования; зеркального отображения; построения графиков физических величин объекта (таких как скорость в зависимости от времени или положение по оси Y в зависимости от положения по оси X); выбора объектов различными способами; изменения внешнего вида объектов (включая возможность переключения наличия векторов скорости, импульса и силы); присвоения текста объекту; изменения моделируемого материала объекта (включая такие параметры, как плотность, масса, трение, восстановление, показатель преломления и притяжение); присвоения и изменения линейной и угловой скорости объекта; отображения списка информации об объекте (включая площадь, массу, момент инерции, положение, скорость, угловую скорость, импульс, угловой момент, полную энергию, кинетическую линейную энергию, кинетическую угловую энергию, потенциальную энергию (гравитация), потенциальную энергию (притяжение) и потенциальную энергию (пружина)). Назначение объектов различным слоям столкновений; выполнение «геометрических действий», таких как приклеивание объектов к фону, их ослабление, добавление центральных осей, добавление центральных двигателей, прикрепление трассеров, преобразование объекта в шестерню или в круг; редактирование объектов с помощью 2D конструктивной твердотельной геометрии (CSG); назначение сочетаний клавиш для управления объектом; и для открытия меню сценариев для выбранного объекта (объектов).

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

Значительные изменения в графическом интерфейсе пользователя со времен Phun

Хотя графический интерфейс Algodoo по сути тот же, что и в Phun, в доступную функциональность были внесены многие существенные изменения. Два заметных изменения включают новый механизм оптического моделирования и функцию привязки к сетке, позволяющую создавать сцены с более высокой точностью. Включение механизма оптического моделирования предоставило гораздо больше свободы в использовании языка сценариев Algodoo — Thyme, — поскольку пользователи после этого смогли инициировать события, попадая на объект потоком лазерного света. Другие заметные изменения включают добавление меню скорости, которое позволяет пользователям устанавливать скорость геометрии на заданное значение; несжимаемую воду, что позволяет создавать гораздо более реалистичные модели жидкостей; меню построения графиков; векторную визуализацию; и множество других новых функций, исправлений ошибок и улучшений.

Образовательные исследования В 2011 году Эмануэль Дальберг, студент магистратуры по информатике в Университете Умео, завершил свою диссертацию об использовании двумерной механики в Algodoo для моделирования электричества в образовательных целях. С тех пор было опубликовано несколько проектов, посвященных тому, как учителя могут использовать Algodoo, чтобы помочь ученикам изучать вечные двигатели, выталкивающую силу, принцип Архимеда, колыбель Ньютона, вращательное движение, косое движение снаряда, преломление света, и даже законы Кеплера. Многие из этих исследований подчеркивают, что Algodoo предоставляет студентам уникальную среду для изучения физики. В одной статье утверждается, что предоставление студентам возможности изучать физические концепции в Algodoo мотивирует их к творческому участию в учебном процессе, одновременно «служа первым шагом в мир компьютерного моделирования в физике». Algodoo в значительной степени основан на конструктивистской парадигме обучения.

За пределами преподавания физики Algodoo использовался как ступенька для тестирования машин в симуляции перед их созданием в реальном мире благодаря простому пользовательскому интерфейсу и быстрому освоению по сравнению с другими физическими симуляторами. По данным Hackaday, «[Сара] обратилась к Algodoo, физическому симулятору, где любой может установить валы на вращающиеся ступицы, раскрутить все это и посмотреть, что произойдет».

Обмен файлами Первоначально система загрузки файлов для Phun размещалась на небольшом веб-сайте Академического компьютерного клуба Университета Умео. Позже система загрузки была перенесена на сайт Phunland в подкаталог upload, а затем снова перемещена в каталог обмена файлами Phunbox, созданный Зурики и Лукасом Вольфом (который содержал 16 874 загрузки пользователей). После нескольких изменений в системе загрузки каталог был окончательно перенесен на веб-сайт Algodoo под названием Doobox. После того, как один из пользователей предположил, что Doobox может быть не лучшим названием для системы обмена файлами (это также было название компании-разработчика программного обеспечения), название было изменено на Algobox, предложенное Хроносом.