diff --git a/.github/workflows/docs_deployment.yaml b/.github/workflows/docs_deployment.yaml index f0f2193..1b41fb4 100644 --- a/.github/workflows/docs_deployment.yaml +++ b/.github/workflows/docs_deployment.yaml @@ -1,4 +1,4 @@ -name: ci +name: Documentation Deployment on: push: diff --git a/README.md b/README.md index a148880..dbbbadc 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,16 @@ -# Introduction +# Syclops +![Documentation](https://github.com/dfki-ni/syclops/actions/workflows/docs_deployment.yaml/badge.svg)

cgapp logo
Syclops

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

- +

--- diff --git a/docs/docs/developement/architecture.md b/docs/docs/developement/architecture.md index 13b591b..1f76a4b 100644 --- a/docs/docs/developement/architecture.md +++ b/docs/docs/developement/architecture.md @@ -3,7 +3,7 @@ The following section provides an overview of the architectural structure of Syclops, helping developers and users understand the interplay between different components. ## Repository Overview -![An overview of how the different repositories work together to create synthetic data in Syclops](/img/docs/syclops_overview.png) +![An overview of how the different repositories work together to create synthetic data in Syclops](../img/docs/syclops_overview.png) | Component/Folder | Description | |:---:|:---:| @@ -18,7 +18,7 @@ The following section provides an overview of the architectural structure of Syc The following is a list of relevant files: - **syclops** - - **cli.py**: Contains the code for the syclops [CLI interface](/usage/command_line). It also orchestrates the preprocessing, postprocessing, and starting of Blender for the synthetic data generation. + - **cli.py**: Contains the code for the syclops [CLI interface](../usage/command_line.md). It also orchestrates the preprocessing, postprocessing, and starting of Blender for the synthetic data generation. - **syclops/preprocessing** - **preprocesor.py**: Script that gets called before the scene generation. It adjusts the job description and can create additional files that are needed for the scene generation. - **syclops/postprocessing** diff --git a/docs/docs/index.md b/docs/docs/index.md index 3ff6ceb..03fe90d 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -1,9 +1,10 @@ # Introduction -

- cgapp logo
- Syclops -

+
+ ![Syclops Logo](img/logo.png){ width="224" } +
+ +

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

