Серия «THE ONE CUBE»

10

The One Cube // Трибьют Mighty Nein — Critical Role теперь в кубике

Уже через пару дней новая премьера от Critical Role - The Mighty Nein.
CR - это команда, которая сделала классный анимационный сериал "The Legend of Vox Machina".


Как и в прошлом посте "THE ONE CUBE. Как игральная кость.. Почти =)" идея у нас та же. При тряске меняются картинки и выдаются от их "редкости".

Но за недели работы, переделал код и улучшил показ картинок.

Сейчас работает так:
1) В оперативную память предзагружаюся 20 случайных картинок - это наш барабан.
2) При тряске показываются "рубашки карт".
3) Когда кубик перестали трясти - он крутит барабан и останавливается.
4) В этот момент покоя заменяются в барабане 5 случайных картинок с карты памяти.

Так же сделал, что две боковых грани показывают статичные логотипы.


Возможно кто-то слышал про The One Dice. Судя по тому что он собрал на кикстартере 2000+ предзаказов и около 500 тысяч долларов, людям интересна театральность бросков.

В моем проекте можно загрузить любые картинки (и надеюсь скоро доберусь до анимаций).
Вообще это малая часть возможностей этого кубика. Просто чтобы сделать GTA / DIABLO и подобные эпичные игры, нужно много времени разработки.
А вот такие маленькие шоу можно делать уже сейчас =)


И специально приобрел клевые аксессуары для антуражного фона. Теперь следующие видео будут еще красивее =)


Немного фоточек кубиков с этой съемки.
Забавно, что в своей простоте конструкции, особо не придумаешь каких то ракурсов с ними. Только вот меняя окружение и картинки на кубиках.

Пуговички для Nott =)

Пуговички для Nott =)


И я знаю, как вы не любите нейросетевой арт. Все картинки на кубе сделаны в Nano Banana. Но я считаю, что в данном случае арт оправдан и прекрасно смотрится. Все сценки с персонажем и артефакты получились очень классными и в одном стиле. Когда проект залетит, то уже будет бюджет на именитых настоящих художников для рисования стилистических картинок.


И еще докину несколько тематических комиксов, тоже сделанных через нейросеть. Да, на них не потрачены сотни часов на рисование. Но в них есть идея, композиция и вообще они мне просто нравятся. И они не сделаны в один клик. На них тоже потрачено время и куча неудачных генераций выброшены в ведро.

Вот тут даже ИИ сюжет и реализация. И это прям так забавно получилось.

Вот тут даже ИИ сюжет и реализация. И это прям так забавно получилось.


Предлагайте свои варианты в комментариях, что еще попробовать визуализировать и как использовать такую механику с тряской и случайными картинками.

У меня вот идея (и уже сделаны картинки) для идеи - "Из чего сегодня будем собирать DIY ардуино проект".


P.S. Загрузил этот контент во все соц сети, до которых смог дотянуться =)
Пока что результата немного, но надеюсь алгоритмы поднимут просмотры.
И в любом случае, это всё один большой интересный путь проекта.


И кстати, кому интересно, в моем TG-канале чаще выходят обновления по этому проекту.

https://t.me/andreibesarabchannel

Показать полностью 8
12

The One Cube // Short film. О заявке на alt.ctrl.GDC 2026

Вот и пролетели три месяца с момента, как родилась идея игрового куба.

Ранее про куб здесь были посты:

LED CUBE. Дневник разработки. Август '25

THE ONE CUBE. Дневник разработки. Сентябрь '25

Обычно когда я что-то разрабатываю, я совсем забываю о маркетинге, рекламе и остальном продвижении своих изделий. Потому что я больше творец, чем продажник.
Но сейчас с нейросетями становится проще - если описать продукт и попросить маркетинговый план - получится хотя бы некоторая базовая инструкция куда двигаться, чтобы про изделие узнало больше людей.

Ранее я рассказывал про такую нейросеть:

platform.parallel.ai

Как я понимаю, внутри это очень мощная аналитика (что-то на уровне Google Gemini) + система поиска по всему интернету (perplexity ai на мощных стероидах).
Нейросеть разбивает запрос на смысловые части, ищет актуальную информацию по каждому пункту, и потом составляет практически дипломную работу / исследование (средние ответы от этого ИИ ~ 10-15 страниц текста)

Кстати, рекомендую попробовать этот сервис. Регистрация через почту и несколько запросов бесплатно.

И среди различных маркетинговых советов из отчета, увидел рекомендованные мероприятия для участия.

