LogoLogo
  • Seahaven
    • Seahaven Documentation
      • Setup Your Account
      • Getting Started
        • Prepare Your Models
          • Name Objects
          • Add Camera Curve to a scene
        • Import 3D Assets
        • Colormap Editor
        • Relationship Editor
          • Start Workflow
            • Workflow
            • Relationship
              • Relationship (Array)
          • Relationships
            • Placements
            • Locate
            • Rotate
            • Neighbour
            • Drop
            • Center
            • Scale
            • Align
            • Attach
            • Put
        • Simulation Editor
          • Workflow
            • Category Visibility Threshold
          • Scene
            • 3D Asset
            • HDRI Lighting
            • Physical Sun/Sky
            • Ground Plane
            • Interior Scene
            • Room Type
          • Relationships
            • Load Relationships
          • Camera
            • Camera Configuration
            • Animated Track Camera
            • Curve-Based Camera
            • Room-Perimeter Camera
              • Category
            • Room-Based Camera
              • Additional Cameras
            • Position Camera
              • Conical
              • Spherical
              • Cubic
            • Orientation
              • Calculate Area of Interest
              • Point
            • Perspectival Camera Properties
            • Fisheye Camera Properties
          • Manipulators
            • Camera Manipulators
              • Override Camera Target
              • Override Camera Position
              • Near IR (Approximation)
              • Track Camera to Object
                • Camera Path Settings
            • Light Manipulators
              • Randomize HDRI Background
              • Modify Light Strength
              • Place Lights
                • Light Object (Bbox)
                • Light Object (Polar)
            • Material Manipulators
              • Randomize Material Color
              • Randomize Material Properties
              • Swap Materials
                • Import Material
                • Replace Material
                • Weighted Material
            • Delete Objects by Name
            • Pose Objects
              • Pose Set
              • Pose Pair
            • Constrain Object
            • Add Particle System
            • Load Object Along Curve
            • Replace
              • View settings
              • Load child object
          • Output
            • Additional Annotation Settings
            • Color Map
            • Camera Ex/Intrinsics
            • Keypoints
            • Normal Map
            • Depth Map
          • Post-Processing
            • Visualize COCO Annotations
            • Shot Noise
            • Glare
            • Disable shadows
        • Running Simulation
        • Save and Import
    • Seahaven Tutorials
    • Errors and Alerts
  • Simulation Manager
    • Simulation Manager
  • Simulation API
    • Simulation Structure
      • Sample Configuration
    • Modules
      • Structure Modules
        • Generator Class
          • generator.Room
            • Submodule: RoomTextureLoader
            • Submodule: RoomLightLoader
            • How To Query Room Properties
            • Sample Room Configuration
        • Loader Class
          • loader.ObjectLoader
      • Placement Modules
        • Placement Class
          • placement.PlacementHandler
            • Placement Rules
              • Settings
      • Lighting Modules
        • Lighting Class
          • lighting.HdriLoader
          • lighting.LightLoader
      • Camera Modules
        • Camera Class
          • camera.CameraSampler
          • camera.RoomCamera
            • Submodule: proximity_checks
            • Submodule: default_cam_param
      • Output Modules
        • Renderer Class
          • renderer.MultiRenderer
            • Submodule: RgbRenderer
            • Submodule: InstanceRenderer
            • Submodule: SemanticRenderer
            • Submodule: DepthRenderer
            • Submodule: BoundingBoxWriter
  • Management API
    • RESTful API
    • Python API
      • Example
    • Python API (V4 - BETA)
      • Installation
      • Merge Datasets
      • Methods
      • Dataset Analysis
      • Compression Artifacts
      • Domain Matching
      • Credentials
  • API Tutorials
    • Residential Interior Simulation
      • Upload Your Placement Rules
      • Modifying Your Camera
      • Modify Placement Rules
      • Run your Simulation
      • Tutorial Materials
        • Pipeline Configuration
        • Placement Rules
          • bedroom1.yaml
          • bedroom2.yaml
          • livingroom.yaml
          • floorPlan.yaml
Powered by GitBook
On this page
  • Anatomy of a simulation
  • What is a Module?
  • Pipeline Config Architecture
Export as PDF
  1. Simulation API

Simulation Structure

Simulations are configured through a series of YAML files and uploaded to the Lexset servers for processing.

PreviousSimulation ManagerNextSample Configuration

Last updated 3 years ago

This tutorial will explain the structure of these configuration files and how to edit them.

Anatomy of a simulation

Simulations are composed of both "pipeline configs" and "placement rules."

  • Pipeline configs are composed of key/value pairs that coordinate various aspects of running a simulation. Modules include the version of Lexset's software you are using, global variables (to be shared across the application), dependencies, and more. Modules contain all the necessary instructions to run your simulation. Including loading 3D assets, manipulating cameras, and exporting data.

  • Placement rules govern how objects relate spatially. For example, placement rules might describe how the television is mounted on a wall or the probability that a nightstand might be next to the bed in a bedroom.

What is a Module?

Pipeline Config Architecture

Every config contains four key/value pairs, namely "version", "global", "setup" and "modules".

{
  "version": 2, #Most recent version of Lexset is version 2
  "global": { #Set param values across all modules in the pipeline
    "all": {
      "temp_dir": "/tmp", # An example of how  to set a global variable
    }
  },
  "setup": { #Not required in most cases             
    "pip": [ 
      "h5py", 
    ]
  },
  "modules": [
  # This is where you will create your simulation
  # You will add and edit modules here. 
  ]
}
  • "version": Indicates the version of Lexset being used. The most recent version of Lexset is version 2. This should not be changed.

  • "global": Provides the ability to set param values across all modules in the pipeline. Within the parameter "all", global parameters are set by using the param name as its key and the param value as its value. This can be an empty dict if desired. For example:

  • "setup": A dict containing several values related to project setup. In the example above, pip modules are declared that might be necessary for the project.

  • "modules": A list of Modules to be used in the pipeline. Each module is formatted as follows:

{
  "module": "name.OfModule",
  "config": {
    "module_param1": "param1_val",
    "module_param2": "param2_val",
    "module_param3": "param3_val"
  }
}

Submodules

Some modules can have other modules attached to them.

{
  "module": "name.OfModule",
  "config": {
    "module_param1": "param1_val",
    "module_param2": "param2_val",
    "module_param3": "param3_val"
  }
  "submodule":{
    "submodule_param1": "param1_val",
    "submodule_param2": "param2_val"
  }
}

A Module serves to execute a single step in the render pipeline, whether it be populating the scene with objects (), manipulating camera positions (), or outputting files of various formats ().

loader
camera
writer
Pipeline config architecture