Genesis World: симулятор для embodied AI без хайпа

#embodied ai#robotics#simulation

Когда последний раз ты запускал симулятор для обучения робота и не проклинал legacy-код или документацию? Genesis World — свежий проект (299 звёзд за неделю), который пытается решить эту проблему. Не обещая «революции в robotics», он просто даёт sandbox для embodied AI без лишних абстракций.

Что за зверь и кому полезен

Genesis World позиционируется как general-purpose платформа, но на практике это пока инструмент для двух сценариев:

  1. Обучение агентов в 3D-среде (типа Unity ML-Agents, но без привязки к Unity)
  2. Быстрое прототипирование robotics pipelines

Главный плюс — минималистичный API на Python. Вот как выглядит базовый сценарий инициализации среды:

from genesis_world import SimEnv

env = SimEnv(scene="warehouse")  # предзагруженные 3D-сцены
agent = env.create_agent(sensor_config={"lidar": True, "rgb_camera": False})

Для сравнения: в том же PyBullet или MuJoCo на аналогичный код натянуты слои legacy-интерфейсов. Здесь же всё плоское, как мне нравится — создал окружение, заспавнил агента, подключил сенсоры.

Где подводные камни

  1. Физика: под капотом используется NVIDIA PhysX, что хорошо для перфоманса, но:

    • Нет поддержки custom materials (всё либо твёрдое, либо статичное)
    • Collision detection иногда глючит на сложных мешах
  2. Рендеринг: Vulkan-based, но без PBR-материалов. Если тебе нужны photorealistic среды — это не твой выбор.

  3. Документация: типичная проблема opensource. Примеры есть, но deep dive в архитектуру придётся делать через код.

Для каких задач взять

Из реальных кейсов, которые я пробовал:

А вот для manipulation (хватание объектов, манипуляторы) пока сыровато — нет нормального API для grippers.

Что дальше

Проект явно на подъёме, но ещё не production-ready. Если нужно:

Лично я закинул его в копилку «инструментов на подхвате» для быстрых экспериментов. Когда надоест возиться с Unity ML-Agents или переплачивать за AWS RoboMaker — тут есть что поковырять. Главное — не ждать magic bullet, а использовать по назначению.


Источник: https://github.com/Genesis-Embodied-AI/genesis-world