Ray Marching Soft Shadows in 2D (2020)
Метод ray marching мягких теней в 2D использует distance field — изображение, где яркость пикселя отражает расстояние до ближайшей формы (светло-серый — близко, темно-серый — далеко). Для текста на canvas генерируется DF с помощью GPU-библиотеки. От пикселя к источнику света строится луч: на каждом шаге запрашивается расстояние из DF (sceneDist), и луч продвигается ровно на него, гарантируя, что формы не пропусятся (пример: шаг 95 пикселей). Если rayProgress превышает расстояние до света без пересечения (sceneDist <= 0), пиксель освещён (1.0); иначе — в тени (0.0). Для производительности — цикл for вместо while.
Мягкие тени достигаются двумя правилами: 1 — чем ближе луч к форме (минимум sceneDist по шагам), тем темнее; 2 — чем дальше пиксель от точки наибольшего сближения (sceneDist / rayProgress), тем сильнее тень. Возвращается минимум этого коэффициента вместо 1.0/0.0, создавая пенумбру без полной реалистичности, но быстро и красиво. GLSL-код прост: отслеживает min(sceneDist / rayProgress). Демо на WebGL показывает шаги луча.
Комментарии (28)
- Пользователи хвалят плавную интерактивную WebGL-демо, её производительность на мобильных устройствах и крутой эффект мягких теней.
- Предложения: использовать градиент SDF для безопасного шага, добавить физику (прыгающий шар), сравнения с Radiance Cascades и старыми демо.
- Жалобы на шум в узких щелях, полосы и неработающие демо на мобильных; идеи фиксов — блюр и подписи к изображениям.
- Удивление производительностью по сравнению с enterprise-дашбордами; идеи применения для титров, DoF и антиалиасинга.
DOOMscrolling: The Game 🔥 Горячее
Doomscrolling: игра
Скроллинг как единственный способ управления.
Идея
Классический дум-скроллинг → браузерная игра, где всё, что нужно — листать вниз. Никаких стрелок и прыжков.
Попытка №1: провал
9 месяцев назад ни один LLM не смог связать «скролл вниз» с «фон движется вверх». Получилась пародия на игру. Забросил.
GPT-5 и победа
Через пару часов — рабочий прототип.
- Враги: 5 спрайтов, 2 кадра, как у Space Invaders.
- Механика: Galaga, но вертикально. Игрок движется вперёд-назад, монстры «привязаны» к полу.
Кофе-морнинги на каникулах
По часу утром:
- апгрейд оружия каждые 100 убитых;
- огненная стена подталкивает не стоять на месте;
- препятствия: кирпичи, паутина;
- 5 фонов, зелья здоровья, метка личного рекорда, пауза со статой.
Финальный штрих: новости
Появляются мемориальные плиты с заголовками NYT за сегодня. Не влияют на геймплей, только отвлекают.
Игра = самый сложный RSS-ридер в мире.
ИИ всё ещё тупит
Когда LLM не понимает, прерываю диалог и начинаю новый с тем же промптом — срабатывает.
Комментарии (92)
- Пользователи в восторге: человек без навыков кодинга собрал динамичную «дум-скролл»-игру, спросив ChatGPT сгенерировать всё.
- Механика: скроллинг = движение; враги и огонь идут снизу, игроку надо лутать апгрейды и убивать монстров.
- Впечатляет «лаборатория» со слайдерами для настройки спрайтов — пример Steve-Jobs-овского «конструктора калькулятора».
- Критика: нет инерции/чувствительности скролла, на больших экранах играть легче, можно «откатом» обмануть стену огня.
- Баг: одновременная смерть и 100-килл-бонус крашит игру.
- Общий вывод: простая, но свежая идея, показывающая, как LLM-инструменты открывают геймдев даже «не-программистам».
Lazy-brush – smooth drawing with mouse or finger 🔥 Горячее
Lazy Brush — библиотека для рисования плавных линий мышью, пальцем или любым другим указателем.
GitHub | npm | Reddit
Параметры:
- Lazy radius (60 px) — минимальное расстояние, при котором кисть тянется к курсору.
- Friction (0.10) — инерция: 0 — без задержки, 1 — бесконечная.
- Brush radius (13 px) — толщина кисти, не влияет на логику.
Автор: dulnan
Комментарии (67)
- Библиотека Perfect Freehand и её демо drawmote от автора TLDRaw признаны лучшей альтернативой для плавных подписей и рисования.
- Техника «ленивого» курсора с гистерезисом/стабилизатором уже применялась в Wii-играх, Krita, ZBrush, Black & White и других графических пакетах.
- Пользователи отмечают, что визуальный «поводок» между курсором и пальцем делает рисование интуитивным, особенно на мобильных устройствах и при работе мышью.
- Некоторые считают задержку слишком большой и предлагают использовать фильтр Калмана или DynaDraw для меньшего лага.
- Проект вызвал восторг («лучшее бесплатное», «шокирующе хорошо»), но кто-то жалуется на пропадающие линии и невозможность «естественных» штрихов.
Комментарии (115)
There is a lot valid concern on accessibility and abuse this could result in, but it think it's important to see the other side of the argument.There was a really good thread on Twitter a couple of days ago:> In light of recent Figma news, lemme reiterate that of all the goods th