scene_synthesizer
scene_synthesizer: A Python Library for Procedural Scene Generation in Robot Manipulation - Published in JOSS (2025)
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
Repository
Python package to create manipulation scenes.
Basic Info
- Host: GitHub
- Owner: NVlabs
- License: apache-2.0
- Language: Python
- Default Branch: main
- Homepage: https://scene-synthesizer.github.io/
- Size: 26.1 MB
Statistics
- Stars: 183
- Watchers: 7
- Forks: 19
- Open Issues: 1
- Releases: 14
Metadata Files
README.md
scene_synthesizer

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
- Website: http://research.nvidia.com
- Repositories: 166
- Profile: https://github.com/NVlabs
JOSS Publication
scene_synthesizer: A Python Library for Procedural Scene Generation in Robot Manipulation
Authors
NVIDIA Research
NVIDIA Research
Tags
Robotics Scene generation Synthetic data Dataset creation Neural networks Indoor Scene Simulation PipelineCitation (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
Top Committers
| Name | 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
- Homepage: https://github.com/NVlabs/scene_synthesizer
- Documentation: https://scene-synthesizer.readthedocs.io/
- License: Apache-2.0
-
Latest release: 1.15.0
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- gitlab-master.nvidia.com 5005/srl/dockers/ubuntu1804_py37 build
