На следующих выходных запилю видос, как собрать амебку из примитивов и заанимировать ее базово. Ну или про физарум, если успею его релизнуть.
❤2
Media is too big
VIEW IN TELEGRAM
На той неделе встретился с таким замечательным глитчем, который пердолит видеопамять, может наглухо повесить систему и отправить ее в ребут.
Случилось это на симуляторе. Обычно такое происходит, когда лезешь в памяти туда, куда не надо. Но я два часа потратил на проверки, и спамятью все было ок. Потом решил запустить на девайсе, так как с него больше полезного выпадает, и там нашел в логах, что беда не в памяти, а в переполнении стека.
То есть вот этот вызов одного ранда в другом все сломал.
Причем даже если объявить их
В итоге пришлось сделать не красиво, но рабоче - с дублированием кода. Зато спецэффекты красивые - давно таких не встречал
Случилось это на симуляторе. Обычно такое происходит, когда лезешь в памяти туда, куда не надо. Но я два часа потратил на проверки, и спамятью все было ок. Потом решил запустить на девайсе, так как с него больше полезного выпадает, и там нашел в логах, что беда не в памяти, а в переполнении стека.
То есть вот этот вызов одного ранда в другом все сломал.
float rand1(thread LCG &rng) {
rng.state = rng.state * 1664525u + 1013904223u;
return (float)(rng.state & 0x00FFFFFFu) / 16777215.0;
}
float rand(thread LCG &rng) {
return rand(rng) * 2.0 - 1.0;
}Причем даже если объявить их
inline, это не поможет, потому что это рекомендация.В итоге пришлось сделать не красиво, но рабоче - с дублированием кода. Зато спецэффекты красивые - давно таких не встречал
🔥2👀2
This media is not supported in your browser
VIEW IN TELEGRAM
Рандомно генерить амебок (визуализация параметров симуляции) вышло залипательнее, чем сама симуляция 🤠
❤9🔥5
Прогаем с кенгурой
Рандомно генерить амебок (визуализация параметров симуляции) вышло залипательнее, чем сама симуляция 🤠
Надо бы в будущих версиях сделать плавный переход между амебками при смене параметров.
Придется правда затаскивать вьюмодель для вьюхи - сейчас оно обходится без нее - контроль параметров осуществляется ее парентом, а она только рисует и ловит тачи, если попросили.
Не идеально, да, но для первой версии сгодится. Времени было одни выходные на собрать новую песочницу.
Придется правда затаскивать вьюмодель для вьюхи - сейчас оно обходится без нее - контроль параметров осуществляется ее парентом, а она только рисует и ловит тачи, если попросили.
Не идеально, да, но для первой версии сгодится. Времени было одни выходные на собрать новую песочницу.
💯6
This media is not supported in your browser
VIEW IN TELEGRAM
Эксперименты по сбору пресетов к скорому релизу песочницы
👀1
В преддверии релиза физарума расскажу, пожалуй про остальные песочницы.
>>Тиамат<<
Это первая песочница, про клеточные автоматы. Начиналась на тему потыкать SwiftUI, и симуляция там была тупо как заглушка. Теперь это уже полноценная песочница для экспериментов с клеточными автоматами: редактор поля, правил и прочее.
На ней же отлаживали процессы в команде, делали эксперименты с яблочной инфрой и онбордили людей. Теперь просто ждет, когда я доделаю последнюю фичу про флотовые правила, но там вопрос исключительно в UX.
Попробовать можно тут: https://apps.apple.com/app/apple-store/id1580189385
Что такое клеточные автоматы рассказывал тут: https://youtu.be/F7z_MHX3AtA
>>Тиамат<<
Это первая песочница, про клеточные автоматы. Начиналась на тему потыкать SwiftUI, и симуляция там была тупо как заглушка. Теперь это уже полноценная песочница для экспериментов с клеточными автоматами: редактор поля, правил и прочее.
На ней же отлаживали процессы в команде, делали эксперименты с яблочной инфрой и онбордили людей. Теперь просто ждет, когда я доделаю последнюю фичу про флотовые правила, но там вопрос исключительно в UX.
Попробовать можно тут: https://apps.apple.com/app/apple-store/id1580189385
Что такое клеточные автоматы рассказывал тут: https://youtu.be/F7z_MHX3AtA
🔥4❤2
Forwarded from Генканал
Media is too big
VIEW IN TELEGRAM
Lambdas, lambdas and more lambdas
Встреча прошла с участием Питера Пасмы — генеративного художника из Нидерландов, который рассказал о своем исследовании минимальных представлений алгоритмов, бинарном λ-исчислении и компрессии программ. Обсуждались как теоретические основы (λ-исчисление, Колмогоровская сложность), так и практические эксперименты: генерация SVG-графики с помощью сверхкоротких программ, оптимизация кода, автоматизация перестановки аргументов и поиск минимальных описаний.
⏱️ Таймкоды:
00:00 — Приветствие, запуск записи, знакомство
02:10 — Введение в λ-исчисление, базовые понятия
06:40 — Числа Чёрча, функции, каррирование
11:30 — Колмогоровская сложность и минимальное описание
15:00 — Бинарное λ-исчисление: идея, кодировка, мотивация
20:45 — Примеры кодирования чисел и функций
26:00 — Парсер и исполнение λ-выражений на JavaScript
32:40 — Преобразование в бинарный вид, оптимизация
38:30 — Генерация SVG-графики через минимальные программы
45:00 — Автоматизация оптимизации, перестановка аргументов
50:20 — Вопросы про эффективность и кодирование
54:00 — Практические ограничения, перспективы
58:30 — Заключение, вопросы слушателей, ресурсы
#meetup
Встреча прошла с участием Питера Пасмы — генеративного художника из Нидерландов, который рассказал о своем исследовании минимальных представлений алгоритмов, бинарном λ-исчислении и компрессии программ. Обсуждались как теоретические основы (λ-исчисление, Колмогоровская сложность), так и практические эксперименты: генерация SVG-графики с помощью сверхкоротких программ, оптимизация кода, автоматизация перестановки аргументов и поиск минимальных описаний.
⏱️ Таймкоды:
00:00 — Приветствие, запуск записи, знакомство
02:10 — Введение в λ-исчисление, базовые понятия
06:40 — Числа Чёрча, функции, каррирование
11:30 — Колмогоровская сложность и минимальное описание
15:00 — Бинарное λ-исчисление: идея, кодировка, мотивация
20:45 — Примеры кодирования чисел и функций
26:00 — Парсер и исполнение λ-выражений на JavaScript
32:40 — Преобразование в бинарный вид, оптимизация
38:30 — Генерация SVG-графики через минимальные программы
45:00 — Автоматизация оптимизации, перестановка аргументов
50:20 — Вопросы про эффективность и кодирование
54:00 — Практические ограничения, перспективы
58:30 — Заключение, вопросы слушателей, ресурсы
#meetup
👍1
Итак, вторая песочница
>>Квантум<<
Здесь - про взаимодействие частиц. В интернете оно зовется Particle Life, но у меня немного другие функции - более физические (kmM/r^2). То есть это симуляция почти про задачу трех тел, только тел может быть до 10000.
Я НЕ использовал всякие специально для этого созданные подходы типа Барнеса-Хута. Во-первых, оно вполне себе отлично работает на современном железе и так, во-вторых, не придумал быстро, как затащить его на видюху, а долго думать - свободного времени нет. Может, когда-нибудь затащу и можно будет на пару порядков увеличить число частиц (правда там уже их рендеринг встрянет).
Попробовать можно тут: https://apps.apple.com/app/apple-store/id6504465371
Как это работает, рассказывал тут: https://youtu.be/IPrP0BLocW4 и https://youtu.be/sSzRzFtI2KQ
>>Квантум<<
Здесь - про взаимодействие частиц. В интернете оно зовется Particle Life, но у меня немного другие функции - более физические (kmM/r^2). То есть это симуляция почти про задачу трех тел, только тел может быть до 10000.
Я НЕ использовал всякие специально для этого созданные подходы типа Барнеса-Хута. Во-первых, оно вполне себе отлично работает на современном железе и так, во-вторых, не придумал быстро, как затащить его на видюху, а долго думать - свободного времени нет. Может, когда-нибудь затащу и можно будет на пару порядков увеличить число частиц (правда там уже их рендеринг встрянет).
Попробовать можно тут: https://apps.apple.com/app/apple-store/id6504465371
Как это работает, рассказывал тут: https://youtu.be/IPrP0BLocW4 и https://youtu.be/sSzRzFtI2KQ
App Store
Quantum - Particle Life
Experience the Hidden World of Particles
Immerse yourself in Quantum, a cutting-edge simulation environment capable of modeling up to 10,000 particles in real time. Dive into the mesmerizing complexities of natural phenomena—from crystallization and thermodynamics…
Immerse yourself in Quantum, a cutting-edge simulation environment capable of modeling up to 10,000 particles in real time. Dive into the mesmerizing complexities of natural phenomena—from crystallization and thermodynamics…
🔥2❤1
Прогаем с кенгурой
Итак, вторая песочница >>Квантум<< Здесь - про взаимодействие частиц. В интернете оно зовется Particle Life, но у меня немного другие функции - более физические (kmM/r^2). То есть это симуляция почти про задачу трех тел, только тел может быть до 10000. …
Немного про реализацию:
Сделано оно максимально тупо.
- Есть два буфера: с одного читаем, в другой пишем, потом меняем местами - пинг-понг то бишь
- На число частиц создаем тредов на видюхе
- В каждом треде считаем данную частицу относительно всех остальных
Да, по сути у нас O(n^2) довольно тяжелых вычислений. Альтернатива
1. Затащить Барнеса-Хута, но там надо считать дерево на видюхе, при этом в худшем и среднем случаях оно все равно будет как и раньше + собственно дерево.
2. Делать несколько проходов и, например, сохранять расстояния, чтобы не пересчитывать каждый раз. И оно могло бы выстрелить, если б не уперлось в работу с памятью, которая на нынешних видюхах медленнее, чем арифметика.
Еще момент: для симуляции высоких скоростей пришлось масштабировать время, иначе частицы тупо пролетают сквозь друг друга.
По рендеру все просто: тупо рисуем .point-ы нужного размера. Таким образом, теоретически нет ограничений на размер поля - только на максимальный размер пойнта (256).
Сделано оно максимально тупо.
- Есть два буфера: с одного читаем, в другой пишем, потом меняем местами - пинг-понг то бишь
- На число частиц создаем тредов на видюхе
- В каждом треде считаем данную частицу относительно всех остальных
Да, по сути у нас O(n^2) довольно тяжелых вычислений. Альтернатива
1. Затащить Барнеса-Хута, но там надо считать дерево на видюхе, при этом в худшем и среднем случаях оно все равно будет как и раньше + собственно дерево.
2. Делать несколько проходов и, например, сохранять расстояния, чтобы не пересчитывать каждый раз. И оно могло бы выстрелить, если б не уперлось в работу с памятью, которая на нынешних видюхах медленнее, чем арифметика.
Еще момент: для симуляции высоких скоростей пришлось масштабировать время, иначе частицы тупо пролетают сквозь друг друга.
Туннельный эффект - доказательство, что наш мир - симуляция?
По рендеру все просто: тупо рисуем .point-ы нужного размера. Таким образом, теоретически нет ограничений на размер поля - только на максимальный размер пойнта (256).
💯5
Прогаем с кенгурой
Итак, вторая песочница >>Квантум<< Здесь - про взаимодействие частиц. В интернете оно зовется Particle Life, но у меня немного другие функции - более физические (kmM/r^2). То есть это симуляция почти про задачу трех тел, только тел может быть до 10000. …
Media is too big
VIEW IN TELEGRAM
Чтобы не было скучно и сухо, вот как это выглядит
🔥6
Прогаем с кенгурой
В преддверии релиза физарума расскажу, пожалуй про остальные песочницы. >>Тиамат<< Это первая песочница, про клеточные автоматы. Начиналась на тему потыкать SwiftUI, и симуляция там была тупо как заглушка. Теперь это уже полноценная песочница для экспериментов…
Media is too big
VIEW IN TELEGRAM
ну и про клеточный автоматы тоже сюда же
👍4
Media is too big
VIEW IN TELEGRAM
а завтра, если яблоки апрувнут, релизну физарум - он вот так выглядит
❤7
Пока яблоки делают мне мозг с ревью физарума, вот вам видео, как собрать амебку в шейдере на SDF (такое можно затащить в SwiftUI-ный .colorEffect начиная с iOS17 и будет вам кастомный компонент - выше есть запись с экрана его).
Собираю я ее в KodeLife. Если вам часто приходится писать шейдеры - советую. Отличный инструмент для их прототипирования.
https://youtu.be/za4wfmEnN6o
Собираю я ее в KodeLife. Если вам часто приходится писать шейдеры - советую. Отличный инструмент для их прототипирования.
https://youtu.be/za4wfmEnN6o
YouTube
SDF: Рисуем фантастическую тварь формулами в шейдере
В этом видео применяем знания о Signed Distance Functions (SDF) на практике — создаём процедурную амёбу в KodeLife! Построение формы, покраска, добавление деталей и интерактивности — всё происходит прямо в шейдере, без текстур и моделей.
Основы SDF: h…
Основы SDF: h…
👍8🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
натуральный глитч - тупо рисуем мусор из неинициализированной переменной или даже вот так:
У метала еще есть способ загрузки "фреймбуфера" .dontCare. Когда он не перекрывается новым цветом, там может оказаться что угодно - в основном мусор, но иногда и куски других текстур. То есть можно взять
float4 draw(float v) {
}У метала еще есть способ загрузки "фреймбуфера" .dontCare. Когда он не перекрывается новым цветом, там может оказаться что угодно - в основном мусор, но иногда и куски других текстур. То есть можно взять
loadAction=.dontCare, storeAction=.store и получить текстуру с глитчем натуральным на выходе - даже дроколы дергать не надо и шейдеры писать.👍3
Если вам надо заинтересовать школьников или студентов в полярной системе координат - вот, например, кленовый листочек)))
https://www.desmos.com/calculator/fttpzcif59
https://www.desmos.com/calculator/fttpzcif59
Desmos
Desmos | Graphing Calculator
Explore math with our beautiful, free online graphing calculator. Graph functions, plot points, visualize algebraic equations, add sliders, animate graphs, and more.
❤3
Для тех, кто пишет под мак.
Если передать в параметры запуска
Вдруг кому пригодится
Если передать в параметры запуска
-_NS_4445425547 YES, то вам станет доступно дополнительное дебажное меню, где вы сможете посмотреть и поменять всякое.Вдруг кому пригодится
🔥18
Через пару минут буду ковырять GBStudio - конструктор игр под GameBoy. Пару месяцев назад посоветовали потыкать - никак руки не доходили.
Если делать нечего - подключайтесь
https://www.youtube.com/live/HZyAZeCqKz8
Если делать нечего - подключайтесь
https://www.youtube.com/live/HZyAZeCqKz8
YouTube
GBStudio - конструктор игр под GameBoy. Смотрю, что оно умеет
В этом стриме изучаю GBStudio — визуальный движок/конструктор для создания игр под эмулятор Game Boy! Смотрим, как устроен редактор, что можно сделать без программирования, и пробуем поменять пример игры: создать сцены, добавить акторов, настроить взаимодействие…
👍1
В соседнем канале зашла речь за древности, вспомнил, что у меня есть книженция с 3.5” дискетой. Где-то еще была 5”, но затерялась при переездах.
Кто-то еще помнит, интересно, времена, когда архив разбивали на части, чтобы каждую уместить на дискету?
Кто-то еще помнит, интересно, времена, когда архив разбивали на части, чтобы каждую уместить на дискету?
🤝5👍2👀1