Pull to refresh
9
0
Send message

Как я разбирал нестандартный формат 3D-моделей, чтобы показывать Лего у себя на сайте

Level of difficultyMedium
Reading time7 min
Views8.3K

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

Я перепробовал несколько редакторов 3D-моделей Лего (моим главным условием была работа на Linux, либо в вебе), и остановился на онлайн-редакторе Mecabricks. Но, уже перенеся туда несколько из моих творений, понял, что с задачей «показывать всем друзьям» всё будет сложнее: у Mecabricks довольно скудные возможности экспорта, а его собственный формат с расширением .zmbx понимает только он и его плагин для Blender.

Поэтому я решил посмотреть, как этот формат устроен, и написать свой конвертер во что-то более общепринятое. В качестве целевого формата я выбрал glTF, а инструмент незатейливо назвал zmbx2gltf.

В этой статье я расскажу, как постепенно разбирал этот непонятный .zmbx, про устройство и преимущества glTF как формата передачи 3D-ассетов между разными инструментами, и про то, какие проблемы я решал, конвертируя одно в другое.
Читать дальше →

Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы

Level of difficultyEasy
Reading time17 min
Views18K

Языковые модели (NLP) сейчас активно развиваются и находят себе всё больше интересных применений. Начиналась же их эпоха с классики жанра — D&D. Это настольная игра, где несколько друзей или просто знакомых синхронно галлюцинируют, представляя себя командой героев в некоем вымышленном мире. Прав же во внутриигровых выборах тот, кто выкинул большее число на игральной кости. Судить сейчас об их мотивации у меня нет никакого желания, да и статья вообще-то не об этом.

Важно только понимать, что движущей силой сюжета в их сессиях является лишь один из игроков, называемый Dungeon Master. Когда только начали появляться первые GPT-модели, одной из первых хотелок гиков оказалось желание сварить из нейросетей автоматического Dungeon Masterа.

Так и появился AIDungeon — уникальная для своего времени (2019 год) вещь, которая не сильно потеряла в популярности и по сей день. Однако, если вы любите смотреть глубже, то играть в него вам быстро надоест. Я же в своей серии из нескольких статей (посвящённых GPT) стараюсь показать простому обывателю механизм безболезненного использования нейросетевых моделей в простых проектах при помощи Python и Hugging Face Transformers.
Приступим

Proger sapiens

Level of difficultyEasy
Reading time7 min
Views6.6K
Первым моим знакомым программистом была женщина, которая разрабатывала софт на одном из закрытых предприятий союзной республики. Мне было семь лет и она ассоциировалась у меня с волком из «Ну, погоди», который набивал приветствие на стадионе. Однако любопытство завело семилетку далеко и уже через пару недель я с интересом слушала про ленты и рассматривала перфокарты — она мне их подарила целую стопку, хватило даже в школе на шпаргалки-закладки. Ещё тогда удивило, что к ней не было особого отношения среди взрослых: ну мама троих детей, ну математик. Не врач же, не учитель и не космонавт, в конце концов! 

Читать дальше →

Парольные менеджеры 2023 года: что нового?

Level of difficultyEasy
Reading time6 min
Views32K


С каждым годом хакеры становятся всё изощреннее в методах отъёма честно нажитого у пользователей интернета. Поэтому нужно всегда быть начеку и заботиться о защите своих персональных данных. Инструменты для этого известны: надёжное шифрование и защищённый парольный менеджер, внутри которого хранятся секреты, а пароль доступа знаете только вы (плюс дополнительная аппаратная защита через 2FA).

Посмотрим, что нового появилось в этой области за последнее время. А посмотреть есть на что.
Читать дальше →

Основы цифровой электроники: дешифраторы и демультиплексоры

Level of difficultyMedium
Reading time8 min
Views17K

Привет, Хабр! Что, если мы имеем цифровой сигнал в одном формате, а нам он нужен в другом?

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

Сегодня мы познакомимся с микросхемами, разработанными как раз на такой случай.
Читать дальше →

Металлы с памятью формы

Level of difficultyMedium
Reading time11 min
Views14K
Картинка Freepik

Многие слышали об интересном эффекте, который показывают некоторые сплавы, называемые «сплавами с эффектом памяти». После деформации они демонстрируют каучукоподобное поведение: если деформация небольшая, сплавы восстанавливают прежнюю форму при одной и той же температуре, и полностью восстанавливают форму при изменении температуры. Что они собой представляют и чем интересны?
Читать дальше →

Когда парсеры URL-адресов расходятся (CVE-2023-38633)

Level of difficultyMedium
Reading time9 min
Views4.5K

Обнаружение и разбор уязвимости CVE-2023-38633 в librsvg, заключающейся в ситуации, когда две реализации URL-парсера (Rust и Glib) расходятся в парсинге схемы файла, создавая уязвимость к атаке обхода каталога.
Читать дальше →

История компьютерных стратегий. Часть 10. «Age of Mythology»: древние боги, шогготы и рептилоиды в одном флаконе

Level of difficultyEasy
Reading time8 min
Views10K

Как несложно догадаться, успех первой «Age of Empires» сподвиг её создателей, Ensemble Studios, развивать тему исторических RTS дальше. Следом появилась посвящённая средневековью «Age of Empires II», ставшая главным хитом серии и по сей день имеющая массу поклонников и активных игроков. Однако параллельно в недрах студии возникло желание поэкспериментировать с концепцией, сделать что-то похожее, но при этом совсем иное. Это стремление не породило мегахитов и прорывов — но оставило в истории RTS такое яркое и запоминающееся явление, как «Age of Mythology».
Читать дальше →

Альтер эго. Как создать виртуальную личность и распознать фейк

Level of difficultyEasy
Reading time11 min
Views24K


Я люблю общаться с ботами и владельцами фейковых аккаунтов в социальных сетях. В большинстве случаев они довольно милые и относительно безобидные. Порой даже интересно угадывать, что именно они попытаются впарить мне в очередной раз: тотализаторы, БАДы, лохотрон с криптой или недвижимость в Дубае? На днях я несколько часов обстоятельно общался с одной обаятельной девушкой, пока по ряду характерных признаков не убедился в том, что этот аккаунт — тоже фейковый. Признаюсь, раскусить подделку в этот раз было непросто: создатели липовых учёток научились придавать им определённую правдоподобность. Любопытства ради я захотел разузнать, как сейчас создаются виртуальные личности, какой софт и технологии для этого используются и существуют ли способы с ходу определить, что перед тобой не живой человек, а подделка?
Читать дальше →

Разбираем формат EXIF на примере Apple Photos

Level of difficultyMedium
Reading time11 min
Views13K

В этой статье мы познакомимся с форматом EXIF и узнаем, какую информацию содержат метаданные фотографий, как эту информацию можно получить, и каким образом использовать. В качестве примера будем использовать фототеку, управляемую с помощью Apple Photos.
Читать дальше →

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views48K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

Собственный строковый тип на Rust

Level of difficultyMedium
Reading time14 min
Views7.3K

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

pub enum Expr<'src> {
  Int(u32)
  Ident(&'src str),
  // ...
}

Когда мы парсим идентификатор, то вместо копирования его названия в новую String мы заимствуем его из входной исходной строки. Это позволяет избежать дополнительных распределений, дополнительного копирования и экономит слово на представлении данных. Компиляторы могут быть очень требовательны к памяти, поэтому стоит выбирать краткое представление.
Читать дальше →

Google Workspace и Office 365 постепенно закрывают для РФ. Ставим офисный софт на своём сервере

Level of difficultyEasy
Reading time6 min
Views19K

Nextсloud Office

В последнее время появляется всё больше новостей про блокировку офисных сервисов Google Workspace и Office 365 для российских клиентов. По слухам, отключают некоторые компании, попавшие в санкционные списки. Но скоро блокировка может распространиться на остальных, всё к этому идёт.

К счастью, есть много опенсорсных альтернатив на замену Google Workspace и Office 365. Это бесплатные открытые решения, которые можно установить на своём сервере.
Читать дальше →

История компьютерных стратегий. Часть 6. «Red Alert»: Эйнштейн против Гитлера, Сталин против всех

Level of difficultyEasy
Reading time10 min
Views12K

