Syclops
Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data - Published in JOSS (2025)
Science Score: 96.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 7 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Academic email domains
-
✓Institutional organization owner
Organization dfki-ni has institutional domain (www.dfki.de) -
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
Syclops is a tool for creating synthetic data from 3D virtual environments with photorealistic renderings and pixel-perfect annotations.
Basic Info
Statistics
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
- Releases: 9
Topics
Metadata Files
README.md
Syclops

Syclops
Syclops is a tool for creating synthetic data from 3D virtual environments.
🎯 Features
📷 Photorealistic renderings of the virtual environment with pixel-perfect annotations
📄 No-Code scene and sensor configuration with a simple YAML syntax
🔧 Extensive randomization tools to increase the diversity of the generated data
💾 Asset management and viewer to easily reuse assets across multiple scenes
📦 Easy to use and extend with a modular architecture
🔍 Annotations

Syclops supports a variety of annotated outputs for different use cases. The following outputs are currently supported:
| Output | Description | | :-----------------------: | :-------------------------------------------------------: | | RGB | Rendered color image | | Semantic Segmentation | Semantic segmentation mask with class ids | | Instance Segmentation | Unique instance id for each object in the scene | | Depth | Distance from the camera to each pixel | | Bounding Boxes | Bounding boxes for each object in the scene | | Object Positions | 3D position of each object in the scene | | Point Cloud | 3D location of each pixel in camera space | | Keypoints | Location of keypoints in camera space | | Object Volume | Volume of each object in the scene | | Structured Light | Projected dot pattern for structured light reconstruction |
⚡️Getting Started
Prerequisites
Before you install Syclops, ensure you have the following prerequisites:
- ✅ Tested Python Versions
- Python 3.9 – 3.11
- ❌ Not yet compatible with Python 3.12+
We recommend using a virtual environment to avoid potential package conflicts. Below are instructions for setting up with virtualenv and conda.
Installing
Using virtualenv
If you don't have virtualenv installed:
bash
pip install virtualenv
To create and activate a new virtual environment named syclops:
```bash
For Linux/macOS
virtualenv syclopsvenv source syclopsvenv/bin/activate
For Windows
virtualenv syclopsvenv .\syclopsvenv\Scripts\activate ```
Using conda
If you use Anaconda or Miniconda, you can create a new environment:
bash
conda create --name syclops_venv python=3.9
conda activate syclops_venv
Installing Syclops
Once you have your environment set up and activated:
bash
pip install syclops
Alternatively: Clone and Install from Source
To install Syclops directly from the source code:
bash
git clone https://github.com/DFKI-NI/syclops.git
cd syclops
pip install .
Note for macOS Users
⚠️ IMPORTANT: Syclops is not currently supported on macOS. While installation theoretically might be possible, it has not been tested and likely will not work properly. If you attempt to use Syclops on macOS, Blender would be downloaded as a .dmg file for your architecture (arm64 or x64), but full functionality cannot be guaranteed.
We recommend using Linux or Windows for the best experience with Syclops.
Run a job
Next, the assets need to be crawled by the pipeline. This only needs to be done once, or if new assets are added.
bash
syclops -c
To run a job, a job file is needed. You can find an example in the syclops/__example_assets__ folder.
To test the installation with the example job file run:
bash
syclops --example-job
To run a job, simply pass the path to the job file to the syclops command:
bash
syclops -j path/to/job.syclops.yaml
That's all you need to know to render images! 🎉
The rendered data will be in output/<timestamp> inside of your specified syclops directory.
To quickly visuzalize the data, you can use the dataset viewer tool.
Adjust the output path accordingly.
bash
syclops -da output/2022-09-01_12-00-00
🙏 Acknowledgements
We would like to thank our colleagues Timo Korthals (@tik0), Henning Wübben (@hwuebben), Florian Rahe (@frahe-ama), Thilo Steckel and Stefan Stiene for their valuable feedback during the development of Syclops. Their involvement and the resulting insightful discussions have played a key role in shaping the project and setting its direction.
Syclops was developed in the research project Agri-Gaia. This work was supported by the German Federal Ministry for Economic Affairs and Climate Action within the Agri-Gaia project (grant number: 01MK21004A). The DFKI Niedersachsen (DFKI NI) is sponsored by the Ministry of Science and Culture of Lower Saxony and the VolkswagenStiftung.
Citation
If used in research, please cite Syclops:
@article{Elmiger2025,
doi = {10.21105/joss.07854},
url = {https://doi.org/10.21105/joss.07854},
year = {2025}, publisher = {The Open Journal},
volume = {10}, number = {110}, pages = {7854},
author = {Anton Elmiger and Kai von Szadkowski and Timo Korthals},
title = {Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data},
journal = {Journal of Open Source Software}
}
Owner
- Name: DFKI Niedersachsen
- Login: DFKI-NI
- Kind: organization
- Location: Germany
- Website: https://www.dfki.de/en/web/about-us/locations-contact/osnabrueck-oldenburg/
- Twitter: DFKI
- Repositories: 5
- Profile: https://github.com/DFKI-NI
JOSS Publication
Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data
Authors
Tags
synthetic data procedural generation computer vision BlenderGitHub Events
Total
- Create event: 8
- Issues event: 16
- Release event: 5
- Watch event: 4
- Delete event: 6
- Issue comment event: 12
- Push event: 32
- Pull request event: 12
Last Year
- Create event: 8
- Issues event: 16
- Release event: 5
- Watch event: 4
- Delete event: 6
- Issue comment event: 12
- Push event: 32
- Pull request event: 12
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 8
- Total pull requests: 8
- Average time to close issues: 22 days
- Average time to close pull requests: about 1 month
- Total issue authors: 2
- Total pull request authors: 3
- Average comments per issue: 1.75
- Average comments per pull request: 0.0
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 7
- Average time to close issues: 22 days
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 2
- Average comments per issue: 1.75
- Average comments per pull request: 0.0
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- sumn2u (7)
- tik0 (1)
- bstanciulescu (1)
Pull Request Authors
- aelmiger (12)
- tik0 (2)
- kavonszadkowski (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 24 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 11
- Total maintainers: 1
pypi.org: syclops
Syclops is a Python library for generating synthetic data for machine learning.
- Documentation: https://syclops.readthedocs.io/
- License: gpl-3.0
-
Latest release: 1.4.4
published 8 months ago
