L-система. Создание деревьев. (Python)
HTML-код
- Опубликовано: 27 сен 2024
- В этом ролике пишу код (Python) для генерации деревьев, на основе L-системы.
Также разбор одной из книг про L-системы.
Можно поиграть в браузере:
repl.it/@foo52...
repl.it/@foo52...
Архив:
yadi.sk/d/IDW6...
Книги:
yadi.sk/d/_hDV...
Выражаю благодарность тем, кто поддерживает меня финансами.
Реквизиты для финансовой поддержки можно найти в
/ foo52ru
Да уж! Красивые вы вырастили "цифровые деревья")))
Осталось воспитать цифрового сына(нейросеть)
8:43 эти звуки и растения... мне вспомнилась игра Age of Empires, те миссии которые были в цивилизации Майа.
Осталось теперь добавить эволюцию этих деревьев)
да, да )) так через 10 лет свою вселенную вырастим )
было бы еще прикольно сделать несколько биомов, чтобы в каждой из них были свои климатические условия и наблюдать в какую сторону развиваются растения в каждом биоме :)
Aishuak Sovetov очень интересная идея
@@aishuaksovetov думаю, также можно добавить времена года, которые бы (несильно, но ощутимо) меняли бы условия в биомах. Также можно сделать так, чтобы помимо обычных биомов были бы переходные, которые имеют смешанные черты своих соседей (как основные и переходные климатические пояса).
@@aishuaksovetov на одной карте сразу несколько, или просто как тогда при моделировании эволюции менять условия в которых находится растение при развитии?
9:48 блин, сначала подумал там написано "арех" по русски (типа "орех" с ошибкой) xD
Интереснейшая работа!
С нетерпением ждём новых видео.
Контент становится более красочным, захватывающим, а главное - наукоёмким!
Крайней приятно видеть, как повышабтся качество и сложность каждого нового видео
Опа-на!!)) Ждем альбом))
Смотрю и улыбаюсь. Приятные и полезные видео! А ещё эта песенка в конце... оппа на))
Спасибо за труды. Ролики становятся всё лучше и лучше.
Ооо! Наконец-то! Отличное завершение выходных)
Супер! Наблюдал за реальными деревьями. Более 10 итераций (колен) не видел (рассматривал тополь, клен, ясень, осину, дуб)
Эти системы используются в аллометрии - изучении относительного роста различных организмов или частей организма (изменение пропорция с ростом организма). Это называют гетерохронией развития.
G.T.Herman, G.Rozenberg - Developmental systems and languages, 1975, страницы 1-40.
Почитай про гетерогонию. Блин, слово такое, постоянно забываю его. Законы аллометрического роста сформулировал Гексли (Huxley J. - Problems of relative growth. London, 1932).
Можно, в принципе, пользоваться и термином гетерохронии. Я почему вспомнил? Просто в статье (Г.Н.Поваров - К познанию научно-технического прогресса) автор рассуждает о рассинхронизированности. Да и вообще в ежегоднике "Системные исследования" публиковались статьи о развитии науки. Уже в более поздней статье (В.А.Межжерин - Этюды по теории биологических систем) на фоне предыдущих размышлений автор обобщает эти сведения.
Вообще я лично считаю, что терминология "развитие", "рост", "развитие" в принципе не применима к нематериальным "явлениям" типа культуры, науки и обществу как таковому. Есть только эволюция, в ходе которой повышается или понижается специализация организма. Короче говоря,
Между последовательностью мыслей нет каких-то четких связей, чтобы можно было бы сказать о "развитии мысли" или "развитии концепции". С точки зрения динамических систем. Может понятие аттрактора как какой-то целевой мысли и каскада отображений к этой мысли... Как-то подошло бы. Но каскад не описывает преемственность. Может полисиллогизмы, импликация как-то бы описывала преемственность. Но это не динамическая система, описываемая дифференциальными уравнениями. Потому что не понятно: как в такой системе задать критерий развития в противовес критерию деградации. Проблема в определении того, что есть развитие, а что деградация. Из самой информации нельзя извлечь ценность одних утверждений и вредность других, если это никак не относится к практике. Поэтому в биологии хотя бы понятие специализации возникает. Когда орган как в посадочное место "садится" в среду обитания. И исходя из его существования в этой среде можно понять как и зачем он формировался. С культурой такого не происходит, потому что выдумывать можно что угодно. Единственное - это хорошо что завязали с каннибализмом. Может развитие в том, что стали менее дикими. Хотя это не точно.
Не совсем понятно что такое развитие в социокультурном плане. Что такое развитие общества? Есть конкретные эволюционные механизмы. Часто, применяя определенный инсектицид, получают среди уничтожаемых насекомых расу, к нему устойчивую. Тогда приходится переходить к другому инсектициду и т. д. Таким образом, идет бесконечная борьба с перевесом, пожалуй, на стороне не человека, а его врага (А.А.Малиновский - Теория структур и её место в системном подходе). Интересно как в этом плане действуют анельгезирующие средства на людей. Та же ацетилсалициловая кислота - уже не так популярна, как раньше (и не из-за кератинопластического действия). Приспособление к анальгетикам - вопрос интересный. Частенько говорят об эволюции обезболивающих средств.
Короче это я уже отошёл от темы и ушел в какие-то другие рассуждения. Но полезно поразмышлять о значении понятий "рост" и "развитие" в социокультурном контексте. Многие люди говорят о развитии и росте... Культуры, науки и мысли. Но переход от неправильной мысли к правильной - это не четкая преемственная связь. Предыдущая мысль забывается, уничтожается, а на ее место приходит новая, для которой существование предыдущей и не нужно - она могла возникнуть и без неё, сама по себе. Доказать преемственность нельзя. Потому что в общем случае познание нелинейно.
Крутые звуковые эффекты! Особенно в начале.
Круто жду продолжения, надеюсь скоро
Просто охренительно интересно!!!! Пожалуйста продолжай!!! Очень сложно для моего уровня знаний, но оооочень интересно все что ты делаешь!!! Ты вдохновил заняться изучением и программирования и нейросетей!!
3д деревья будут куда естественнее, думаю если добавить вероятность по которой ветка станет листком досрочно, и потом можно будет считать "вес" кол-во отростков и изгибать (делать дугой) ветку в ту или иную сторону.
Интересно... Но сложно
Опана! Тема мне сильно менее интересна нежели предшествующе, но качество подачи заставило с удовольствием посмотреть весь ролик. Приятно наблюдать не только за ростом деревьев, но и за ростом автора материалов. Такие скучные вещи так увлекательно подать - это мастерство!
Спасибо, очень ждём эволюцию фрактальных деревьев.
Лайк за танцующий цветок со спецэффектами!
Понравилось "Слишком симметрично. Нужно добавить случайностей". И в итоге получилась реальность))))
Большое спасибо за видео! Было очень интересно, насколько я знаю фракталы часто используют для рендеринга локаций в играх: деревья, горы, ...
Хотелось бы увидеть бы еще такого :)
Вот он, один из авторов Матрицы)
Круто, сам точно такое же делал, только другим способом.
каким?
@@isamiwind438 на Lua рекурсивными ветками. Каждая ветка - таблица с детьми и параметрами длины и угла. Толщину менял в момент рисования. Получал точно такие же деревья. С рандомом и без.
Охренеть, взрыв мозга, автор, вы гений!
Отличное видео. Про клетку эмбриона хорошая идея. Я когда прочитал книгу по онтогенезу, сразу подумал - а почему никто не напишет виртуальную клетку, раз многие механизмы развития понятны. Скорее всего это неберучка..
Код на питона не похож чёт совсем) Но видос шикарный, особенно доставил танцующий цветок))) Жду новых видосов, надеюсь с продолжением этого. например эволюцию таких деревьев. Конечно если железо позволит.
Очень круто, красиво и интересно!!!!
Если настанет конец света, спасите автора этого канала. Дайте ему лабораторию с ген материалом и мощный компуктер. Он создаст всё заново.
Перематываю в конец, чтобы сразу услышать "опана!!" ))
Я обожаю процессинг!
Красота какая ну ты солнце
Спасибо за урок)
Although i don't understand a single word you said, but the demo was super cool.
5G - Антенны ? 😆🙋🏼♂️
Спасибо. Интересно
Анимация про то как растёт и танцует "мариванна" имела бы успех
Спасибо за этот прекрасный урок!
Остаётся только ещё немножко углубится в понимание, физико химических процессов, роста и развития клеток живых организмов. После чего можно будет посмотреть процесс роста чего угодно. Подсказка на будущие: Начни использовать векторы, дополнительные константы к примеру такие как "Ф" "F(n)". эти две последовательности цифр взаимосвязаны с жизнью какая она есть...
Интересно, что получится если перенести деревья из Пиксиленга, через эти системы, в Питон. Как будут выглядеть стандартные расчёски-деревья в 3д))
Крутая заставка
2:53 для этого есть
название_словаря.get(ключ, что_хотим_получить_если_такого_ключа_нет)
Можно ещё добавить координату z и будет 3х мерная эволюция деревьев, лес где можно бегать и наблюдать
ещё не думал о алгоритме коллапса функции и его тест в работе генетического алгоритма?
И ничего слово междуузлие не непонятно. Междуузлие - растояние между двумя узлами. Узел, насколько я помню, это угол между побегом и стеблем(почка тоже считается побегом).
И идея делать случайные побеги в центре дерева кажется странной. У деревьев там растут побеги только если ветки обломать. Это обусловлено тем что почти весь свет забирает крона, и листья там будут бесполезны. В 3d это пустое место закроет крона.
Это волшебно, можешь создать, рост денег на счёте?
Вау, мега мощный материал!🔥🔥🔥
Обожаю тебя смотреть
1 из способов сохранить в Python изображение в файл это использовать модуль OpenCV с помощью команды cv2.imwrite("изображение.png", image)
где image - переменная, в которой лежит нужное изображение
Шаман) Вот как надо обучать программированию )
Класс, неожиданно) Поздр с интро
Оп оп оп оп-па
ого! бесплатное видео! ням-ням )
Спасибо большое за труд!
Очень красиво, но совершенно не понятно :(
Пишем на питоне, но не могу сохранить картинку....
...поэтому переходим на Процессинг...
Вероятно мне не понятно т.к. я не видел ваше предыдущее видео...
PS Посмотрел внимательнее ваш код...
1 - почти нет комментариев!
2 - генерация последовательности рисования дерева (как и следовало ожидать) формируется за доли секунды, а вот сама отрисовка происходит оооооочень долго!
3 - есть смысл отказаться от Черепахи (хотя теперь я понимаю, почему этот тормознутый модуль так называется) и самостоятельно рисовать на Canvas! Должно получиться в разы быстрее!!!
Мэн, ты реально крутбл!!!
Опа-на!
Оп оп оп оп!
Очень впечатляет! Автор крут.
Как теперь сделать ветер?
Извините, можете сделать видео про L-системы в 3-х измерениях?
А вдруг наша вселенная - это его проект генерации мира из 3030 года?🤔
а вдруг это не так
наша вселенная на блок-чейне
Круто, а если ещё нейросети прицепить сюда?
Спасибо за отличное видео.
Хмм... цифровые деревья... цифровые животные... цифровая солнечноая система... Мы в конце либо к ИИ придем, либо к созданию матрицы.
Круто
СПАСИБО
Разрешите ли вы сделать 3Д версию, на базе вашей?
Будут ли клеточные автоматы мммм?
На каком языке программирования в пишите эволюцию деревьев и остальные программы?
Это невероятно!
Я так понимаю останется потом только перенести наработки на реальный геном растения, или человека, и программировать его заранее...
Ты гдееее, грустно без тебя
Вопрос: можно это написать на C++ ?
Всем привет!
Пожалуйста, подскажите, почему для программирования l-системы используется python?
Канал однозначно какого-то иллюмината
Красиво, но при анимировании - вылазит расхождение с реальными растениями: у них расстояние между "ветками" на "стволе" - не меняется в процессе роста.
Поэтому картинка, где клоун хочет повеситься привязав верёвку к дереву и поливая его - не про смерть, ведь максимум, что произойдёт с верёвкой - она порвётся от расширяющегося ствола, но никак не поднимется над землёй, как могло-бы показаться, глядя на эту анимацию.
С интересом жду большего количества видео, очень интересные темы затрагиваются.
Как это не меняется? Вы посмотрите на однолетний росток и двух-трех летний. В первый год, допустим появилось ответвление и размеры его 10 см, через год всё дерево подросло, и ответвление стало 12 см и т.п.
@@АлександрАлександрович-п4ц ветка может расти только в ширь и в длину. Бегать по стволу - не может. И ствол работает на те-же принципах, и расширяясь - поглащает ветки. Если ветка растёт медленнее, чем расширяется ствол - ветка становится сучком внутри ствола.
И собственно дерево из земли не вылазит.
Если центр ветки - на высоте метра от земли/центра предыдущей ветки - он там и останется, пока его не сломают/поглотят.
@@DarkErit интересно. Неужели и правда так? А где вы об этом вычитали?
@@АлександрАлександрович-п4ц самостоятельно готовился к сдаче ЕГЭ по биологии. С детства наблюдал за ростом деревьев возле дома.
Всех принципов и нюансов - наизусть не помню(вон какую книжку нужно прочесть и это далеко не всё).
Если очень приближено - ветки растут только вширь, по всей поверхности коры, соответственно передний край таким образом удлиняет ветку, а средние области - утолщают. И в процессе роста, по неким алгоритмам, в определённых местах "коры" - появляются завязи, из них могут образовываться другие ветки, листья, плоды.
шикарно растёт!
Это шедевр но причем тут скобки? Тем более причем википедия? На сколько я понял, это просто набор символов которые проверяются и в зависимости от этого пишется функция.
делай видео все ждут тебя
Гений
Это скорее не деревья а кустарники. У дерева ствол обычно массивный таже сосна намного иначе выглядеть чем сгенерированая.
где можно посмотреть (скачать) книгу?
Красота
Мужик ты крут! 😎👍
Мне завтра в школу, мне спать надо, ну зачем ты выпустил видео ?
Не смотри
@@i7244 не могу
@@cheburek5116 лол, бро
Я тебя понимаю...
Жизааааа
Я так понимаю нам ждать эволюцию L систем? Жизнь с организацией днк таким образом.
Топ. Продолжай)
Ура, мой совет сработал!
можешь так же в 3х измерениях?
А что это за музыка такая прикольная "Оппана"? Киньте ссылку плиз.
я её сам написал, пока это просто заготовка, на полноценный трек не тянет.
@@foo52ru Вы еще и композитор? Какие таланты Вы еще скрываете от нас? ;)
@@igitler 5 лет рукопашный бой преподавал.
@@foo52ru Вы второй человек, с кем мне приходилось общаться, который занимается единоборствами и в то же время занимается программированием. Похоже это тренд. :)
Кому понравился танцующий цветок ставь лайк
13:49 ))
6:23 это же не 40 процентов!
randint(0,10) - 11 вариантов,числа в этом диапозоне,которые не больше четырёх(меньше или равны 4) - 5 вариантов.Получается,что вероятность не прорасти - 45,(45)%
randint(1,10)
Мой лайк 1000ый!!!
я изменил цвет и один параметр вот код
import turtle
from random import randint
turtle.hideturtle()
turtle.tracer(0)
turtle.penup()
turtle.setposition(0,-300)
turtle.left(90)
turtle.pendown()
thick = 16
turtle.pensize(thick)
axiom = "22220"
axmTemp = ""
itr = 12
angl = 16
dl = 10
stc = []
translate={"1":"21",
"0":"1[-20]+20"}
for k in range(itr):
for ch in axiom:
if ch in translate:
axmTemp+=translate[ch]
else:
axmTemp+=ch
axiom = axmTemp
axmTemp = ""
for ch in axiom:
if ch == "+":
turtle.right(angl - randint(-15,15))
elif ch == "-":
turtle.left(angl - randint(-15,15))
elif ch == "2":
if randint(0,10)>4:
turtle.forward(dl)
elif ch == "1":
if randint(0,10)>4:
turtle.forward(dl)
elif ch == "0":
stc.append(turtle.pensize())
turtle.pensize(4)
r = randint(0,10)
if r6:
turtle.pencolor('#72f027')
else:
turtle.pencolor('#f8be21')
turtle.forward(dl-2)
turtle.pensize(stc.pop())
turtle.pencolor('#4f3421')
elif ch == "[":
thick = thick*0.75
turtle.pensize(thick)
stc.append(thick)
stc.append(turtle.xcor())
stc.append(turtle.ycor())
stc.append(turtle.heading())
elif ch == "]":
turtle.penup()
turtle.setheading(stc.pop())
turtle.sety(stc.pop())
turtle.setx(stc.pop())
thick = stc.pop()
turtle.pensize(thick)
turtle.pendown()
turtle.update()
turtle.mainloop()
Так вот кто писал матрицу....
а где фирменная музыка??)
Есть, но очень тих
8:03 45 строка - для выбора случайного цвета лучше использовать random.choice()
Ребят, я давно подписался по рекомендации и так до сих пор не понимаю, что происходит на видео, что это за программа и для чего это нужно?)
ставлю этому видео 9 деревьев из 10-ти
Музыка потерялась?
Thicc🤙
пчм ты забросил? видео?
O_o