Итак, «Warcraft: Orcs & Humans» от Blizzard и «Command & Conquer» от Westwood Studios непосредственно наследовали «Dune II». «C&C» продолжал её почти напрямую, а авторы первого «Варкрафта» просто были очень впечатлены и решили сделать что-то в том же духе. Обе игры оказались удачными, обе легли в основу обширных серий и заложили краеугольные камни многолетней популярности жанра RTS. Естественно, что две конкурирующие студии не собирались почивать на лаврах и буквально сразу после релиза принялись развивать тему. Но если Blizzard напрямую продолжили свою историю борьбы людей и орков в фэнтезийном мире «Warcraft 2», то Westwood Studios решили сделать приквел к C&C и представили версию Второй мировой войны без нацистской Германии. Так родился развесисто-клюквенный сеттинг «Red Alert».
Читать дальше →

Вам нужно увеличить RAM и перейти на SSD…

Level of difficultyEasy
Reading time6 min
Views31K
…если вы всё ещё не сделали это.


Задумывались ли вы, хватает ли вашему компьютеру, локальному или удалённому серверу оперативной памяти? Задумывались, но не знаете, как это определить? А накопители какого типа вы предпочитаете? Надеемся, данная статья поможет вам в этом разобраться.
Читать дальше →

Вы были на высоте

Level of difficultyEasy
Reading time1 min
Views13K


Ну что могу сказать… Я впечатлён вашими скиллами, скоростью и командной работой. Взял бы вас себе в напарники, но предпочитаю работать в одиночку. Даже немного неловко, что пришлось использовать вас для отвлечения внимания RUVDS, пока забирал крипту со спутника. Так что теперь вам осталось только отправить баг-репорт хостеру. Надеюсь, они приготовили щедрую награду.
Читать дальше →

Хакните спутник и заработайте 0.1 BTC

Level of difficultyEasy
Reading time1 min
Views40K


Привет, Хабр! Вы, наверное, читали, что недавно RUVDS отправили свой спутник-сервер в космос. Это само по себе интересно, но есть ещё одна интересность. Оказывается, он хранит зашифрованные данные от криптокошельков — и я предлагаю вам сыграть в игру, которую мы разработали с Positive Technologies, чтобы взломать их.
Хочу знать подробности

Софт для самохостинга: что нового в 2023 году

Level of difficultyEasy
Reading time6 min
Views47K


Среди обычных пользователей (физлиц) в последнее время наметилась тенденция ухода из облака на свою инфраструктуру. Об экономии тут речи обычно не идёт, потому что облачные сервисы Google, Apple и прочие заманивают бесплатными тарифами. Но у людей растёт понимание, что нельзя доверять Google. Надеяться можно только на себя.

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

Эффективная работа с битами при помощи Go

Level of difficultyHard
Reading time12 min
Views18K

Это статья познакомит вас с использованием возможностей Go для выполнения манипуляций с битами. Здесь мы разберём установку, очистку, инвертирование, сдвиг битов, использование техники SWAR, эффективную обработку Юникода и прочие приёмы, позволяющие повысить продуктивность программирования.
Читать дальше →

История компьютерных стратегий. Часть 2: как настольные варгеймы эволюционировали в компьютерные

Level of difficultyEasy
Reading time13 min
Views11K

Говоря о зарождении жанра компьютерных стратегий, обычно первым делом вспоминают две эпохальные игры: глобальную пошаговую «Sid Meier’s Civilization» и RTS «Dune II» по мотивам романов Фрэнка Герберта и отчасти экранизации «Дюны» Дэвидом Линчем. Однако путь к появлению этих шедевров начала 90-х был долог и успел вместить в себя десятки тайтлов. В первой части мы вспомнили о том, как машины учили играть в первую их стратегическую игру: шахматы. Теперь же поговорим об истории возникновения собственно компьютерных стратегий — в современном понимании этого слова.

В качестве самой первой нешахматной компьютерной стратегии многие статьи указывают «Invasion» 1972 года для консоли Magnavox Odyssey. Это не совсем точно. А скорее — совсем неточно. И вот почему.
Читать дальше →

Information

Rating
Does not participate
Works in
Registered
Activity