Syclops is a Python library for generating synthetic data for machine learning.
Project description
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:
pip install virtualenv
To create and activate a new virtual environment named syclops:
# For Linux/macOS
virtualenv syclops_venv
source syclops_venv/bin/activate
# For Windows
virtualenv syclops_venv
.\syclops_venv\Scripts\activate
Using conda
If you use Anaconda or Miniconda, you can create a new environment:
conda create --name syclops_venv python=3.9
conda activate syclops_venv
Installing Syclops
Once you have your environment set up and activated:
pip install syclops
Alternatively: Clone and Install from Source
To install Syclops directly from the source code:
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.
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:
syclops --example-job
To run a job, simply pass the path to the job file to the syclops command:
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.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syclops-1.4.4.tar.gz.
File metadata
- Download URL: syclops-1.4.4.tar.gz
- Upload date:
- Size: 27.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f00908e2dbf7593471400677503da3e0058d15aba8e821931d3ca443d1be9e20
|
|
| MD5 |
f8d2588006c7e002a96059189aef267f
|
|
| BLAKE2b-256 |
c061240f95502a93ae3ee12265378673e364e8a5a751c178732dd2eb260d84a8
|
Provenance
The following attestation bundles were made for syclops-1.4.4.tar.gz:
Publisher:
deploy_to_pypi.yaml on DFKI-NI/syclops
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syclops-1.4.4.tar.gz -
Subject digest:
f00908e2dbf7593471400677503da3e0058d15aba8e821931d3ca443d1be9e20 - Sigstore transparency entry: 239014315
- Sigstore integration time:
-
Permalink:
DFKI-NI/syclops@664cb39a181e982c213a9f9a3bbce506ca9750bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DFKI-NI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy_to_pypi.yaml@664cb39a181e982c213a9f9a3bbce506ca9750bf -
Trigger Event:
push
-
Statement type:
File details
Details for the file syclops-1.4.4-py3-none-any.whl.
File metadata
- Download URL: syclops-1.4.4-py3-none-any.whl
- Upload date:
- Size: 16.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2093ddbc4878952de9a077311cedfd111683c80e79b80cc2f123af73238f572d
|
|
| MD5 |
ac1b77ac4408aff4b87d79e1fe1dfd54
|
|
| BLAKE2b-256 |
f645a9690ebf4392b80138c98ee98b40cb9c98aafbdd268081a68a1550b41337
|
Provenance
The following attestation bundles were made for syclops-1.4.4-py3-none-any.whl:
Publisher:
deploy_to_pypi.yaml on DFKI-NI/syclops
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syclops-1.4.4-py3-none-any.whl -
Subject digest:
2093ddbc4878952de9a077311cedfd111683c80e79b80cc2f123af73238f572d - Sigstore transparency entry: 239014321
- Sigstore integration time:
-
Permalink:
DFKI-NI/syclops@664cb39a181e982c213a9f9a3bbce506ca9750bf -
Branch / Tag:
refs/heads/main - Owner: https://github.com/DFKI-NI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
deploy_to_pypi.yaml@664cb39a181e982c213a9f9a3bbce506ca9750bf -
Trigger Event:
push
-
Statement type: