scene_synthesizer

scene_synthesizer: A Python Library for Procedural Scene Generation in Robot Manipulation - Published in JOSS (2025)

https://github.com/nvlabs/scene_synthesizer

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation ·

Repository

Python package to create manipulation scenes.

Basic Info
Statistics
  • Stars: 183
  • Watchers: 7
  • Forks: 19
  • Open Issues: 1
  • Releases: 14
Created over 1 year ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License Citation Authors

README.md

PyPI - Version Static Badge DOI

scene_synthesizer

Banner

A python package to generate manipulation scenes. Check the documentation page for detailed installation instructions, API, and examples.

Installation

This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use (e.g. OpenUSD license).

Via pip

pip install scene-synthesizer[recommend]

Via git

```

create and activate conda env or venv

git clone https://github.com/NVlabs/scenesynthesizer.git cd scenesynthesizer/ pip install -e.[recommend] ``` See the documentation for detailed installation instructions.

Quick Start

```python import scenesynthesizer as synth import scenesynthesizer.procedural_assets as pa

create procedural assets

table = synth.proceduralassets.TableAsset(width=1.2, depth=0.8, height=0.75) cabinet = synth.proceduralassets.CabinetAsset(width=0.5, height=0.5, depth=0.4, compartmentmask=[[0], [1]], compartmenttypes=['drawer','drawer'])

load asset from file

Make sure to first download the file:

wget https://raw.githubusercontent.com/clemense/kitchen-assets-cc-by/refs/heads/main/assets/chair/meshes/chair.{mtl,obj}

chair = synth.Asset('chair.obj', up=(0, 0, 1), front=(-1, 0, 0))

create scene

scene = synth.Scene()

add table to scene

scene.add_object(table)

put cabinet next to table

scene.addobject(cabinet, connectparentanchor=('right', 'front', 'bottom'), connectobj_anchor=('left', 'front', 'bottom'))

put chair in front of table

scene.addobject(chair, connectparentid='table', connectparentanchor=('center', 'front', 'bottom'), connectobj_anchor=('center', 'center', 'bottom'))

randomly place plate and glass on top of table

scene.labelsupport('tablesurface', objids='table') scene.placeobject('plate', synth.proceduralassets.PlateAsset(), supportid='tablesurface') scene.placeobject('glass', synth.proceduralassets.GlassAsset(), supportid='table_surface')

preview scene in an opengl window

scene.show()

export scene in various formats

scene.export('scene.usd') scene.export('scene.urdf') ```

License

The code is released under the Apache-2.0 license.

Contributions

Found a bug? Help us by reporting it! Want a new feature? Create an issue! Made something useful or fixed a bug? Start a PR! Check the contribution guidelines.

How can I cite this library?

