diff --git a/website/docs/addon_syncsketch_admin.md b/website/docs/addon_syncsketch_admin.md new file mode 100644 index 00000000..f192e79a --- /dev/null +++ b/website/docs/addon_syncsketch_admin.md @@ -0,0 +1,140 @@ +--- +id: addon_syncsketch_admin +title: SyncSketch +sidebar_label: SyncSketch +--- + +import ReactMarkdown from "react-markdown"; +import versions from '@site/docs/assets/json/Ayon_addons_version.json' + + +{versions.SyncSketch_Badge} + + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + +### Introduction + +The Beta version of the SyncSketch integration works tightly with the Ftrack project management system. Its key function enables you to sync review annotations from SyncSketch straight to Ftrack. The Ayon server service handles synchronization by tracking changes on SyncSketch items and updating the corresponding version in Ftrack. + +In the future, embedding Ftrack into SyncSketch will become a separate process. SyncSketch will release events into a processing pool, which a dedicated Ftrack service will then pick up and process into the correct asset version comment. + +As of now, synchronization is initiated based on two triggers. The first one is labeled as **Review session ends**. This trigger activates approximately 2 minutes after all participants have exited from the review session and the SyncSketch application deemed it as completed. However, this may sometimes be a complex process especially when some participants forget to exit the session. + +To counteract this potential issue, a second trigger is in place and is likely the more efficient option. This trigger is called **Review item status had changed**. It allows immediate activation of the synchronization process and updates all review items in the currently active Review Session. This ensures that all data remains updated irrespective of user's active participation in the session. + +### Configuring Ayon + +#### Getting SyncSketch Secrets + +At first secrets of SyncSketch workspace needs to be defined in Ayon Studio settings Secret tab. It is necessary to set three main informations: *api key*, *user name* and *account ID*. Those can be found within logged user account menu under workspace section. Click at admin user (1) and then copy user id from url (2). This will be used as Account ID. + +![syncsketch_get_admin_user_id.png](assets/syncsketch/syncsketch_get_admin_user_id.png) + +Then we need to configure Script user at SyncSketch which will be used as **Api key** and **User name**. Go to API tab (1) at your admin user workspace settings. Then click at **Create new Script User** button (2). + +![syncsketch_create_script_user.png](assets/syncsketch/syncsketch_create_script_user.png) + +Then use popuped form to add Username (1), Description and Access Permissions (2) and confirm creation (3). + +![syncsketch_create_script_user_dialogue.png](assets/syncsketch/syncsketch_create_script_user_dialogue.png) + +Then use Copy button (1) to capture api key into clipboard and save it somewhere safe for future reference. + +![syncsketch_copy_api_key.png](assets/syncsketch/syncsketch_copy_api_key.png) + +#### Setting Ayon Secrets + +Now you can go to Ayon Secrets Tab at Studio Settings and add those secrets following way (pink). Do similar with your service user at Ftrack (red). + +![syncsketch_ayon_secrets.png](assets/syncsketch/syncsketch_ayon_secrets.png) + +#### SyncSketch addon Studio settings configuration + +Once Secrets are configured then SyncSketch addon can be set. First Server config section should be set to relative secrets which will be available in enumerator options. And server url can stay as it is in default settings. + +![syncsketch_server_config.png](assets/syncsketch/syncsketch_server_config.png) + +Do the same on Ftrack settings and also change your studio Ftrack url. + +#### Configure SyncSketch to Ftrack status mapping + +Statuses are mapped to default Ftrack statuses. Those can be changed in case default Ftrack statuses are altered. + +![syncsketch_status_mapping.png](assets/syncsketch/syncsketch_status_mapping.png) + +### Starting Ayon SyncSketch addon service + +For SyncSketch addon to be able to synchronize review item annotations and statuses Ayon service needs to be started. This requires to ASH to be working so the service can be attached to it. In main menu select Services. + +![syncsketch_ayon_services.png](assets/syncsketch/syncsketch_ayon_services.png) + +Use **New service** button. + +![syncsketch_new_service_dialogue.png](assets/syncsketch/syncsketch_new_service_dialogue.png) + +Once ASH is working then worker options should be offering any available workers. Find SyncSketch addon name and the same version which is used in your bundle. Make sure that bandle states are alligned. To make sure you understand in future what is the service related to, just prepand `syncsketch_`. Hit **Spawn** and wait for status of service to be set to green *Running*. + +![syncsketch_new_service_dialogue.png](assets/syncsketch/syncsketch_create_script_user_dialogue.png) + + +### Creating project and linking them together + +To utilize the embedded Ftrack in this version of the addon, you are required to first establish a project within Ftrack. Upon successfully creating the project, proceed to synchronize it with Ayon. This process ensures seamless integration and functionality between the two platforms. + +1. create project on Ftrack. +2. use project action AYON Admin - Prepare project. For this step you have to have activated Ftrack addon and with running services (processor and leecher). + +![syncsketch_ftrack_prepare_project_action.png](assets/syncsketch/syncsketch_ftrack_prepare_project_action.png) + +3. create project on SyncSketch (ideally with the same name). +4. Then copy project ID from url + +![syncsketch_copy_project_code.png](assets/syncsketch/syncsketch_copy_project_code.png) + +5. Go to Ayon **Dashbord** page, select **Overview** tab and select the project. + +![syncsketch_ayon_dashboard_project.png](assets/syncsketch/syncsketch_ayon_dashboard_project.png) + +6. Click at **Edit** button on right panel with project attributes. + +![syncsketch_ayon_edit_project_attrs.png](assets/syncsketch/syncsketch_ayon_edit_project_attrs.png) + +7. Paste ID value from 4. step into **SyncSketch ID** attribute field. + +![syncsketch_ayon_project_id_attr.png](assets/syncsketch/syncsketch_ayon_project_id_attr.png) + +8. Confirm by **Save** button on top of the panel. + +![syncsketch_ayon_project_attr_save.png](assets/syncsketch/syncsketch_ayon_project_attr_save.png) + +### Configuring plugin settings + +#### Integrate reviewables presets + +:::info Default list +By default configuration there is only one preset which is targeting all review items into single review list **Uploads from Ayon** +::: + +The presets located within `ayon+settings://syncsketch/publish/IntegrateReviewables/review_item_profiles` are designed to enhance and secure the granularity of reviewable items names. These names will be labelled on SyncSketch post-upload during the publishing process. + +One of the key benefits of these presets revolves around the adaptability when it comes to uploading the appropriate review list. The ability to configure these presets allows for a more detailed and tailored review process. Items can be filtered using different criteria - such as *product types*, the *host* application, specific *task types* and even individual *task names*. This contributes to a more personalised and detailed review process. + +![syncsketch_reviewable_presets_filtering.png](assets/syncsketch/syncsketch_reviewable_presets_filtering.png) + +Profiles have the ability to apply Anatomy templates by utilizing context-related tokens. This allows for prime customization to suit the specific needs of each individual folder (whether it be a shot name or asset name). + +![syncsketch_reviewable_presets_templates.png](assets/syncsketch/syncsketch_reviewable_presets_templates.png) + + +#### Targeting reviewables to Syncsketch + +You can effortlessly ensure that all reviewables will be uploaded to SyncSketch. For this purpose, you simply need to attach a specific tag to Extract Review output presets. You can achieve this by following these steps: + +1. Navigate either to your Studio Settings or any Project settings. +2. Find and add the **syncsketchreview** tag to any of the selected preset's output. + You can do this at the following path `ayon+settings://core/publish/ExtractReview/profiles/0/outputs`. + +![syncsketch_extract_review_tag.png](assets/syncsketch/syncsketch_extract_review_tag.png) diff --git a/website/docs/assets/json/Ayon_addons_version.json b/website/docs/assets/json/Ayon_addons_version.json index 5400fabe..e580b801 100644 --- a/website/docs/assets/json/Ayon_addons_version.json +++ b/website/docs/assets/json/Ayon_addons_version.json @@ -9,12 +9,13 @@ "Deadline_Badge" : "[![Deadline Addon - 0.1.4](https://img.shields.io/badge/Deadline_Addon-0.1.4-f7981d)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/deadline)", "Flame_Badge" : "[![Flame Addon - 0.1.0](https://img.shields.io/badge/Flame_Addon-0.1.0-3190b2)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/flame)", "Ftrack_Badge" : "[![Ftrack Addon - 0.2.4](https://img.shields.io/badge/Ftrack_Addon-0.2.4-bf9ac9)](https://github.com/ynput/ayon-ftrack/tree/develop)", + "SyncSketch_Badge" : "[![SyncSketch Addon - 0.1.1](https://img.shields.io/badge/SyncSketch_Addon-0.1.1-bf9ac9)](https://github.com/ynput/ayon-syncsketch/tree/develop)", "Fusion_Badge" : "[![Fusion Addon - 0.1.0](https://img.shields.io/badge/Fusion_Addon-0.1.0-f8f428)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/fusion)", - "Harmony_Badge" : "[![Harmony Addon - 0.1.2](https://img.shields.io/badge/Harmony_Addon-0.1.2-8bcbb8)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/harmony)", + "Harmony_Badge" : "[![Harmony Addon - 0.1.2](https://img.shields.io/badge/Harmony_Addon-0.1.2-8bcbb8)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/harmony)", "Hiero_Badge" : "[![Hiero Addon - 0.1.0](https://img.shields.io/badge/Hiero_Addon-0.1.0-fab41a)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/hiero)", "Houdini_Badge" : "[![Houdini addon - 0.2.6](https://img.shields.io/badge/Houdini_Addon-0.2.6-FF4713?logo=houdini)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/houdini)", - "Kitsu_Badge" : "[![Kitsu Addon - 0.1.3](https://img.shields.io/badge/Kitsu_Addon-0.1.3-e56b27)](https://github.com/ynput/ayon-kitsu)", - "Max_Badge" : "[![3Ds Max Addon - 0.1.2](https://img.shields.io/badge/3Ds_Max_Addon-0.1.2-3190b2)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/max)", + "Kitsu_Badge" : "[![Kitsu Addon - 0.1.3](https://img.shields.io/badge/Kitsu_Addon-0.1.3-e56b27)](https://github.com/ynput/ayon-kitsu)", + "Max_Badge" : "[![3Ds Max Addon - 0.1.2](https://img.shields.io/badge/3Ds_Max_Addon-0.1.2-3190b2)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/max)", "Maya_Badge" : "[![Maya addon - 0.1.6](https://img.shields.io/badge/Maya_Addon-0.1.6-3190b2)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/maya)", "Muster_Badge" : "[![Muster Addon - 0.1.1](https://img.shields.io/badge/Muster_Addon-0.1.1-1589b8)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/muster)", "Nuke_Badge" : "[![Nuke Addon - 0.1.5](https://img.shields.io/badge/Nuke_Addon-0.1.5-fab41a?logo=nuke&logoColor=fab41a)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/nuke)", @@ -26,11 +27,11 @@ "ShotGrid_Badge" : "[![ShotGrid Addon - 0.2.9](https://img.shields.io/badge/ShotGrid_Addon-0.2.9-3190b2)](https://github.com/ynput/ayon-shotgrid)", "SitSync_Badge" : "![SiteSync Addon - 1.0.1](https://img.shields.io/badge/SiteSync_Addon-1.0.1-00d6a1)", "Slack_Badge" : "[![Slack Addon - 1.0.1](https://img.shields.io/badge/Slack_Addon-1.0.1-4A154B?logo=slack&logoColor=a9e3cc)](https://github.com/ynput/ayon-slack)", - "SubstancePainter_Badge" : "[![Substance Painter Addon - 0.1.0](https://img.shields.io/badge/Substance_Painter_Addon-0.1.0-e1212e)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/substancepainter)", + "SubstancePainter_Badge" : "[![Substance Painter Addon - 0.1.0](https://img.shields.io/badge/Substance_Painter_Addon-0.1.0-e1212e)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/substancepainter)", "ThirdPart_Badge" : "[![3rd Party Settings Addon - 1.0.0](https://img.shields.io/badge/3rd_Party_Settings_Addon-1.0.0-00d6a1)](https://github.com/ynput/ayon-third-party/tree/develop)", - "TimersManager_Badge" : "[![Timer Manager Addon - 0.1.1](https://img.shields.io/badge/Timer_Manager_Addon-0.1.1-00d6a1)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/timers_manager)", - "TrayPublisher_Badge" : "[![Tray Publisher Addon - 0.1.3](https://img.shields.io/badge/Tray_Publisher_Addon-0.1.3-00d6a1)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/traypublisher)", - "TVPaint_Badge" : "[![TVPaint Addon - 0.1.0](https://img.shields.io/badge/TVPaint_Addon-0.1.0-4b89a0)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/tvpaint)", + "TimersManager_Badge" : "[![Timer Manager Addon - 0.1.1](https://img.shields.io/badge/Timer_Manager_Addon-0.1.1-00d6a1)](https://github.com/ynput/OpenPype/tree/develop/openpype/modules/timers_manager)", + "TrayPublisher_Badge" : "[![Tray Publisher Addon - 0.1.3](https://img.shields.io/badge/Tray_Publisher_Addon-0.1.3-00d6a1)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/traypublisher)", + "TVPaint_Badge" : "[![TVPaint Addon - 0.1.0](https://img.shields.io/badge/TVPaint_Addon-0.1.0-4b89a0)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/tvpaint)", "Unreal_Badge" : "[![Unreal Addon - 0.1.0](https://img.shields.io/badge/Unreal_Addon-0.1.0-0E1128?logo=unrealengine)](https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/unreal)", "Wrap_Badge" : "![wrap - 0.0.1](https://img.shields.io/badge/wrap-0.0.1-2f4249)", diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_dashboard_project.png b/website/docs/assets/syncsketch/syncsketch_ayon_dashboard_project.png new file mode 100644 index 00000000..69c40a54 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_dashboard_project.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_edit_project_attrs.png b/website/docs/assets/syncsketch/syncsketch_ayon_edit_project_attrs.png new file mode 100644 index 00000000..fc434b9a Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_edit_project_attrs.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_project_attr_save.png b/website/docs/assets/syncsketch/syncsketch_ayon_project_attr_save.png new file mode 100644 index 00000000..246d1e06 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_project_attr_save.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_project_id_attr.png b/website/docs/assets/syncsketch/syncsketch_ayon_project_id_attr.png new file mode 100644 index 00000000..251e6f16 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_project_id_attr.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_secrets.png b/website/docs/assets/syncsketch/syncsketch_ayon_secrets.png new file mode 100644 index 00000000..e3ae0e0d Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_secrets.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ayon_services.png b/website/docs/assets/syncsketch/syncsketch_ayon_services.png new file mode 100644 index 00000000..1aca7b3b Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ayon_services.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_copy_api_key.png b/website/docs/assets/syncsketch/syncsketch_copy_api_key.png new file mode 100644 index 00000000..c6996fab Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_copy_api_key.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_copy_project_code.png b/website/docs/assets/syncsketch/syncsketch_copy_project_code.png new file mode 100644 index 00000000..e2411037 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_copy_project_code.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_create_script_user.png b/website/docs/assets/syncsketch/syncsketch_create_script_user.png new file mode 100644 index 00000000..07f123b6 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_create_script_user.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_create_script_user_dialogue.png b/website/docs/assets/syncsketch/syncsketch_create_script_user_dialogue.png new file mode 100644 index 00000000..f9feab37 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_create_script_user_dialogue.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_extract_review_tag.png b/website/docs/assets/syncsketch/syncsketch_extract_review_tag.png new file mode 100644 index 00000000..aaee6838 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_extract_review_tag.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_ftrack_prepare_project_action.png b/website/docs/assets/syncsketch/syncsketch_ftrack_prepare_project_action.png new file mode 100644 index 00000000..02110968 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_ftrack_prepare_project_action.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_get_admin_user_id.png b/website/docs/assets/syncsketch/syncsketch_get_admin_user_id.png new file mode 100644 index 00000000..bb4b1b2f Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_get_admin_user_id.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_new_service_dialogue.png b/website/docs/assets/syncsketch/syncsketch_new_service_dialogue.png new file mode 100644 index 00000000..4bdb7ae5 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_new_service_dialogue.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_reviewable_presets_filtering.png b/website/docs/assets/syncsketch/syncsketch_reviewable_presets_filtering.png new file mode 100644 index 00000000..2a6010a6 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_reviewable_presets_filtering.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_reviewable_presets_templates.png b/website/docs/assets/syncsketch/syncsketch_reviewable_presets_templates.png new file mode 100644 index 00000000..68df40b5 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_reviewable_presets_templates.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_server_config.png b/website/docs/assets/syncsketch/syncsketch_server_config.png new file mode 100644 index 00000000..ab617595 Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_server_config.png differ diff --git a/website/docs/assets/syncsketch/syncsketch_status_mapping.png b/website/docs/assets/syncsketch/syncsketch_status_mapping.png new file mode 100644 index 00000000..5885bc5c Binary files /dev/null and b/website/docs/assets/syncsketch/syncsketch_status_mapping.png differ diff --git a/website/sidebars.js b/website/sidebars.js index 2bfe3ad9..31e05869 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -130,6 +130,7 @@ module.exports = { "addon_slack_admin", "addon_traypublisher_admin", "addon_wrap_admin", + "addon_syncsketch_admin", ], }, "admin_releases", diff --git a/website/src/data/addons/addons.ts b/website/src/data/addons/addons.ts index 3acc7df8..0779d307 100644 --- a/website/src/data/addons/addons.ts +++ b/website/src/data/addons/addons.ts @@ -48,7 +48,8 @@ export const officialAddons = [ "tvpaint", "unreal", "wrap", - "openrv" + "openrv", + "syncsketch" ] as const; // COMMUNITY ADDONS diff --git a/website/src/data/addons/data/img/syncsketch-icon.png b/website/src/data/addons/data/img/syncsketch-icon.png new file mode 100644 index 00000000..8075e148 Binary files /dev/null and b/website/src/data/addons/data/img/syncsketch-icon.png differ diff --git a/website/src/data/addons/data/syncsketch.ts b/website/src/data/addons/data/syncsketch.ts new file mode 100644 index 00000000..0b454d72 --- /dev/null +++ b/website/src/data/addons/data/syncsketch.ts @@ -0,0 +1,25 @@ +import { type Addon } from "../types"; +import versions from "@site/docs/assets/json/Ayon_addons_version.json"; + +const addon: Addon = { + title: "SyncSketch", + description: + "SyncSketch is a secure collaboration platform that accelerates work and review for media files including images, videos, 360-degree content, and 3D models. Artists can review projects offline or in real-time, with no compression artifacts or skipped frames.", + icon: "syncsketch-icon.png", + badge: versions.SyncSketch_Badge, + features: [ + "appLauncher", + "reviewables", + "trayPublisher", + "projectManager", + "timersManager", + "appLauncher", + ], + products: [], + docs: { + admin: "addon_syncsketch_admin", + }, + github: "https://github.com/ynput/ayon-syncsketch/tree/develop", +}; + +export default addon;