--- # 🎯 Features @@ -18,9 +19,10 @@ 📦 Easy to use and extend with a modular architecture # 🔍 Annotations -
- output-render
-
+
+ ![Syclops Output](img/renders/outputs.gif){ width="400" } +
+ Syclops supports a variety of annotated outputs for different use cases. The following outputs are currently supported: diff --git a/docs/docs/usage/command_line.md b/docs/docs/usage/command_line.md index 0193e30..c8de231 100644 --- a/docs/docs/usage/command_line.md +++ b/docs/docs/usage/command_line.md @@ -30,4 +30,4 @@ Following is a list of the command line arguments for `syclops`: | `-log` | Display all log messages in the console. | `False` | Boolean | | `-tv` | Live display of the procedural textures in a job config. | `None` | String | | `-if` | Path to the install folder. | `None` | String | -| `-d` | Debugging mode. See [Debugging](/developement/debugging) | `False` | String [scene, blender-code, pipeline-code] \ No newline at end of file +| `-d` | Debugging mode. See [Debugging](../developement/debugging.md) | `False` | String [scene, blender-code, pipeline-code] \ No newline at end of file diff --git a/docs/docs/usage/faq.md b/docs/docs/usage/faq.md index 1f872f0..400fd50 100644 --- a/docs/docs/usage/faq.md +++ b/docs/docs/usage/faq.md @@ -12,7 +12,7 @@ A: Make sure you have the correct version of Python installed (3.9 or higher) an ### Q: How do I add new assets to my project? -A: To add new assets, create an `assets.yaml` file in your project directory that defines the asset library and its assets. Then, run `syclops -c` to crawl the assets and update the catalog. For more information, see the [Assets documentation](/usage/assets/assets). +A: To add new assets, create an `assets.yaml` file in your project directory that defines the asset library and its assets. Then, run `syclops -c` to crawl the assets and update the catalog. For more information, see the [Assets documentation](./assets/assets.md). ### Q: I'm getting an error message saying an asset file is missing. What should I do? @@ -22,17 +22,17 @@ A: Check that the file paths in your `assets.yaml` file are correct and that the ### Q: My job configuration isn't working as expected. How can I debug it? -A: You can use the `-d` flag to enable debugging mode in Syclops. Use `-d scene` to open the scene in Blender for visual debugging, or `-d blender-code` and `-d pipeline-code` to debug the Blender and pipeline code, respectively. For more information, see the [Debugging documentation](/developement/debugging). +A: You can use the `-d` flag to enable debugging mode in Syclops. Use `-d scene` to open the scene in Blender for visual debugging, or `-d blender-code` and `-d pipeline-code` to debug the Blender and pipeline code, respectively. For more information, see the [Debugging documentation](../developement/debugging.md). ### Q: How do I use dynamic evaluators in my job configuration? -A: Dynamic evaluators allow you to randomize parameter values for each frame in your scene. To use them, replace a fixed value in your job configuration with a dynamic evaluator expression, such as `uniform: [0, 1]` for a uniform random value between 0 and 1. For more examples, see the [Dynamic Evaluators documentation](/usage/job_description/dynamic_evaluators). +A: Dynamic evaluators allow you to randomize parameter values for each frame in your scene. To use them, replace a fixed value in your job configuration with a dynamic evaluator expression, such as `uniform: [0, 1]` for a uniform random value between 0 and 1. For more examples, see the [Dynamic Evaluators documentation](./job_description/dynamic_evaluators.md). ## Rendering ### Q: My renders are taking a long time. How can I speed them up? -A: To speed up rendering, you can try reducing the number of samples per pixel in your sensor configuration, or using a lower resolution for your output images. You can also make sure you're using GPU rendering if you have a compatible graphics card. For more tips, see the [Sensor Configuration documentation](/usage/job_description/sensor_configuration). +A: To speed up rendering, you can try reducing the number of samples per pixel in your sensor configuration, or using a lower resolution for your output images. You can also make sure you're using GPU rendering if you have a compatible graphics card. For more tips, see the [Sensor Configuration documentation](./job_description/config_descriptions/camera.md). ### Q: I'm getting artifacts or noise in my rendered images. What can I do? diff --git a/docs/docs/usage/job_description/config_descriptions/object_position.md b/docs/docs/usage/job_description/config_descriptions/object_position.md index 60464bf..306d2c0 100644 --- a/docs/docs/usage/job_description/config_descriptions/object_position.md +++ b/docs/docs/usage/job_description/config_descriptions/object_position.md @@ -35,7 +35,7 @@ syclops_output_object_positions: debug_breakpoint: true ``` -In the example configuration, the global positions of objects within the scene will be captured with the identifier `obj_pos_1`. Additionally, if the [scene debugging](/developement/debugging/#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. +In the example configuration, the global positions of objects within the scene will be captured with the identifier `obj_pos_1`. Additionally, if the [scene debugging](../../../developement/debugging.md#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. ## Metadata Output diff --git a/docs/docs/usage/job_description/config_descriptions/pixel_annotation.md b/docs/docs/usage/job_description/config_descriptions/pixel_annotation.md index 20ffacb..3b7d449 100644 --- a/docs/docs/usage/job_description/config_descriptions/pixel_annotation.md +++ b/docs/docs/usage/job_description/config_descriptions/pixel_annotation.md @@ -5,7 +5,7 @@ The Pixel Annotation Output is dedicated to providing various pixel-level annota ## Inter Class Segmentation In Syclops it is possible to have multiple class labels for a single object. This means, that a plant can have the segmentation labels `stem` and `leaf` at the same time. -![Inter Class Segmentation](/img/docs/inter_class_seg.png) +![Inter Class Segmentation](../../../img/docs/inter_class_seg.png) It has to be configured in the scene description for the object that should have multiple labels. The following example shows how to configure it: @@ -61,7 +61,7 @@ syclops_output_pixel_annotation: - debug_breakpoint: true ``` -In the provided configuration, a variety of pixel annotations are set up, each with their unique identifiers. Additionally, if the [scene debugging](/developement/debugging/#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. +In the provided configuration, a variety of pixel annotations are set up, each with their unique identifiers. Additionally, if the [scene debugging](../../../developement/debugging.md#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. ## Metadata Output diff --git a/docs/docs/usage/job_description/config_descriptions/rgb.md b/docs/docs/usage/job_description/config_descriptions/rgb.md index 37174a7..0c3e42e 100644 --- a/docs/docs/usage/job_description/config_descriptions/rgb.md +++ b/docs/docs/usage/job_description/config_descriptions/rgb.md @@ -30,7 +30,7 @@ syclops_output_rgb: debug_breakpoint: true ``` -In this configuration, the RGB output with the identifier "MainView" will have a quality of 200 samples per pixel. Additionally, if the [scene debugging](/developement/debugging/#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. +In this configuration, the RGB output with the identifier "MainView" will have a quality of 200 samples per pixel. Additionally, if the [scene debugging](../../../developement/debugging.md#visually-debug-a-job-file) is active, the scene will break and open in Blender before rendering. ## Metadata Output diff --git a/docs/docs/usage/job_description/config_descriptions/structured_light.md b/docs/docs/usage/job_description/config_descriptions/structured_light.md index b324972..4b3f1ef 100644 --- a/docs/docs/usage/job_description/config_descriptions/structured_light.md +++ b/docs/docs/usage/job_description/config_descriptions/structured_light.md @@ -2,7 +2,7 @@ The Structured Light Output generates structured light patterns projected onto the scene, which can be used for 3D reconstruction and depth estimation. -![Dot projected image with stereo reconstruction on the right](/img/docs/dot_projection.png) +![Dot projected image with stereo reconstruction on the right](../../../img/docs/dot_projection.png) ## Configuration Parameters @@ -15,7 +15,7 @@ The following table describes each configuration parameter for the Structured Li | `intensity` | float | The intensity of the projected light pattern. | **Required** | | `scale` | float | The scale of the light pattern, controlling the density of the dots. | **Required** | | `samples` | integer | The number of samples per pixel for rendering the structured light image. Higher values result in better quality but slower rendering. | **Required** | -| `debug_breakpoint` | boolean | If set to `true` and the [scene debugging](/developement/debugging/#visually-debug-a-job-file) is active, the rendering process will pause and open Blender before proceeding. | Optional | +| `debug_breakpoint` | boolean | If set to `true` and the [scene debugging](../../../developement/debugging.md#visually-debug-a-job-file) is active, the rendering process will pause and open Blender before proceeding. | Optional | ## Example Configuration diff --git a/docs/docs/usage/job_description/validation.md b/docs/docs/usage/job_description/validation.md index 7f3bdaa..0a9eaaa 100644 --- a/docs/docs/usage/job_description/validation.md +++ b/docs/docs/usage/job_description/validation.md @@ -5,7 +5,10 @@ Syclops generates a YAML schema that defines the job configuration rules. This s During asset crawling, Syclops looks for all schema files of the plugins and creates a single ```schema.yaml``` in the install folder. In order to use the linting features for the job descriptions, the IDE has to be pointed towards the schema file. -linting
+
+ ![Linting](../../img/docs/linting.gif){ width="500" } +
Linting of job description
+
=== "VSCode" For Visual Studio Code, the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) needs to be installed. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index a38d608..e0cf465 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,4 +1,8 @@ site_name: Syclops Documentation +site_description: Documentation for the Syclops synthetic data generation tool +site_author: Anton Elmiger +site_url: https://dfki-ni.github.io/syclops/ + theme: name: material features: