Skip to main content

An extensible library for generating 3D synthetic data with Blender that just works.

Project description

Leopardi

An extensible library for generating 3D synthetic data with Blender that just works. Requires Python >= 3.0, Blender >= 2.80

Leopardi aims to make it easy to create robust synthetic images by importing scenes into Blender. It takes care of the boring, strenuous, and difficult stuff so that you can devote your time to training and evaluating your machine learning models.

NOTE: Leopardi is currently in a pre-alpha change. Breaking changes (though unlikely) may occur.

Backgrounds

Backgrounds are imported from a specified directory (which defaults to ./backgrounds/) and merges them with the rendered image.

Camera

The Leopardi Camera extends Blender's default camera with a variety of options for choosing camera location, lens size, sensor size, and more.

Models

Similarly to backgrounds, models are imported from a specified directory (which defaults to ./models/) and are used to render a synthetic image.

Renderer

The renderer allows for specifying which labels to generate to accompany an image, which Blender rendering engine to use, as well as the resolution of the rendered images.

Examples

Below is a dead-simple demonstration of working with Leopardi on Windows to generate a single render.

import leopardi

BLENDER_DIR = "C:\Program Files\Blender Foundation\Blender 2.92"

camera = leopardi.LeopardiCamera()
lighting = leopardi.LeopardiLighting()
renderer = leopardi.LeopardiRenderer()
model_loader = leopardi.ModelLoader()
background_loader = leopardi.BackgroundLoader()

engine = leopardi.Leopardi(camera, lighting, renderer, background_loader, model_loader)
engine.render(1)

If we want to include a depth map and YOLO annotations with our renders, we do so as below

import leopardi

BLENDER_DIR = "C:\Program Files\Blender Foundation\Blender 2.92"

camera = leopardi.LeopardiCamera()
lighting = leopardi.LeopardiLighting()
renderer = leopardi.LeopardiRenderer(labels=["DEPTH", "YOLO"])
model_loader = leopardi.ModelLoader()
background_loader = leopardi.BackgroundLoader()

engine = leopardi.Leopardi(camera, lighting, renderer, background_loader, model_loader)
engine.render(1)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

leopardi-0.2.24.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

leopardi-0.2.24-py3-none-any.whl (29.2 kB view details)

Uploaded Python 3

File details

Details for the file leopardi-0.2.24.tar.gz.

File metadata

  • Download URL: leopardi-0.2.24.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.8

File hashes

Hashes for leopardi-0.2.24.tar.gz
Algorithm Hash digest
SHA256 0074d015993ac7eef4ffa04e09c290bdaa3aede1f479fef31404599b15798a56
MD5 d62a555213c19651c2e4e825a7694a44
BLAKE2b-256 a45b76cbd4a7889a29c015adf32ec4aff48209c19fe126340b13f9b774b69a94

See more details on using hashes here.

File details

Details for the file leopardi-0.2.24-py3-none-any.whl.

File metadata

  • Download URL: leopardi-0.2.24-py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.8

File hashes

Hashes for leopardi-0.2.24-py3-none-any.whl
Algorithm Hash digest
SHA256 b2f042ca9455f190d310f26f9672a077a035d9cff501144125e0736fbd95b3ef
MD5 c62914b58133f2268be846364fd6e012
BLAKE2b-256 47d0d34a7c470571584c160f0e94e503d5c00708bde98b5f22c7f3d87c842bc4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page