Cіпласпластик: post #503 — TG.ME

Памʼятаєте, я колись розповідав, що Pebble воскрес? Так ось вони там конкурс програм запустили, і я нашвидку (за 16 годин плюс-мінус ще стільки ж) накарлякав прогу.

Починав писати на
🕸, але якось так тяжко пішло, ще й ШІ-шка не допомагала, а радила маячню. Тому перемкнувся на 💻 — і одразу стало легше дихати. Накидав скінченний автомат, декілька візуальних шарів, збереження стану в постійне сховище, вивід з фонового виконання.

До речі програмувати було значно легше, аніж дизайнити. Лише тільки для іконки, яка показується на годиннику в головному меню, довелося трохи спітніти. Хотів спочатку змусити ШІ-шку згенерувати мені SVG, але вийшло лайно. Тому завантажив її у Figma
💻, перемалював векторний path руками, експортнув — теж не сподобалося через відсутність піксельного вирівнювання. Далі зібрав із сирців Aseprite, завантажив туди експортовану PNG та попіксельно намалював руками.

З анімаціями ще складніше. На Pebble викориcтовується власний векторний формат PDC (фактично прото бінарний опис команд для малювання), який підтримує лише path, circle та precise_path — навіть без кривих! Path від precise path відрізняються типом координат: у першого викориcтовуються uint16, а в другого — fixed point 13.3 (13 бітів на цілу частину та 3 біта на дріб).

Існує якийсь скрипт 11-річної давнини svg2pdc.py на Python 2, але він працює вельми кепсько: підтримує лише SVG Tiny 1.2, до того ж згенеровані анімації були з артефактами. Щоб розібратися, написав парсер PDC на Kaitai Struct
🏗, а також посидів в ImHex. ШІ-шка мені нагенерила переглядач під бравзер. Скрипт урешті викинув — довелося написати власний. Самі анімації зробив у Figma покадрово й екпортнув кожний кадр як SVG. Прогнав скриптом — ніби норм.

При публікації ще виявилося, що екран годинника зʼїдає кропаль пікселів на краях, тому додав відступ і переробив лейаут. Загалом задоволений: SDK доволі простий і прикольний, сішку не люблю, хоча цього разу зайшло норм, емулятор зручний, результат подобається.

Тепер справа за вами! Якщо не западло, підіть накидайте мені лайків
❤️ там — дуже хочеться виграти собі годинник на дурняк 😂
🔥19👍4😁2
April 13, 2026 902 10 3