Releases: Sovero/hf
Release list
v0.9.0
v0.9.0 — Рельеф по глубине: нейросеть прямо в приложении
Высота картинки больше не обязана следовать яркости. Новый источник рельефа строит её по глубине — по тому, что на снимке ближе, а что дальше: лицо выступает из фона, предмет поднимается над столом, независимо от того, светлее он или темнее. Нейросеть вшита в приложение и работает на вашем компьютере: интернет не нужен, картинка никуда не уходит. Если у вас уже есть готовая карта глубины, её можно подставить вместо нейросети. Режим «по яркости» остался режимом по умолчанию и считается ровно так же, как раньше.
🧠 Рельеф по глубине
- Три источника рельефа в блоке «Режим глубины»: яркость картинки (по умолчанию), глубина от нейросети и карта глубины из файла. Цвет каждого филамента — средний цвет картинки внутри своего слоя глубины, поэтому предмет переднего плана получает собственные филаменты, а не смешивается с фоном той же яркости.
- Depth Anything V2 Small (квантованная, 27 МБ) на ONNX Runtime Web, в отдельном потоке: интерфейс не замирает. Первая оценка занимает несколько секунд (около 5 с на тестовой картинке 640×480, включая загрузку модели), потом результат переиспользуется — ползунки, размер и число цветов пересчитываются без повторной оценки.
- Только порядок, не расстояния. Глубина говорит «ближе / дальше»; миллиметры задают основание и максимальная высота. Для картинок, которые нейросеть прочитала наоборот, и для эффекта врезанного изображения есть «Инвертировать глубину». Если на картинке почти нет перепада глубины, рельеф строится по яркости — плоская плита с полосами цвета никому не нужна.
- Контраст, «Детали», сглаживание, дизеринг и слияние близких цветов работают поверх глубинного рельефа так же, как поверх яркостного. Переключатель «светлое / тёмное выше» и режим «по цветам изображения» при глубине неактивны, а режим каталога катушек и глубина взаимоисключают друг друга.
- Если модель не загрузилась, картинка всё равно обрабатывается по яркости, причина видна под переключателем, а повторный выбор после исправления работает.
🗺️ Своя карта глубины
- PNG, 8 или 16 бит — серый, серый с прозрачностью, RGB, RGBA. 16 бит читаются собственным декодером без потерь: плавный градиент печатается плавным склоном, а не террасами (
<canvas>браузера свёл бы его к 8 бит). - По умолчанию светлее — ближе; для обратного соглашения включается инверсия. Полностью прозрачные пиксели остаются на уровне основания при любом направлении глубины, поэтому вырезка с прозрачным фоном печатается без ступеньки вокруг.
- Карта растягивается под картинку (если пропорции разные, приложение скажет), плоский фон остаётся одним слоем, а не режется на полосы. Однотонная карта не используется — рельеф строится по яркости.
- Ограничения: файл до 64 МБ, до 16 мегапикселей (4096×4096), без чересстрочной развёртки; повреждённый или неподдерживаемый файл даёт понятную ошибку и не ломает текущий результат.
- Карту можно получить из любой программы глубины или из Blender; готовый путь через Unique3D описан в README как направление (самим конвейером внутри приложения мы не пользуемся — он требует видеокарту NVIDIA).
💾 Проекты и экспорт
- Источник рельефа и «инвертировать» запоминаются в настройках, в проекте и в шагах отмены/повтора. Старые проекты открываются по яркости, как раньше.
- Карта из файла входит в сохранённый проект — вместе с картинкой, потому что палитра записана в порядке слоёв глубины и имеет смысл только с тем же рельефом. Если при открытии рельеф восстановить не удалось (карта повреждена, модель недоступна), проект открывается по яркости с автоматическими цветами и сообщением — накладывать сохранённые цвета на другой порядок слоёв хуже, чем не накладывать.
Describe.txtи 3MF называют источник рельефа: вместо «светлое выше» пишется «relief from a depth map», а в метаданных 3MF появилисьReliefSourceиInvertDepth.
🔒 Офлайн и лицензии
- Всё считается локально. Модель и рантайм WebAssembly вшиты в приложение, политика безопасности страницы по-прежнему не пускает запросы наружу — это закреплено тестом.
- Лицензии вшитых компонентов лежат в сборке: модель Depth Anything V2 Small — Apache-2.0, ONNX Runtime — MIT; тексты и уведомления о стороннем коде — в
THIRD_PARTY_NOTICES.txtиTHIRD_PARTY_NOTICES_ONNXRUNTIME.txtв корне приложения. Другие размеры модели (Base, Large) выпущены под некоммерческой лицензией и не включены.
⚠️ Что стоит знать при обновлении
- Размер вырос. Из-за вшитой модели и рантайма deploy-пакет
hueforge-web-deploy-v0.9.0.zipвесит около 25 МБ (было доли мегабайта), установщик настольной версии тоже заметно больше; автообновление скачает его целиком. - Крупная карта глубины декодируется в основном потоке: лимит в 16 мегапикселей ограничивает паузу, но на слабом ПК большая карта даст заметную задержку.
- Как проверено. 523 автотеста, плюс прогон в реальном Chromium (production-сборка и dev-сервер) и в Electron под Linux (из каталога и из
app.asar) на настоящей модели; установщик для Windows собирает CI.
Полный changelog: v0.8.9...v0.9.0
v0.8.9
v0.8.9 — Новая иконка приложения и значок вкладки
Иконка перерисована целиком. Вместо плоского рельефа из полос — изометрия: ступенчатая стопка слоёв филамента, где нижняя плита самая широкая и тёмная, а верхняя — светлая площадка. Палитра идёт от сливы через киноварь и янтарь к кремовому, поэтому читается как смена филаментов по высоте, а сама композиция — это ровно то, что делает приложение: картинка, разложенная на слои. Заодно у веб-версии появился свой значок вкладки.
🎨 Иконка
- Слои вместо полос. Знак — ступенчатая пирамида из пяти плит: у каждой своя освещённость (верхняя площадка светлее, левая грань темнее правой) и мягкое затемнение у нижнего края, поэтому границы слоёв видны, а не сливаются в одно пятно. Рисуется по-прежнему программно, без внешних ассетов, и с суперсэмплингом, так что край плитки и рёбра ступеней остаются чистыми на любом размере.
- Для мелких размеров — своя ступень. На 16–20 px плита шириной в пиксель превратилась бы в грязь, поэтому такие иконки рисуются тремя крупными слоями вместо пяти: силуэт тот же, но детали различимы. В
.icoдля Windows по-прежнему лежат все размеры от 16 до 256. - Обновляются ярлык, окно и запись в системе — иконка приходит вместе с версией, отдельно её ставить не нужно.
🌐 Веб-версия
- Свой значок вкладки. В веб-версии появился фавикон — та же иконка в 64 px. Деплой-пакет
hueforge-web-deploy-v0.8.9.zipнесёт его внутри, поэтому вкладка больше не открывается с пустым листом браузера. - Один чертёж на все артефакты.
build/icon.ico(exe и установщик),build/icon.png512 px (Linux-бандлы) иpublic/favicon.png(веб) теперь делает один скрипт из одного описания знака — разойтись между собой они больше не могут.
Полный changelog: v0.8.8...v0.8.9
v0.8.8
v0.8.8 — Проверка канала обновления
Этот выпуск не меняет поведение приложения. Он существует, чтобы проверить автообновление на живом: установленная версия должна сама увидеть его, скачать и поставить на место. Содержательное изменение в дереве одно — абзац в DEPLOY.md о том, что перед ручной сборкой установщика нужно гасить dev-сервер: его файловый watcher держит каталог release/, и electron-builder падает на переименовании win-unpacked.tmp с EPERM (ту же ошибку даёт антивирус, уже на распаковке кэша Electron).
Что проверяется этим выпуском:
- установленная 0.8.7 — обычная установка с записью в системе — видит 0.8.8;
- скачивание идёт её собственным путём, с blockmap-диффом;
- установка выполняется на выходе из приложения, на месте, без запуска установщика вручную;
- после обновления версия приложения и запись в системе соответствуют 0.8.8.
Обновляться на него не обязательно: поведение то же, что в 0.8.7.
Полный changelog: v0.8.7...v0.8.8
v0.8.7
v0.8.7 — Реальные катушки, честные цвета и пологие террасы
0.8.6 довёл сглаживание до рабочего состояния, но по дороге выяснилось, что часть проблем была не в рельефе, а в цвете: тени печатались одним мутным пятном, автоподбор катушек отдавал двум цветам один и тот же филамент, а предпросмотр считал пластик полупрозрачным. Этот релиз разбирается с каждым из этих случаев по отдельности.
✨ Цвета из самой картинки
В панели «Цвета» появился переключатель режима. Привычный «По яркости (HueForge)» оставляет яркость пикселя высотой, а цвета берёт из срезов яркости — это режим совместимости, с ним работает сверка с эталонной моделью. Новый «По цветам изображения» строит палитру median cut по RGB: цвета берутся из самой картинки, поэтому красный закат печатается красным, а не усреднённым коричневым. Внутри каждой цветовой террасы светотень по-прежнему идёт по локальной яркости, поэтому пятно остаётся вылепленным, а не плоским листом. Выбор режима сохраняется вместе с проектом; старые проекты без этого поля читаются как режим по яркости.
🐛 Исправления
- Тени больше не замываются в одно пятно. Стиль рельефа («Глубокий рельеф», контраст 130%, детали 250%) двигал высоты смен филамента вместе с рельефом и сжимал нижнюю полосу до одного слоя — 0.20 мм, тоньше сопла. Такой лист почти прозрачен, и три разных цвета печатались одинаково. Теперь ни один стиль не может сжать полосу ниже сопла плюс один слой запаса, а проверка печатаемости прямо это показывает: вместо «⚠ 0.20 мм (~1 слой)» — «✓ 0.60 мм ≈ 3 слоя».
- τ по умолчанию 0.3 мм вместо 1.2. Предпросмотр печати считал филамент очень прозрачным: миллиметровый лист пропускал четверть того, что под ним, и средние полосы замывались в коричневый. 0.3 мм — типичный непрозрачный PLA. Прозрачные катушки по-прежнему задают своё τ, минимум поля опущен до 0.05 мм.
- Автоподбор катушек больше не отдаёт двум цветам один филамент. В каталоге 498 записей, но всего 36 различных цветов — каждый тон повторён у нескольких брендов и материалов, поэтому подбор по записям выдавал два разных филамента одного цвета: палитра теряла тон, а смена тратилась впустую. Теперь подбор идёт по цветам: записи группируются, цвета кластеризуются с порогом ΔE2000 2.5, и выбранные тона различимы по построению. Раскладка решается точной задачей назначения вместо жадного перебора, веса берутся из доли площади, которую занимает цвет (с нижним порогом, чтобы узкая полоса не осталась вовсе без совпадения), метрика — CIEDE2000, а между одинаковыми цветами выигрывают ваши собственные и недавно использованные филаменты.
- Ступени между цветами стали пологими. В режиме «по цветам изображения» цвет и есть высота, поэтому каждая граница — ступень. Ограничитель крутизны размазывает её в склон шириной в несколько клеток: ни один пиксель не стоит выше соседа больше чем на два слоя, то есть не круче 45° — FDM печатает такой свес без поддержек, а плоские площадки не трогаются вообще.
✨ Интерфейс
- Вечные подписи под контролами убраны — их текст живёт в подсказках элементов: панели печатаемости, эталонной модели, текущего стиля рельефа и ползунков.
- Единый радиус у всех кликабельных контролов: кнопки стилей рельефа, чипы палитры, поля и переключатели раскладки больше не соседствуют «пилюлями» и квадратами.
- Иконка состояния встаёт в строку заголовка панели — у «Проверки печатаемости» она больше не выглядит оторванной от него, а у панели производительности кнопки сброса и подсказки перестали накладываться друг на друга.
- Тур показывает и ползунок сглаживания.
Полный changelog: v0.8.6...v0.8.7
v0.8.6
v0.8.6 — Сглаживание, которое лечит, а не портит
В 0.8.5 появилось сглаживание, и оно показало две крайности: сначала рельеф превращался в «гималаи» из попиксельных пиков, потом — в ровную плиту без глубины, а цветовая картинка теряла детали и расплывалась в блобы. Этот релиз доводит сглаживание до рабочего состояния.
Глубина вернулась. Размытие сжимало диапазон высот, и печать выходила плоской плитой. Теперь после размытия амплитуда восстанавливается по робастным процентилям (2%…98%): крупные формы держат тональный размах картинки, а не отдельные выжившие пиксели (именно min/max возвращал «утёсы»). Ползунок задаёт масштаб форм в высоте, а не глубину: на 80% поверхность гладкая, но купол солнца, башня и склоны читаются.
Детали остались в цвете. Раньше одна сглаженная картинка задавала и границы цветовых полос, и средние цвета палитры — широкое ядро, нужное рельефу, съедало лицо и арбалет в блоб. Теперь эти две роли разведены: границы полос читаются с мягко сглаженного изображения (ядро в одну клетку, потолок не зависит от ползунка), а средние цвета полос — с полностью сглаженного, поэтому заливки остаются чистыми, а формы картинки — целыми.
🐛 Исправления
- Рельеф больше не сплющивается в плиту: глубина крупных форм восстанавливается по процентилям.
- Детали изображения не пропадают при сильном сглаживании: границы полос не зависят от широкого ядра.
- «Сохранённый стиль» в разделе рельефа: описание стиля переехало в подсказку кнопки и снова доступно.
✨ Интерфейс
- Постоянные подписи под ползунками и полями убраны — их текст живёт в подсказках элементов («?» и наведение): количества цветов, дизеринга, сглаживания, слияния ΔE, размеров и текущего стиля рельефа.
- Подсказка сглаживания переписана под фактическое поведение, в подсказку дизеринга добавлено «0 = выкл.».
- Тур теперь показывает и ползунок сглаживания.
Полный changelog: v0.8.5...v0.8.6
v0.8.5
v0.8.5 — Гладкий рельеф и чистые заливки
Главное в этом релизе — переработка того, как фотография превращается в рельеф. Раньше высота повторяла каждый пиксель картинки, и детализированные фотографии печатались «колючими»: мелкая фактура превращалась в миллионы ступенек и пиков, а полутоновые переходы размазывались мутными смесями цветов.
Теперь в пайплайне есть настраиваемое сглаживание (ползунок в секции «Цвета», по умолчанию 30%). Оно работает в двух местах:
- Цвета: изображение чистится от шума до квантования — палитра собирается из чистых заливок, а не из смесей, границы областей остаются резкими (двусторонний фильтр, сохраняющий контуры).
- Рельеф: карта высот сглаживается как крупномасштабная поверхность — «гималаи» исчезают, остаются покатые формы (купол солнца, склоны, террасы), а мелкая деталь печатается цветом, где ей и место.
Чем выше процент, тем более крупные формы остаются в высоте; для детализированных фотографий рекомендуется 50–80%, для плоских графических работ — 0–30%.
Также в релизе:
✨ Новое
- Перемещение цветов: филаменты можно переставлять между позициями печати — перетаскиванием за рукоятку ⠿, стрелками ↑↓ в строке или клавиатурой (Alt+↑/↓, Ctrl+↑/↓). Ctrl+Z отменяет перенос. Alt+клик по стрелке меняет местами только толщины полос, не трогая филаменты.
🐛 Исправления
- Рельеф фотографий больше не превращается в «гималаи» из попиксельных пиков — карта высот приводится к гладкому барельефу (см. сглаживание выше).
📚 Документация
- Спека и план реализации сглаживания (
docs/superpowers/), обновлены счётчики тестов в README.
Полный changelog: v0.8.4...v0.8.5
v0.8.4
Первый стабильный релиз после 0.8.3: в него вошла вся линия 0.8.4-rc.1 — тон рельефа с именованными стилями и подбором по эталону, — плюс документация и ноты релизов на русском. Стабильные установки наконец получают обновление, а сборки RC переезжают на 0.8.4 по semver.
Тон рельефа
- «Контраст» и «Детали» — два ползунка в блоке режима глубины (0–300 % и 20–300 %, где 100 % — тона картинки как есть). Контраст разводит тона от середины к краям (тени глубже, светлые участки выше) или собирает их к середине для мягкого рельефа; «Детали» опускает полутона к основанию, оставляя высокими только светлые участки, или поднимает их.
- Цвета при этом не сдвигаются. Полосы, дизеринг и назначение филаментов считаются до тональной кривой, а сама кривая применяется к высотам и к границам полос одним и тем же отображением. Кривая строго монотонна и закреплена на 0 и 1, поэтому ни один пиксель не выходит из своей цветовой полосы, а диапазон высот используется целиком.
- Строка-итог под ползунками отвечает на вопрос «что выйдет»: основание + рельеф = общая высота, число цветов и высоты, на которых меняется филамент.
Стили рельефа
Именованные стили вместо двух абстрактных процентов — каждый сразу выставляет оба ползунка:
| Стиль | Контраст | Детали | Что делает |
|---|---|---|---|
| Мягко | 60 % | 90 % | тона держатся ближе к середине: склоны плавные, ступеней почти нет |
| Как на фото | 100 % | 100 % | высота повторяет яркость один к одному |
| Глубокий рельеф | 130 % | 250 % | полутона уходят к основанию, светлые участки остаются высокими |
| Графика | 200 % | 100 % | тона расходятся к краям, переходы между цветами резкие |
Стиль — это те же два ползунка, а не отдельный режим: его можно тут же уточнить, и тогда выбор помечается бейджем «Свой». Под ползунками печатается итог текущей настройки.
Свои стили
- Сохранение под именем. Введите название в поле «Название стиля» и нажмите «Сохранить стиль» — чип встанет рядом с готовыми, а имя будет применять настройку. Крестик на чипе удаляет стиль. Пустое имя сохранит стиль как «Мой стиль».
- Без дублей. Настройка, у которой уже есть сохранённый стиль, второй раз не сохраняется — подпись называет существующий стиль.
- Два места хранения. Стили лежат в localStorage (остаются между запусками, независимо от открытого проекта) и в файле проекта (
settings.customTones) — поэтому проект переносит свои стили на другую машину и встаёт в ряд рядом с местными, сохраняя идентификаторы. - Удаление и сохранение не трогают геометрию: меняются только два числа тона, сам рельеф остаётся на экране как есть.
Подбор тона по эталонному STL
Кнопка «Подобрать тон по эталону» сама находит контраст и детализацию: приложение измеряет распределение высот эталона тем же инструментом, которым измеряет свой рельеф, и перебирает параметры в воркере (видно «Замер N из M»). На эталоне HueForge match_Front расхождение распределения высот падает с 33,8 % до 11,7 %, а расходятся уже 5 метрик из 10 вместо 8. Повторное нажатие ничего не портит: текущий тон остаётся вариантом, и если ничто его не улучшило, настройка не меняется.
Установщик и обновление
- Сообщения установщика печатает PowerShell по-русски (
install.bat,start.bat,deploy.bat,deploy-slicer.batостаются ASCII-кодом, тексты — в таблицеupdate.ps1), поэтому cmd.exe больше не спотыкается о кириллицу в командных файлах. - Сообщение об обновлении локализовано в самом приложении: вместо английской строки из основного процесса текст берётся по языку интерфейса.
Документация
- Документация репозитория ведётся на русском: README, DEPLOY, схемы в
docs/, описания релизов на GitHub иCHANGELOG.md, который собирается из этих описаний. - Ноты релизов теперь живут в репозитории — CHANGELOG.md повторяет все релизы с датой и каналом, а релизы без своих нот получают разделы, собранные из коммитов между тегами: по типам (
feat,fix,ci, …) и со ссылкой на каждый коммит.
Релизный конвейер
- Запись версии попадает в дерево тега. Ноты версии лежат в репозитории (
release-notes/<тег>.md), и CHANGELOG синхронизируется до постановки тега:git show v0.8.4:CHANGELOG.mdуже содержит свою версию, чего не было ни у одного прежнего релиза. npm run release:prepare -- --version X.Y.Zрежет релиз в этом порядке и сам собирает черновик нот из коммитов между тегами, если файла ещё нет; публикация отказывается выпускать тег без записи в CHANGELOG, с непереработанным черновиком или с релизом, чьё тело расходится с нотами в репозитории.
Установка
Скачайте hueforge-desktop-setup-0.8.4.exe и запустите — установщик не требует прав администратора.
Обновление придёт автоматически: приложение смотрит на последний стабильный релиз, и им становится 0.8.4. Установки со стабильного канала впервые с 0.8.3 получают новую версию, сборки RC переезжают на 0.8.4 по semver.
Полный changelog: v0.8.3...v0.8.4
v0.8.4-rc.1
Кандидат к 0.8.4: появляется тон рельефа — два параметра, которые превращают «высоту из яркости» в управляемую печать, — плюс свои стили тона, которые можно сохранить под именем и перенести вместе с проектом.
Тон рельефа
- «Контраст» и «Детали» — два ползунка в блоке режима глубины (0–300 % и 20–300 %, где 100 % — тона картинки как есть). Контраст разводит тона от середины к краям (тени глубже, светлые участки выше) или собирает их к середине для мягкого рельефа; «Детали» опускает полутона к основанию, оставляя высокими только светлые участки, или поднимает их.
- Цвета при этом не сдвигаются. Полосы, дизеринг и назначение филаментов считаются до тональной кривой, а сама кривая применяется к высотам и к границам полос одним и тем же отображением. Кривая строго монотонна и закреплена на 0 и 1, поэтому ни один пиксель не выходит из своей цветовой полосы, а диапазон высот используется целиком.
- Строка-итог под ползунками отвечает на вопрос «что выйдет»: основание + рельеф = общая высота, число цветов и высоты, на которых меняется филамент.
Стили рельефа
Именованные стили вместо двух абстрактных процентов — каждый сразу выставляет оба ползунка:
| Стиль | Контраст | Детали | Что делает |
|---|---|---|---|
| Мягко | 60 % | 90 % | тона держатся ближе к середине: склоны плавные, ступеней почти нет |
| Как на фото | 100 % | 100 % | высота повторяет яркость один к одному |
| Глубокий рельеф | 130 % | 250 % | полутона уходят к основанию, светлые участки остаются высокими |
| Графика | 200 % | 100 % | тона расходятся к краям, переходы между цветами резкие |
Стиль — это те же два ползунка, а не отдельный режим: его можно тут же уточнить, и тогда выбор помечается бейджем «Свой». Под ползунками печатается итог текущей настройки.
Свои стили
- Сохранение под именем. Введите название в поле «Название стиля» и нажмите «Сохранить стиль» — чип встанет рядом с готовыми, а имя будет применять настройку. Крестик на чипе удаляет стиль. Пустое имя сохранит стиль как «Мой стиль».
- Без дублей. Настройка, у которой уже есть сохранённый стиль, второй раз не сохраняется — подпись называет существующий стиль.
- Два места хранения. Стили лежат в localStorage (остаются между запусками, независимо от открытого проекта) и в файле проекта (
settings.customTones) — поэтому проект переносит свои стили на другую машину и встаёт в ряд рядом с местными, сохраняя идентификаторы. - Удаление и сохранение не трогают геометрию: меняются только два числа тона, сам рельеф остаётся на экране как есть.
Подбор тона по эталонному STL
Кнопка «Подобрать тон по эталону» сама находит контраст и детализацию: приложение измеряет распределение высот эталона тем же инструментом, которым измеряет свой рельеф, и перебирает параметры в воркере (видно «Замер N из M»). На эталоне HueForge match_Front расхождение распределения высот падает с 33,8 % до 11,7 %, а расходятся уже 5 метрик из 10 вместо 8. Повторное нажатие ничего не портит: текущий тон остаётся вариантом, и если ничто его не улучшило, настройка не меняется.
Установщик и обновление
- Сообщения установщика печатает PowerShell по-русски (
install.bat,start.bat,deploy.bat,deploy-slicer.batостаются ASCII-кодом, тексты — в таблицеupdate.ps1), поэтому cmd.exe больше не спотыкается о кириллицу в командных файлах. - Сообщение об обновлении локализовано в самом приложении: вместо английской строки из основного процесса текст берётся по языку интерфейса.
Документация
Документация репозитория ведётся на русском: README, DEPLOY, схемы в docs/, ноты релизов на GitHub и CHANGELOG.md, который собирается из этих нот.
Установка
Скачайте hueforge-desktop-setup-0.8.4-rc.1.exe и запустите — установщик не требует прав администратора.
Это pre-release: в стабильный канал он не попадает, установки со стабильного канала продолжают получать 0.8.3, пока не выйдет стабильный 0.8.4. Сборки RC переезжают на 0.8.4 по semver.
Полный changelog: v0.8.3...v0.8.4-rc.1
HueForge v0.8.3
Первый стабильный релиз после 0.8.2: в него вошла вся линия 0.8.3-rc.1 … 0.8.3-rc.4. Установки со стабильного канала наконец получают обновление, а сборки RC переезжают на стабильную версию по semver.
Поверхность печати
- Рельеф строится как высотная карта яркости. Верхняя поверхность — единая сетка с общими вершинами соседних ячеек: разница высот между соседями становится диагональной гранью, а не вертикальной стенкой. Тональный переход печатается непрерывным склоном, и число различимых высот растёт с числом слоёв, а не сводится к нескольким плоским плато.
- Вертикальные стенки — только по внешнему контуру. Боковые стенки спускаются с граничных высот к столу, дно — плоская базовой плита; внутренних стенок нет, поверхность однозначная и печатается одним проходом.
- Рабочее разрешение поднято до 1024 px по большой стороне (было 512): превью печати вдвое резче, дизеринг даёт более плавные переходы.
- Калибровка τ по эталону. Можно подать образец STL (например, вывод оригинального HueForge) и сравнить с нашим рельефом: число уровней высот, шаг сетки и форма поверхности — с таблицей расхождений.
Интерфейс
- Левая панель разбита на вкладки по контексту — вместо одной длинной колонки; на вкладке проверки бейдж с числом загруженных цветов.
- Превью рядом с настраиваемым сплиттером: «друг над другом» и «два рядом», пропорция перетаскивается, двойной клик по разделителю возвращает 50/50; в узких окнах (< 900 px) схемы складываются в колонку.
- Нижний грип растяжения рабочей области: полоса с шевроном под 3D-видом растит область вниз до +1200 px (для высоких печатей); двойной клик — сброс.
- Единый формат шапок и контролов: иконка → заголовок → бейдж → «?», подписи во второй строке, все чекбоксы и радио приведены к одному стилю, кнопки-действия — иконки с подсказками.
- Превью «Исходное» декодируется до 2048 px (без потери деталей), карточки превью всегда одного размера, пустое состояние вместо чёрных прямоугольников, подписи на кубике вида уменьшены, анимация вращения кубика убрана — она заставляла подсветку граней мельтешить.
Автообновление и релизы
- Исправлено автообновление на приватном репозитории: обновления ходят через GitHub API с сохранённым токеном.
- RC больше не попадают в стабильный канал: флаг pre-release для тега с дефисом выставляется автоматически, а публикация кандидата больше не перехватывает метку Latest.
- Сборка переживает EPERM от Defender на переименовании
win-unpacked.tmp— обёртка над electron-builder сама пересобирает в свежий каталог и возвращает артефакты на место. - CI-экшены подняты на Node 24 (без предупреждений об устаревшем рантайме).
Установка
Скачайте hueforge-desktop-setup-0.8.3.exe и запустите — установщик не требует прав администратора. Установленные сборки обновляются сами.
Полный changelog: v0.8.2...v0.8.3
HueForge v0.8.3-rc.4
Интерфейс
- Нижний грип растяжения рабочей области: потяните полосу с шевроном под 3D-видом вниз — рабочая область вырастает до +1200px ниже края экрана (для высоких печатей); двойной клик — сброс. Шеврон подсказывает возможность растяжения и тускнеет после первого использования.
- Детализация печати удвоена: рабочее разрешение поднято с 512 до 1024px по большой стороне — превью печати вдвое резче по каждой оси, дизеринг даёт более плавные тональные переходы, рельеф точнее следует яркости.
- Превью «Исходное» без потери деталей: исходник декодируется до 2048px для превью (печатный расчёт остаётся в сопло-точном разрешении).
- Стабильные карточки превью: области показа всегда одинакового размера (заголовок больше не меняет раскладку при наведении), шапки пары одной высоты, канвы стартуют на одном уровне.
- Пустое состояние: вместо чёрных прямоугольников — локализованные подсказки, пока картинка не загружена.
- Тумблер «Со стороны света / На просвет» — компактные иконки вместо текста (подсказки при наведении).
- Схема раскладки «все в ряд» удалена — остались проверенные «друг над другом» и «два рядом».
Надёжность
- Исправлено направление драга нижнего грипа (база с суффиксом
pxчиталась как NaN). - Исправлено сжатие правой карточки в узких окнах; сплиттер пары ограничен 30–70%.
- В узких окнах (<900px) обе схемы раскладки корректно складываются в колонку.
Полный changelog: v0.8.3-rc.3...v0.8.3-rc.4