В списке оказалось большинство зарубежных событий..
И решил попробовать податься куда - нибудь.
Как минимум заявить о себе за рамки России было бы интересно.
И просто удивить зарубежную аудиторию, это тоже очень восхищающая затея. Очень люблю видеть эмоции и обратную связь людей от того что я делаю =)

Сначала написал письмо на Independent Games Festival. Там не поняли мою заявку, но порекомендовали податься на alt.ctrl.GDC 2026. Изучив описание конкурса на сайте, понял, что куб как раз подходит под конкурс (там идея в уникальных игровых консолях / приставках и тд).

Для заявки надо было снять видео, описать концепцию устройства и загрузить дополнительные материалы по желанию. Чтож, как творцу, мне захотелось сделать это красиво =)


Начнем с видео.
Делать простенький контент с демонстрацией кубика на фоне студии точно не хотелось. Таких заявок, я прям уверен, жюри видели сотни. Нужно было что-то более оригинальное.

Пришла идея показать само окружение, где куб был сделан. Изначальный сценарий был этакой советской отсылкой про разработку куба в гараже с ретро тачками (но это требовало много времени, сил, договоренностей и тд).

Поэтому решено было сделать всё своими силами. То есть показать небольшую экскурсию по городу на велике + сборку куба + демонстрацию текущих игр. Возможно, для тех кто живет в России все эти начальные кадры не новы. Но вот для жюри из США, мне кажется это будет неожиданная заявка.

И "вишенкой на торте" монтажа ролика оказалась музыка. Получилось в Suno сделать идеально подходящую мелодию под настроение видео (очень надеюсь вы смотрели видео с включенным звуком).

P.S. и кстати, в ролике не просто так показано несколько устройств и фраза про 2 месяца. Как я понимаю, в конкурсе очень ценятся устройства сделанные с нуля, причем серийность должна добавить удивления от заявки =)


Кроме видео, в котором и так многое понятно, добавил десяток разных фотографий с кубом:


Фоточки это хорошо, арт видео это тоже классно.

Но игры про змейку и тряску показаны слишком скомканно в основном ролике.
Докинул в заявку полные видео, которые сюда уже постил:

THE ONE CUBE. Как игральная кость.. Почти =)

LED CUBE. Первая игра - 6D змейка


Концепция устройства по прежнему остается той же - это тактильная компактная игровая консоль.

Для жюри составил вот такой текст:

Альтернативность The One Cube заключается в полном отказе от традиционных способов ввода. В нём нет кнопок, нет джойстиков — только шесть экранов и гироскоп. Это создаёт уникальную физическую и непосредственную связь с игровым миром. Ощущения особенные, потому что вы не просто управляете персонажем, а держите в руках и буквально манипулируете целым игровым миром.

Простейшая демонстрация — это «6D Змейка»: вы не нажимаете «вправо», а физически наклоняете саму реальность.

Эта простая, интуитивная механика — основа для нового класса тактильных игр, и она открывает целое пространство для геймдизайна: от Diablo-подобных RPG с видом сверху, где вы ведете героя, наклоняя мир; до игр, где физическое встряхивание становится вашим броском кубиков; и головоломок, где вы переливаете симулированную жидкость между гранями.

Видение простирается и дальше: тамагочи нового поколения, живущий на всех шести экранах, кооперативные головоломки, основанные на синхронизации положения в пространстве, и даже превращение куба в универсальный Bluetooth-контроллер для ПК, который может стать чем угодно: от штурвала самолёта до магического меча.

Надеюсь им понравится =)


И напоследок, как в меме, надо сверху еще посыпать специями =)
В одном из пунктов заявки была задача схематично показать, как будет выглядеть стенд на выставке.. Раз уж работаем с нейросетями, то идем до конца. И теперь в заявке красуется не простая схема, а визуализация стенда =)))


Зачем я всё это здесь пишу..

Во - первых, хочется показать сам ролик, над которым старался. И сам проект в сумме конечно же.
Во - вторых, возможно кого-то вдохновить на креатив или хотя бы на использование нейросетей в своей жизни.
И в третьих, этот пост же тоже маленький маркетинг =)


Спасибо что дочитали до конца =)

Подписывайтесь мой тг канал, там пишу не только о кубике:

https://t.me/andreibesarabchannel

Показать полностью 15
14

THE ONE CUBE. Как игральная кость.. Почти =)

Советую смотреть видео со звуком =)

Первое, что обычно слышу, когда показываю этот кубик и говорю что его можно использовать в настольных играх - "а можно его бросать, чтобы он показывал цифры?"

И теперь кубик может показывать не просто цифры, а любые картинки с карточки памяти. Но бросать его не надо. Достаточно потрясти и поставить на стол (можно даже просто неподвижно подержать в руках после тряски).

