Syclops

Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data - Published in JOSS (2025)

https://github.com/dfki-ni/syclops

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

3d-rendering annotation asset-management bounding-boxes computer-vision data-generation dataset-creation depth-estimation instance-segmentation keypoints machine-learning photorealistic point-clouds randomization semantic-segmentation structured-light synthetic-data virtual-environments
Last synced: 6 months ago · JSON representation

Repository

Syclops is a tool for creating synthetic data from 3D virtual environments with photorealistic renderings and pixel-perfect annotations.

Basic Info
  • Host: GitHub
  • Owner: DFKI-NI
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 29.6 MB
Statistics
  • Stars: 12
  • Watchers: 3
  • Forks: 2
  • Open Issues: 0
  • Releases: 9
Topics
3d-rendering annotation asset-management bounding-boxes computer-vision data-generation dataset-creation depth-estimation instance-segmentation keypoints machine-learning photorealistic point-clouds randomization semantic-segmentation structured-light synthetic-data virtual-environments
Created over 2 years ago · Last pushed 8 months ago
Metadata Files
Readme Contributing License

README.md

Syclops

Documentation DOI

cgapp logo
Syclops

Syclops is a tool for creating synthetic data from 3D virtual environments.

Documentation


🎯 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

output-render

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.

AgriGaia AgriGaia AgriGaia

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

JOSS Publication

Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data
Published
June 25, 2025
Volume 10, Issue 110, Page 7854
Authors
Anton Elmiger ORCID
German Research Center for Artificial Intelligence (DFKI), Germany
Kai von Szadkowski ORCID
German Research Center for Artificial Intelligence (DFKI), Germany
Timo Korthals ORCID
CLAAS E-Systems, Germany
Editor
Sébastien Boisgérault ORCID
Tags
synthetic data procedural generation computer vision Blender

GitHub 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
enhancement (1)
Pull Request Labels
enhancement (1) bug (1)

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.

  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 24 Last month
Rankings
Dependent packages count: 9.5%
Average: 36.3%
Dependent repos count: 63.0%
Maintainers (1)
Last synced: 6 months ago