Об этом проекте

Genesis World — это платформа симуляции, нацеленная на разработку физического ИИ, особенно робототехники и обучения воплощённого ИИ. Она объединяет единый мультифизический движок, фотореалистичный рендерер под названием Nyx и кроссплатформенный компилятор Quadrants за питоническим интерфейсом симуляции. Проект ранее назывался Genesis, начинался как академическая работа в декабре 2024 года и теперь поддерживается Genesis AI. Он распространяется под лицензией Apache 2.0. Платформа организована в четыре уровня. Интерфейс симуляции предоставляет пользовательский API: разбор ассетов для таких форматов, как URDF, MJCF, OBJ, GLB и USD, доступ к сущностям, контроллеры, сенсоры, параллельные и гетерогенные среды, а также встроенный GUI. Уровень физики — это единый мультифизический движок, объединяющий динамику твёрдых тел, FEM, MPM, методы частиц (PBD и SPH), бэкенд uipc, явный связыватель и SAP, при этом все они используют одну сцену и одно состояние. Уровень рендеринга предлагает три пути рендеринга для камер-сенсоров: Nyx, Luisa (трассировщик лучей на DSL) и Pyrender (растеризатор). Уровень компилятора, Quadrants, понижает код Python-ядра до CUDA, AMD ROCm, Apple Metal, Vulkan, x86 и ARM64, а также включает автодифференцирование, GPU-графы и механизмы fastcache. Репозиторий содержит каталог исполняемых демонстраций, сгруппированных в разделы «Физика», «Рендеринг» и «Интерфейс симуляции». Примеры по физике охватывают сценарии с твёрдыми телами, такие как манипуляции кубиком Франки, башни коллизий и контактные многообразия; деформируемые и жидкостные солверы, включая ограничения FEM, учебники по MPM, песчаные колёса, связывание SPH, жидкости и ткани PBD, стабильный дым, телеоперацию ткани роботом через IPC; случаи связывания нескольких солверов, такие как ткань на твёрдом теле, жёсткое тело плюс крепление MPM, разрезание дракона, водяные колёса и смыв кубиков; а также примеры связывания SAP. Примеры рендеринга включают следование за сущностью, анимированные камеры и обзоры Nyx для hello-world, прикреплённых камер, материалов PBR, типов света, 3D-гауссовых сплат, выбора объектов и многокамерных многосредовых конфигураций. Примеры интерфейса симуляции охватывают управление роботом, управление суставами через ImGui, гетерогенные среды, рандомизацию домена, сенсоры, такие как камеры глубины, IMU, лидар, песочницы тактильных ощущений, контактную силу, расстояние до поверхности и температурные сетки, отладку GUI и выбор точек меша, взаимодействие мышью, дифференциальные IK-контроллеры, пакетный IK, обучение зависанию дрона, а также продвинутые учебники по червям и мышцам. Установка выполняется через pip с пакетом genesis-world, требуется Python 3.10 до ниже 3.14, после установки PyTorch. Для разработки используется pip install -e ".[dev]" из клонированного репозитория. Дополнительные опции включают pyuipc для IPC-солвера на Linux или Windows x86 с NVIDIA GPU и gs-nyx для рендерера Nyx. Quadrants устанавливается автоматически. Проект также документирует рабочий процесс на основе uv с uv sync и командами установки PyTorch для CUDA, CPU и Apple Silicon, а также запуск примеров через uv run. Проект приветствует вклад, включая pull request, отчёты об ошибках и предложения по удобству использования, и направляет пользователей к GitHub Issues и Discussions за поддержкой. Он признаёт ряд зависимостей и ссылок с открытым исходным кодом, включая Taichi (источник форка Quadrants), libuipc, FluidLab, SPH_Taichi, Ten Minute Physics, PBF3D, MuJoCo, libccd, PyRender, LuisaCompute, LuisaRender, Madrona и Madrona-mjx. Документация размещена на Read the Docs для Genesis World, Quadrants и Nyx.