Недавно я выкладывал здесь пост про свою текстовую оболочку ZeliconCMDtxt, и многие в комментариях начали смеяться, что 530 строк кода — это слишком мало для операционной системы. Тот проект был лишь маленьким тестом интерфейса.
Пришло время раскрыть карты и показать мой главный проект. Встречайте — Dony OS!
Это масштабная графическая операционная система, над которой я работал. Мой текущий репозиторий на языке C# (.NET Framework) официально перевалил за 550 384 строки кода!
Что вшито в эти полмиллиона строк:
Полноценная архитектура управления процессами и распределения оперативной памяти.
Собственная графическая подсистема с поддержкой квадратных окон и 3D-иконок.
Встроенная хакерская среда разработки Zelicon Code Studio, способная запускать скрипты на Python и чистом Си.
Фирменный движок Anti-Lag System, который силой удерживает лаги на отметке 0% на любом железе (даже на эконом-ноутбуках!).
Накопилось на работе под сотню скриншотов, кусков переписки и пара тяжёлых PDF на 80 страниц каждый. По хорошему - сесть в субботу и разобрать. По нехорошему - закинуть всё это в Claude и пойти пить чай. Решил попробовать второй вариант.
Сразу скажу - вышло чуть лучше, чем я ожидал. Делюсь чем пользовался и как получилось зайти из России в 2026 без ВПЭН и серых карт.
Что вообще такое Claude и зачем он мне
Claude - это нейросеть от Anthropic, она же конкурент ChatGPT, Gemini и DeepSeek. Сильна в работе с длинными документами и пишет спокойным, не "вылизанным" языком. Когда из условного 50-страничного контракта надо вытащить риски - Claude делает это лучше всего и реже фантазирует (если не нашёл - так и пишет, а не выдумывает).
В 2026 у Claude четыре основных модели:
Haiku 4.5 - быстрая и дешёвая, для рутины (97 токенов/сек). Класс для классификации писем, быстрых ответов в чате поддержки.
Sonnet 4.6 - рабочая лошадка. Дешевле Opus на 40%, быстрее на 17%, а качество - почти как у топа. Подходит для 90% задач. Сам сижу на ней.
Opus 4.7 - топ. Берётся только под действительно сложное: разбор стопки контрактов, тяжёлая аналитика, серьёзная архитектура софта. Дороже и медленнее Sonnet, но и думает глубже (91.3% на GPQA Diamond - это уже уровень спецов).
Claude Code - отдельный режим для кода. Не просто "напиши функцию", а понимает структуру всего проекта. Удобно тем, кто реально пишет в IDE.
Контекст у всех современных моделей - до 1 миллиона токенов в бете. Это примерно 2500 страниц текста за один запрос. То есть можно вкинуть туда базу знаний проекта и общаться с ней.
Способ первый - через бота в Telegram
Самый быстрый вариант. У ребят из Cyber AI прямо в боте есть все актуальные модели Claude - и Opus, и Sonnet, и Haiku, и Code. Платишь рублями, никаких карт банка Казахстана, никакого VPN. Пополнил баланс - и пиши боту что нужно.
В одном боте, кстати, лежат не только Claude, но и ChatGPT-5, Gemini, Grok, Sora 2, Veo, Banana 2, Suno и ещё пачка моделей. Я когда понял, что вместо подписки на каждую отдельно можно держать один баланс - сильно сэкономил.
Способ второй - купить подписку Claude Pro через Озон
Если нужен именно личный аккаунт на claude.ai - со своей историей, проектами, артефактами и подключением Claude Code к IDE - удобнее купить подписку через посредников на Озоне. Цена в 2026 - 3300 рублей за месяц, активируют на твой аккаунт за несколько минут.
Это вариант для тех, кто планирует регулярно работать. По официальной цене Anthropic это 20 долларов в месяц, то есть примерно 1900 рублей плюс комиссия посредника. На Озоне получается +/- то же самое, только без танцев с зарубежными картами.
Что выбрать - бот или подписку:
Иногда поиграться с моделями, попробовать - бот.
Хочется ChatGPT + Claude + видео + музыка в одном месте - бот.
Нужен личный кабинет claude.ai с историей чатов - подписка.
Claude Code в IDE на работе - подписка.
Оплата по факту, без месячных обязательств - бот.
Что я реально гонял через Claude
Разбор PDF на 80 страниц (контракт + допсоглашения). Промпт был такой:
Ты юрист по корпоративному праву. Прочитай документ ниже и выдели: 1) основные обязательства сторон, 2) штрафы и санкции, 3) спорные пункты или формулировки с двойным толкованием, 4) что бы ты лично рекомендовал уточнить до подписания. Опирайся только на текст документа, не выдумывай.
Получил вменяемое резюме за пару минут. Из 12 пунктов, которые он назвал спорными, 9 совпали с тем, что мне потом юрист отметил. Это не "юриста заменить", но черновую вычитку - вполне.
Переписать кривой текст лендинга.
Ты редактор коммерческого сайта. Перепиши текст ниже: [вставил текст]. Сохрани смысл, убери канцелярит и продающие штампы, сделай простой и уверенный тон. Не добавляй фактов, которых нет в исходнике. В конце - что ты исправил и почему.
Не идеально с первого раза, но 90% правок текста закрывает.
Анализ 500+ отзывов с маркетплейса.
Проанализируй отзывы. Раздели жалобы по темам, выдели 5 самых частых проблем, к каждой - примеры цитат из отзывов и предложение решения. Не придумывай, опирайся только на текст.
Дал что-то типа: "доставка - 32%, упаковка - 24%, размерная сетка - 18%, качество ткани - 14%, остальное". С цитатами. Сел и за вечер сделал план улучшений на месяц.
Что не понравилось и как обходить
Claude иногда уходит в "слишком осторожный" режим - начинает обвешивать ответ оговорками "но всё же проверьте у эксперта", "я не могу гарантировать". Лечится прямым указанием в промпте: "Не добавляй дисклеймеров, отвечай по сути".
Ещё периодически переоформляет код по-своему, даже если просил минимальные правки. Поэтому при работе с кодом - сначала просить план, потом маленькие изменения, потом тесты прогонять.
И главное - Claude может ошибаться в цифрах и датах. Так что финальную проверку всё равно делать самому, особенно если это идёт в отчёт или документ.
Что в итоге
Для разбора длинных документов и аккуратной редактуры - Claude сейчас один из лучших вариантов на рынке. Если работаешь много с текстом, кодом и аналитикой - стоит попробовать обе модели (Sonnet под рутину, Opus под тяжёлое) и посмотреть, что зайдёт.
Из России это всё работает в 2026 году двумя способами: либо через бот Cyber AI (быстро, дёшево, в Telegram), либо через подписку Claude Pro с Озона (3300 рублей в месяц, личный аккаунт claude.ai). VPN не нужен ни в одном из вариантов.
Тревожные новости приходят с рынка труда. Марк Цукерберг на недавнем таунхолле рассказал сотрудникам о новом подходе к ресурсам в Meta* (признана экстремистской и запрещена в РФ). Менеджмент компании теперь видит два конкурирующих центра затрат – персонал и вычисления. Формула простая: если вложить больше средств в один центр – на другом придется экономить.
Это видно на практике. Капитальные расходы Meta* на 2026 год практически удвоились – $125-$145 млрд против $72,2 млрд годом ранее. Параллельно с 20 мая компания сокращает около 10% своего штата – 8000 человек.
В похожей ситуации оказался Uber. CEO Дара Хосровшахи признал, что компания израсходовала годовой бюджет на токены за четыре месяца. По факту вычислительные ресурсы становятся еще одной статьей оплаты труда: теперь надо не только платить сотруднику зарплату и компенсации, но и обеспечивать доступ к ИИ. В Uber пока не говорят об увольнениях, но затормозили найм новых сотрудников – чтобы текущим хватило токенов.
И самый пугающий кейс – Oracle. В конце марта 2026 года компания начала волну увольнений сотрудников – и недавно в Time вышло расследование, как это все проходило. Увольняли с цинизмом: в первую очередь под сокращения пошли возрастные (40+) сотрудники, которые работали в компании долго, а значит – дослужились до хорошей зарплаты и компенсационного пакета.
В американском хайтеке распространено Restricted Stock Units (RSU) – обещание выдавать сотруднику акции компании по определенному графику. Расследование Time показало, что Oracle активно сокращала тех, кто должен были получить очередной транш акций в ближайшие 90 дней. В случае с опытными сотрудниками цена сгоревших акций нередко соответствовала годовой зарплате.
Есть оценки, что Oracle сократила 20-30 тысяч из примерно 162 тысяч сотрудников. Официально ИИ не называют причиной увольнений, но в расследовании того же Time есть интересные детали.
Уволенные сотрудники рассказали, что в 2024-25 годах в нескольких отделах Oracle шла программа “улучшения ИИ-инструментов компании”. Участники документировали свои рабочие процессы, записывали видео с объяснением, как принимаются решения, помогали размечать данные компании.
Конечно, о замене на ИИ тогда никто не говорил – речь шла о создании ИИ-инструментов, которые помогут работать эффективнее. Некоторые сотрудники Oracle, возможно, действительно стали работать лучше. А другие – отправились на мороз.
Кстати, в Meta* с недавнего времени тоже запущена программа оценки эффективности сотрудников. Софт записывает движения мышью, клики, команды, которые совершает сотрудник. Думаю, все понимают – зачем.
Что со всем этим делать? Я мог бы забраться на броневичок Tesla Cybertruck и сказать: УЧИТЕ ИИ! Но раз вы читаете меня, то или уже учите – или как минимум задумываетесь.
Рынок труда меняется не первый и не последний раз. Кто-то пострадает, кто-то – выиграет. Мой совет: чтобы оказаться во второй категории, разложите свою работу по задачам.
Задачи, которые легко заменить ИИ: — повторяются — легко описать инструкцией — можно проверить по шаблону — не несут большой цены ошибки
Задачи, где еще долго будет требоваться человек, требуют: — ответственности — доверия — вкуса — умения вести переговоры — знания контекста
Все, что повторяется и легко документируется, будет дешеветь. Что требует суждения и ответственности, будет дорожать. Не потому что ИИ “тупой”, а потому что в реальном мире за ошибки все равно отвечает человек.
Моментально поменять профиль работы нельзя, но реально делать больший акцент на тех задачах, которые попадают во вторую категорию.
Еще момент – не просто используйте ИИ в работе, а фиксируйте результаты. Ускорили обработку заявок, сократили подготовку отчета, научились за минуты делать презентации лучше всех в отделе – не прячьте, а будьте готовы показать и рассказать, как сделали.
И все-таки залезу на Cybertruck – обязательно учитесь работать с ИИ. На “Бусти” я делюсь своим опытом работы с нейронками: от правильного промптинга до ИИ-агентов.
Привет, Пикабу. Мне 23 года и недавно я решил начать учить польский. Я с детства учу английский, владею им на хорошем уровне и знаю, насколько мне тяжело дается учеба. Просто зубрить слова и правила - это не мое, становится скучно моментально и, что самое главное, не запоминается практически ничего. Основываясь на этом опыте, я понимал, что мне нужно погружение в контекст. Так как польский (также как и русский) относятся к славянским языкам и в них довольно много похожих по звучанию и значению слов, я стал сразу пытаться начать читать.
И тут начались первые проблемы. На сайтах, на которых есть тексты, адаптированные для уровня А1-А2 читалка без встроенного переводчика. Импортировать тексты в Apple Books это совсем не то и неудобно. Я начал искать альтернативы.
Приложение, которое мне понравилось по функционалу, - это LingQ. У него есть встроенная библиотека текстов, перевод слов по тапу, карточки и, казалось бы, вот он, идеальный вариант. И это он, если бы не цена в 13 фунтов ежемесячно. На хобби тратить столько денег на подписку я посчитал не целесообразно.
Помимо изучения языков, я увлекаюсь программированием на пайтон и вайбкодингом.
Так и родился LinguaVibe.
Что вообще получилось
LinguaVibe - это Flutter-приложение для чтения иностранных текстов. Сейчас поддерживает 5 языков: польский, испанский, немецкий, французский и английский. Интерфейс - на русском.
Основная фича: ты вставляешь текст (или импортируешь статью по URL), читаешь, и когда встречаешь незнакомое слово - тапаешь на него. Приложение отправляет всё предложение в LLaMA через Groq API и получает перевод с учётом контекста. Не просто «слово → перевод», а полноценный разбор: начальная форма, перевод, грамматика и даже пример предложения.
Вторая по важности фича: ты можешь вставить свой ключ Groq API, который получается совершенно бесплатно и получить практически весь функционал приложения совершенно бесплатно, с условием, что у вас установлено приложение с названием из 3 букв.
После этого сохраняешь слово в словарь, а потом учишь его через встроенные карточки с системой интервального повторения (SRS, метод Лейтнера).
Главное меню приложения
Стек и архитектура
Тут всё просто, без enterprise-булщита:
Фронтенд (мобилка):
- Flutter (Dart) - потому что кроссплатформа и горячая перезагрузка
- Provider - стейт-менеджмент, без Riverpod-магии
- Isar - локальная NoSQL база. Быстрая, асинхронная, и главное - у меня отдельная база на каждый язык (`isar_pl`, `isar_es` и т.д.)
- flutter_tts - озвучка слов. Польский, испанский, немецкий - всё произносит
Бэкенд:
- Node.js + Express - лёгкий сервер на соседнем репозитории
- Docker - контейнеризация, потому что я не хочу настраивать сервер руками в 3 часа ночи
- Caddy - reverse proxy с автоматическими HTTPS-сертификатами. Lets Encrypt сам всё делает, красота
AI:
- Groq API - LLaMA 3.1 8B для быстрых переводов по тапу, LLaMA 3.3 70B для генерации примеров и переводов заголовков. Groq быстрый - ответы за 200-300мс, это важно когда ты тапаешь на слова в тексте
Словарь
Как я это кодил
Буду честен - я вайб-кодил с ИИ-помощниками. Opencode, Cursor, Claude - всё было. Я Python-разработчик, Dart я до этого практически не трогал. Но с ИИ-ассистентами это оказалось не так страшно.
Архитектуру продумал сам: сервисы, репозитории, провайдеры. А детали реализации делал с ИИ. Это реально работает, если ты понимаешь что хочешь получить.
Вот так выглядит перевод по тапу
Грабли, на которые я наступил (и закрыл)
Вот тут самое интересное для технарей. Перед релизом пришлось закрывать несколько серьёзных дыр.
1. APP_SECRET_KEY в коде
Изначально ключ бэкенда был захардкожен в `server_config.dart`. Это ужасно - любой может декомпилировать APK и получить ключ.
Решение: перенёс ключ в `--dart-define=APP_SECRET_KEY` при билде. Ключ хранится в `.env` файле (который в `.gitignore`), а билд-скрипт подставляет его через `dart-define`. В коде - `const String.fromEnvironment('APP_SECRET_KEY')`. При декомпиляции ключ не найти в plaintext.
2. SSRF-атаки в веб-парсере
У меня есть фича импорта текстов по URL. Пользователь вставляет ссылку, приложение парсит статью и вытаскивает текст. Проблема: если пользователь вставит `http://localhost:3000/admin` или `http://169.254.169.254/latest/meta-data/` (AWS metadata)?
Решение: в `WebParserService` добавил валидацию URL:
- Проверяю что схема - только `http` или `https`
- Блокирую localhost, 127.0.0.1
- Блокирую приватные сети (10.x.x.x, 172.16-31.x.x, 192.168.x.x)
- Блокирую AWS/GCP metadata (`169.254.169.254`)
// Блокируем SSRF
if (uri.isLoopback || uri.isPrivate) throw Exception('Blocked');
if (uri.host == '169.254.169.254') throw Exception('Blocked');
3. Накрутка лимитов
У меня freemium-модель: бесплатно 10 переводов в день и 3 импорта URL. Premium - безлимит. Но что если пользователь будет спамить запросы?
Решение: на бэкенде - rate limiting по userId. На клиенте - счётчики в SharedPreferences с ежедневным сбросом. Перед каждым запросом - проверка лимита. Если превышен - кидается `SubscriptionTranslationLimitException` и показывается диалог с предложением купить Premium.
4. Вебхуки ЮКассы и идемпотентность
Для Android-оплаты использую ЮКассу. Бэкенд создаёт платёж, пользователь оплачивает в WebView, ЮКасса шлёт вебхук. Проблема: вебхук может прийти дважды (сеть моргнула, таймаут, retry).
Решение: на бэкенде - идемпотентная обработка вебхуков. Каждый платёж имеет уникальный ID, и если вебхук уже обработан - повторный игнорируется. Плюс проверка HMAC-подписи от ЮКассы, чтобы никто не мог подделать вебхук.
5. WebView для платежей
На Android оплата идёт через WebView с ЮКассой. Нужно было убедиться, что пользователь не уйдёт со страницы оплаты и что deep link сработает корректно.
Решение: `webview_flutter` с `NavigationDelegate`. Разрешаю навигацию только на домены `yookassa.ru` и `yandex.ru`. Ловлю deep link `linguavibe://payment-success` через `onNavigationRequest` и `onUrlChange` - как только редирект на наш scheme, закрываем WebView и обновляем статус Premium.
Самый сок в том, что все эти уязвимости (включая защиту от SSRF в парсере и дыру в WebView) мне подсветил не платный аудит и не Claude, а бесплатный Qwen 3.6 в OpenCode, когда я ради прикола скинул ему структуру проекта и спросил: „Где я тут обосрался?“. Нейронка буквально ткнула меня носом в безопасность, расписала, что у меня не так и предложила фиксы.
Читалка
Что умеет приложение сейчас
Чтение:
- Вставка текста вручную
- Импорт статьи по URL (парсинг с фильтрацией мусора - рекламы, privacy policy и прочего)
- Тап на слово → AI-перевод с контекстом
- TTS-озвучка каждого слова
Словарь:
- Все сохранённые слова с поиском
- Ручное добавление слов (с AI-генерацией перевода и примера)
- Редактирование переводов
Карточки (SRS):
- Метод Лейтнера: 6 коробок с интервалами 5 мин → 4 ч → 1 день → 3 дня → 7 дней → 14 дней
- 3D-анимация переворота карточки
- Настраиваемый лимит слов за сессию (10-100)
- Слова на 5-й коробке считаются освоенными
Настройки:
- Groq API ключ (вставил свой кюч - тогда безлимит)
- Темы: светлая, тёмная, системная
- Стиль плиток: градиент или монохром
- Экспорт/импорт словаря в JSON (Premium)
- Серия дней (streak) - мотивация не бросать
Premium:
- iOS: In-App Purchase, 449 ₽/мес
- Android: ЮКасса, 349 ₽/мес
- Безлимитные переводы и импорты
- Если вставишь свой Groq API ключ - лимиты снимаются и без подписки
Бонус: приложение весит всего 20 МБ в RuStore. Оптимизировал сборку, убрал лишнее, и получилось довольно компактно для Flutter-приложения.
Карточки с интервальным повторением
Где скачать и потестить
На данный момент приложение доступно только в RuStore под Android. В будущем планируется релиз под iOS в AppStore.
На Авито полно квартир за 80, 100 и 180 тысяч в месяц, которые выглядят так, будто их специально фотографировали как можно хуже. Тёмные комнаты, кривые ракурсы, пересветы, ванная как из хоррора — и всё это в объявлениях, где вообще-то пытаются сдать или продать дорогой объект.
Я бесился как человек, который увлекается фотографией. А потом решил починить это image-edit нейронками. Мне 15, и в тот момент я ещё не понимал, что между «прикольной идеей» и «рабочим продуктом» лежат модели, промпты, GPU, серверы, гранты, баги и куча моментов, когда хочется всё бросить.
Видеовизитка: Посмотрите, я существую
Так появилась Yokva — сервис, который должен был превратить час ручной возни с фотками квартиры в одну нормальную кнопку.
Скрин Yokva
Под катом — не история про «смотрите, какой я молодец в 15 лет». Это скорее честный разбор того, как красивая AI-идея постепенно превращалась в (почти) нормальный продукт
❯ Как я вообще пришёл к этой идее через фотографию и одну квартиру
Я увлекаюсь фотографией. Не интерьерной, не коммерческой, а стритом и документалистикой, особенно люблю всячески издеваться над рекламными баннерами.
К недвижимости это сначала вообще не имело отношения. Но в какой-то момент моя тётя Ира попросила меня отснять квартиру под сдачу. Я согласился: и опыт, и немного денег, и просто интересно, как работать в коммерческой съемке.
Как и что получилось:
Как это было
Что получалось
Квартира сдалась недели за две. Мы потом встретились, пообедали, немного порадовали эго и зачем-то открыли Авито. И там было почти всё то же самое, о чем я говорил в начале: темные кадры, кривые ракурсы, ощущение, что хорошие объекты зачем-то продают через плохую картинку.
Контрпример за 100К/мес. Красная комната Линча отдыхает))
И другие контрпримеры:
60К/мес
80К/мес
175К/мес
Поэтому, где-то через неделю, мне захотелось это автоматизировать. Я накидал концепт, продумал интерфейс, купил домен (очень спонтанная трата), начал собирать первую версию Yokva, с ней лендинг — и довольно быстро понял, что строю пока что-то красивое, но очень-очень сырое. Непонятно для кого, непонятно в каком виде и непонятно, что в этом вообще настоящее, кроме моей собственной увлеченности.
Кусочек лендинга
Тогда я сделал то, что надо было сделать сразу: пошёл разговаривать с людьми.
❯ Почему разговор с риелтором оказался полезнее любых догадок
Есть такая полезная книжонка — «Спроси маму» Роба Фицпатрика. Если очень коротко, её идея в том, что не надо спрашивать людей, понравился бы им твой продукт. На такие вопросы почти все всегда врут, даже без умысла. Гораздо полезнее спрашивать, как они уже решают задачу сейчас.
Книжка
Примерно так я и написал тете Ире — что она делает с фотографиями прямо перед публикацией и сколько времени у неё на это уходит.
Из переписки быстро выяснилось главное. Она слегка ретуширует фотографии на телефоне: где-то кадр подрезать, где-то поправить цвет, где-то замазать некрасивую деталь вроде розетки. И на одну квартиру уходит примерно час. Раньше — больше, сейчас — меньше только потому, что рука набилась.
Переписка:
Я: ... На последнем объекте — когда уже всё отсняла, что ты делала с кадрами перед публикацией? Сколько времени ушло?
Ира: Слегка ретуширую. В приложении на телефоне. Где-то кадр подрезать, где-то с цветом поработать, где-то страшную розетку замазать. Но этим никто из обычных людей не занимается — загоняются только те, кто профессионально этим зарабатывает.
Я: А сколько времени занимает?
Ира: Где-то час. Раньше больше. Просто сейчас рука уже набита.
Час на одну квартиру. И это у человека, который давно в теме.
Потом я поговорил еще с тремя людьми: собственницей, которая сдаёт сама, и двумя риэлторами. Картина не совпадала в деталях, но сходилась в главном: хорошие фото нужны всем, ручная возня раздражает всех, а нормального простого решения никто не ждёт — ну просто потому что привыкли)
Теперь у Yokva появилась очень земная цель: сжать час ручной работы в автоматизированную пару минут.
На этом месте у любого нормального человека появляется один и тот же вопрос: если ChatGPT (и подобные) уже отлично пишут нейрослоп текст, редактируют фото и приемлемо выполняют инструкции, то зачем вообще отдельный продукт? Вопрос хороший. И мне не раз пришлось на него нормально ответить самому себе (а теперь и вам!)
❯ Почему ChatGPT здесь не равен продукту
Потому что человеку нужен нормальный результат.
Риелтору или собственнику не хочется по очереди думать, какое фото брать, что на нём править, как не сломать геометрию комнаты, где взять текст, как не платить за подписки и как потом всё это собрать в объявление. Ему хочется загрузить фото и получить вменяемый выход.
Благо от такого мы уже отошли :))
Подтверждаю цель: сделать одну нормальную кнопку. На словах это звучало легко. Дальше начались проблемы.
❯ Как всё начиналось в реализации
Самый первый старт был максимально прагматичным и наивным. У меня не было ни сервера, ни бюджета под это (плюсом я следовал концепту пустого кармана), поэтому я пошёл туда, где можно было собрать демо бесплатно — на родимом Cloudflare Workers (родимый, потому что там куплен домен)
Схема казалась изящной. Пользователь грузит фото, оно падает в простое хранилище R2. Дальше бесплатные AI Workers дёргают LLaMA 4 для анализа кадра, а Flux пытается вытянуть свет и убрать мусор. Затем собирается текст, который вместе с уже обработанной картинкой идет обратно юзеру. Дёшево и сердито. На этом этапе Yokva была простым скриптом, который перекидывал картинку между парой API.
CF AI Neurons
Казалось, что задача почти решена. Я уже готовился все быстренько упаковать и вперед продавать.
А потом я захотел странного. По правде говоря, засмотрелся на aidentika.com
Я подумал: а зачем отдавать риелтору просто ретушированную фотку? Если мы экономим время, давайте выдавать готовый креатив для соцсетей. Фотка квартиры, а поверх неё красивым шрифтом цена, метро, плашки. Риэлтор берёт картинку и сразу постит в условный Telegram.
Задизайнил даже пару макетов, в духе такого:
Пример-1
Пример-2
Для сборки этих макетов я нашёл библиотеку Satori — она умеет брать HTML/CSS и рендерить из этого PNG. Идея была супер. Но именно там моя уютная serverless-идиллия закончилась.
❯ Когда Yokva перестала быть простой
Satori просто не запускался на Cloudflare Worker. Знать бы мне это сразу...
Проблема была в жестких лимитах free tier’а. Генерация макета отнимала больше разрешенного CPU-time (там порог <10 мс), и библиотека тупо не успевала подняться. Картинки не рендерились, всё падало.
Тогда мне пришлось сделать первый манёвр. Раз Cloudflare не тянет, значит можно перенести часть логики на Vercel — там лимиты были мягче. Satori заработал. Я считал это вынужденным костылем, чтобы спасти фичу с макетами.
Вот так это стало выглядеть. ужасно)
Но это не решило главной проблемы.
Пока я возился с рендером картинок, вылезло то, о чём я старался не думать: качество самой ретуши скакало как ненормальное. Исходная связка моделей выдавала то приемлемый результат, то абсолютно пластиковый ужас, с потерей всех деталей. Плюс, пользователи же грузят не по одной фотке, а сразу всю квартиру.
Уже наверно чувствуете? И до меня тоже дошло, что Yokva расползлась. У меня кусок логики тут, рендер там, фотки лежат в третьем месте, модели ведут себя непредсказуемо. Короче, зоопарк! Зоопарк костылей! Который еще и работает только при идеальной погоде.
Чем дольше я это городил, тем меньше Yokva походила на прикольную AI-игрушку.
❯ Как я пересобирал подход и к чему в итоге пришёл
Пришлось признать: если я хочу продукт, а не демо на костылях, придётся всё переписать. Я отказался от распределенной serverless-сборки, экономии-ради-экономии и собрал локальный монолит на Next.js. Нужно было вернуть контроль. Хотя следовало это закладывать изначально by-design))
Проект оброс нормальным бэкендом: появилась база на Postgres, очереди задач на Redis и BullMQ (чтобы ретушь крутилась в фоне) и S3-хранилище для исходников.
Схемка монолита
Сколько фото загрузил — столько анализов стартует одновременно. Как только они готовы, текст и ретушь запускаются параллельно:
Но архитектура — это полбеды. Дальше начался долгий перебор самих моделей.
Акт 1. Текстовые модели: Gemini за 0.001$ и Claude за 3$
Экспериментальным путем выявил простую вещь: генератор текста не должен сам смотреть картинки, а дешевая vision-модель не напишет хороший текст. Делим их!
Gemini 3 Flash Preview — быстрый, дешёвый, умеет смотреть на фото и описывать конкретные проблемы. Анализ одной фотки стоит около 0.001$. Для задачи «скажи, что и где не так, и отдай fix_prompt — шик.
Claude Sonnet 4.6 — отвечает за текст объявления. Я пробовал разное. GPT и Gemini писал слишком пластиково (или мои промпты были таковыми). Упаси боже от Grok — от количества непрошеного мата в объявлении о продаже однушки хотелось плакать. Клод лучше держит тон, не скатывается в риэлторский шаблон и нормально слушается ограничений. Да, он дороже (3/15$ за миллион I/O токенов), но текст — не то место, где хотелось сэкономить. К слову, Haiku оказался слишком молчаливым, а Opus не дал видимой разницы в качестве.
Прайсинг на модели
Обе модели я гоняю через Perplexity Agent API — дергаю что угодно в одном месте и плачу грантовыми кредитами. Я оставил заявку в стандартной форме, и они отсыпали мне грант на 5000$ (об этом поговорим попозже). Кстати, за месяц-два экспериментов я потратил оттуда ровно 76 центов. Это даже не чашка кофе. По непонятной мне причине в их биллинге нет данных об использовании чужих моделей — отображается только их родная Sonar, но я просто смотрю на итоговую сумму.
Биллинг
Итого
Текстовый контур работал идеально. Оставалось решить главную боль — ретушь.
Акт 2. Modal и рассадник Image-моделей
Google Cloud с их Nano Banana Pro отпал (триал рано или поздно закончится, а грант мне не дали: «нет документов, нет юрлица и бла-бла-бла»). И тут появился Modal — облако с GPU-контейнерами и посекундной оплатой, где мне одобрили 500$ гранта.
Что мне сразу понравилось: вместо того чтобы страдать с Terraform, ручной настройкой Docker-файлов, поднятием серверов и написанием собственных очередей для контроля масштабирования, всё выделение топовой железяки сводится к одному аргументу в коде.
import modal app = modal.App()
@app.function(gpu="A100-80GB") def edit_image(): # Модель погнала ретушировать
Всё. Modal сам поднимет контейнер при HTTP-запросе, сам «подогреет» видеокарту (если поставить buffer_containers=1), и сам её убьет через 5 минут простоя (scaledown_window=300), чтобы не сжигать баланс впустую.
Здесь же началась битва за качество картинки.
Сначала была Flux Kontext Dev. Казалась логичным стартом. К сожалению, для квартирных фото, где обязательно сохранение максимума деталей эта модель вела себя все-таки непредсказуемо: то перегенерирует интерьер целиком, то слишком агрессивно сломает геометрию. Не то.
Потом базовая Qwen-Image-Edit. 20 шагов диффузии по умолчанию, вроде стабильно, но качество пластмассовое и мыльное.
Попробовал Qwen-Image-Edit-2511 (улучшенный plus-pipelineна 40 шагов по умолчанию). Стало красивее, но из-за внутреннего устройства диффузионного шедулера контейнеры начали сыпать дикими ошибками IndexError (про эти баги я отдельно расскажу уже совсем скоро).
В итоге я нашёл FireRed-Image-Edit-1.1 — форк с другой реализацией того же пайплайна. 28 шагов, лучше держит геометрию комнаты и реалистично работает со светом. Поставил в продакшн.
FireRed Image Edit 1.1 → ретушь по fix_prompt (на Modal)
Claude Sonnet 4.6 → текст объявления
Satori → генерация готовых макетов (отложено)
Схемка — внутри
Когда я только настроил первый воркер на Modal и прогнал FireRed, я выбрал среднюю карточку A100 на 80GB. Сделал тестовый прогон: картинка сгенерилась быстро, и по цифрам всё выглядело вполне бюджетно.
Предвещая возмущения, вот чего я добился к сегодняшнему дню. Тестово умеет в multi-photo, поэтому детали не придуманы :)
До/после
Я уже было подумал, что вопрос с железом закрыт. А потом решил посчитать экономику получше.
❯ Как я GPU считал и почему самый мощный GPU ≠ самый дешёвый
Modal даёт выбор: T4, A10, L4, L40S, A100 40GB и 80GB, RTX-PRO-6000, H100, H200, B200. Глаза разбегаются.
Прайсинг gpu
Потратил несколько часов на замеры. Один промпт, одна картинка (1920x1080) для каждой модели (FireRed-Image-Edit-1.1 и Qwen-Image-Edit-2511) и каждой видеокарты. Метрика одна: рентабельность, то есть стоимость одного полного цикла (roundtrip)
Табличка и циферки
T4, L4, A10 и даже L40S (48GB) — выглядят соблазнительно по цене, но для выбранных моделей на 30+ ГБ весов они оказались бесполезны. Отвал по OOM происходит в 100% случаев еще на этапе переноса тензоров.
H100, H200 и флагманский B200 — рендерят феноменально быстро (Inference всего 19–24 сек), но цена прыгает до 10–14 центов за запрос. При моем объеме переплата за вычислительную мощь не конвертируется в реальный UX-выигрыш — пользователь всё равно ждет почти 50 (!) секунд, чтобы поднять 30 ГБ весов с диска в VRAM. Холодный старт съедает почти весь смысл дорогих чипов.
Долгое время «золотой серединой» считал и использовал A100 80GB, но в последнем тесте она показала худший roundtrip (~130 секунд) за счет самых медленных дисков на её нодах.
А открытием стала RTX-PRO-6000. Она оказалась абсолютным победителем бенчмарка. За счет, я полагаю, более быстрых SSD на её нодах. Она заливает всю модель в VRAM всего за 30 секунд. Поэтому этот въезд полностью компенсирует её более медленный инференс (32 сек).
Вывод: Зависимость совершенно нелинейная. Платишь в 2 с лишним раза больше за флагманский B200 — а получаешь фото в итоге даже медленнее из-за I/O оверхеда на кластере.
Раньше один запрос (ретушь одного фото) обходился в 0.20$ (~18-20 рублей). Я ставил цель опустить косты до 10 рублей. Переезд на RTX-PRO-6000 сбил цену генерации до 0.063$ (~6 рублей за фото!) при 75 секундах на холодный старт. Цель перевыполнена!
Напомню: Modal держит контейнер теплым 5 минут после последнего запроса (scale_down_window). Поэтому юзер, который сразу регенерирует неудачный результат, вообще не сталкивается с холодным стартом — модель уже в памяти, и ретушь занимает чистые 32 секунды.
❯ Какие баги и костыли сделали этот сервис реальным
В теории все выглядело идеально: математика сошлась, инференс стал дешёвым, я выбрал оптимальную карточку и выдохнул. Проблема с железом была решена.
Правда, я забыл одну важную вещь: дешёвый инференс (=плохой инференс) имеет смысл только тогда, когда он работает. А работать он внезапно перестал. Как только в эту «идеальную» архитектуру пошли пользовательские сценарии, начался этап еще более диких костылей, багов и открытий
Добро пожаловать в мою личную бесовщину:)
Акт 1. Нейросети не потокобезопасны (и другие приколы AI)
Сначала я решил сэкономить и включил декоратор @modal.concurrent(). Идея простая: пусть один теплый контейнер обрабатывает несколько картинок параллельно. Сразу после этого логи засыпало дикими ошибками:
IndexError: index 41 is out of bounds for dimension 0 with size 41
Красивая ошибка, правда? Я перебирал кучу моделей, думая, что проблема в них. Оказалось, не в этом дело! Проблема была в пайплайнах diffusers: стейт планировщика (scheduler state) оказался не потокобезопасным. При конкурентных запросах разные потоки обращались к одним и тем же расчётным шагам, затирая чужие тензоры.
Решение: Одно запущенное GPU = строго одна картинка. Убрал конкурентность, пожертвовал временем простоя, зато всё перестало падать.
# Было (дешево, но падало из-за гонки стейтов в diffusers): # @modal.concurrent() # @modal.fastapi_endpoint(method="POST")
# Стало (дорого, работает как часы): @modal.fastapi_endpoint(method="POST") def edit_image(self, payload: dict): # строгая обработка 1 к 1
И в этот же момент я понял главную вещь про генерацию: промпт важнее смены модели. Качество скакнуло в разы, когда я добавил в системный промпт жёсткие ограничения:
«Must explicitly preserve exact room geometry... Do not ask for synthetic editorial glow, plastic textures, fake luxury. Only describe visible, necessary edits.»
С момента запрета моделям «фантазировать» и делать «дорого-богато», ретушь стала адекватной.
Акт 2. Инфраструктурный скотч
Когда ты собираешь проект из десятка разных cloud-сервисов, они начинают конфликтовать друг с другом.
Геоблокировка и Vercel-прокси. Мой основной бэкенд крутился на отечественном VPS. Modal с российских IP ожидаемо выдавал 403. Решение? Проксировать вызовы к Modal через Serverless-функции Vercel. Маршрут стал выглядеть так: Yokva → Vercel → Modal. Красиво? Нет, отвратительно. Работает? Да.
Авторизация FastAPI в Serverless. Я сделал базовую защиту эндпоинта GPU через стандартный fastapi.Request injection. Modal отвечал глухим 422 Unprocessable Entity. Выяснилось, что в его Serverless-контексте Request иногда интерпретируется как query-параметр. Пришлось выкинуть красивые заголовки и передавать bearer token прямо в теле JSON. Не гламурно, но зато надёжно.
Акт 3. Взросление: никогда не падать молча
Самый важный сдвиг произошел, когда я перестал думать как экспериментатор и начал думать о пользователях (и своих деньгах, разумеется).
Отвалился Redis? Живём дальше. Раньше смерть Redis (где лежал rate limiter) означала HTTP 500 для всех. Я переписал логику: если кэш недоступен, лимитер на лету переключается на in-memory. Да, при рестарте ноды лимиты сбросятся, но это лучше, чем мёртвый сервис.
LLM вернула мусор?Claude полюбил вместо красивого описания квартиры возвращать заглушки типа «desc», «test» или «n/a». Я собрал чёрный список таких слов. Если парсер ловит мусор — происходит автоматический retry с усиленным промптом.
// Чёрный список того, что Claude любил отдавать вместо нормального текста:
if (INVALID_FILLER_VALUES.has(rawHeadline.toLowerCase()) || rawHeadline.length < 5) {
// Ловим мусор и отправляем на принудительный retry
throw new Error("Claude returned an invalid headline placeholder");
}
Сам себе DDoS-ер. React против Cloudflare. Смешной инцидент произошел с безобидной формой вейтлиста. Cloudflare вдруг начал блокировать легитимных юзеров, ругаясь на спам со стороны капчи Turnstile. Оказалось, виноват React 19. В режиме разработки Strict Mode он рендерит DOM-дерево компонентов дважды. Из-за этого двойного рендера фрейм Cloudflare пытался инициализироваться два раза подряд за миллисекунды. Ну а антифрод видел это и тут же банил, принимая этот двойной запрос за replay attack.
Модель упала? Возвращаем оригинал. Если Modal вернул ошибку, Yokva не показывает юзеру красный экран. Она тихо отдаёт оригинальное фото. Для пользователя лучше получить просто загруженную картинку, чем сломанный интерфейс.
Деньги за чужие баги. Самое главное продуктовое правило, которое я внедрил: если модель всё-таки сгенерировала откровенный мусор (или упала на полпути), скрипт автоматически делает refundCredits. Пользователь не должен платить за то, что у PyTorch’а съехали индексы. Теперь за это плачу я :)
Платить за баги нейросетей из своих карманных денег — это, конечно, отличная мотивация, чтобы повзрослеть))
❯ Как в этой истории появились гранты, Timeweb Cloud и взрослый слой проекта
К этому моменту Yokva существовала в странном режиме: тяжелый инференс на Modal, прокси через Vercel, а остальное — на моей локалке. Я хоть и держался тактики «0 бюджета», но проект начал из нее вырастать. Чтобы запустить все это в стабильное едино, мне нужен был мощный VPS. А мне 15 лет, и лишних бюджетов на сервера у меня, увы, нет. Спойлер: мне помогли ребята из Timeweb Cloud. Но давайте немного предыстории!
Конец февраля, еду по Москве в визовый центр, очереди, скукота. Достаю телефон и начинаю писать колд-мейлы. Тема везде не особо отличалась — «Грант для 15-летнего фаундера». Не стеснялся.
Объем рассылки :)
И еще)
Первыми пошли крупнейшие российские хостеры. У некоторых есть даже нормальная грантовая система на сайте — но они просто не ответили :D
Потом написал в проптехи — поимённо вы их прекрасно знаете :) Логика простая: им выгодно чтобы объявления на их платформах выглядели лучше. Переправляли куда надо — и замолкали.
Пошёл дальше: AWS, Digital Ocean, fal.ai, RunPod + еще десяток.
Итог по большинству — тишина. RunPod молчит, зато исправно шлет корпоративный спам — спасибо, ценю. AWS отказали сразу. Cloudflare и Google сделали это официально: нет юрлица, на сайте нет четкой бизнес-модели (факт!), да и в целом письмо было в духе «мы рассмотрели вашу заявку и...» — дальше можно не читать.
Любезное письмо от гугла
Но в тот же февральский день мне позвонил Александр — технический специалист из Timeweb Cloud. Сказал: без ИП тяжело одобрить грант официально, но проект интересный, постарается что-то сделать. Передал в маркетинг.
Написала Роза. Предложила созвон.
Страшно ли было? Да. Это были первые переговоры в моей жизни с незнакомыми взрослыми людьми по делу. Людьми, которым в общем-то всё равно. Но я справился. На созвоне кратко объяснил суть проекта, обсудили, что нужно. GPU не дают, зато VPS — без проблем. Поговорили про стек, характеристики, S3. В тот же день мне выдали грант на 12 500 рублей.
Переписка:
Переписка с Розой
Ещё с Розой
И с Александром
Так у Yokva появился нормальный дом и возможность развернуться. Но наглость в визовом центре окупилась каскадом ответов и от других ребят. Оказалось, что иногда искренность работает лучше бизнес-планов:
PostHog — утром того же дня, еще до всех звонков, пришло письмо: одобрили 50 000$. Подавал через их грантовую платформу, стандартная форма. Через неё же дали доступ к Chroma — ещё 5 000$.
Скрины:
Письмо
Баланс
Письмо от chroma
Perplexity — насыпали 5 000$ на API и 6 месяцев Enterprise Pro. Письмо: «Congrats, You're In». Весьма лаконично!
Скрин:
Письмо
Kodik (российская AI IDE, есть на Хабре. привет!) — написал им, что пилю стартап в одиночку и иногда нуждаюсь в баг-фиксе. Ответили в тот же день: «Ты даже не представляешь, как наша команда обрадовалась твоему письму». Дали Super PRO, пригласили в QA, зарядили позитивом) В стопорных ситуациях не раз выручало!
Снова скрин:
Письмецо
Modal — насыпали 500$ и открыли доступ к GPU с посекундной оплатой (про них я уже подробно расписывал в техническом блоке выше, но именно их грант позволил запустить первые тесты нейросетей).
И опять господин-скрин!
Письмо
В итоге, пока я скучал в очереди за визой, проект на коленке приобрел инфраструктурных грантов на 60 000$+
Неплохая конверсия для одного весьма скучного утра)
Но знаете что? Гранты — это лишь возможность не платить за свои ошибки из кармана. Они не собирают за меня продукт! Но именно эта беготня по письмам и созвонам сделала проект реальным. Yokva повзрослела тогда, когда я впервые начал думать о железе, деньгах и людях. Без такого опыта, возможно, это был бы просто очередной пет, который никогда бы не вышел за пределы моих слов.
❯ Что у меня в итоге получилось, что не получилось и зачем я вообще всё это пишу
Я начинал с простой идеи: «загрузил фото — получил красивый креатив». А пришёл к очередям задач, GPU-инстансам, геоблокировкам, грантам, фоллбэкам, стоимости инференса и необходимости держать весь этот парк в рабочем состоянии. Yokva превратилась в большой, для меня, проект
И, наверно, в этом для меня главный смысл всей истории. Я не «собрал стартап» в красивом, может, твиттерском смысле. Я уткнулся в реальность, а теперь по кускам учусь делать сервис!
Акт 1. Столкновение с реальностью
Выход в реальный мир оказался отрезвляющим.
Ожидание: Акселераторы и менторы. Я нашел школьный акселератор Сбера. Зарегистрировался, смотрел уроки, где люди в основном читают (откровенно плохо!) банальности с суфлера.
Но акселераторы нужны не ради лекций. Загрузил питч-дек до 23 марта (то есть заявки они принимали с февраля по март) и стал ждать обещанных крутых менторов.
Питч-дек
Прошел месяц. Тишина. На сайте статус не меняется. Я уже мысленно похоронил эту идею, как вдруг 22 апреля мне в Telegram приходит сообщение: «Вы прошли!».
Сообщение
Оказалось, это какой-то мифический второй поток, программа теперь длится 10 недель вместо 8 (на сайте об этом ни слова), а в общем чате царит кромешный хаос.
НО! Спустя пару дней мне написал Константин, позвал на созвон о проекте. Я, конечно же, согласился. Меня, признаюсь, впечатлили циферки)).
Сообщение от ментора
Теперь мы будем выстраивать продажи вместе, и это настоящее спасение.
И мой ответ
Почему спасение? Потому что до этого я уже столкнулся с реальностью ручных продаж.
Реальность: Ручные продажи. Бизнес за меня никто не сделает, потому я пошел в поля. Открывал Авито, находил объявления с непривлекательными фотографиями, прогонял первый кадр через свое детище и отписывал авторам напрямую. Предлагал обработать остальные фото бесплатно в обмен на фидбек.
Пример сообщения
Некоторые отвечали, результат им нравился. Но буду честен: до нормальных метрик и замеров кликабельности дело так и не дошло. Параллельно на меня навалилась школа, дедлайны и банальная усталость. Делать холодный аутрич руками в соло оказалось слишком тяжело, измеряемая воронка не выстроилась, и эта инициатива тихо заглохла.
И вот как раз в этот момент появился Константин, который явно зарядил меня на новые попытки. Пляска продолжается!
Акт 2. Итоговый срез
Чтобы быть до конца честным, я разделил итоги на то, что реально работает, и то, где мы ещё в начале пути:
Вот так страница результатов выглядит сейчас. Это уже можно трогать руками и использовать, но, как видно из таблицы, работы впереди еще много
Акт 3. Что дальше?
Yokva уж точно не закрывается. У меня в голове (да, пока так) лежат идеи обновления и стратегия перехода на уровень нормального инструмента:
Продукт: Реализовать главную затею генератора готовых рекламных карточек, только для недвижимости
Маркетинг: Буду продолжать записывать рилсы, писать, да и как-то о себе заявлять :)
Партнерства: Я всё еще жду ответа от больших игроков. Если не через повторные письма, то, может, через эту статью
Планы конечно грандиозные, путь — еще больше. Уж не знаю сколько на это времени уйдет, но скучно точно не будет!))
Акт 4. Зачем я это написал?
Иногда проскакивает мысль: «А может, зря всё это?». Но я принципиально тащу проект в соло, потому что пока не готов отказаться от этих дофаминовых горок
Я написал эту статью, чтобы выйти из вакуума (я делал это ранее на реддите, но меня заблокировали). Я хочу познакомить проект с людьми:
Если вы риелтор, стейджер или лендлорд: заходите на yokva.com. Регистрируйтесь, пробуйте. Пишите — отсыплю побольше кредитов в обмен на честный фидбек.
Если вы инженер или фаундер: добро в комментарии. Буду рад, если вы разнесете мою реализацию по фактам, укажете, где я думаю не туда, или просто поделитесь своим опытом.
А если вы критик: то точно велком аборд! Покопаемся в идее вместе)
15 мая 1891 года Папа Лев XIII подписал энциклику "Rerum Novarum" — "О новых вещах". Это был программный документ о правах рабочих, об обязанностях работодателей и пределах капитализма. Эпоха паровых машин, фабрик и первого массового пролетариата.
15 мая 2026 года, день в день через 135 лет, Папа Лев XIV подписал свою первую энциклику. Она про ИИ. И это совершенно точно не совпадение.
Энциклика — это официальное письмо Папы по большому вопросу. Не пресс-релиз и не проповедь, а доктринальный документ для епископов, верующих и всех, кому интересно. Rerum Novarum 1891 года стала фундаментом всей современной католической социальной мысли — и до сих пор остается ориентиром.
Нынешний Папа — первый американец на престоле, в миру Роберт Превост. Имя Лев XIV он выбрал сам и сам же объяснил, почему. По его мнению, индустриальная революция XIX века и современная ИИ-революция ставят одни и те же вопросы: о человеческом достоинстве, о работе, о том, кто кого использует. Он сказал это в первой речи после избрания в мае 2025-го. Ровно через год вышел документ.
Энциклика называется Magnifica Humanitas — "Великолепное человечество". Подзаголовок официально звучит как "О защите человеческой личности в эпоху искусственного интеллекта". По данным Reuters и Vatican News, внутри: ИИ в войне (Папа уже резко высказывался против AI-оружия — упоминал Украину, Газу, Ливан и Иран как примеры "спирали уничтожения"), права работников, моральная ответственность, достоинство человека. Это первая в истории папская энциклика, целиком посвященная ИИ.
25 мая Папа представит документ лично — что само по себе редкость, обычно это делают кардиналы и пресс-служба. Рядом с ним на сцене будет Кристофер Ола, сооснователь Anthropic и один из самых известных в мире исследователей интерпретируемости (interpretability) моделей. Если простыми словами — Ола занимается тем, что пытается заглянуть внутрь нейросети и понять, как она принимает решения. Папа выбрал не CEO. Не евангелиста. Не лоббиста. Он выбрал ученого, который занимается вопросом, можно ли вообще понять и проконтролировать машину. Это очень осознанный жест.
Параллельно, 16 мая, Ватикан объявил о создании Межведомственной комиссии по ИИ — нового координирующего органа Святого Престола. Она будет согласовывать политику использования ИИ, проекты и позицию разных ватиканских ведомств. То есть Папа выстраивает институциональную структуру, а не просто пишет красивый текст.
Интересно, что в феврале Пентагон признал компанию Anthropic supply chain risk (риском для цепочек поставок) и заблокировал ее работу с госконтрактами — за отказ снять "красные линии" в Claude. OpenAI быстро забрала освободившиеся контракты. У Anthropic пошел встречный иск против администрации.
А теперь Папа Римский ставит сооснователя Anthropic с собой на одну сцену при выпуске первой в истории папской энциклики об ИИ. По отдельности я бы сказал, что это совпадение. Но 135 лет день в день — уже не совпадение. И выбор гостя — не совпадение. Ватикан без громких заявлений сделал ставку на стартап, который Трамп пытается поставить под контроль властей.
P.S. Поддержать меня можно подпиской на канал "сбежавшая нейросеть", где я рассказываю про ИИ с творческой стороны.
Давно были идеи сделать какой-нибудь небольшой проект со своими персонажами и сеттингом + отсылками на портал. Поскольку раньше изначально программировал только под микроконтроллеры (esp32 \ esp8266), какого-то опыта именно в разработке игр по сути не было, но был опыт портирования проектов написанных на SDL, потому пока остановился на данный момент на нем и для своего проекта.
Для физики пока сделал апи для тестирования разных физ. движков \ сохранения возможности реализации через упрощенные функции расчета коллизий. Пока в основном читаю про Box2D и пробую плавно интегрировать его в проект.
Сами персонажи реализованы через составные части. Раньше подобный способ анимации не пробовал, да в целом как и любой другой. Изначальный концептик пробовал анимировать в блендере через разбивку на полигоны с текстурами и привязку их к костям, но потом оставил эту затею по скольку такой анимированный спрайт получилось было бы перенести в игру только в "запеченном" виде, а хотелось оставить динамику для перемещения рук \ изменения взгляда головы
Пробовал еще под это дело Spine \ Live2d, но это все коммерческие решения со скудными вариантами экспорта. В итоге пока остановился на небольшом кастомном решении конкретно под sdl; еще несколько раз перерисовал сам концептик персонажа под более "физично-аркадные" пропорции - чтоб было проще вписать в физ. объект капсулы или прямоугольник. весь персонаж в "движке" все еще состоит из отдельных сегментов которые можно включать / выключать / анимировать отдельно. Добавил несколько базовых анимаций, проработал контроллер движения и смены анимок. движения рук делал через пресет так же по кадрам положений оружия под разные углы поворота, потом совмещаю динамически с основной анимацией бега / бездействия, так получается миксовать части. Эмоции сделал через принудительное скрытие / отображение частей спрайта.
И просто всякие концептики, зарисовки объектов и элементов которые пока не задействованы или в работе.
Звуковым сопровождением пока не занимался, но думаю должно быть что-то амбиентное без лишнего акцентирования. Думаю сделать возможность пока просто закидывать что-то для радиоприемника, чтобы можно было слушать \ ловить свое без привязки к копирайтам ну или возможно кто то согласится добавить свои треки в игру в дальнейшем по мере того как буду спрашивать понравившихся авторов \ то что вписывается в игру...вобщем буду думать.