--- title: "Designing a Project" --- # Designing a Project > This document follows the [Downloading and Installing Ignition](getting-started\startup-guide\downloading-and-installing-ignition\downloading-and-installing-ignition.md) guide from the previous section and assumes you have enabled the Quick Start feature on the Gateway. See the [Commissioning the Gateway](getting-started\startup-guide\downloading-and-installing-ignition\downloading-and-installing-ignition.md#commissioning-the-gateway) section for more details. Additionally, this guide will use the [Perspective](ignition-modules\perspective\perspective.md) module to visualize our data and project. The resources configured within the Gateway's Quick Start, including the [Device Simulator](ignition-modules\opc-ua\opc-ua-drivers\programmable-device-simulator\programmable-device-simulator.md), [tags](platform\tags\tags.md), [Tag Historian](ignition-modules\tag-historian\tag-historian.md), and [Internal Alarm Journal](platform\alarming\alarm-journal\alarm-journal.md), will also be used for this project. The project this guide creates will start from a blank Perspective project and end with several components with [bindings](ignition-modules\perspective\working-with-perspective-components\bindings-in-perspective\bindings-in-perspective.md) that interact, as well as visualizing [historical tag data](ignition-modules\tag-historian\tag-historian.md), and creating an [alarming system](ignition-modules\alarm-notification\alarm-notification.md) that alerts users if a tag reaches a certain threshold. By the end of this guide, we will have a simple project that looks similar to this: ![Complete Project Screenshot](completed-project.png) ## Creating the Project To begin working on a project, we will first need to create one. 1. In the Designer Launcher, select the Gateway to create the project on and then click **Open...**. We will be using our locally installed Gateway in this guide. 2. The Designer will initialize and then prompt you for login credentials. Use the credentials you set up when first commissioning the Gateway. 3. After logging in, a list of projects on the Gateway will be displayed. Click on **+ New Project** on the top left. This will bring you to the New Project Setup page. :::note Since we enabled Quick Start on the Gateway, we will already have a project titled **Sample Quick Start**. This project is a good example of what your own project can eventually look like, but for the purposes of this guide, we will create a new project. ::: 4. Give your project a name and title, then click **Create New Project**. Your new project will initialize and open the Designer. We will call our project **myProject** and give it a title of **My Project**. ![Creating the Project Step 4](creating-the-project-step-4.png) Your project should now be ready to build in. ## Working in Perspective This section will encompass all the steps taken within the Designer's Perspective workspace. ### Creating a View Since we are using Perspective, we will need to first create a [view](ignition-modules\perspective\views-in-perspective\views-in-perspective.md). 1. In the [Project Browser](platform\designer\designer-user-interface\designer-user-interface.md#project-browser) on the top left of the Designer, expand the Perspective Module. 2. Right-click on the **Views** folder and select **New View...**. A New View configuration window will pop up. 3. Give your new view a name and choose a [Root Container](appendix\components\perspective-components\perspective-container-palette\perspective-container-palette.md) type, then click **Create View**. We will name our view **myView** and keep the default [Coordinate Container](appendix\components\perspective-components\perspective-container-palette\perspective-coordinate-container\perspective-coordinate-container.md) selection. ![Working in Perspective New View](working-in-perspective-step-3.png) Your view is now created and has a blank workspace to begin designing your project. ### Preparing Perspective Components Let's start putting components into our view. Components are the main features an operator interacts with within a project and includes things like [charts](appendix\components\perspective-components\perspective-chart-palette\perspective-chart-palette.md), [input](appendix\components\perspective-components\perspective-input-palette\perspective-input-palette.md) components, and [display](appendix\components\perspective-components\perspective-display-palette\perspective-display-palette.md) components. 1. Begin by dragging two [Cylindrical Tanks](appendix\components\perspective-components\perspective-display-palette\perspective-cylindrical-tank\perspective-cylindrical-tank.md), a [Slider](appendix\components\perspective-components\perspective-input-palette\perspective-slider\perspective-slider.md), and a [Progress Bar](appendix\components\perspective-components\perspective-display-palette\perspective-progress\perspective-progress.md) from the [Perspective Component Palette](ignition-modules\perspective\perspective-designer-interface.md#perspective-component-palette) onto your workspace and orient them on the bottom as shown in the image below. We will bind these together using tag data in a [later section](#binding-tags-to-components). ![Preparing Perspective Components Step 1](preparing-perspective-components-step-1.png) :::tip You can use the Designer's red dotted guiding lines to help line up components so that they are on the same axis. ::: 2. Next, drag an [Alarm Journal Table](appendix\components\perspective-components\perspective-display-palette\perspective-alarm-journal-table\perspective-alarm-journal-table.md) to the space above the components from the previous step. We will use this table to display our alarm history in a [later section](#displaying-alarm-history). ![Preparing Perspective Components Step 2](preparing-perspective-components-step-2.png) 3. Drag a [Time Series Chart](appendix\components\perspective-components\perspective-chart-palette\perspective-time-series-chart\perspective-time-series-chart.md) from the Component Palette onto the top of your workspace. Use the handles to resize the component so that it sits flush with the top of the view and the top of the Alarm Journal Table. We will use this to visualize your tag's historical data in a [later section](#setting-up-tag-history). ![Preparing Perspective Components Step 3](preparing-perspective-components-step-3.png) 4. Save your project. Your components are now ready to have tags bound to them to display data. ### Adding Tags from a Device Since components visualize and interact with data, they do not do anything if no tags or data is bound. This section will go over the most common way a component gets data to display, typically from PLCs or external devices through an [OPC UA](ignition-modules\opc-ua\opc-ua.md) connection using [OPC tags](platform\tags\types-of-tags\types-of-tags.md#opc-tags). In this example, we will use the Gateway Quick Start's preconfigured Device Simulator, as this mimics an external device that tags pull data from. The steps below assume you already have a Device Simulator configured from Quick Start. See the [Connecting with OPC UA](ignition-modules\opc-ua\opc-ua.md#connecting-with-opc-ua) section for details on creating a connection to a physical device or [Device Simulator](ignition-modules\opc-ua\opc-ua-drivers\programmable-device-simulator\programmable-device-simulator.md) if you did not enable Quick Start. 1. Go to the [Tag Browser](platform\tags\tag-browser\tag-browser.md) on the bottom left of your Designer. ![Adding Tags from a Device Step 1](adding-tags-from-a-device-step-1.png) 2. Click on the **Add** ![Add Icon](add-icon.png) icon, then select **Browse Devices**. This will bring up the Connected Devices popup. ![Adding Tags from a Device Step 2](adding-tags-from-a-device-step-2.png) 3. The [Ignition OPC UA Server](ignition-modules\opc-ua\ignitions-opc-ua-server\ignitions-opc-ua-server.md) will populate under the OPC Browser column. Go to the Device Simulator by expanding **Ignition OPC UA Server** > **Devices**. The preconfigured simulator will be called **[Sample_Device]**. ![Adding Tags from a Device Step 3](adding-tags-from-a-device-step-3.png) 3. Expand the **[Sample_Device]** folder and click on the **Random** folder. This folder contains all the tags we need for this basic project. :::note You can choose to import all the tags from your device. However, since we don't need the other tags on the Device Simulator, we will just import the **Random** folder. ::: 4. With the **Random** folder selected, click on the **Add** ![Add OPC Tag Icon](add-opc-tag-icon.png) icon in the middle of the Connected Devices popup. This will add the **Random** folder and its tags to the staging area for import. ![Adding Tags from a Device Step 4](adding-tags-from-a-device-step-4.png) :::tip You can add tags to a different [Tag Provider](platform\tags\tag-providers\tag-providers.md) than the default provider by changing the provider in the Tag Browser before importing any tags. ::: 5. Click **OK** to add the **Random** folder. The folder and tags within will now appear in the Tag Browser. ### Creating Tags Within the Tag Browser Besides pulling tags from a device over OPC UA, you can also create your own tag. This section will demonstrate how to create a [Memory tag](platform\tags\types-of-tags\types-of-tags.md#memory-tags), which will be used in a [later section](#binding-tags-to-components). 1. In the Tag Browser, click on the **Add** ![Add Icon](add-icon.png) icon, then select **New Standard Tag** > **Memory Tag**. This will open the **[Tag Editor](platform\tags\tag-editor\tag-editor.mdx)**. ![Creating Tags Within the Tag Browser Step 1](creating-tags-within-the-tag-browser-step-1.png) 2. Give your tag a name. We will name our tag **myMemoryTag**. Since we are making a simple binding to a component, we do not need to configure any other properties at this time. After you have named your tag, click **OK**. ![Creating Tags Within the Tag Browser Step 2](creating-tags-within-the-tag-browser-step-2.png) Your Memory tag is now created and ready to use. ### Setting Up Tag History Now that your tags have been created, we can set up history on the tags we will be using. This lets us record historical tag values and display them to see trends and past data. Storing historical data typically requires setting up a [database connection](platform\database-connections\database-connections.md) and a [history provider](ignition-modules\tag-historian\tag-history-providers\tag-history-providers.md). We will be storing history to the SQLite SQL Historian resource configured by the Gateway's Quick Start when first commissioning the Gateway. :::caution Even though we are using the SQLite database connection for this example, it is **NOT** recommended to store history using SQLite. A dedicated external database, such as [Microsoft SQL Server](platform\database-connections\connecting-to-databases\connecting-to-microsoft-sql-server-express\connecting-to-microsoft-sql-server-express.md) or [MySQL](platform\database-connections\connecting-to-databases\connecting-to-mysql\connecting-to-mysql.md), should be used instead, as they will handle the potential amount of writes and reads needed for development and production data much better. ::: 1. In the Tag Browser, right-click on the Memory tag you created, then select **Edit tag(s)**. This will open the Tag Editor. 2. Click on the **History** category of the Categories section. ![Setting Up Tag History Step 2](setting-up-tag-history-step-2.png) 3. Under the **History Enabled** property, change the field from false to **true**. This will enable the rest of the history fields. 4. Under the **Storage Provider** property, change the field to the history provider you set up previously. In this example, we will be using the **Sample_SQLite_Database** configured from Quick Start. 5. Click **OK** to save these settings. We will now do the same thing with the tag in the **Random** folder that we will be binding later. 1. In the Tag Browser, expand the **Random** folder, right-click on **RandomInteger1**, and then select **Edit tag(s)**. This will open the Tag Editor. 2. Click on the **History** category of the Categories section. 3. Under the **History Enabled** property, change the field from false to **true**. This will enable the rest of the history fields. 4. Under the **Storage Provider** property, change the field to the history provider you set up previously. In this example, we will be using the **Sample_SQLite_Database** configured from Quick Start. 5. Click **OK** to save these settings. ### Binding Tags to Components Now that we have added our Perspective components, configured our tags, and enabled history on them, we can start binding them to our Perspective components to visualize our data. #### Binding the Memory Tag We'll first bind our Memory tag to the Slider and left Cylindrical Tank. This will allow us to control our Memory tag using our Slider and easily see the tag's value through the Cylindrical Tank. 1. In the Perspective Workspace, click on the Slider component. Selecting the Slider will populate the [Perspective Property Editor](ignition-modules\perspective\perspective-designer-interface.md#perspective-property-editor) with the Slider's configurable settings. :::tip You can also select the Slider in the Project Browser by navigating through **Perspective** > **Views** > **myView** > **root** > **Slider**. Other components are also selectable through the Project Browser. ::: 2. Go to the **value** property. You'll notice that hovering over this property will cause a light gray **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon to appear. Click on the icon to open the **Edit Binding** window. 3. Click on the **Tag** Binding Type. This will open the **Configure Tag Binding** section. ![Binding Tags to Components Step 3](binding-tags-to-components-step-3.png) 4. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon to the right of the **Tag Path** field. This will open a navigatable tree. 5. Within the tree, expand the **Tags** folder and select the Memory tag you [created previously](#creating-tags-within-the-tag-browser), then click **OK**. This will populate the **Tag Path** field with your Memory tag. ![Binding Tags to Components Step 5](binding-tags-to-components-step-5.png) :::note If you do not have a value for your Memory tag by the end of the Slider Tag binding process, the Tag binding will still work, but an error will be shown. ::: 6. Toggle the **Bidirectional** [property](ignition-modules\perspective\working-with-perspective-components\bindings-in-perspective\tag-bindings-in-perspective\tag-bindings-in-perspective.md) to enable it. This will allow our Slider to control our Memory tag. 7. Click **OK**. You'll notice that changing the Slider will now also update your Memory tag. Next, we'll bind the Cylindrical Tank to display the Memory tag's value. 1. Click on the left Cylindrical Tank. 2. Click on the **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon for the Cylindrical Tank's **value** property. 3. In the **Edit Binding** window, click on the **Tag** Binding Type. 4. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon. 5. Expand the **Tags** folder, select your Memory tag, then click **OK**. :::note We did not enable the **Bidirectional** property for the Cylindrical Tank. This is because we are only using the Cylindrical Tank to read the tag's value without writing to it. ::: Your Cylindrical Tank should now be displaying your Memory tag's value. To test your binding, set the Designer to [Preview Mode](platform\designer\designer-user-interface\designer-user-interface.md#previewing-the-project) and enable both [read and write](platform\designer\designer-user-interface\designer-user-interface.md#comm-mode) functionality. Notice that when adjusting the Slider, the Cylindrical Tank's value will also adjust. #### Binding the OPC Tag Now we'll bind our OPC tag **RandomInteger1** to our Progress Bar and right Cylindrical Tank. This will allow users to see the values coming in from our **RandomInteger1** tag. 1. In the Perspective Workspace, click on the Progress Bar component. Selecting the Progress Bar will populate the Perspective Property Editor with the Progress Bar's configurable settings. 2. Go to the **value** property and click on the **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon. This will open the **Edit Binding** window. 3. Select the **Tag** Binding Type. This will open the **Configure Tag Binding** section. 4. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon to the right of the **Tag Path** field. 5. In the tag tree, navigate to **Tags** > **Random**, select **RandomInteger1**, and press **OK**. ![Binding the OPC Tag Step 5](binding-the-opc-tag-step-5.png) 6. Click **OK** on the **Edit Binding** window. Note that we don't have to enable the **Bidirectional** option since the Progress Bar will only read the tag value and not write. Your Progress Bar is now displaying your **RandomInteger1** tag value. We'll now do the same for our second Cylindrical Tank. 1. Click on the right Cylindrical Tank. 2. Click on the **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon for the Cylindrical Tank's **value** property. 3. In the **Edit Binding** window, click on the **Tag** Binding Type. 4. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon. 5. In the tag tree, navigate to **Tags** > **Random**, select **RandomInteger1**, and press **OK**. 6. Click **OK** on the **Edit Binding** window. Similar to the Progress Bar, we don't have to enable the **Bidirectional** option since the Cylindrical Tank will only read the tag value and not write. Your second Cylindrical Tank should now be displaying the same value as your Progress Bar. #### Displaying Tag History Now that we have our tags' live values displayed in our project, let's focus on displaying our tags' history. To do this, we will bind our historical data to the Time Series Chart we created in the [Preparing Perspective Components](#preparing-perspective-components) section. 1. Click on The Time Series Chart to bring up its properties in the Perspective Property Editor. The property we will want to utilize is **series**. 2. Expand the **series** property, and then the **0** property if they aren't expanded already. You'll notice that unlike the previous component properties, there are additional subproperties beneath **series**. This is because unlike **value**, **series** is an array that contains multiple sources of data. 3. Click on the **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon for the Chart's **series** > **0** > **data** property. 4. Select the **Tag History** Binding Type. 5. Change the **Time Range** property to **Historical**. ![Displaying Tag History Step 5](displaying-tag-history-step-5.png) 6. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon. 7. In the tag tree, navigate to **Historical Providers** > **Sample_SQLite_Database** > **myGateway:default**. Select your Memory tag, and then press **OK**. ![Displaying Tag History Step 7](displaying-tag-history-step-7.png) 8. Press **OK** on the **Edit Binding** window. Your Memory tag's history should now be displayed on the Time Series Chart. We'll now add the historical data from **RandomInteger1**. 1. Click on The Time Series Chart to bring up its properties in the Perspective Property Editor. 2. Since **series** is an array, we can add additional properties to it. Hovering over the **series** property will bring up an **Add Array Element...** ![Add Array Element Icon](add-array-element-icon.png) icon. Click on this icon to add an element to the array. This will add a new **1** property under **series**. ![Displaying Tag History Step 2b](displaying-tag-history-step-2b.png) 3. Click on the **Add Binding** ![Add Binding Icon](add-binding-icon.png) icon for the Chart's **series** > **1** > **data** property. 4. Select the **Tag History** Binding Type. 5. Change the **Time Range** property to **Historical**. 6. Click on the **Browse Tags** ![Browse Tags Icon](browse-tags-icon.png) icon. 7. In the tag tree, navigate to **Historical Providers** > **Sample_SQLite_Database** > **myGateway:default** > **random**. Select **RandomInteger1**, and then press **OK**. ![Displaying Tag History Step 7b](displaying-tag-history-step-7b.png) 8. Press **OK** on the **Edit Binding** window. Your **RandomInteger1** OPC tag should now also be displayed on the Time Series Chart. ### Configuring Alarms Another common task is to set up alarms on your tags. This section will demonstrate how to navigate through the various Gateway and Designer sections set up an alarm on a tag and notify a user. Setting up an alarm and corresponding notifications consists of three parts: an [On-Call Roster](ignition-modules\alarm-notification\on-call-rosters\on-call-rosters.md), a [Notification Profile](ignition-modules\alarm-notification\notification-profile-types\notification-profile-types.md), and an [Alarm Notification Pipeline](ignition-modules\alarm-notification\alarm-notification-pipelines\alarm-notification-pipelines.md). The On-Call Roster determines who receives notifcations, while the Notification Profile determines how they are delivered. Then, the Alarm Notification Pipeline incorporates both of these to control alarm notifications for designated tag alarms. #### Creating an On-Call Roster We'll first set up an On-Call Roster on the Gateway. If your Gateway is installed locally, you can access your Gateway at http://localhost:8088/. 1. Navigate to **Services** > **Alarming** > **Rosters**. ![Creating an On-Call Roster Step 2](creating-an-on-call-roster-step-2.png) 2. Click on **Create Alarm Roster +**. 3. Give your roster a name, then click **Create Alarm Roster**. We will name ours **myRoster**. 4. Click on the three dots menu on the right of the new roster, and click **Manage Users**. ![Creating an On-Call Roster Step 5](creating-an-on-call-roster-step-5.png) 5. Select **default** from the Select User Source dropdown. The default [User Source](platform\security\classic-authentication-strategy\classic-authentication-strategy.md#user-sources) contains the admin user you created when first commissioning the Gateway. 6. With the admin user displayed, click on the **Add to Roster** ![Add to Roster Icon](add-to-roster-icon.png) icon and then **Save Changes** on the bottom right. ![Creating an On-Call Roster Step 7](creating-an-on-call-roster-step-7.png) Your admin user is now part of the roster. #### Creating an Alarm Notification Profile Next, we'll set up an Email Notification Profile for our Notification Profile. All Notification Profile options and their settings are described on the [Notification Profile Types](../../../ignition-modules/alarm-notification/notification-profile-types/notification-profile-types.md) page. 1. Navigate to **Services** > **Alarming** > **Notification**. 2. Click on **Create Profile +**. 3. Select the **Email Notification** option. Click **Next**. 4. Fill in the required fields. Take note of the **Username** field, as you will need this value [later](#adding-contact-information). Once you have filled out the form, click **Create Alarm Notification Profile**. In this example, we used the following values: * Name: **Email Profile** * Hostname: **mail@inductiveautomation.com** * Username: **user@inductiveautomation.com** ![Creating an Alarm Notification Profile Step 4](creating-an-alarm-notification-profile-step-4.png) Your Email Notification Profile has been created and now needs contact information to be set up before it is ready to use. #### Adding Contact Information The Email Notification Profile requires matching contact information to be added to our On-Call Roster user in order to send out alarm alerts. 1. Navgiate to **Platform** > **Security** > **User Sources**. 2. Click on the three dots menu on the default user source, and select **Manage Users**. ![Adding Contact Information Step 2](adding-contact-information-step-2.png) 3. Click on the three dots menu on the admin user, and select **Edit**. ![Adding Contact Information Step 3](adding-contact-information-step-3.png) 4. Under the Contact section, click **Add +** to add a new row. 5. Change the Type to **E-Mail**, and enter the Email Notification Profile Username in the Value field. 6. Click the **Save** ![Save Contact Icon](save-contact-icon.png) icon, then click **Save Changes**. Your admin user is now ready to begin receiving alarm notifications. #### Creating an Alarm Pipeline Now, we'll access the Designer to set up an alarm pipeline and configure how and when alarm notifications are sent out. 1. In the Project Browser, right-click on **Alarm Notification Pipelines** and then select **New Alarm Pipeline**. We will name our pipeline **myPipeline**. 2. Drag a [Notification block](ignition-modules\alarm-notification\alarm-notification-pipelines\pipeline-blocks\notification-block.md) from the top bar down to the Alarm Pipeline workspace. 3. Click on the Notification block to display the Notification Block properties in the [Pipeline Block Editor](ignition-modules\alarm-notification\alarm-notification-pipelines\alarm-pipeline-designer-interface\alarm-pipeline-designer-interface.md#pipeline-block-editor). ![Creating an Alarm Pipeline Step 3](creating-an-alarm-pipeline-step-3.png) 4. In the Notification tab, click on the dropdown menu and select your Notification Profile. Ours is called **Email Profile**. 5. Click on the **Contacts** tab and select the On-Call Roster we [created](#creating-an-on-call-roster). Ours is called **myRoster**. 6. On the Alarm Pipeline workspace, connect the **START** node to the **IN** node of your Notification block, then save your project. ![Creating an Alarm Pipeline Step 6](creating-an-alarm-pipeline-step-6.png) Now that we've created an Alarm Notification Pipeline, we can use it on the tags we want to keep an eye on. In this example, we'll configure an alarm on the **RandomInteger1** tag that's available from the Gateway's Quick Start resources. 1. In the Tag Browser, expand the Random folder, right-click on **RandomInteger1**, and then select **Edit tag(s)**. If your Tag Browser isn't currently displayed, navigate back to the view you created in your Perspective project. The Designer interface will change and show the Tag Browser again. 3. Select the **Alarms** category, then click the **Add** ![Add Alarm Icon](add-alarm-icon.png) icon. 4. Under Alarm Mode Settings, change the Mode to **Above Setpoint** and the Setpoint to **85**. This will cause the alarm to trip if the tag value reaches 85 or above. 5. Under **Notification** > **Active Pipeline**, select the pipeline we created and then click **OK**. Your alarm will now send an email notification to the admin user's contact information whenever the **RandomInteger1** tag value exceeds setpoint. You can test this out by changing the tag's value, and even add an Alarm Journal Table component to a view to display alarm history. This component works with the Gateway's Alarm Journal from Quick Start. ### Displaying Alarm History We'll now utilize the Alarm Journal component we put on our project in step 2 of [Preparing Perspective Components](#preparing-perspective-components). 1. Go to your Alarm Journal Table component. 2. Change the **name** property to the actual name of the Alarm Journal configured in your Gateway. If you are using the Quick Start, the name should be `Sample_Alarm_Journal_Profile`. Your Alarm Journal Table will now populate with the data from the Gateway's Alarm Journal. Further details on the Gateway Alarming settings can be found in the [Alarm Notification](../../../ignition-modules/alarm-notification/alarm-notification.md) section, while more information about alarm states, schedules, and usage with tags can be found in the [Alarming](../../../platform/alarming/alarming.md) section. ### Accessing Your Project Now that you have finished your project, you can launch the application to see what it looks like to an operator. You can view your project through the Designer's [Preview Mode](platform\designer\designer-user-interface\designer-user-interface.md#project-menu), launch the application through the Designer's [Tools Menu](platform\designer\designer-user-interface\designer-user-interface.md#tools-menu), or use Perspective Workstation. #### View Your Project in Preview Mode Preview Mode will allow you to interact with your project as if you were an operator without needing to leave the Designer. 1. Click on the **Project** menu item at the top of the Designer. 2. Toggle **Preview Mode** to enable it. #### View Your Project Through the Tools Menu Using the Designer's Tools Menu will allow you to launch your project without using a launcher. 1. Click on the **Tools** menu item at the top of the Designer. 2. Navigate to the **Launch Perspective...** option, then click **Launch Session**. #### View Your Project Using Perspective Workstation Perspective Workstation is usually how operators would launch your Perspective project. Because of this, it is recommended to ensure your project launches correctly through the Perspective Workstation launcher. 1. Open the Perspective Workstation launcher we installed in the [Downloading and Installing Ignition](getting-started\startup-guide\downloading-and-installing-ignition\downloading-and-installing-ignition.md#downloading-and-installing-perspective-workstation) section. 2. Click **Add...** on the bottom of the launcher. ![View Project Using Perspective Workstation Step 2](view-project-using-perspective-workstation-step-2.png) 3. Select the local Gateway, then click **Select Gateway**. ![View Project Using Perspective Workstation Step 3](view-project-using-perspective-workstation-step-3.png) 4. Select the project we just created, then click **Add Application(s)**. Your project will be added to the **My Applications** window. ![View Project Using Perspective Workstation Step 4](view-project-using-perspective-workstation-step-4.png) 5. Click on your project, then click **Open...**. ![View Project Using Perspective Workstation Step 5](view-project-using-perspective-workstation-step-5.png) Perspective Workstation will launch your project and you can now interact with it as if you were an operator.