Поскольку на гранях кубика классные экранчики с большим количеством пикселей, хотелось показать какой-то крутой контент. Сначала экспериментировал с Heroes of Might and Magic III.

Но посмотрев очередное видео от ребят из "Viva La Dirt League", у меня появилась идея сделать картинки с их DnD персонажами. Кстати здесь есть их фанаты?


То, что вы видите на видео, это не полностью реализованная концепция. Сейчас получается в каждом отдельном кубе изображения одного героя (для каждого персонажа и локаций сделано около 50-60 картинок). В текущей реализации при тряске куба выдаются разные картинки по редкости. Самые эпичные появляются не так часто.

Чуть позже планирую дописать прошивку, чтобы можно было выбирать при броске из нескольких персонажей.


Всё больше и больше работая с нейросетями, меня каждый раз поражают возможности технологий. Сейчас их использовал для создания картинок с персонажами.

Получилось сделать так, что почти на всей сетке кадров показывается одинаковый персонаж, но в разных локациях и с разным случайным действием.

Начнем с VLDL:

VLDL Барадун

VLDL Барадун

VLDL Боджер

VLDL Боджер

Также получилось сделать чтобы сетка отображала целую историю с персонажем (получается грани куба могут показать цельный сюжет):

VLDL Боджер

VLDL Боджер

Теперь перейдем к Heroes of Might and Magic III. Кроме просто персонажа в разных локациях, потом попросил нейросеть сделать абсурдные и мемные моменты. И это получилось с переменным успехом:

Герои 3. Арбалетчик. Да, я знаю, что на груди у него другой знак должен быть. Но для теста пойдет и так =)

Герои 3. Арбалетчик. Да, я знаю, что на груди у него другой знак должен быть. Но для теста пойдет и так =)

Вот здесь как раз попросил мемные моменты с арбалетчиком. Четко сидит =)))

Вот здесь как раз попросил мемные моменты с арбалетчиком. Четко сидит =)))

Вот с ангелом вышло прям шикарно. Еще и с подписями под ситуации.

Вот с ангелом вышло прям шикарно. Еще и с подписями под ситуации.

И когда неожиданно нейросеть выдала кривую раскадровку, больше похожую на комикс, появилась идея попросить именно страницу комикса. И вот что получилось:

Всё тот же Боджер, сцена конфискации кузни

Всё тот же Боджер, сцена конфискации кузни

И еще один момент с Боджером, вычитал в инете, что в игре был момент с казино.

И еще один момент с Боджером, вычитал в инете, что в игре был момент с казино.

Да, возможно комиксы выглядят не настолько идеальными, можно увидеть косяки и неточности, но результат меня всё равно впечатляет.

Получается, как вариант, в будущем можно сделать полноценную игру на кубик, где после броска на редкую сценку, к ней прилагалась страница комикса, которую можно скачать с куба по USB-C или WI-FI.


Предлагайте свои варианты в комментариях, каких персонажей можно было бы попробовать визуализировать и как использовать такую механику с тряской и случайными картинками.

У меня вот идея, например, карты таро / предсказания или что-то подобное.


И кстати, кому интересно, в моем TG-канале обновления по проекту выходят чаще

https://t.me/andreibesarabchannel

Показать полностью 8
90

THE ONE CUBE. Дневник разработки. Сентябрь '25

Коротко - как месяц работал над прошивкой ядра куба, сделал первую игру, неожиданно хайпанул на Пикабу, бился с ИИ и открыл для себя нейросеть - Кракена.

Куб среди кубиков =)

Куб среди кубиков =)

В августе собрал прототип с проводками и разными техническими сложностями. В сентябре пришло время сделать что-то действительно играбельное. Спойлер: получилось, но с приключениями и очередной порцией борьбы с ИИ.


Первые шаги: борьба с экранами и производительностью

1 сентября — у кого день знаний, а у кого день куба =)

В августе был колхоз с проводками, и здесь он продолжается. Но теперь более аккуратный. И придется паять не 5, а 6 проводов, потому что напутал и с подключением второго SPI.

Хотя бы 2 экрана завелись. Правда квадраты бегают медленно.


2 сентября — Не зря в универе учился на прогера. Вспомнил идею распараллеливания задач на ядрах компьютера. История повторяется, но теперь попытка выжать максимум из двух ядер Esp32.

Использовал все известные мне ИИ для кода claude, grok, deepseek. Каждый из них косячит по разному.

Но в итоге получил 17FPS на всех экранах. Выжал почти максимум с рисования — если исходить из 80МГц частоты и полной заливки 240×240px (измерялось время отрисовки каждого кадра в цикле при отправке данных на все экраны).


