AI playground: Genesis


Github https://github.com/Genesis-Embodied-AI/Genesis

Genesis AI is an open-source physics simulation platform designed for robotics, embodied AI, and physical AI development. It offers a versatile and efficient environment to simulate a variety of materials and physical phenomena, enabling researchers and developers to design, test, and validate intelligent systems in realistic virtual settings before real-world deployment.


Core Features of Genesis

  • Universal Physics Engine: Supports simulation of diverse materials, including rigid bodies, fluids, deformable objects, and granular materials.
  • High-Performance Simulation: Capable of reaching simulation speeds up to 43 million FPS on high-end GPUs like the RTX 4090.
  • Photorealistic Rendering: Offers fast and realistic visual rendering to enhance the simulation experience.
  • Generative Data Engine: Translates natural language prompts into diverse simulation scenarios, enabling efficient experiment creation. (not release yet)
  • Cross-Platform Compatibility: Runs natively on Linux, macOS, and Windows, supporting various computing backends like CPU, Nvidia GPU, AMD GPU, and Apple Metal.

Basic Hardware Requirements

Genesis AI can run on standard hardware setups but performs optimally with:
  • GPU: Nvidia RTX series (recommended for high-performance simulation)
  • Operation System: macOS, Linux, and Windows
  • RAM and Storage: Adequate RAM (16GB or higher) and sufficient storage for handling large datasets

Setting Up Genesis on Different Operating Systems

  1. Mac:
  2. I tried to set up an virtual environment based on different python version. Still, no luck to make it work. There are many dependecy combinations to resolve such as python-tk, trimesh, PyOpenGL, pygel3d, ... I finally found a solution in Genesis's github issues. Many thanks to soumith for sharing these magic steps. If you have installation issues, it is highly recommended to check in Genesis's github issues before asking Google or other LLM.
    • Prerequisites:
      • Preinstall ffmpeg on Mac through brew.
      • Python: Ensure Python 3.12 is installed. You can check with python3 --version.
    • Installation Steps:
      1. Prepare mini conda environment:
      2. Set up conda environment:
      3. Install Dependencies:
      4. Execute:
  3. Windows:
  4. Please note that the interactive viewer is currently not supported on Windows. You will meet a glGetUniformLocation error.
    • Installation Steps:
      1. Prepare mini conda environment:
      2. Set up conda system path:
        1. Press Win + s and search for Environment Variables.
        2. Click "Edit the system environment variables".
        3. In the System Properties window, click "Environment Variables...".
        4. Under System variables, scroll down and find the Path variable.
        5. Select it and click Edit.
        6. Click New and add the following paths (adjust if using Miniconda):
        7. Click OK on all windows to save.
      3. Set up conda environment:
      4. Install Dependencies:
      5. Execute:

Applications and Accessibility

Genesis AI supports various applications:
  • Robotics R&D: Testing and validating robotic behaviors in a realistic simulation environment.
  • Material Science: Simulating liquids, gases, deformable objects, and more for scientific research.
  • AI Training: Creating realistic environments for embodied AI agents to interact and learn.
  • Industrial Automation: Validating automation scenarios with high physical fidelity.

Demos

I conducted an interesting experiment using Genesis by importing a 3D model of a small recycle trash bin from Trellis. In the simulation, I applied gravity to make the bin drop from the air and land realistically on the ground, effectively demonstrating Genesis's physics capabilities in handling object dynamics and material interactions. This initial test not only validated the accuracy of the physics engine but also highlighted how easily external 3D models can be integrated into the simulation.

During this experiment, I noticed that updating Genesis surfaces or materials required me to frequently loo up its official website for additional information. This process could be streamlined if a feature like gs.generate were available. Such a feature would allow users to easily apply different physical effects and material properties directly within the simulation environment, making experimentation and development much more intuitive and efficient.

Building upon this experiment, I plan to develop more complex applications, such as using a robotic arm like the Franka Emika Panda to interact with various objects. For instance, future scenarios may involve the robotic arm delicately grasping and manipulating fragile items like a glass cup or performing practical tasks such as sorting recyclable materials. By combining object interaction with physics-driven simulations, these experiments will showcase Genesis's potential in developing realistic robotic workflows and complex automation tasks.

These hands-on demonstrations underscore Genesis's versatility and core functionalities, offering a solid foundation for exploring more advanced and interactive simulation environments.

Comparison

  • Genesis AI: Focuses on open-source, high-fidelity physics simulation for diverse material modeling and robotics applications.
  • NVIDIA Cosmos: Offers a suite of generative models and simulation tools optimized for NVIDIA's hardware, focusing on efficient development and deployment of physical AI models.
  • Gazebo: A widely used open-source robotics simulator that emphasizes real-world physics and sensor simulation, primarily supporting ROS (Robot Operating System) integration.
  • PyBullet: An open-source physics engine popular for robotics and machine learning research, offering easy Python integration but lacking the advanced rendering and simulation speed of Genesis.
  • Unity ML-Agents: Primarily a game engine adapted for AI training with reinforcement learning, featuring rich 3D environments but lacking the specialized physics simulation capabilities of Genesis.
Genesis stands out for its open-source approach and universal physics engine, providing high performance and photorealistic rendering, while platforms like Cosmos, Gazebo, PyBullet, and Unity ML-Agents serve more specialized or hardware-optimized roles in simulation and AI development.

Conclusion

Genesis AI is a powerful and flexible platform that combines high-performance simulation, photorealistic rendering, and generative data capabilities. Its cross-platform support and user-friendly Python interface make it an essential tool for researchers and developers in robotics, AI, and industrial automation. As it evolves, Genesis is poised to significantly advance embodied and physical AI applications.