SmoothLife симулирует жизнь: ~7 подобранных констант, нелокальность по диску (свёртка), сохранения нет, и по смыслу это про «жизнь/смерть» (хотя состояние непрерывное, как и у меня).
Моя поделка — классическая нелинейная теория поля, коих вагон , (без квантовых постулатов, стараюсь избавляться от любых сущностей, кроме энергии нет ничего), безразмерных подгоночных констант ноль (есть масштаб, но он = выбор единиц), строгая локальность (только соседи), и одно-единственное правило — скорость перетока c = 1/E. Смысл не «как поделиться или убить», а куда и с какой скоростью перетечёт энергия (она сохраняется, не создаётся). Схожесть картинки — возможно, да; механизм — как бы совсем не тот.
Да граничные условия есть, если вы о стенке. Оттока через внешние грани нет, но волны гасить приходится, иначе не получаются условия близкие а реальным. Без гашения волн - отражёнка, и прочее, не дают устаканится энергии. Делаю небольшой пограничный слой, с гашением. Дельта энергии из за губки есть, но она в приделах ~0.001%. Если говорить о перетоке между ячейками то там всё строго, сколько вылили столько влили.
На счёт энергии суммарной, хмм, у меня скалярная сумма и есть сумма энергии системы, энергии в 0 не бывает, формула не даёт и не логично это.
Да, нелинейность есть, ку да же без неё, растеклось бы. Скаляр энергии E(x,t) на сетке - правило: энергия перетекает к соседям, но скорость перетока зависит от самого поля: c = 1/E (чем плотнее, тем медленнее) . Пробовал варианты с гидро и волной, самое интересное что результат почти тождественен. гидро: давление P = −scale²/E сейчас scale держу =1(от масштаба, на уровне бризеров 1000); волновая: ∂²ₜE = ∇·(c²∇E), c = 1/(1+E). пробовал и так c = 2/(1+e^E), но введение экспоненты меня смущает, хотя сверху (на высоких энергиях работает лучше) и для клампа - энергия масса отрабатывает, а снизу картина почти не меняется. Тут как раз ещё помогает дискретность клетки которая даёт минимальную длину волны и дисперсия работает не линейно.
Конечно дискретность ни куда не делась, но у меня она как основа и масштаб (размер клетки и тик). И непрерывность я имел в виду значение энергии в точке - скаляр в момент времени в точке, сейчас использую float, сильно мало)).
Да вы, абсолютно правы, на низких разрешениях это действительно выглядит как клеточный автомат и наверно им и является. Но состояния не заданы заранее, а вычисляются непрерывно по уровню энергии у соседей.
SmoothLife симулирует жизнь: ~7 подобранных констант, нелокальность по диску (свёртка), сохранения нет, и по смыслу это про «жизнь/смерть» (хотя состояние непрерывное, как и у меня).
Моя поделка — классическая нелинейная теория поля, коих вагон , (без квантовых постулатов, стараюсь избавляться от любых сущностей, кроме энергии нет ничего), безразмерных подгоночных констант ноль (есть масштаб, но он = выбор единиц), строгая локальность (только соседи), и одно-единственное правило — скорость перетока c = 1/E. Смысл не «как поделиться или убить», а куда и с какой скоростью перетечёт энергия (она сохраняется, не создаётся). Схожесть картинки — возможно, да; механизм — как бы совсем не тот.
Да граничные условия есть, если вы о стенке. Оттока через внешние грани нет, но волны гасить приходится, иначе не получаются условия близкие а реальным. Без гашения волн - отражёнка, и прочее, не дают устаканится энергии. Делаю небольшой пограничный слой, с гашением. Дельта энергии из за губки есть, но она в приделах ~0.001%. Если говорить о перетоке между ячейками то там всё строго, сколько вылили столько влили.
На счёт энергии суммарной, хмм, у меня скалярная сумма и есть сумма энергии системы, энергии в 0 не бывает, формула не даёт и не логично это.
Да, нелинейность есть, ку да же без неё, растеклось бы. Скаляр энергии E(x,t) на сетке - правило: энергия перетекает к соседям, но скорость перетока зависит от самого поля: c = 1/E (чем плотнее, тем медленнее) . Пробовал варианты с гидро и волной, самое интересное что результат почти тождественен. гидро: давление P = −scale²/E сейчас scale держу =1(от масштаба, на уровне бризеров 1000); волновая: ∂²ₜE = ∇·(c²∇E), c = 1/(1+E). пробовал и так c = 2/(1+e^E), но введение экспоненты меня смущает, хотя сверху (на высоких энергиях работает лучше) и для клампа - энергия масса отрабатывает, а снизу картина почти не меняется. Тут как раз ещё помогает дискретность клетки которая даёт минимальную длину волны и дисперсия работает не линейно.
Конечно дискретность ни куда не делась, но у меня она как основа и масштаб (размер клетки и тик). И непрерывность я имел в виду значение энергии в точке - скаляр в момент времени в точке, сейчас использую float, сильно мало)).
Состояния выходят из формулы модели C=1/E поэтому они непрерывны, и немного отличаются от клеточного автомата, там живут волны и всё вместе с ними.
Да вы, абсолютно правы, на низких разрешениях это действительно выглядит как клеточный автомат и наверно им и является. Но состояния не заданы заранее, а вычисляются непрерывно по уровню энергии у соседей.