3 сентября — можно сказать, что в этот день я выдохнул, поняв что все hardware системы работают: карта, дисплеи, датчик, микросхема повербанка, проц. Да, с проводками, но уже работают же =)

Открыл для себя систему задач (FreeRTOS) в микроконтроллере ESP32. За счет внутреннего планировщика и еще пары сотен строк кода удалось вытянуть около 24FPS на всех дисплеях (при этом у нас еще тратится время на создание каждый раз новых буферов 240*240 для экранов).


4 сентября — кроме поста с дневником за предыдущий месяц, понемногу допаивал разъемы. На столе платы для еще 9 кубиков.


Первая сборка

9 сентября — первый куб собран. Ну почти, где-то не сходится и не защелкивается. И вот только думал показать бегущую радугу вместо квадратиков… А она не работает. На одном экране градиент показывается, на других дублируется. Хотя код одинаковый.


10 сентября — технические замеры собранного куба. Вес 180 грамм — ощутимый, как телефон в другом формфакторе. Температура вообще никакая при 2 часах работы. Потребление 330мА из батареи.

Итого: ~5 часов работы при обычном использовании. Первая версия, она такая.

Нашел косяк с градиентами. Мучился с ИИ в поиске бага — оказалось просто порядок байт для отправки на дисплей не тот. Вот такое программирование с нейросетями — поиск одних багов по кругу.

Градиенты работают и бегают. Из-за RGB565 палитра сжатая, но приходится жертвовать красотой ради быстродействия.


11 сентября — первый выход намероприятие с кубом. Радует, что куб притягивает взгляды и многим интересно потрогать это изделие.

Вот такие эффекты показывал людям:


Программное сердце и рождение первой игры

12 сентября — день улетел на разработку главного программного сердца.

Класс управления почти дописал. Не понятно почему простая задача заняла столько времени. Может ИИ тупил, может я оверинжинирил.

Придумал систему абстрактного интерфейса из клетчатых страниц — с ней можно легко прогить интерфейсы игр.


13 сентября — Hello Snake! Первая игра на кубе. После кружочков захотелось сделать что-то сразу прикольное и рабочее. Засиделся до 4 ночи, но оно того стоило.


14 сентября — теперь понял зачем нужно было учили такому количеству математики на ИТ-факультете. Все эти координаты, геометрия и формулы сейчас понадобились. Сделал полную бесшовную модель координат для граней куба и довел змейку до красивого состояния.

Снова посетило чувство успокоения — закончил сложный этап. Можно отдохнуть. А то со своим умением уходить в поток сильно залип. От идеи до рабочего устройства и первой игры прошло всего 1.5 месяца.

Играть навесом через штатив неудобно — смотреть и на поле и на фотик.


Пикабу-хайп

14-15 сентября — Пост на пикабу прям неожиданно залетел. Такого охвата мне ни одна соцсеть не давала.

Огромное спасибо Пикабу за такую поддержку! Это реально мотивирует продолжать разработку и делиться прогрессом.

Радует, что получилось создать проект, который понятен и интересен широкому кругу людей. А не предыдущие световые устройства, где и конкуренция огромная и сложно как-то выделиться.

Кроме ответов на комментарии занимался программированием. Всё таки не зря придумали объектно ориентированное программирование и разбивку задач на небольшие подзадачи. А с нейросетями прям иногда хочется это форсировать, а в итоге получается ерунда.

И еще заставить ИИ нарисовать бесшовные фоны и тайловую графику сложно. Придется как то выкручиваться.


17 сентября — не всегда получается попадать в нужную аудиторию при живых встречах. Когда встречаешься с серьезными людьми на бизнес завтраках, им такие игрушки не интересны.

Планирую использовать куб для настолок, но конечно на фоне обычных игральных костей он смотрится огромным. Но функционала во много раз больше.

Основные платы спаяны. Осталось поставить аксели к главным платам и заняться самым страшным — пайкой проводов.


Рутина, генеративный ИИ и разочарования

18 сентября — на столе будущие 9 кубиков. Когда с кодом не получается, пайка точно пойдет без проблем.

От управления зарядником в этой версии придется отказаться — передача данных работает через раз. Уровень батареи через проц показываться будет, система повербанка работать будет даже без I2C управления.

Идея: анимировать известных персонажей через генеративный ИИ и использовать видосики при “броске” куба. Как в газетах в фильме "Гарри Поттер" небольшие анимации.

А самая интересная идея — персонализированные герои на основе фото. Кем видит себя игрок — магом, воином — такая анимация на кубе.


