BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Многопользовательская танцевальная игра, где контроллер это обычная веб-камера. Ты повторяешь движения за тренером. Игра оценивает каждое движение и говорит, что именно поправить. Нужны Chrome и веб-камера. Устанавливать ничего не нужно. Если камеры нет, открой ту же ссылку с ?demo в конце. Там танцует автотанцор. Игра говорит на трёх языках: қазақша, русский и English. Переключатель стоит на первом экране и в лобби. Игра запоминает выбор, а при первом запуске берёт язык браузера. Подсказки во время танца тоже приходят на выбранном языке. Полное видео на 2 минуты: docs/demo.mp4.README 전문 보기 ↗
Многопользовательская танцевальная игра, где контроллер это обычная веб-камера. Ты повторяешь движения за тренером. Игра оценивает каждое движение и говорит, что именно поправить.
Играть: https://admit-hackathon.vercel.app
Нужны Chrome и веб-камера. Устанавливать ничего не нужно. Если камеры нет, открой ту же ссылку с ?demo в конце. Там танцует автотанцор.
Игра говорит на трёх языках: қазақша, русский и English. Переключатель стоит на первом экране и в лобби. Игра запоминает выбор, а при первом запуске берёт язык браузера. Подсказки во время танца тоже приходят на выбранном языке.
Полное видео на 2 минуты: docs/demo.mp4.
Запись игры от 30 сентября. Сначала лобби с кодом комнаты, потом танец вдвоем, andrew и Yernar. Видно оценки, подсказки для руки и живую таблицу очков.
Во время nfactorial incubator 26 мы начинали утро с короткой разминки. Кто-то включал видео в духе Just Dance, и мы пару минут двигались перед тем, как снова сесть за ноутбуки.
Мы сидим за компьютером часами. Эти минуты помогали. Захотелось превратить такой короткий перерыв в игру, в которую можно играть с друзьями.
Так появился Motion Dance для Admit Hackathon 2026, кейс Motion.
Чтобы играть вместе, один человек создает комнату и получает код из 6 цифр. До 4 игроков заходят с телефонов или компьютеров и танцуют одну песню одновременно. Все видят живую таблицу очков. На широком экране рядом с тренером танцуют аватары других игроков. Чужой промах видно сразу, аватар вздрагивает.
Камера вместо джойстика.
Учить контроллер не нужно, покупать ничего не нужно. Встань в 1,5 до 2 м от камеры, чтобы в кадре были голова, плечи и разведенные в стороны руки. Можно играть сидя. Важнее всего руки и наклон корпуса.
Отличие в режиме ошибки. Обычные танцевальные игры пишут "мимо" и идут дальше. Наша превращает промах в инструкцию.
Ты видишь "Левую руку выше", "Согни правую руку в локте" или "Держи левую руку в кадре". Рядом большая стрелка показывает, куда двигаться, а полоса показывает, насколько близко ты к цели. В углу есть призрак цели в окне камеры. Он рисует, где должны быть руки. Зеленый значит совпало, желтый значит близко, красный значит мимо.
TypeScript, Vite, Vitest, MediaPipe Tasks Vision 1.0.1 Pose Lite, Three.js, PeerJS. Фреймворков для интерфейса нет.
Поза это src/pose. Кадр с веб-камеры идет в MediaPipe Pose Landmarker, GPU с откатом на CPU. Код превращает точки в углы, измеренные в ширинах плеч, поэтому расстояние до камеры не меняет оценку. Точки сглаживаются, задержка камеры около 150 мс компенсируется сдвигом окон.
Правила это src/dance. Там 25 движений, записанных как целевые углы рук, локтей, наклона и приседа. Каждое движение оценивается наполовину по средней ошибке и наполовину по худшей части, поэтому одна плохая рука не прячется за три точные. Полный балл в пределах 18 градусов, ноль от 50 градусов. Оценки perfect от 0.85 за 100 очков, good от 0.65 за 70, ok от 0.4 за 40, иначе miss. Звезды на 20, 40, 60, 75 и 90 процентах.
Мультиплеер это src/multiplayer. Браузеры соединяются напрямую по WebRTC через бесплатный публичный брокер PeerJS. Своего сервера нет. Каждый игрок шлет позу как 6 чисел 10 раз в секунду. Этого хватает, чтобы оживить удаленные аватары.
Музыка это src/audio. Шесть песен синтезируются в браузере, аранжировки наши. Седьмая карточка это свой файл MP3, M4A, WAV или OGG. Файл остается на устройстве. Код находит темп и первую долю и ставит движения в такт, до 90 секунд. Народные и классические мелодии в общественном достоянии, аранжировки наши.
Тренер это Michelle из Mixamo в том виде, как она лежит в примерах three.js. Файла нет в гите. scripts/fetch-models.mjs скачивает его при первом pnpm dev или pnpm build. Аватары других игроков это три персонажа из коллекции 100 Avatars студии Polygonal Mind: Хуанита, Мальчик-улитка и бабушка Эухения. Коллекция выложена под лицензией CC0, ее можно свободно использовать и публиковать, поэтому сжатые модели лежат в public/avatars/. pnpm import:avatars заново скачивает исходники и сжимает текстуры. Их же можно купить в магазине за монеты: Хуанита стоит 100, Мальчик-улитка 150, бабушка Эухения 200, Мишель бесплатна. Кроме них в магазине ещё 272 персонажа той же коллекции, от 100 до 300 монет. pnpm import:catalog проверяет каждого из 300 персонажей как танцора и рисует ему портрет. В репозитории лежат только портреты, а модель скачивается из Arweave, постоянного хранилища коллекции, когда игрок выбирает персонажа. Персонажей со страшным или неподходящим для детей видом в магазине нет. Выбранный персонаж танцует на сцене вместо тренера, и друзья в комнате видят тебя им же. Эти персонажи сохраняют свои цвета, из одежды на них надевается только шапка. Если модель не загрузилась, аватаром становится копия тренера в другой одежде. Анимация наша везде. Код ставит кости по тем же целевым углам, по которым идет оценка. Если модель не загрузилась, танцует встроенная мультяшная фигура.
Распознавание, судья и смена экранов написаны чистыми функциями вида состояние плюс вход дает новое состояние. Тесты проверяют, что точное движение получает perfect, любое чужое не выше ok, попадание в долю с задержкой 150 мс все равно дает perfect, а подсказки называют нужную руку и угол.
src/pose камера, трекер MediaPipe, жесты, генератор поз для тестов
src/dance 25 движений, судья с подсказками, окна по времени, песни
src/app порядок экранов, разбор после песни, рекорды по песням
src/stage тренер на Three.js, одежда, шапки, темы под каждую песню
src/audio синтезатор, аранжировки, поиск темпа для своих файлов
src/ui лобби, HUD, пиктограммы, окно камеры с призраком цели, переключатель языка
src/i18n словари на казахском, русском и английском
src/multiplayer коды комнат, WebRTC транспорт, синк позы 10 Гц
tests тесты Vitest для судьи, трекера, песен и сценария
Детали палитры и компонентов в DESIGN.md. Логика экранов в PRODUCT.md.
Нужны Node 22 или новее и pnpm. Если pnpm нет, включи его через corepack enable.
pnpm install
pnpm dev # http://localhost:5173
pnpm test # тесты судьи, трекера и сценария
pnpm build # сборка в dist/
При первом открытии браузер качает MediaPipe Pose Lite с wasm движком, около 17 МБ. При первом dev или build качается модель тренера, 3,3 МБ, в public/models.
Камера работает только на localhost или https. Проверяли в Chrome. Firefox и Safari пока не проверяли.
Режим без камеры:
# открыть http://localhost:5173/?demo
# E опускает левую руку, чтобы увидеть подсказку
# W поднимает руку, чтобы начать заново
# A и D наклоняют корпус, чтобы выбрать песню на итогах
Проверка двух устройств: запусти pnpm dev, потом pnpm e2e:multiplayer. То же против живого сайта через BASE=https://admit-hackathon.vercel.app/ pnpm e2e:multiplayer.
Деплой на Vercel из main. Каждый пуш гоняет тесты и сборку в .github/workflows/ci.yml.
vercel link
vercel build --prod
vercel deploy --prebuilt --prod
Aibar Yerzhuman и Yernar Merkhanov. Два разработчика. К хакатону собрали игру, распознавание, сцену и мультиплеер.
Admit Hackathon 2026, кейс Motion, игровой трек. Весь код игры написан после старта 28 сентября 2026. Ранний прототип раннера остался в истории коммитов. То, что судьи видят по живой ссылке, собирается из этого репозитория.