Show HN: A CSS-Only Terrain Generator 🔥 Горячее
Layoutit Terra - это интерактивный генератор рельефа на CSS, позволяющий создавать разнообразные ландшафты с настраиваемыми параметрами. Инструмент предлагает выбор между типами рельефа (пампы, холмы, горы) и биомами (умеренный, арктический, пустынный), а также контроль над размером мира и покрытием суши. Пользователи могут детально настраивать камеру через параметры вращения, наклона и увеличения, добавляя анимацию к созданным ландшафтам.
Генератор поддерживает экспорт результатов в多种 форматы, включая CSS, высотные карты, VOX, TXT и PNG, что обеспечивает гибкость использования. Функции импорта, отмены/повтора действий, а возможность копировать код для встраивания или открывать его в Codepen упрощают интеграцию в другие проекты. Несмотря на раннюю версию (v0.0.1), Layoutit Terra уже предоставляет мощные возможности для создания детализированных CSS-ландшафтов с минимальными усилиями.
Комментарии (80)
- Пользователи отмечают, что «CSS-only»-демо всё же использует JS для интерактивности, хотя рендеринг ландшафта действительно на 100 % CSS.
- Визуально демо напоминает RCT, SimCity 2000, Populous и другие изометрические «тайкун»-игры, вызывая ностальгию.
- Несколько человек сообщили о проблемах с производительностью: при включённом JS в Firefox 144 и Chrome 131 на Windows 10/11 рендеринг занимает 100-200 мс на обновление кадра, что приводит к просадкам фпс.
- Автор ответил, что в будущих версиях планируется добавить реки и водопады, а также улучшить производительность.
Image Dithering: Eleven Algorithms and Source Code (2012)
Dизеринг изображений — всё ещё актуальная техника, несмотря на современные полноцветные дисплеи. В статье представлены одиннадцать алгоритмов дизеринга, включая известный Floyd-Steinberg, с исходным кодом. Дизеринг применяется для подготовки полноцветных изображений к печати на черно-белых принтерах, уменьшения количества цветов в веб-дизайне для снижения размера файлов, а также конвертации 48-битных RAW-фотографий в 24-битный RGB для редактирования.
Техника работает путем аппроксимации недоступных цветов доступными через смешение и создание узоров. Как показывают примеры, ограничение палитры без дизеринга делает изображение практически неузнаваемым, тогда как с дизерингом сохраняется узнаваемость деталей. Основной концепцией является "распространение ошибки" (error diffusion), при которой ошибка квантования каждого пикселя распределяется на соседние пиксели для более точного представления исходного изображения.
Комментарии (21)
- Обсуждение охватывает как классические алгоритмы дизеринга (Floyd-Steinberg, Bayer, blue-noise), так и их применение в графике, аудио и печати, включая влияние на восприятие цвета и формы.
- Участники обмениваются ссылками на ресурсы (включая готовые текстуры blue-noise и примеры кода), обсуждают практические компромиссы между качеством и производительностью, а также затрагивают нюансы лицензий и этики в контексте использования чужих работ или инструментов.
- Некоторые комментарии поднимают вопрос о том, что современные дисплеи и их субпиксельная структура делают классический дизеринг менее заметным, и обсуждают, какие из методов все еще релевантны.
- Также затрагиваются вопросы о том, как дизеринг влияет на субьективное восприятие цвета и формы, и обсуждается, какие из методов лучше всего сохраняют визуальную структуру изображения.
Intel Announces Inference-Optimized Xe3P Graphics Card with 160GB VRAM
Intel анонсировала новый графический процессор "Crescent Island", оптимизированный для задач искусственного интеллекта. Эта модель, основанная на архитектуре Xe3P, оснащена 160 ГБ памяти LPDDR5X. Она специализирована на эффективное выполнение задач логического вывода (inference) с акцентом на производительность на ватт, что делает её привлекательной для центров обработки данных.
Ключевой особенностью является оптимизация под большие языковые модели (LLM): объёмная память позволяет хранить и обрабатывать модели непосредственно на устройстве, снижая задержки. Система использует воздушное охлаждение, что снижает общую стоимость владения.
Производство начнётся не раньше второй половины 2026 года, что оставляет время для доработки программного обеспечения. В частности, Intel уже работает над улучшением своей открытой программной экосистемы для этого оборудования, включая поддержку в ядре Linux и в пользовательских библиотеках, что может дать преимущество в долгосрочной перспективе по сравнению с конкурентами.
Таким образом, "Crescent Island" представляется как ответ Intel на растущий спрос на энергоэффективные и экономичные решения для ИИ, с акцентом на открытое программное обеспечение и стандартизацию.
Комментарии (99)
- Intel анонсировал 160 ГБ видеопамяти и 2,3 Пфлопс fp16, но цена и сроки появления в продаже остаются неизвестными.
- Пока неясно, будет ли карта доступна для покупки в 2026 году, а цена может оказаться на уровне RTX 5090.
- Вопрос остаётся открытым: будет ли поддержка CUDA/ROCm и какие фреймворки будут работать.
- Поддержка ПО остаётся под вопросом, но Intel утверждает, что у них есть OpenVINO и oneAPI.
- Пока неясно, будет ли карта доступна для покупки в 2026 году, а цена может оказаться на уровне RTX 5090.
Intel Arc Pro B50 GPU Launched at $349 for Compact Workstations 💬 Длинная дискуссия
- Intel Arc Pro B50 — полупрофессиональная видеокарта на базе Battlemage BMG-G21 (16 Xe2-ядер, 16 ГБ GDDR6, 128-бит, 224 ГБ/с, 70 Вт, питание только от слота PCIe 5.0 x8).
- Форм-фактор low-profile, dual-slot, 4×mini-DP — ставится в компактные SFF-станции без дополнительных проводов.
- Целевые задачи: CAD, визуализация, локальный ИИ-инференс до 170 TOPS (INT8); драйверы сертифицированы под профессиональные приложения.
- Цена 349 $, продаётся как в рознице, так и в OEM-системах.
Комментарии (235)
- Arc Pro B50 ≈ 1.5× быстрее RTX A1000, но это лишь догоняющий показатель против 1,5-летней карты.
- 16 ГБ за $350 хвалят, но многие требуют 32–96 ГБ для ИИ/3D; Intel и AMD не делают, Nvidia тоже ограничивает.
- Однослотовая, 70 Вт, 4×DP, SR-IOV и vGPU — плюсы для серверов и виртуализации.
- Поддержка ПО (IPEX, Vulkan, игры) всё ещё сыровата; 8-потоковый лимит кодирования остался.
- Рынок разделился: кто-то хочет «много памяти за разумные деньги», кто-то смеётся, что «играть всё равно нельзя».
Implementing a Foil Sticker Effect 🔥 Горячее
Эффект фольги в Three.js
Создаём шейдер, имитирующий голографическую наклейку: угловая иризация + блёстки.
Иризация
Цвет меняется с углом обзора: отражённый вектор → HSL-оттенок, имитируем тонкоплёночную интерференцию.
Блёстки
Процедурный шум (2D-случайные точки) даёт блестящие частицы, которые мигают при движении камеры.
Реализация
PBR-параметры используются как художественный приём, а не физика.
Вершинный шейдер
uniform float uPeelAmount, uPeelAngle;
varying vec2 vUv; varying vec3 vWorldPos, vNormal; varying float vAOIntensity;
void main() {
vUv = vec2(uv.x, 1.0 - uv.y);
vec3 pos = position, hinge = vec3(0);
vec3 toVertex = pos - hinge;
float peelFactor = (uv.x + uv.y) * 0.5;
float angle = radians(uPeelAngle) * uPeelAmount * peelFactor;
vec3 axis = normalize(vec3(cos(radians(uPeelAngle + 90.)), sin(radians(uPeelAngle + 90.)), 0));
float c = cos(angle), s = sin(angle);
pos = pos * c + cross(axis, pos) * s + axis * dot(axis, pos) * (1.0 - c);
vNormal = normalize(normalMatrix * (normal * c + cross(axis, normal) * s + axis * dot(axis, normal) * (1.0 - c)));
vAOIntensity = peelFactor * uPeelAmount;
vWorldPos = (modelMatrix * vec4(pos, 1.0)).xyz;
gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
}
Фрагментный шейдер
uniform vec3 uBaseColor, uLightDir;
uniform float uMetalness, uRoughness, uFoilScale, uFlakeDensity, uFlakeSize;
varying vec2 vUv; varying vec3 vWorldPos, vNormal; varying float vAOIntensity;
float hash(vec2 p) { return fract(sin(dot(p, vec2(12.9898, 78.233))) * 43758.5453); }
vec3 hueShift(vec3 c, float h) { return c * cos(h) + vec3(-.14861, 1.78277, -.29227) * sin(h); }
void main() {
vec3 N = normalize(vNormal), V = normalize(cameraPosition - vWorldPos);
float NdotV = max(dot(N, V), 0.0);
float fresnel = pow(1.0 - NdotV, 4.0);
vec2 uv = vUv * uFoilScale;
float flake = smoothstep(1.0 - uFlakeSize, 1.0, hash(floor(uv * uFlakeDensity)) * hash(floor(uv * uFlakeDensity * 10.0)));
vec3 iridescence = hueShift(uBaseColor, NdotV * 6.28318);
vec3 color = mix(uBaseColor, iridescence, fresnel) + vec3(flake) * uMetalness;
color *= 1.0 - vAOIntensity * 0.5;
gl_FragColor = vec4(color, 1.0);
}
Лицензия
MIT.
Комментарии (45)
- Участники делятся ссылками на похожие шейдер-эффекты: физически корректный металл, голографический «golden ticket» в Threads и Pokémon-CSS.
- Разработчики обсуждают, как встроить разнообразные фольг-эффекты MTG-карт в Svelte-приложение без потери производительности.
- Несколько человек вспоминают, что iOS-стикеры и старые мобильные игры уже используют ориентацию телефона для «блеска» 3D-объектов.
- Поднимаются технические детали: шум, воронои, лицензии (CC BY-NC), Shadertoy как песочница.
- Некоторые критикуют перегрузку «блёстками» и опасаются, что ИИ «вымоет» авторство и лицензии.
Making Minecraft Spherical 🔥 Горячее
Blocky Planet — демо на Unity, превращающее кубические воксели Minecraft в полностью разрушаемую сферическую планету из 20+ блоков.
Частые вопросы
- Где играть? Бесплатно на itch.io (Windows + web).
- Зачем? Вдохновился старым демо Jordan Peck и хотел добавить текстуры и масштабное разрушение.
- Будет ли игра? Вряд ли: мало времени, а путь от демо до релиза огромен.
- Сколько времени? ~1 месяц по 15 ч/нед. Пост занял вдвое дольше.
- Стек: Unity 6, C#, Job System + Burst, но без DOTS.
- Код? Пока закрыт — стыдно.
- Текстуры? Нарисованы вручную или скриптами; многие блоки ≈ шум + тонировка.
- Идеи/вопросы? Пишите в реддит-пост.
Делаем сферу
Простой способ — отфильтровать блоки внутри заданного радиуса, но тогда гравитация не совпадает с «верхом» блоков. Нужно:
- Наложить 2D-квадратную сетку на 3D-сферу.
- Сохранять ширину блоков при удалении от центра.
Карта без искажений — миф
Гаусс доказал: без искажений не обойтись. Попытки втиснуть глобус в прямоугольник дают чудовищные искажения у полюсов.
Комментарии (115)
- Автор продемонстрировал работающий «кубический» voxel-мир на сфере, где основной проблемой остаётся вертикальное искажение.
- Комментаторы сравнили проект с Space Engineers, Seed of Andromeda, PlanetSmith, Minetest и другими попытками создать «Minecraft на планете».
- Предложены альтернативы: геодезические сферы, торо-сфера (Eco), шестигранные воксели, HEALPix, S2, а также уменьшение игрока при приближении к ядру.
- Пользователи отметили удовольствие от орбитальной механики и мечтают о гибриде Minecraft + Kerbal Space Program.
Комментарии (75)
- Критики: нестабильность картинки между кадрами, высокие затраты, бессмысленность по сравнению с обычными движками.
- Плюсы: экономия энергии за счёт «запечённого» освещения, возможность менять стиль на лету, потенциал для доступности и бесконечного контента.
- Технические идеи: запуск генерации локально, гибридные схемы «AI + традиционный рендер», маскированный инпейнтинг для стабильности.
- Настроения: от «это просто весёлая демка» до «дистопия в реальном времени», но большинство сходится — пока это скорее интересный эксперимент, чем готовая замена движкам.
Show HN: An ncurses CUDA-based fluid simulation
fluid-sims — коллекция симуляций жидкости от seanwevans.
Репозиторий публичный, доступен без авторизации.
Комментарии (6)
- Пользователи восторженно отреагировали на стиль Jos Stem и 3D-демо.
- @clbrmbr попросил сделать GPU-анимацию всего одной строки.
- @petermcneeley поделился примером realtime-флюида на WebGPU.
- @glouwbug задался вопросом, хватит ли CPU для уравнения Бюргерса.
- @dahart считает, что при низком разрешении и Navier–Stokes спокойно укладывается в CPU.
Unity reintroduces the Runtime Fee through its Industry license
Unity Industry
Превращайте 3D-данные в интерактивные приложения, которые повышают эффективность и достигают бизнес-целей.
- 30-дневный пробный период бесплатно.
- Купить или посмотреть демо.
Преимущества
- Реал-тайм 3D: быстрый вывод продукта, оптимизация ресурсов.
- Принятие решений: пространственные визуализации ускоряют согласование.
- Экономия: меньше дублирования, ниже себестоимость.
- Кроссплатформенность: 20+ платформ — от мобильных до VR.
Возможности
- Импорт CAD/BIM через Unity Asset Transformer Toolkit (70+ форматов).
- Управление активами в Unity Asset Manager (облако).
- Создание и симуляция реалистичных сцен и процессов.
- Развёртывание на AR/VR, веб, десктоп, мобильные устройства.
В составе
- Unity 6: быстрый рендер, AI, мультиплатформа.
- Unity Asset Transformer Toolkit (бывший Pixyz).
- Unity Asset Manager: облачное DAM для 3D-активов.
- Build Automation: CI/CD для сборки и деплоя.
Комментарии (91)
- Unity не возвращала «Runtime Fee» для игр: новая 4 % отчисления касаются только лицензии «Industry» для неигровых продуктов.
- Сообщество критикует Unity за плохую коммуникацию, непрозрачные цены и «contact sales», что выглядит как попытка «выжать» клиентов.
- Многие разработчики уже мигрируют или советуют Godot/Unreal, считая Unity ненадёжным партнёром, способным менять условия в любой момент.
- Некоторые напоминают, что специальные лицензии для неигровых рынков существовали лет 10, но теперь процент берут прямо с выручки.
An interactive guide to SVG paths 🔥 Горячее
SVG <path>: краткий путеводитель
<path> — единственный способ рисовать сложные фигуры и кривые в SVG. Синтаксис пугает, но разобравшись, становится удобным.
Основы
- Атрибут
d— последовательность команд, как «рецепт» для пера. - Каждая команда начинается с буквы и получает координаты как аргументы.
- Предыдущая точка автоматически становится началом следующей команды.
- Используйте пробелы и запятые — читаемость важнее байтов.
Команды
- M x,y — поднять перо и переместиться в точку.
- L x,y — прямая линия до точки.
- C x1 y1, x2 y2, x y — кубическая Безье.
- Q x1 y1, x y — квадратичная Безье.
- A rx ry x-axis-rotation large-arc-flag sweep-flag x y — дуга эллипса.
- Z — замкнуть путь к начальной точке.
Относительные координаты
Буквы в нижнем регистре (m, l, c…) двигают перо относительно текущей позиции, а не от начала координат.
Цепочки кривых
Повторяйте команды, чтобы строить сложные формы без лишних M.
Анимации
Изменяя d через CSS или JS, можно плавно морфить фигуры.
Советы
- Начинайте путь всегда с
M. - Для читаемости группируйте команды построчно.
- Проверяйте результат в интерактивном редакторе.
Комментарии (43)
- Участники обсуждают интуитивные способы задавать эллиптические дуги без булевых флагов, предлагая параметры вроде углов или контрольной точки.
- Хвалят интерактивный гайд по SVG-путям, его наглядность и звуковые эффекты.
- Делятся практическим опытом: динамическая генерация карт в играх, разметка сканов, чтение путей «с нуля».
- Рекомендуют инструменты для редактирования и генерации SVG: GodSVG, Boxy SVG, онлайн-редактор yqnn.
- Отмечают связь SVG с PostScript, Logo и даже коническими сечениями; обсуждают GPU-ускорение для кривых Безье и рендеринг шрифтов.
Blurry rendering of games on Mac 🔥 Горячее 💬 Длинная дискуссия
Проблема
На ноутбуках Mac с «чёлкой» большинство игр по умолчанию выбирают разрешение всего экрана (включая область под чёлкой), хотя рисовать можно только ниже неё. Из-за этого картинка сжимается и размывается. API CGDisplayCopyAllDisplayModes выдаёт смешанный список: полные и фактически доступные 16:10-режимы, но без пометок. Разница в высоте всего 74 px, но её достаточно, чтобы всё выглядело мутно.
Решение
Игрокам: в настройках графики выбирайте 16:10-разрешение.
Разработчикам: фильтруйте список режимов, оставляя только те, что помещаются в safe-area. Пример:
extension NSScreen {
func safeAreaResolutions() -> [CGDisplayMode] {
let w = frame.width - safeAreaInsets.left - safeAreaInsets.right
let h = frame.height - safeAreaInsets.top - safeAreaInsets.bottom
return CGDisplayCopyAllDisplayModes(...)?
.filter { $0.width <= w && $0.height <= h } ?? []
}
}
Какие игры страдают
Практически все, если не задан 16:10 вручную: Shadow of the Tomb Raider, Resident Evil, No Man’s Sky и др.
Что может сделать Apple
- Разделить списки режимов или пометить их флагом.
- Добавить
CGDisplayModeGetUsableBounds. - Сделать 16:10-режим выбором по умолчанию для полноэкранных игр.
Комментарии (280)
- Круглые углы и вырезы экрана вызывают у многих раздражение: вместо идеальной геометрии приходится снова «ломать» картинку ради эстетики.
- Проблема размытого рендеринга в играх на Mac сводится к тому, что игры выбирают «первое» разрешение из списка, не учитывая safe-area и выреза.
- Разработчики жалуются на отсутствие документации и «магическое» поведение macOS, из-за чего каждая игра решает проблему по-своему.
- Часть пользователей считает вырез незаметным, другие вынуждены подключать внешний монитор или отказываться от игр.
- Общий вывод: Apple мало заботится о гейминге на Mac, рынок мал, а документация и инструменты оставляют желать лучшего.