19 сентября — сложности видео-генераций. Поверил в нейросети и думал что простые задачи по анимированию портретов легко решатся. Ощущение что ИИ заточены делать что-то киношное с движениями камеры.

Спустил кучу токенов на бестолковые генерации. Попробовал все нейросети в агрегаторе. Самый адекватный результат — Seedance, самая дешевая модель. Но ей всё равно хотелось подвигать персонажа.

Думал сэкономить и генерить сразу несколько эмоций — вообще ни в какую. Либо эмоции одинаковые, либо слайдшоу.

Вот несколько примеров, наименее кринжовых.


19 сентября — столкнулся с тем, что нейросети не могут работать с тем материалом, о котором у них инфы мало в базах данных.

Задача была в написании полного класса распознавания жестов от акселя и отделения его от управления экраном. Но почти все нейросети вообще не понимали что от них хотят и терялись в классах. Особенно если им прислать ТЗ и старый код, они возьмут многое из старого кода, а не переработает его на основе задания.

Самое печальное — если писать самому код, то будет еще медленнее чем ругаться с ИИ. Из двух зол меньшее, как говорится.


Кракен, патенты и маркетинг

24 сентября - теперь у куба есть имя и домены.

Теперь:

"The One Cube" / "Тот самый куб"

и три домена

theonecube.ru, theonecube.store, тотсамыйкуб.рф

причем название One Cube вообще свободное. В инете под таким именем только давно закрывшийся сервер майнкрафта.


27 сентября — день Кракена. Всё началось с идеи: а что если написать патент на куб? Чтобы спокойно проектировать и никто бы не сделал такой же по закону.

Врубил все сети:

  1. Perplexity — поиск в инете

  2. Claude Opus глубокий поиск — выдал отчет что вроде всё хорошо

  3. Parallel AI ( https://platform.parallel.ai/play/deep-research) — после его работы назвал КРАКЕНОМ

Кракен не просто ИИ. Это исследователь, сборщик и аналитик огромных массивов актуальных данных.

Он взял мою заявку на патент, разобрал на части и выдал 10+ страничный юридически грамотный разбор. При этом нашел древнющий патент от 2007 года с такой же формулой полезной модели (US 20070247439A1).

С одной стороны грустно — не получу бумажку. С другой — никто не сможет защититься патентом, потому что уже не подходит под НОВИЗНУ.

Конкурируем только по самому устройству — дизайну, удобству, играм.

Потом задал другой запрос: построй маркетинговую стратегию для куба с минимальными вложениями. Кракен выдал много полезной информации. Предложил мероприятия, издания и ресурсы чтобы охватить наиболее релевантную аудиторию.

И вдумайтесь: такие исследования в КРАКЕНЕ стоят 2.4 доллара. А это работа больших маркетинговых агенств. И кстати, советую попробовать. При регистрации на иностранный емейл дают 20 долларов на тесты.


30 сентября — 45 проводочков и серийный колхоз. Теперь проводочки для оставшихся 9 кубов на месте. Не красиво, но работает.


ЧТО ПОЛУЧИЛОСЬ ЗА СЕНТЯБРЬ

✅ Первая полноценная игра — "Змейка 6D" с бесшовной системой координат
✅ Железо доведено до ума — 17-24 FPS на всех экранах, всё стабильно работает
✅ Первые игроки и живая обратная связь — людям интересно и нравится идея
✅ Хайп на Пикабу — 48000 просмотров и 345 плюсов
✅ Измерены характеристики: 180г, ~5ч работы, 17-24 FPS рендер всех экранов
✅ Программное ядро — система управления акселерометром, модульная архитектура
✅ Серийная партия — 10 кубиков в процессе сборки
❌ Проводки (надеюсь в следующей партии больше таких косяков не будет)
❌ Генерация видео через ИИ сложнее ожидаемого
❌ Патент не получится (но никто не защитится тоже)

Открытия:

Железо:

  • Выжал максимум с SPI

  • RGB565 — неизбежный компромисс между качеством и скоростью

  • TASK-система ESP32 творит магию с асинхронностью

  • Управление акселерометром работает независимо от положения в пространстве

ИИ и нейросети:

  • Генеративный ИИ для видео видимо заточен под кино, а не генерацию типовых вещей

  • Для нестандартных задач (например, система управления акселем) ИИ тупит сильно

  • Parallel AI (КРАКЕН) — мощнейший инструмент за 2.4 доллара (может за минуты изучить 5000+ страниц релевантных источников)

P.S. Подписывайтесь на TG-канал, если интересно следить за разработкой куба в реальном времени.

https://t.me/andreibesarabchannel

P.P.S. Еще раз огромное спасибо Пикабу за поддержку поста про змейку! Без вашей реакции мотивация была бы совсем другой. Это реально помогает продолжать 🙏

Показать полностью 18 7
312

LED CUBE. Первая игра - 6D змейка

Всем привет =)