@article{Eppner2024, title = {scene_synthesizer: A Python Library for Procedural Scene Generation in Robot Manipulation}, author = {Clemens Eppner and Adithyavairavan Murali and Caelan Garrett and Rowland O'Flaherty and Tucker Hermans and Wei Yang and Dieter Fox}, journal = {Journal of Open Source Software} publisher = {The Open Journal}, year = {2024}, }

Owner

  • Name: NVIDIA Research Projects
  • Login: NVlabs
  • Kind: organization

JOSS Publication

scene_synthesizer: A Python Library for Procedural Scene Generation in Robot Manipulation
Published
January 28, 2025
Volume 10, Issue 105, Page 7561
Authors
Clemens Eppner ORCID
NVIDIA Research
Adithyavairavan Murali
NVIDIA Research
Caelan Garrett ORCID
NVIDIA Research
Rowland O'Flaherty
NVIDIA Research
Tucker Hermans ORCID
NVIDIA Research
Wei Yang ORCID
NVIDIA Research
Dieter Fox ORCID
NVIDIA Research
Editor
Chris Vernon ORCID
Tags
Robotics Scene generation Synthetic data Dataset creation Neural networks Indoor Scene Simulation Pipeline

Citation (CITATION.cff)

cff-version: "1.2.0"
authors:
- family-names: Eppner
  given-names: Clemens
  orcid: "https://orcid.org/0000-0002-5398-4037"
- family-names: Murali
  given-names: Adithyavairavan
- family-names: Garrett
  given-names: Caelan
  orcid: "https://orcid.org/0000-0002-6474-1276"
- family-names: O'Flaherty
  given-names: Rowland
- family-names: Hermans
  given-names: Tucker
  orcid: "https://orcid.org/0000-0003-2496-2768"
- family-names: Yang
  given-names: Wei
  orcid: "https://orcid.org/0000-0003-3975-2472"
- family-names: Fox
  given-names: Dieter
  orcid: "https://orcid.org/0009-0009-4694-9127"
contact:
- family-names: Eppner
  given-names: Clemens
  orcid: "https://orcid.org/0000-0002-5398-4037"
doi: 10.5281/zenodo.14736778
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Eppner
    given-names: Clemens
    orcid: "https://orcid.org/0000-0002-5398-4037"
  - family-names: Murali
    given-names: Adithyavairavan
  - family-names: Garrett
    given-names: Caelan
    orcid: "https://orcid.org/0000-0002-6474-1276"
  - family-names: O'Flaherty
    given-names: Rowland
  - family-names: Hermans
    given-names: Tucker
    orcid: "https://orcid.org/0000-0003-2496-2768"
  - family-names: Yang
    given-names: Wei
    orcid: "https://orcid.org/0000-0003-3975-2472"
  - family-names: Fox
    given-names: Dieter
    orcid: "https://orcid.org/0009-0009-4694-9127"
  date-published: 2025-01-28
  doi: 10.21105/joss.07561
  issn: 2475-9066
  issue: 105
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 7561
  title: "scene_synthesizer: A Python Library for Procedural Scene
    Generation in Robot Manipulation"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.07561"
  volume: 10
title: "scene_synthesizer: A Python Library for Procedural Scene
  Generation in Robot Manipulation"

GitHub Events

Total
  • Create event: 43
  • Release event: 12
  • Issues event: 18
  • Watch event: 167
  • Issue comment event: 45
  • Push event: 45
  • Public event: 1
  • Pull request event: 6
  • Fork event: 17
Last Year
  • Create event: 43
  • Release event: 12
  • Issues event: 18
  • Watch event: 168
  • Issue comment event: 45
  • Push event: 45
  • Public event: 1
  • Pull request event: 6
  • Fork event: 17

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 57
  • Total Committers: 1
  • Avg Commits per committer: 57.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 57
  • Committers: 1
  • Avg Commits per committer: 57.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Clemens Eppner c****r@n****m 57
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 9
  • Total pull requests: 5
  • Average time to close issues: 20 days
  • Average time to close pull requests: 28 days
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 3.22
  • Average comments per pull request: 2.4
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 9
  • Pull requests: 5
  • Average time to close issues: 20 days
  • Average time to close pull requests: 28 days
  • Issue authors: 5
  • Pull request authors: 2
  • Average comments per issue: 3.22
  • Average comments per pull request: 2.4
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • AlexanderFabisch (5)
  • RussTedrake (2)
  • Kashu7100 (1)
  • dtotsila (1)
  • Mechazo11 (1)
Pull Request Authors
  • Kobayashi-z (4)
  • AlexanderFabisch (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 4,118 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 51
  • Total maintainers: 1
pypi.org: scene-synthesizer

Quickly generate a random articulated scene for robotics research and applications

  • Versions: 51
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4,118 Last month
Rankings
Dependent packages count: 10.0%
Average: 33.2%
Dependent repos count: 56.4%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/trigger_docs.yml actions
Dockerfile docker
  • gitlab-master.nvidia.com 5005/srl/dockers/ubuntu1804_py37 build
pyproject.toml pypi
setup.py pypi