Трудно быть Коротаевым
Статистика🎨 Генеративное искусство, сложные алгоритмы визуализации 🔍 Разбор графики в играх и как это работает, 🎮 Свежие проекты из мира креативного кодинга 😎 Сообщества и конференции о которых стоит знать. Автор: @lekzd
- Последний пост
- 17 янв.
- Последнее чтение
- 03:54
- Постов за неделю
- 0
- Всего постов
- 24
- Тип
- открытый
- Язык
- русский
- Категория
- Искусство
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Польза от генарта Вот кто-то спросит: «а как это может пригодиться?». Мне моя сцена со светом пригодилась уже через 5 минут. Дело в том, что моей дочке надо каждый день завязывать косички, а так у меня врожденное отцовское криволапие, я делаю это минут 10. Для ребенка сидеть так долго неподвижно, это пытка. Решение нашлось быстро: включил ей эти «домики». И вот она уже сидит, тыкает пальцем и говорит «это мама, это папа, а это мы тут на машине едем»
Genuary 15: Create an invisible object where only the shadows can be seen. Пускай объекты будут невидимыми только потому что их цвет будет совпадать с окружением, тогда можно сказать что здесь видны только тени.
Миникарта для 3д-сцены из сплатов Давненько не показывал ничего с работы, это миникарта, где все пространство рендерится точками, а камера это шарик внутри прозрачной трубы, который светит пирамидкой в сторону, куда смотрит пользователь.
Больше шуму для TSL Отвлечемся ненадолго от генваря, я хочу рассказать вам про шумы. Те самые алгоритмы, которые делают графику живой и куда более интересной, как бы сообщая боковому зрению, что это не просто поверхность, а в ней есть детали, материал, неровности. Словно лавка с мелкими фигурками, всегда привлекает внимание больше остальных. Подробнее о том как устроен простой шум можно почитать в The book of shaders. Не так давно в Threejs появился TSL — новый подход к написанию шейдеров, теперь вместо кода на C-подобном языке, просто JS, довольно подробно об этом в прошлом году в своем докладе рассказал Павел Мажуга. А значит теперь надо переписывать все накопленное непосильным трудом на TSL. https://boytchev.github.io/tsl-textures/ —текстуры, шумы https://threejsroadmap.com/blog/10-noise-functions-for-threejs-tsl-shaders — шумы https://www.fragments.supply/techniques — платные и бесплатные статьи и примеры генеративных шейдеров на TSL
Genuary 14: Everything fits perfectly. https://codepen.io/lekzd/pen/azZpOjJ
Genuary-2026/14 Everything fits perfectly - build123d - Python - random pendulum Так как печатать мне нечего и негде (жаба душит 3д принтер купить), то хотя бы тут применю
Genuary 13: Self portrait in Minecraft style https://codepen.io/lekzd/pen/zxBopyY
Ретро-ux искусство https://matoseb.com/scrollbars-scrollbars/
Genuary 12: Boxes only. Пригодились старые наработки, которые никуда не пошли, как раз из кубиков. Хаос дней собирается в таймлайн истории как на Github/Gitlab, затем запечатывается в кубик с цифрами прошедшего 2025 года, как некий итог. Словно наша память о том как прошел год, оставляя на виду лишь немногое из ежедневной рутины.
📎 Как безобидный Math.sqrt(0) чуть не сломал браузеры Каким будет корень из нуля? Ответит даже школьник: 0. Но если задать этот вопрос JIT-компилятору Maglev внутри движка V8, то при определённых обстоятельствах он сначала скажет «ноль», а потом решит сэкономить на проверке безопасности и отдаст злоумышленнику доступ к памяти браузера 🤠 Всем привет, на связи Павел Кузьмин, инженер по информационной безопасности в Яндексе. Я занимаюсь практической безопасностью Яндекс Браузера и проекта Chromium. Сегодня я расскажу про CVE-2025-9864 — уязвимость, которую я нашёл в движке V8. Она проявлялась только при сочетании двух условий: 🔴 После полной сборки мусора (Major GC), которая освобождала память и меняла состояние контекста 🔴 При компиляции функции в Maglev, когда движок переключался на оптимизированное выполнение В таком сценарии Math.sqrt(0) приводил к тому, что узел Float64Sqrt в IR-графе Maglev приобретал тип kHoleyFloat64. Это заставляло преобразовывать результат в HeapNumber (объект в куче), при этом не записав это преобразование в Remembered Sets. Критическая ошибка возникала на следующем шаге. Компилятор видел, что исходно в ячейке хранился Smi, и пропускал write barrier — механизм, который сообщает сборщику мусора о новых ссылках на объекты в куче. Как итог, если после этого сборка мусора запускалась вновь, HeapNumber удалялся как неиспользуемый, но указатель на него оставался активным. Получался классический use-after-free, который открывал путь к read/write-примитивам в куче V8. 🦾 Как починили? Мы изменили тип узла Float64Sqrt с HoleyFloat64 на обычный Float64. Теперь ноль не превращался в HeapNumber, а корректно оставался Smi. Write barrier больше не пропускался, и цепочка разрушилась. Патч уложился в одну строку. ⏩️ А полную статью читайте на Хабре. В ней я рассказываю: 🔴 Как устроена архитектура V8 🔴 Почему write barrier — это не просто «галочка», а жизненно важный механизм 🔴 Как превратить use-after-free в read/write-примитивы и модифицировать объекты в памяти 🔴 Почему даже с такой уязвимостью взломать браузер через песочницу — та ещё задача 💡 Материал будет интересен тем, кто работает с безопасностью V8, компиляторами или просто любит разбирать нетривиальные баги. Подписывайтесь: 💬 @Yandex4Developers
Genuary 11: Quine Программа, которая накидывает свой исходный код в виде физических коробок https://codepen.io/lekzd/pen/qENaQyG
без подписи
Genuary 11:Quine. A Quine is a form of code poetry, it’s a computer program that outputs exactly its own source code. https://codepen.io/freab/full/ByzLxQJ #genuary11 #genuary #genuary2026
Genuary 10: Polar coordinates. 10 генваря, и узор "10 PRINT" в поляных координатах, в прошлом году я писал про историю этого примечательного патерна, почему из-за строки в 38 символов на BASIC написали книгу в 324 страницы. https://codepen.io/lekzd/pen/ByzLOxx
Genuary day 11: Quine. A Quine is a form of code poetry, it’s a computer program that outputs exactly its own source code. #genuary11 #genuary2026 #genuary #p5js
Прога в форме слова Генварь, которая печатает свой код Придумал, как в код добавить любую строку, чтобы она не ломала всё вокруг: q=_=>`q=${`ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА`,q},q()`,q() А значит можно сделать код в форме чего угодно. Чтобы было удобнее, навайбкодил коан-редактор. Вверху код, внизу вывод проги, если совпадают, появляется галочка
Genuary 9: crazy automation, Cellular automata with crazy rules. Раз уж нужен сумашедший алгоритм, то пускай будет клеточный автомат, который превращает Мону Лизу в капибару. https://codepen.io/lekzd/pen/ZYOppBZ
Genuary 8: A City. Create a generative metropolis. В последнее время на работе много занимался перемещениями по пути в 3д пространстве и сглаживанием траектории, потому сделал что-то в этом духе.
Genuary day 9: Crazy automaton. Cellular automata with crazy rules. Этот контент содержит мерцающие огни и узоры, которые могут вызвать эпилептические припадки у людей с фотосенситивной эпилепсией. #genuary9 #genuary2026 #genuary #p5js
Genuary 7: Get inspired by Boolean algebra Показал на видео что вся цветочная поляна это на самом деле 4 кружка, из статьи на Википедии про boolean algebra. https://codepen.io/lekzd/pen/zxBBQqZ