Planned Features

  • Add support for more object datasets (ideas are welcomed, just open an issue with a dataset you want to see integrated)

  • Support non-rigid physics simulation

  • Improve performance

  • Deprecate Global Storage

Version History

Version 2.7.0 26th January 2024

  • upgrades to blender 3.5.1 (#788)

  • adds helper methods for easy 3D-2D projection/unprojection, including bproc.camera.depth_via_raytracing(), bproc.camera.pointcloud_from_depth(), bproc.camera.project_points(), bproc.camera.unproject_points(), see also point_cloud example (#1045)

  • removes support for obsolete .yaml configuration files (#962)

  • speeds up bop writer for large number of objects - for 300 objects, the bop writer execution time reduces from 60s to 12s with 8 cores (#996)

  • adds warning if hidden objects are given to bop writer (#998)

  • skip transparent cc materials per default (#1004)

  • rework of duplicate(): allows linking and keeps parent relative transformation matrix (#1012, thanks @AndreyYashkin)

  • moves hide() and is_hidden() to Entity class (#1015, thanks @AndreyYashkin)

  • fixes optical flow output key being overwritten by RGB (#963)

  • fixes --custom-blender-path on windows (#972)

  • adapts downloading cc_textures to new naming scheme (#976, #993)

  • fixes issue in light projector (#995, thanks @beekama)

  • fixes skipping annotation indices when appending coco annotations (#1024)

  • fixes frame offset in rendering progress bar (#1038, thanks @burcam)

Version 2.6.2 6th December 2023

  • Fixes blender download

Version 2.6.1 26th August 2023

  • Fixes pyrender usage on windows, EGL / headless rendering is now only used on linux

Version 2.6.0 17th August 2023

  • BOP toolkit is now tightly integrated into the the BOP writer:

    • Ground truth masks and coco annotations are now directly calculated when calling the BOP writer

    • Instead of using vispy for renderings the masks, we switched to pyrender which speeds up the process a lot

  • rendering/physics log is now hidded per default and instead a pretty progress bar is shown

  • upgrades to blender 3.3.1

  • its now possible to render segmentation images in stereo mode

  • adds method to MeshObject to convert to trimesh

  • fixes rendering on cpu-only (thanks @muedavid)

  • adds support for loading .glb/.gltf meshes (thanks @woodbridge)

  • adds support for loading .fbx meshes (thanks @HectorAnadon)

  • allows setting rotation for hdri backgrounds (thanks @saprrow)

  • incorporate location changes to urdf local2world matrix calculations

  • allows setting brightness for hdri backgrounds

  • bproc.object.sample_poses_on_surface() now hides objects which could not be placed instead of deleting them

  • removes duplicate categories and fixes segmentation id when writing scene_gt.json annotations in BOP writer (thanks @hansaskov)

  • get_all_cps() now returns a proper dictionary (thanks @andrewyguo)

  • replaces deprecated np.bool with bool (thanks @NnamdiN)

  • refactoring of haven download script to support multithreading (thanks @hansaskov)

  • fixes loading stl files in urdf files

  • loading a .ply objects automatically sets the materials to its vertex color if no texture file was found.

  • username is now retrieved in a more platform independent way (thanks @YouJiacheng)

  • coco annotations are now nicely formatted (thanks @andrewyguo)

  • object pose sampler now correctly sets rotation if mode on failer was set to initial_pose

Version 2.5.0 20th September 2022

  • segmentations are now done in the same call as any other render call, avoiding the loading of the objects for each pose

  • added the kinect azure noise model, allowing for the creation of more realistic depth images

  • added a spotlight intersection mode, which places a spotlight in the world without intersecting with the current camera frustum, while it focuses on the middle of the camera frustum, creating hard lighting situations

  • add an importer for the MatterPort3d dataset

  • the key of custom properties now can no longer have the same name as any attribute of the blender_obj. Custom properties do not need to start with cp_ anymore

  • add a new paper designated for the journal of sensors

  • we now use pylint to clean up all code smells and add documentation to all functions

  • the bop loader now also supports the hope dataset

  • separate the init and clean up functions

  • it can now be specified which GPU to use for rendering, if multiple are available

  • rewrite the ambient CG download script, allowing resuming the download

  • turn of the cycle denoiser causing issues in certain settings

  • add a random walk feature, which allows simulating a camera shaking or POI drift

  • the duplicate and delete fcts now support duplicating all children as well, we added a get_children fct as well

  • renaming get_rotation to get_rotation_euler and adding functions for setting the rotation matrix

  • fix a bug in the move_origin_to_bottom_mean fct.

Version 2.4.1 22th July 2022

  • allow writing poses for robot links in the BopWriter

  • loading .obj files now uses the faster importer

  • fix a pip install bug

  • fix a bug in the LinkUtility of the URDF loader

Version 2.4.0 20th July 2022

  • add urdf support:

    • this enables the simulation of robotic arms with forward and inverse kinematics

    • add an example to show of how this works

  • add a new face slicer option, making it easier to slice the top of a table away for placing objects on them

  • add a new example for sampling objects in 3D Front scenes

  • switch to vhacd version 4.X allowing for faster decompositions than before, speeding up the simulation

  • add an option to link blend files instead of loading them (faster, but objects can not be changed after linking)

  • add a new replica loader, loading semantic objects instead of just one mesh for the whole scene

  • add basic support for apple silicion (M1, M2), this might still mean that some packages have to be installed on their own afterwards

  • add return random material to the load haven material function, the function returns also now the full loaded list of materials

  • add new function to create a material based soley on a texture (Path or bpy.types.Image)

  • upgrade to blender 3.2.1

  • reduce the memory demand of the semantic segmentation by fixing a small bug

  • fix a bug where the coco annotation writer wouldn’t work if the frame_start is not zero

  • fix a bug where writing alpha images in the bop writer did not work

  • fix a bug where pip would reinstall packages all the time

  • fix a bug where on windows the pip path would be wrong

Version 2.3.0 22th March 2022

  • upgrade to blender 3.1.0

    • add support for Apple Silicon and GPU on Mac OS 12.3

  • add new stereo image projector, making it easier to simulate SGM depth

  • add quickstart command blenderproc quickstart

  • add gif writer

  • function to scale the UV texture coordinates of a MeshObject

  • object.sample_poses() now also supports a mode_on_failure, which allows to control where the object is placed if the sampling fails @marcelhohn

  • improve error message for python 2.X

  • bug fixes:

    • set_origin() doesn’t change the cursor position anymore @marcelhohn

    • vis hdf5 --save now also supports stereo images

    • improve error message when rendering with no camera poses

    • fixed a bug where the windows path was incorrect for blender @marcelhohn

    • fixed a bug when the category name is an int during coco vis

    • load_haven_mat() now loads more materials, not all materials have been used before @Victorlouisdg

Version 2.2.0 17th December 2021

  • switch blender version to 3.0.0 instead of 2.93.0

    • we now rely on Cycles X, making the rendering much faster than before

    • this also depreactes the usage of bproc.renderer.set_samples(), this is now replaced with bproc.renderer.set_noise_threshold(). This fcts allows to set the desired noise ration on a pixel basis, giving a much higher control to ensure a certain consistent noise level in the whole image.

    • it is still possible to limit the amount of samples per pixel with a new function named: bproc.renderer.set_max_amount_of_samples()

    • as the whole image is now rendered at once we removed the auto-tile addon

    • the BLENDER denoiser is no longer available, we recommend using the INTEL denoiser.

  • remove the argument keep_using_base_color from bproc.lighting.light_surface() and Material.make_emissive(), now either a emission color or the base color is used

  • changes for the bop integration

    • install bop_toolkit automatically

    • add BlenderProc2 python scripts for BOP challenge

    • allow to pass list of objects to write_bop for which to save pose annotations

    • divide load_bop() into load_bop_objs(), load_bop_scene() and load_bop_intrinsics() to decouple the functionalit

  • fix a bug after uninstalling pip packages they were not truly removed

Version 2.1.0 17th November 2021

  • add new lens distortion module, adding the possibility to simulate k1, k2, k3, p1 and p2 parameters.

  • improve usability of distance rendering, make it the default in all examples

  • distance and depth rendering can now be done antialiased and non-antialiased

  • add a nocs renderer: paper

  • upgrade the shell sampler and rework the usage and documentation

  • move run.py to cli.py and support the same CLI arguments as for blenderproc ...

  • make caching of pip installs the default (faster start-up) and add option to reset them if needed

  • refactor the vishdf5 script using the same content now for saveAsImg

  • clean up the scripts folder and move it completely into blenderproc

  • include all packages (like vhacd) in the pip install package

  • fix bug with light internal blender_obj after an undo operation

  • add OPTIX as denoiser option

  • add possibility to read jpeg

  • fix use_ray_trace in bproc.sampler.upper_region

  • added an exception if not the correct python environment is used

Version 2.0.0a7 13th October 2021

  • fix Light class to work properly with bpy.types.Light in load_blend

  • fix the stereo matching example add missing parameter to fct. call

Version 2.0.0a6 13th October 2021

  • moved to a full python API support (.yaml files are still supported)

    • blenderproc can now be installed via pip: pip install blenderproc

    • complete new structure to most of the files

    • offer new command line interfaces: blenderproc run, blenderproc debug, blenderproc vis and many more

    • optional/flag arguments can now be used in the users python script

  • adds feature to render multiple times in one session (see example advanced/multi_render)

  • added tutorials to get easy start with BlenderProc

  • adjusted all examples to explain how the python API would be used there

  • restructured the documentation

  • fixed a bug with the view layer update, which wasn’t done before the scene coverage score was calculated, which caused problems in the 3D-FRONT examples.

  • removed a lot of view layer update calls, which makes the whole execution faster, by manually calculation the matrix_world.

  • vertex colors can now be used with a Principled BSDF shader

  • all images are now moved into a seperate image/ directory

  • all functions now use type hints

Version 1.12.0 23th July 2021

  • switch to blender 2.93, with that textures are now stored on the GPU between different frames increasing the speed drastically

  • moved a lot of modules to the python API

    • all camera samplers

    • all writer classes

    • sampler and getters

    • surface lighting

    • random room constructor

  • all outer API functions work now with numpy arrays instead of mathutils classes

  • regroup all examples to make them more easily accessible

  • refactoring of the LabelIdMapping class

  • sampler.Path now has a return_all and random_samples option

  • add support for the new 3D front labels and script to find them more easily in the future

  • AMASS now also supports torch=1.8.1+cu111, to better support modern GPUs

  • refactor download script for haven

  • added a flag to not center objects from the ShapeNet dataset

  • added a platform independent unzipping function to solve the problems on windows

  • add function to return the default_value or the connected node based on the input name of a BSDF shader node of a material

  • fix for MacOS, where the blender version was not used in prior installations, leading to the problem that users had to remove blender on their own

  • the writer now correctly writes the fov if asked

Version 1.11.1 18th May 2021

  • fix a bug on mac os, where the blender python path has changed

  • fix a bug in the BlenderLoaderModule which caused that the setting of custom properties was not successful

Version 1.11.0 11th May 2021

  • BlenderProc now can be executed via a python script (experimental, not all modules are supported yet)

  • python API extension for the following modules:

    • the Entity & Material Manipulation

    • the WriterUtility, Hdf5Writer, BopWriterUtility, CocoWriterUtility

    • the PostProcessing

    • the physic positioning, PoseSampler

  • debugging can now be done via the command line, by just typing –debug after a BlenderProc call

  • add automatic convex decomposition to speed up physics, object decompositions will be cached

  • add a jupyter notebook example for google colab

  • add a BasicEmptyInitializer module, which helps creating simple empty objects, these can be used for using a depth of field

  • add a depth_of_field option to the CameraInterface (thanks to cuteday)

  • add a hide module, so that certain objects can be hidden in a selected range of frames (thanks to Sainan Liu)

  • add an option to change the computation type via the config

  • blender 2.92 changed depth and distance once again, we use it correctly now and added an explanation

  • added a diffuse rendering mode

  • added a key frame API

  • added a default config, which can be easily changed

  • ObjectPoseSampler now can check also against only a limited set of objects

  • ObjectReplacer now stops if no objects are left to replace

  • SurfaceLighting now reuses the TextureLess material

  • preloading in CCTexture now also works perfectly for textures which use an alpha texture

  • python packages now are installed by specifying the required packages at the top of each file

  • added an example for pasting objects onto random backgrounds

  • added a flag to merge BlenderKit objects, while loading, they will be named after the blenderkit file

  • reintroduce persistent transformation scaling to improve stability

  • improve the clean up at the start of BlenderProc

  • fixed a bug in the Front3DLoader, which avoided the correct setting of the custom properties

  • fixed a bug with the once_for_all mode for the randomize materials fct.

  • add a simple rerun script to show how BlenderProc is used for creating a diverse dataset

  • switch to blender 2.92

Version 1.10.0 24th February 2021

  • rewritten the BlendLoader, which is now able to only load objects of a given type, this will break existing config files as the load_from parameter has been replaced by datablocks and obj_types

  • the MaterialManipulator can now overlay/mix a texture with a selected material

  • the MaterialManipulator can now mix/add a material with another selected material, ideal for creating surface imperfections on other materials

  • the MaterialManipulator can now add a layer of dust on materials, which simulates dust flakes on top of the object, there also exists now an example for it

  • amount_of_repetitions can now be used with providers

  • full integration of the blenderkit module, including modules and textures with an example

  • LoaderInterface now offers an auto shading mode

  • the CCMaterialLoader uses now a preselected list of probably useful materials by default to avoid non tileable materials

  • restructure loaders and move their functionality to the utilities (necessary for the API changes for 2.0.0)

Version 1.9.0 10th February 2021

  • all Loader now support setting the add_material_properties of the newly loaded objects

  • each new .hdf5 file, will contain the git commit hash of BlenderProc

  • introduce LightUtility -> this fulfills our long time goal giving BlenderProc a python API

  • changed the default stereo mode from OFFAXIS to PARALLEL

  • adapt to the changes made to 3D Front, as 3D Front does not have a version number, we support the newest version and a version from Summer 2020, if you have errors please open an issue

  • getter.Material can now return all materials of a list of objects, selected via the getter.Entity

  • add a cf_add_* fct to the MaterialManipulator, which works similar to the cf_set_* fct.

  • add check_empty to getter.Entity and to getter.Material to throw an error if the returned list is empty

  • added a cf_add_uv_mapping/forced_recalc_of_uv_maps option to force to recalculate the uv map of materials, which already have a uv map

  • added option that randomized materials in cf_randomize_materials are added to objects without any materials

  • change that cf_randomize_materials inside the EntityManipulator now deals with lists and not single elements as before

  • add auto download for the imageio library, if that fails an exception is thrown with instructions on how to do this yourself

  • CameraInterface now supports setting poses for a certain frame -> also needed for the python API

  • changed the depth_scale default value in the BopWriter from 0.1 to 1.0, added an option to change via the config

  • changed the ignore_dist_thres default value in the BopWriter from 5.0 to 100.0

  • improved the ShapeNet example, by adding a ShapeNetWriter, which saves which object was used in the .hdf5 container

  • fixes a bug with the separation of ceilings and floor objects in SceneNet scenes

  • fix a bug, where the add_alpha_channel_to_texture fct. couldn’t deal with empty material sockets

  • fix the pyhsics_positioning example by using the collision_shape="MESH"

  • fix a bug, where empty material_sockets would have been returned in the getter.Material

  • fix vis_coco_annotation script, didn’t work anymore after the segmentation map rewrite

Version 1.8.2: 27th January 2021

  • added stereo mode to SegMapRenderer

  • switched to using imageio for reading images, as the blender image loading API does not support .exr files written in stereo mode

  • added option to write world-to-cam transformations to the BopWriter

  • CocoAnnotationWriter does now in the polygon format not write empty segmentation lists anymore and uses iscrowd:0

  • type hints are now added to the generated documentation

  • extracted reusable rendering code from the renderer modules into utility classes

Version 1.8.1: 14th January 2021

  • fixed a bug in the WriterInterface

  • fixed cc_texture downloader script in the case of weird urls

  • fixed creating the ceiling when there are rounding errors in the vertices coordinates

Version 1.8.0: 11th December 2020

  • massively improve the documentation, by adding using github pages for our documentation: https://dlr-rm.github.io/BlenderProc/index.html

  • add a RandomRoomConstructor:

    • This module can generate random floor plans of single rooms, with arbitrary extrusions.

    • It can also randomly place loaded objects without collision inside of the room

    • By using CCTexture it is also possible to assign random materials to the floor, wall and ceiling

  • remove the SceneNetLighting module and replace it with the SurfaceLighting module, to make it more general

  • add support for the haven websites and add an example and corresponding loaders:

  • add option to the CameraSampler to ensure that a certain object is always in the camera view

  • improve the FloorExtractor to extract the floor and ceiling in SceneNet and other scenarios

  • improve the skin tones for AMASSLoader

  • add a proper scaling to the ikea dataset, by converting all files into SI units

  • fix the ikea dataset downloading, by removing and splitting broken pieces, we advise to redownload the dataset

Version 1.7.0: 1st December 2020

  • switch to blender 2.91

  • added an example of how to set object poses via a transformation matrix and set camera extrinsics / intrinsics via a transformation matrix and a K matrix

  • added camera utility class which makes it easier to set and retrieve intrinsics via any K matrix

  • added loader for Pix3D dataset

  • added loader for AMASS dataset

  • added loader for the ikea dataset

  • added community driven support for Windows

  • added motion blur and rolling shutter support

  • fixed collision checks between meshes, so the ObjectPoseSampler is not generating colliding object poses anymore

  • fixed cleanup of temporary directories in the case of an error

  • set pixel origin to the center of a pixel, slightly affecting intrinsics and depth outputs

  • fixed coco annotations if background is not visible

  • added support for transparent background

  • fixed wrong image size in coco annotations

  • fixed blender proc if non-english language is configured

  • when loading ply files a default material is now added

  • fixed setting matrix_world via the entity manipulator

  • fixed the scenenet examples (corrects physics positioning and camera sampling)

Version 1.6.1: 25th August 2020

  • fixed bbox computation in the Coco Annotations

  • fixed visualization of Coco Annotations

  • add set properties fct. to BlenderLoader

  • adds a script to download all materials from BlenderKit (not used yet)

Version 1.6.0: 24th July 2020

  • added an TextureLoader, which can load images and store them as blender textures

  • added a provider to access these loaded textures

  • removed the MaterialRandomizer

  • moved the whole functionality from the MaterialRandomizer to the EntityManipulator

  • fixed a bug in the SUNCG material loading, where for a few objects the diffuse material was confused with an alpha material

  • add set_properties for Front3DLoader

  • fixed the min_interest_score that it works with more than just SUNCG

  • fix a bug in the visHdf5 scripts with distance maps which had several channels

  • improved documentation for min_interest_score and check_pose_novelty_translation

Version 1.5.1: 17th July 2020

  • adding support for 3D-Front: https://tianchi.aliyun.com/specials/promotion/alibaba-3d-scene-dataset

  • added to example on how to use 3D-Front

  • fixed visualization of newly generated SegMapRenderer results

  • fixed combining several coco annotations

  • added option for the “class” key for default values in the SegMapRenderer

  • fixed a bug in the SegMapRenderer when used in debug mode

Version 1.5.0: 14th July 2020

  • rename depth to distance (this is the difference between taking at each pixel the Z coordinate (in the camera coordinate system) or the distance from the optical center, as sensors usually produce depth and not distance, we changed this)

  • create postprocessing module to calculate the depth out of the distance image

  • rewriting of the SegMapRenderer, it now supports the mapping of any attribute or custom property of an object to an image or a csv file

  • reworking of the used coco examples to better work with this new SegMapRenderer

  • adapting CocoAnnotationsWriter to write category_ids which must be defined in a Loader or in a .blend file

  • adding support for a supercategory inside of the coco annotations tool (useful for bop dataset names)

  • add texture provider, which can generate random textures, which can be used in a displacement modifier

  • added to the EntityManipulator:

    • option to automatically generate a UV mapping for an object

    • added option for displacement modifier adding to objects

    • added an example for the entity_displacement_modifier usage

  • the sampler.Value now supports gaussian sampling

  • reworked some parts of the Hdf5Writer, to better work with depth and distance

  • added a check to the CocoUtility to avoid that the bounding box has a area of zero

  • remove the provider.ContentGetter as it was confusing, now it works directly without it

  • add an Interface in the naming of some modules, if they are not supposed to be run by the pipeline directly

  • change the sample amount for the FlowRenderer to 1 as a higher sampling density integrates over several objects in one pixel

  • added a step function in the alpha mode of the renderer to avoid artifacts, when rendering semantic segmentations

  • support for setting different fx/fy values in the camera module

  • remove the pixel_aspect_x/pixel_aspect_y/resolution_x/resolution_y from the renderer is now in Camera

  • fixed a bug when the unknown texture folder in the scenenet dataset was not created before

  • improved the loading of camera parameters from files

  • added a feature for supporting changes of the “category_id” for the WorldManipulator

  • improved the visHdf5/saveHdf5/generate_nice_vis scripts

  • switches to blender 2.83.2

Version 1.4.1: 3rd June 2020

  • switches to blender 2.83

  • adds support for adaptive sampling (Renderer/use_adaptive_sampling) -> can decrease rendering time for complex scenes if used

  • add random_samples option for entity getter

  • add friction/damping for physics positioning

  • add JPG save option for RgbRenderer

  • add uniform elevation sampling in Shell Sampler

  • add in plane rotation option for look_at/direction camera rotations

  • add postprocessing.Dist2Depth to convert Blender distance images to depth images

  • UpperRegionSamlper can sample in relative area on selected face

  • improve physics by using convex hull and box collision shapes

  • obj.rigid_body.use_margin = True, to actually use margin

  • add a Smooth Shader cf to entityManipulator

  • BopWriter improvements, outputs chunks of 1000 images

  • exclude objects like planes from proximity checks

  • fix transparency bounces

  • add custom property cp_bop_dataset_name

  • add bop_challenge example with all configs used to render the provided synthetic data

  • add bop_object_on_surface_sampling for sampling upright objects

  • docu improvements and step by step explanations of config files

Version 1.4.0: 15th May 2020

  • added the NormalRenderer functions to the RGBRenderer saves a render call, when generating normal images

  • added a script to automatically download all PBR assest from https://cc0textures.com/

  • add CCMaterialLoader, which can load all downloaded materials from cc0textures, to randomly replace them later

  • add support for ShapeNet

  • add support for SceneNet, including the lighting, which is modeled after the SUNCG lighting module.

  • massive docu improvements, added a type to all config values and a default value if one is there

  • added examples for:

    • bop_object_physics_positioning

    • bop_object_pose_sampling

    • bop_scene_replication

    • on_surface_object_sampling

    • scenenet

    • scenenet_with_cctextures

    • shapenet

    • shapenet_with_scenenet

    • shapenet_with_suncg

    • suncg_with_improved_mat

  • added object OnSurfaceSampler (similiar to the phyiscs but faster and places object only on the bb)

  • added WorldManipulator (can change custom properties of the world, like the category_id)

  • switched to config version 3.0

    • global initialized values are now in the main.Initializer

    • added a GlobalStorage to save variables over module boundaries

  • add VisNormalImage for debugging mode, which visualizes a depth & normal image in blender

  • material selectors now also support AND and OR conditions

  • add automatic detection of optix graphics cards

  • added a min interest score for the CameraSampler

  • added a novelty pose checker for the CameraSampler, to avoid clustering of camera poses

  • global config values are now not longer added to the modules config, only in the event that there is no module found the global config is checked

  • rename SUNCG materials to the textures they load, makes selecting them easier

  • SUNCG materials are now shared over objects, if they share the same properties, also true for lights

  • rewrite of MaterialRandomizer to make use of the new cc0textures

  • added a Bop Writer to write out the current scene config in the BOP format

  • add the solidify modifier to the options of the EntityManipulator

  • add a PartSphere sampler to e.g. only sample in the upper half of a sphere

  • add a script to download scenenet to make the use of it even easier

  • add easy option to change specular values for materials with the MaterialManipulator

  • added the option to make runs deterministic by introducing a env variable: BLENDER_PROC_RANDOM_SEED

  • added a Basic Color Sampler

  • improved the capabilities of the DiscSampler

  • now all custom properties should be accessed in the config via: “cp…” for custom functions: “cf

  • add texture support for ycbv objects in the BopLoader

  • change the default results of the SegMapRenderer to NYU ids instead of the row-index in the .csv file.

Version 1.3.0: 25th March 2020

  • added Optical Flow Renderer

  • added Stereo Global Matching Renderer (SGM) -> which takes two color images and produces “non-perfect” depth images

  • added option for SGM to also write disparities

  • added a new material manipulator

  • added a material getter to select materials based on certain conditions

  • combined BOP with this repo -> now the only difference is the readme

  • added contribution guidelines -> which include commit message guidelines and branch name guidelines and much more

  • matrices can now be read via the config file

  • added a cached options to the import objects

  • added request custom property for the entity getter (to ensure that a custom property is changed)

  • added ReplaceObject

  • added option that in debugging the RgbRenderer get executed except for the actual rendering part all others are executed and then undon

  • added collision mesh source to the physics module

  • added option to coco annotations to append the output to an existing coco file

  • added bounding box selection to getter.Entity and also just axis aligned hyper plane checks

  • added a 1D sampler for float/int/bool

  • added postprocessing to the example to reduce the amount of channels in the depth image

  • added visualization for stereo and optical flow

  • added an oil filter for the SGM result

  • added a path sampler

  • added a blender collection loader

  • added the RockEssentialLoader based on the RockEssential dataset

  • added index to getter.Entity to request only a certain element of the selection

  • fix three bugs in the physics module, where the mass_scaling was always used and the location not properly updated

  • fixed a bug where color images where wrongly saved in float now back to uint8

  • fixed a bug in the coco annotations writer + adapting of the example

  • fixed bug in load_image, where the dimensions where switched

  • fixed a bug when “home_local” is not available than “home” is used

  • fixed bug where run.py can only be run from the main folder

  • fixed pypng version in bop example

  • fixed bug where the volume calculation for bounding boxes did not work as expected

  • refactored the disc sampler

  • cleaned up all readmes

Version 1.2.0: 31th January 2020

  • added more detailed examples to most of the important modules

  • adapt CoCo annotation tools to newer Version of SegMapRenderer

  • background class is now zero when doing instance segmentation

  • renamed getter.Object to getter.Entity, same for ObjectManipulator is now named EntityManipulator

  • entity conditions do now work with AND and OR connections

  • strings are now matched with fullmatch instead of search in entity conditions

  • conditions now support bool custom properties

  • material randomizer now supports getter.entity providers

  • added UpperRegionSampler, which can sample on the up surface of the bounding box of an object

  • scripts now support execution with python3.x

  • physics are now saved with bool instead of active and passive

  • physics options for simulator added

  • remove version number -> only blender version 2.81 supported

  • the ObjectLoader can now load several objects at once and set their properties with "add_properties"

  • moved more functionality in the camera sampler instead of having in specific sampler to make writing a new one easier

  • added a SO3 Sampler for rotation sampling

  • change the “name” of modules in the config to “module” and “provider” depending on the case

  • added MacOS support (but only for CPUs, GPU support on MacOS is not available)

  • added this changelog

  • fixes:

    • fixed a problem that the check_bb_intersection did not work right in all cases (Bounding box check)

    • fixed a problem with the check_intersection fct., where the reference coordinate system was not always right.

    • fixed a bug with the SUNCG lighting in RGB images

Version 1.1.0: 16th January 2020

  • Added provider, which can be executed inside of different modules, examples:

    • Samplers of values

    • Getters of objects, specified on one condition (for example the name)

  • Added object manipulators, these can change selected objects attributes and custom properties

  • Added physics positioning, objects can be either “active” or “passive” and then interact with each other

  • Added ObjectPoseSampler sampled collision free poses of all objects

  • Added one ObjectLoader, which deals with all kinds of objects

  • Added a camera object sampler to sample cameras and objects at the same time

  • Redone the SegMapRenderer to fix bug in instance and class segmentation

  • Added coco annotations writer

  • Added version number to config files

  • Added more documentation

  • Added more examples

Version 1.0.0: 25th October 2019

  • Added Pipeline, Modules and Config

  • Added CameraModules, with different sampler for SUNCG and replica

  • Added LightModules, with different samplers also for SUNCG

  • Added Loader for objects

  • Added Loader for replica and SUNCG

  • Added Hdf5 Writer

  • Added camera-, light-, object state writer

  • Added MaterialRandomizer

  • Added Shell-, Sphere- and Uniform3DSampler

  • Added debug script