Очень захотелось показать промежуточные результаты по моему проекту.
Спустя пару недель после поста:
LED CUBE. Дневник разработки. Август '25

Сделал для него первую рабочую игру - змейку.


Что получилось:

  • Змейка переползает между всеми 6 гранями куба

  • Управление наклонами через акселерометр - наклоняешь куб, змейка поворачивает

  • Когда доползает до края одной грани, переходит на соседнюю

  • Яблоки разбросаны по всем граням

  • Сетка 16×16 клеток на каждой грани


Эта игровая сессия получилась на 7 минут. Ускорил в 5 раз =)
Когда привыкну к управлению, может смогу с такой скоростью играть

Откормил змейку и заполнил почти все грани)))

LED CUBE. Первая игра - 6D змейка

Проект двигается, так что не за горами и желаемые Диабло и GTA2, квесты, тамагочи и еще много разных идей.

Платформа получилась очень интересная - куб открывает совершенно новые возможности для геймдизайна.


Кстати, в моем TG-канале регулярно обновления по проекту

https://t.me/andreibesarabchannel

Показать полностью 1 1
67

LED CUBE. Дневник разработки. Август '25

Коротко - как я месяц делал игровую платформу в виде куба с нуля (и еще не доделал), побил некоторые рекорды по производительности дисплеев и был не рад исправлять ошибки проводками.

В июле мне предложили сделать светящийся кубик для игр — типа D16, чтобы светилась выпавшая грань. Заказчик испарился, но мысль засела в голове. Подумал — а что если не просто свет, а поставить дисплеи на каждую грань и упростить до D6? И вообще сделать из этого маленькую тактильную игрововую консоль. Такого точно никто не делал. И понеслось…

Первый концепт кубика

Первый концепт кубика

За месяц из простой идеи пока что получился полуготовый куб с проводками, но с рабочими основыми системами. Расскажу как это было — со всеми техническими проблемами и небольшими победами.


Проектирование и осознание масштаба

30 июля — день когда всё началось. Начал прикидывать техническую сторону: ESP32, акселерометр, 6 дисплеев по 240x240 пикселей. В теории выглядит просто — процессор, акселерометр, питание, экраны. На практике оказалось иначе.


31 июля — 1 августа — начало 3D проектирования. Проект зацепил серьёзно. 15 лет назад поступал в универ на программиста, чтобы делать компьютерные игры. И как то не заладилось. И вот через 10 лет выпадает шанс воплотить давнюю мечту.

Одна из первых итераций 3D модели

Одна из первых итераций 3D модели

Обожаю этот ИИ рендер

Обожаю этот ИИ рендер

Первые версии материнской платы для куба

Первые версии материнской платы для куба


Борьба с ограничениями железа

2 августа — первое столкновение с реальностью. Для нормальной картинки нужно хотя бы 25-30 FPS, но по предварительным расчетам упирался то в память, то в скорость передачи данных. Изначально планировал готовый модуль ESP32, но для буфера кадров памяти у него вообще нет.

Вместо линейника на плате появился DC-DC преобразователь и проц переехал на заднюю сторону платы

Вместо линейника на плате появился DC-DC преобразователь и проц переехал на заднюю сторону платы

В итоге полдня переделывал плату, чтобы поставить ESP32-S3 с 8МБ PSRAM - оперативки (наш «огромный» буфер для кадров). Опять по старинке придется припаивать голый проц на плату.. Но зато какая мощь, во всех прошлых проектах такой памяти вообще не было.


3 августа - день, когда спроектировал все платы для заказа на заводе. Небольшой спойлер - наделал всяких ошибок подключения.. Ну хотя бы не критичных, не пришлось выкидывать платы в ведро.

Как выглядит кубик внутри. Только тут не показаны батареи.

Как выглядит кубик внутри. Только тут не показаны батареи.

В тот день открыл для себя возможности ИИ для кодинга и продумывания архитектуры проекта. Конечно, нейросети могут выдавать тысячи строк кода (как мне тогда и выдало).

Но лучше код делать по модулям и разбираться в том, что ИИ наваял. Половина кода может работать вообще не так, как хотелось.

Главное при должном понимании и подходе, ИИ очень помогает и ускоряет разработку ПО.


4 августа — а что если использовать ИИ не только для генерации кода, но и для картинок персонажей? Да запросто))) Для игр уровня железа этого куба, 2D картинки вполне будут работать.

Не самая лучшая идея просить ИИ сгенерить сразу несколько персонажей

Не самая лучшая идея просить ИИ сгенерить сразу несколько персонажей

А вот одного персонажа в определенном стиле и в 2х ракурсах - вообще отлично.

А вот одного персонажа в определенном стиле и в 2х ракурсах - вообще отлично.


Первые тесты и корпус

5 августа — напечатал первый корпус для куба. Рамки вокруг экранов получились большие, но таков путь — железо диктует размеры.

Зато скругленные грани дают приятную тактильность и куб удобно крутить.

Реально очень удобно лежит в руке. Несколько дней с ним ходил, крутил в руках.

Реально очень удобно лежит в руке. Несколько дней с ним ходил, крутил в руках.


7 августа — начал программировать игровую архитектуру. Создание игр оказалось не таким как представлял. На кубик приходится писать вообще всё с нуля — ядро системы, драйверы, игровую логику. Хорошо что в универе учили основам системного программирования.

Еще один ИИ рендер =)

Еще один ИИ рендер =)

Сразу замахнулся на "локомотивные" игры — Diablo, стратегии. Но быстро понял реальность: маленькие экраны требуют переосмысления классических жанров. Disciples может с натяжкой и упрощением получится, а вот Героев 3 портировать скорее всего не получится — слишком много мелких юнитов на экране.


8-9 августа — чисто дни вайб-кодинга. Создать игровые движки с нуля это конечно идея.. Хотя бы нейросети помогают в понимании всех систем. Но по крайней мере основную архитектуру составил. В одиночку бы такое делал не день, а с месяц минимум.

Основная буйная идея - собирать игры как LEGO. Сделать несколько модульных систем, которые будут брать свои данные из специальных json-файлов.

А чтобы не писать вручную технические json-файлы, можно закидывать описание в ИИ, чтобы он подогнал всё под определенный формат.

И кажется, что если такая система будет работать - можно будет собирать игры разных жанров из базовых модулей достаточно быстро и просто.


Небольшое отступление. По образованию я ж айтишник (окончил факультет ПМиК). Нас учили именно программировать ядро систем. То есть все эти внутренние алгоритмы, ассемблер, математика (в один год было 5 разных направлений математики).

Но самое неприятное в программировании ядра - это скука при работе. Не видишь какого-то визуального явного подтверждения (обратной связи) по тому, что прогишь и кажется что занимаешься какими то бесполезными буковками на экране.

С этим я столкнулся в начале разработки прошивки куба. И сразу решил откопать какой нибудь экранчик, чтобы уже видеть хоть какие то картинки при работе.


Тестовый стенд и первые визуальные результаты

12-14 августа — вообще при любой работе стараюсь не изобретать велосипед.

Откопав старенькую плату от фризлайт лампы, подцепил к ней экран. Найдя в инете библиотеку графики EmberGL для ESP32, решил попробовать поработать с готовым решением.

Библиотека как старый жигуль из гаража - запустилась не с первого раза (особенно учитывая что её не обновляли уже 3 года). Пару часов пинания кода с помощью ИИ, и получился первый прямоугольник с градиентом и потом 3D. Там был пример с головой обезьяны на 4000 полигонов. И оно даже работало.. Но это прям максимум для ESP32. И причем без текстурирования.

Красивое 3D, но бесполезное..

Интересное открытие: операции с float выполняются процессором с той же или даже большей скоростью, чем с обычными целыми числами.


15-16 августа — работал над системой загрузки картинок и анимаций.

Идея: генерим картинку с персонажем. Делаем из него видео. Видео разбиваем на кадры, складываем на флешку, потом показываем по очереди.

Разбивка и удаление лишних кадров

Разбивка и удаление лишних кадров

Первый тест анимации на OpenGL как то оказался медленным..


Настоящее железо и первые результаты

17-19 августа — приехали экраны и тот самый проц с памятью.

Решил отойти от EmberGL в сторону простого самописного драйвера. То инициализация не та, то цвета неправильные, то порядок бит в той библиотеке.

Экран завелся не с первого раза. Зато какой прирост производительности новый проц дал с оптимизированным кодом чтения с памяти (+SPI 4line) и работе с PSRAM. Давайте посмотрим на эволюцию производительности нашего козлика из Diablo.

Обычный проц и медленное чтение с карты

Новый проц и быстрое чтение кадров с карты памяти

Реактивый козел))))) Новый проц и показ кадров из PSRAM

По замерам проца, последние видео это 20 и 90FPS соответственно. Убойная производительность конечно. Видел в инете тесты, там такие скорости обновления не выжимали в принципе)))


