Skip to content

A tool for rendering 3D scenes using NVIDIA Omniverse Replicator based on JSON scene definitions. - Stanford University

Notifications You must be signed in to change notification settings

ritessshhh/Air_Blender

Repository files navigation

Air Blender - Omniverse Scene Renderer

A tool for rendering 3D scenes using NVIDIA Omniverse Replicator based on JSON scene definitions.

Overview

This tool takes a scene definition in JSON format and uses NVIDIA Omniverse Replicator to render images from the scene. It leverages the Omniverse Replicator and Omniverse Replicator Object extensions to create and manipulate 3D objects in the scene.

Prerequisites

  • NVIDIA Omniverse
  • Omniverse Replicator extension
  • Omniverse Replicator Object extension
  • Blender 3.4.0 or later (for scene optimization)

Scene Definition Format

The tool accepts a JSON file with the following structure:

{
  "objects": {
    "object_id": {
      "category": "objects",          // The type of object (e.g., "objects", "walls", "floors", "ceilings")
      "material": { ... },            // Material definition (only for "walls", "floors", "ceilings")
      "placements": [                 
        {
          "position": [pos_x, pos_y, pos_z],  // pos_z defaults to 0 (i.e. on the floor)
          "rotation": [rot_x, rot_y, rot_z],  // or just a numerical number (z-axis rotation)
          "scale": [scale_x, scale_y, scale_z] // or just a numerical number, defaults to 1  
        }
      ],
      "metadata": { ... }            // Additional object metadata
    }
  }
}

Object Categories

  • objects: General 3D objects
  • walls: Wall elements
  • floors: Floor elements
  • ceilings: Ceiling elements

Placement Properties

  • position: Array of [x, y, z] coordinates
    • z defaults to 0 (floor level)
  • rotation: Array of [x, y, z] rotation angles or single z-axis rotation value
  • scale: Array of [x, y, z] scale factors or single uniform scale value

Scene Optimization

The tool includes a powerful scene optimization panel that helps prepare your 3D scenes for efficient rendering. The optimization panel provides the following features:

Mesh Optimization

  • Validation: Remove invalid geometry
  • Vertex Welding: Merge close vertices to reduce mesh complexity
  • UV Unwrapping: Smart UV unwrapping with configurable margins
  • Decimation: Reduce polygon count while preserving visual quality
    • Configurable reduction ratio
    • Symmetry-aware decimation
    • Minimum face count threshold
    • Optional shape key removal

Advanced Features

  • Mesh Chopping: Split large meshes into smaller, more manageable pieces
  • Geometry Generation: Create simplified versions of objects
    • Convex Hull generation
    • Bounding Box generation
  • Batch Processing: Apply optimizations to multiple objects simultaneously
  • USD Export: Export optimized scenes directly to USD format

Usage

  1. Open the Omniverse panel in Blender's 3D Viewport
  2. Select the objects you want to optimize
  3. Configure optimization settings as needed
  4. Apply optimizations or export directly to USD

Usage

  1. Create a JSON file following the scene definition format above
  2. Use the Omniverse Replicator and Replicator Object tools to render the scene
  3. The rendered images will be generated based on the scene configuration

Documentation

For more information about the Omniverse Replicator and Replicator Object extensions, please refer to:

License

[Add your license information here]

Contributing

[Add contribution guidelines here]

About

A tool for rendering 3D scenes using NVIDIA Omniverse Replicator based on JSON scene definitions. - Stanford University

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published