{"id":37076289,"url":"https://github.com/dfki-ni/syclops","last_synced_at":"2026-01-14T08:58:33.410Z","repository":{"id":295503242,"uuid":"706581822","full_name":"DFKI-NI/syclops","owner":"DFKI-NI","description":"Syclops is a tool for creating synthetic data from 3D virtual environments with photorealistic renderings and pixel-perfect annotations.","archived":false,"fork":false,"pushed_at":"2025-06-26T12:43:31.000Z","size":31068,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-11-28T01:51:16.013Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DFKI-NI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-18T08:27:59.000Z","updated_at":"2025-11-14T13:09:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"a72562db-0c44-4563-9752-0e3620beeebc","html_url":"https://github.com/DFKI-NI/syclops","commit_stats":null,"previous_names":["dfki-ni/syclops"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/DFKI-NI/syclops","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFKI-NI%2Fsyclops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFKI-NI%2Fsyclops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFKI-NI%2Fsyclops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFKI-NI%2Fsyclops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DFKI-NI","download_url":"https://codeload.github.com/DFKI-NI/syclops/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DFKI-NI%2Fsyclops/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28414729,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"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"],"created_at":"2026-01-14T08:58:32.600Z","updated_at":"2026-01-14T08:58:33.403Z","avatar_url":"https://github.com/DFKI-NI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Syclops\n![Documentation](https://github.com/dfki-ni/syclops/actions/workflows/docs_deployment.yaml/badge.svg)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.07854/status.svg)](https://doi.org/10.21105/joss.07854)\n\n\u003ch1 align=\"center\"\u003e\n  \u003cimg alt=\"cgapp logo\" src=\"https://user-images.githubusercontent.com/40243985/222779654-df09c551-3eab-4a08-aa3c-08ab6cfd73ab.png\" width=\"224px\"/\u003e\u003cbr/\u003e\n  Syclops\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003eSyclops is a tool for creating synthetic data from 3D virtual environments.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dfki-ni.github.io/syclops/\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/Documentation-blue.svg?style=flat-square\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n# 🎯 Features\n\n📷 Photorealistic renderings of the virtual environment with pixel-perfect annotations\n\n📄 No-Code scene and sensor configuration with a simple YAML syntax\n\n🔧 Extensive randomization tools to increase the diversity of the generated data\n\n💾 Asset management and viewer to easily reuse assets across multiple scenes\n\n📦 Easy to use and extend with a modular architecture\n\n# 🔍 Annotations\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"output-render\" src=\"https://user-images.githubusercontent.com/40243985/222779779-02d4fb4d-b3a9-4436-8d75-b37de437ec10.gif\" width=\"400px\"/\u003e\u003cbr/\u003e\n\u003c/div\u003e\n\nSyclops supports a variety of annotated outputs for different use cases. The following outputs are currently supported:\n\n|          Output           |                        Description                        |\n| :-----------------------: | :-------------------------------------------------------: |\n|          **RGB**          |                   Rendered color image                    |\n| **Semantic Segmentation** |         Semantic segmentation mask with class ids         |\n| **Instance Segmentation** |      Unique instance id for each object in the scene      |\n|         **Depth**         |          Distance from the camera to each pixel           |\n|    **Bounding Boxes**     |        Bounding boxes for each object in the scene        |\n|   **Object Positions**    |          3D position of each object in the scene          |\n|      **Point Cloud**      |         3D location of each pixel in camera space         |\n|       **Keypoints**       |           Location of keypoints in camera space           |\n|     **Object Volume**     |            Volume of each object in the scene             |\n|   **Structured Light**    | Projected dot pattern for structured light reconstruction |\n\n# ⚡️Getting Started\n\n## Prerequisites\n\nBefore you install `Syclops`, ensure you have the following prerequisites:\n\n- ✅ **Tested Python Versions**\n    - Python 3.9 – 3.11\n- ❌ Not yet compatible with Python 3.12+\n\nWe recommend using a virtual environment to avoid potential package conflicts. Below are instructions for setting up with `virtualenv` and `conda`.\n\n## Installing\n\n### Using `virtualenv`\n\nIf you don't have `virtualenv` installed:\n\n```bash\npip install virtualenv\n```\n\nTo create and activate a new virtual environment named `syclops`:\n\n```bash\n# For Linux/macOS\nvirtualenv syclops_venv\nsource syclops_venv/bin/activate\n\n# For Windows\nvirtualenv syclops_venv\n.\\syclops_venv\\Scripts\\activate\n```\n\n### Using `conda`\n\nIf you use Anaconda or Miniconda, you can create a new environment:\n\n```bash\nconda create --name syclops_venv python=3.9\nconda activate syclops_venv\n```\n\n### Installing Syclops\n\nOnce you have your environment set up and activated:\n\n```bash\npip install syclops\n```\n\n### Alternatively: Clone and Install from Source\n\nTo install `Syclops` directly from the source code:\n\n```bash\ngit clone https://github.com/DFKI-NI/syclops.git\ncd syclops\npip install .\n```\n\n### Note for macOS Users\n\n⚠️ **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.\n\nWe recommend using Linux or Windows for the best experience with Syclops.\n\n## Run a job\n\nNext, the assets need to be crawled by the pipeline. This only needs to be done once, or if new assets are added.\n\n```bash\nsyclops -c\n```\n\n\u003e To run a **job**, a job file is needed. You can find an example in the [syclops/\\_\\_example_assets\\_\\_](https://github.com/DFKI-NI/syclops/blob/main/syclops/__example_assets__/example_job.syclops.yaml) folder.\n\nTo test the installation with the example job file run:\n\n```bash\nsyclops --example-job\n```\n\nTo run a job, simply pass the path to the job file to the `syclops` command:\n\n```bash\nsyclops -j path/to/job.syclops.yaml\n```\n\nThat's all you need to know to render images! 🎉\n\nThe rendered data will be in `output/\u003ctimestamp\u003e` inside of your specified syclops directory.\nTo quickly visuzalize the data, you can use the dataset viewer tool.\n\n\u003e Adjust the output path accordingly.\n\n```bash\nsyclops -da output/2022-09-01_12-00-00\n```\n\n# 🙏 Acknowledgements\n\nWe would like to thank our colleagues Timo Korthals ([@tik0](https://github.com/tik0)), Henning Wübben ([@hwuebben](https://github.com/hwuebben)), Florian Rahe ([@frahe-ama](https://github.com/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.\n\nSyclops 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\nNiedersachsen (DFKI NI) is sponsored by the Ministry of Science and Culture of Lower\nSaxony and the VolkswagenStiftung. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"AgriGaia\" src=\"docs/docs/img/agrigaia.png\" height=\"100\"/\u003e\n  \u003cimg alt=\"AgriGaia\" src=\"docs/docs/img/dlr.jpg\" height=\"100\"/\u003e\n  \u003cimg alt=\"AgriGaia\" src=\"docs/docs/img/bmwk.png\" height=\"150\"/\u003e\n\u003c/p\u003e\n\n\n# Citation\nIf used in research, please cite Syclops:\n```\n@article{Elmiger2025,\n doi = {10.21105/joss.07854},\n url = {https://doi.org/10.21105/joss.07854},\n year = {2025}, publisher = {The Open Journal},\n volume = {10}, number = {110}, pages = {7854},\n author = {Anton Elmiger and Kai von Szadkowski and Timo Korthals},\n title = {Syclops: A Modular Pipeline for Procedural Generation of Synthetic Data},\n journal = {Journal of Open Source Software}\n }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfki-ni%2Fsyclops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfki-ni%2Fsyclops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfki-ni%2Fsyclops/lists"}