20-21 августа — раз у нас такой быстрый показ кадров, почему бы не показать что-то более интересное. Как насчет упрощенной физики жидкости и показа кино (только без звука)?

С последним пришлось немного помучаться. Обычный MP4 проц открыть не может, но с последовательностью BMP565 вполне справляется.

В статье пропускаю все технические сложности и работу с программированием. Главное же результат и какие то забавные моменты.

Например, на этапе с кино впустую потратил 4 часа, пытаясь разобраться в ошибке чтения файлов. А оказывается надо было поправить всего одну циферку при инициализации.

Cамое печальное, raw bmp весит прям очень много. На минутный ролик надо около 110мб.

Конечно можно заметить, что кино выглядит немного пиксельным и с провалами в тенях. Но это особенности сжатия исходного RGB888 в RGB565 для экрана. У последнего формата данных меньше градаций цветов + сжатие jpg сразу видно.


Платы, сборка и фиаско

26-29 августа — мне ранее говорили что видимые винты крепления корпуса не очень красиво и занялся этой задачей.

Решено сделать внутрянку куба на несущей раме, чтобы потом всё вставить в корпус и закрыть крышкой.

С первого раза конечно не получилось. Защелки надо печатать боком, чтобы нагрузка была поперек линий печати. Если гнуть по линии спекания слоев, оно просто отламывается.

Мой первый корпус на защелках

Мой первый корпус на защелках

И корпус то это достаточно просто.. Напечатал и пробуй.

А что если читать кино не как bmp, а mjpg. Около дня ковыряния кода, и оно получилось. И главное весит копейки, около 6МБ на минуту, а не 110МБ+. И хитрый трюк - накидывать шум и легкое размытие на кадры, и так получается меньше пиксельности.


30 августа — наконец-то пришли подарки от китайского деда мороза))) Ну то есть новые платы.

Вот такое почти готовое приезжает с Китая. Заводская пайка, все дела =)

Вот такое почти готовое приезжает с Китая. Заводская пайка, все дела =)

На память старый тестовый модуль и новая плата

На память старый тестовый модуль и новая плата

Конечно сразу взялся за пайку проца и разъемов. Замучился конечно из-за двухсторонней пайки..

Главное, что процессор легко прошивается на новой плате, SD-карта работает. Выжал с карты 10 МБ/с вместо 8.3. Это ещё плюс 5-7 FPS для видео.


31 августа — ИНЖЕНЕРНОЕ ФИАСКО. Когда сказал вслух, что "новая разработка — это исправление недочётов" - накаркал проблему.

Колхозный проводной ад

Колхозный проводной ад

Из-за большого количества подключённых пинов к процессору упустил, что надо ещё подключать линии включения экранов. Результат: ПРОВОДКИ, которые я ненавижу. Плата для меня — инженерная картина, где всё должно быть аккуратно. А тут проводки.. Но главное что работает. И всё исправляется хотя бы так, а не заказом новой платы и ожидания в месяц.

И под конец месяца поставил акселерометр, обновил прошивку и оно работает.


ЧТО ПОЛУЧИЛОСЬ ЗА АВГУСТ

  • Основная плата работает (проц, аксель, чтение с карты, дисплей)

  • Проводки вместо красивой разводки

  • Куб в полуразобранном состоянии

  • Игр пока нет, только тесты

  • Заложена основа для будущей программной системы

  • Корпус собирается на защелках

Открытия:

  • ИИ кардинально ускоряет разработку ПО

  • Железо и чужие библиотеки всегда преподносят сюрпризы

  • Проверять разводку плат три раза, а не один

Впереди ещё месяцы работы над прошивкой, играми и отладкой. Но основа заложена: железо работает, производительность неплохая, архитектура более менее продумана.


Предлагайте свои идеи, что хотели бы видеть из игр/приложений в кубике. У меня уже в планах змейка 6D, визуальная алхимия частиц, какие нибудь квесты. Очень хочется сделать мини Diablo / GTA2. И конечно что то простое точно будет - выдать число, или предсказание как magic 8-ball.


Также в далеком будущем есть планы перейти на ESP32-P4. Вот там прям вычислительная машина (для своего размера и потребления энергии). И возможно поставить звук, вибрацию, часы реального времени, экраны побольше..

А этом кубике еще на один проводок планируется пищалка - пассивный зуммер =)

И кстати, в моем TG-канале новые новости о проекте почти каждый день =)

Подписывайтесь, если интересно.

https://t.me/andreibesarabchannel

P.S. изначально была идея с названием NEO CUBE. Но оно занято.

Показать полностью 16 9
Отличная работа, все прочитано!