# Verge Aero - Drone Show Technology

### Verge Aero

### Mission

By developing the best technology that’s easy to use, our goal is to create an entirely new industry with shows everywhere around the globe. Our founders, Chris Franzwa, Anthony Merlino, Tony Samaritano, and Nils Thorjussen, bring decades of innovation and expertise in developing cutting-edge drone and production technology. Drone shows are the singular focus of our business. We are dedicated to providing the tools, technology, and support necessary to elevate the drone show industry, and propelling this art form into the mainstream of global entertainment.

### Story

Since its founding in 2016, Verge Aero grew from working out of livings rooms, basements, and a garage, to become the leading technology provider for drone shows. Now based out of Austin, Texas and with a global presence, Verge Aero has been featured on events ranging from America’s Got Talent: Extreme, to Macy’s 4th of July celebration in NYC.

* [About Us](https://www.verge.aero/about)
* [Team Verge](https://wiki.droneshow.software/wiki/Team_Verge)

### Learn About the Software

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="files"></th><th data-hidden></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Verge App Toolbox</strong></td><td>Access the Verge Software Suite</td><td><a href="/files/MK1Tv7C0WHtm2oKshZdq">/files/MK1Tv7C0WHtm2oKshZdq</a></td><td></td><td><a href="/pages/CyH2xJQs9yWJ1S8BYNav">/pages/CyH2xJQs9yWJ1S8BYNav</a></td></tr><tr><td><strong>Verge Design Studio</strong></td><td>Design drone shows</td><td><a href="/files/qU2AuANyfQ8f2HgFGy8q">/files/qU2AuANyfQ8f2HgFGy8q</a></td><td></td><td><a href="/pages/JjjojIyKxaiBPzzLwvtg">/pages/JjjojIyKxaiBPzzLwvtg</a></td></tr><tr><td><strong>Verge Console</strong></td><td>Fly drone shows</td><td><a href="/files/GB9HuSCUVFnEdjdXLfhD">/files/GB9HuSCUVFnEdjdXLfhD</a></td><td></td><td><a href="/pages/NRVLc9BISmfdaTAFYQsL">/pages/NRVLc9BISmfdaTAFYQsL</a></td></tr><tr><td><strong>Verge Web Portal</strong></td><td>Manage your organization &#x26; fleet</td><td><a href="/files/6ZheoMu3ASlJIcsozqaq">/files/6ZheoMu3ASlJIcsozqaq</a></td><td></td><td><a href="/pages/E7uWctvQjaYVLOXiuPXj">/pages/E7uWctvQjaYVLOXiuPXj</a></td></tr></tbody></table>


# Verge Web Portal

[Verge's Web Portal](https://portal.verge.aero/) provides users the ability to:

* Manage and gain insights into their drone fleets
* View logs and performance summaries from their fleet's shows
* Create [flight authorizations](/drone-show-software/verge-web-portal/creating-and-submitting-flight-authorizations) for approval by Verge Administrators to ensure safe flights
* Render and [download designed Shows](/drone-show-software/verge-web-portal/shows/creating-and-rendering) to fly on their drones, and coordinate every other aspect of a production via the [Shows workspace](/drone-show-software/verge-web-portal/shows)
* Manage their [organization's members and invitations](/drone-show-software/verge-web-portal/managing-organization-members)
* Manage [product key activations](/drone-show-software/verge-web-portal/managing-license-activations)

and more! Users can register new accounts on the registration [page](https://portal.verge.aero/register). If you have not been added to your relevant organization reach out to your organization's managers or <support@vergeaero.com>

<figure><img src="/files/ozeT60TvZrsBbiDXZEZW" alt=""><figcaption><p>Login page for the Verge Web Portal</p></figcaption></figure>


# Verge Aero Account

All Verge Aero software products require a login to take full advantage of their functionality. A Verge Aero account will allow usage of the Web Portal, [Cloud Asset Repository](/drone-show-software/verge-design-studio/show-effects/show-effect-asset-repository), App Toolbox, Console Analytics, and much more. If you do not have a Verge Aero Account, you may register at the [web portal](/drone-show-software/verge-web-portal). Please note that you must currently be a member of, or invited to, an organization that has an active software license.

<figure><img src="/files/vg0JE3AE5rL1725a3qbg" alt=""><figcaption></figcaption></figure>


# Managing Organization Members

{% hint style="warning" %}
**Adding a user to your organization does not grant them a software license to the** [**Verge Design Studio**](/drone-show-software/verge-design-studio) **or** [**Verge Console**](/drone-show-software/verge-console) **(Flight Control Software).** Licenses are managed separately from organization membership — being a member only grants access to the Web Portal itself and any organization-level resources. To request additional Design Studio or Console licenses for a new (or existing) member, please reach out to <support@vergeaero.com>.
{% endhint %}

The Verge Web Portal lets Organization Managers (and above) administrate the members of their organization — adding new members, changing their roles, removing them, and tracking pending invitations. This page is available by navigating to the **Organization** workspace and clicking the **Members** tab on the left navigation bar.

<figure><img src="/files/Ij4OoHaI00wOIOqGT7Go" alt=""><figcaption><p>Organization workspace dashboard</p></figcaption></figure>

## The Members tab

The Members tab lists everyone currently in your organization along with their first name, last name, email, phone number, and role. Columns are sortable, and the search box at the top filters the table across all visible fields.

<figure><img src="/files/XziMHwmfDSrQWGOJDypn" alt=""><figcaption><p>"Members" tab listing the users in the current organization</p></figcaption></figure>

### Adding a member

Click **Add Member** in the top-left corner and enter the email address of the person you'd like to add.

<figure><img src="/files/Oj10LV4dF9qxwK9V3VPL" alt=""><figcaption><p>"Add Organization Member" modal</p></figcaption></figure>

There are two possible outcomes:

* **The email already has a Verge Aero account** — the user is added directly to your organization and immediately appears in the Members table.
* **The email does not yet have a Verge Aero account** — an invitation email is sent to that address, and the entry appears under the **Invitations** tab as pending. The invitee will be added to your organization automatically once they register at the [Web Portal](https://portal.verge.aero/) using the same email address.

Only one pending invitation per email per organization is allowed. If the address has already been invited, you will be prompted to revoke the existing invitation before sending a new one.

### Changing a member's role

The **Role** column on each row is an inline dropdown. Selecting a new role triggers a confirmation prompt and applies the change immediately. The available roles are **Guest**, **User**, **Manager**, and **Owner**. Verge staff additionally have access to an **Admin** role.

Owners can promote other members to Owner as well. If you'd like to transfer ownership without retaining it yourself, promote the new Owner first and then have your role lowered (or contact <support@vergeaero.com> for assistance).

### The Manage menu

Each row's **Manage** column opens a menu with two actions:

<figure><img src="/files/vsa5kk0VtLjjCnkczB9L" alt=""><figcaption><p>The Manage menu for an organization member</p></figcaption></figure>

* **edit desktop permissions** — opens the desktop permissions modal for that user, where you can grant or revoke access to specific software streams.
* **remove** — removes the user from the organization after a confirmation prompt. The user is not deleted; they simply lose access to your organization's resources.

## The Invitations tab

The **Invitations** tab tracks members you've invited who have not yet registered for the Verge Web Portal. Each row shows the invited email address, the date the invitation was sent, and a **revoke** button.

<figure><img src="/files/q96V7lIGYkT0yhMfZlMI" alt=""><figcaption><p>Pending invitations awaiting registration</p></figcaption></figure>

When the invitee registers at the [Web Portal](https://portal.verge.aero/) with the matching email address, the invitation is consumed automatically and they will appear under the **Members** tab.

Clicking **revoke** cancels a pending invitation after a confirmation prompt. Revoked invitations cannot be reused — if you change your mind, send a new invitation through **Add Member**.

## Permissions

Adding members, changing roles, using the Manage menu, and revoking invitations all require the **Manager** role or higher in the current organization. If you don't have a management role, these controls will appear disabled. To request elevated access, contact one of your organization's existing Managers or Owners.


# Shows

Shows are the canonical record of a drone-show production — from the first creative pitch through pilot assignment, file handoff, customer approval, and the final shareable render preview.

The **Shows** workspace is the heart of the Verge Web Portal. Every drone-show production gets its own Show, broken into one or more **Performances** (the individual flights), and tracked through a single canonical record that every collaborator — producers, designers, pilots, pyro coordinators, venue contacts, customers — can work against.

Because each Show has a [shareable public link](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing#sharing-a-show), coordination is genuinely cross-organizational: vendors and customers without a Verge account can open the show, comment on storyboards, watch the rendered preview, and complete the deadlines you've assigned to them — all without chasing email threads or shared drives.

This section is organised around the three phases of a production:

1. [**Creating and Rendering**](/drone-show-software/verge-web-portal/shows/creating-and-rendering) — how to spin up a new show, upload a `.packedshow`, and download the resulting `.vbake`, VVIZ, or Depence files.
2. [**Logistics, Collaboration, and Coordination**](/drone-show-software/verge-web-portal/shows/logistics-collaboration-and-coordination) — show metadata, venue, personnel, deadlines, file/link/contact management, and the cross-organisation workflows the portal automates around them.
3. [**Storyboarding and Previewing**](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing) — the storyboarding tool, share dialog, and shareable render previews that close the loop with customers and partners.

<figure><img src="/files/78xrsCMBY8qwRt6e1vqc" alt=""><figcaption><p>A Show's landing tab — the Show Details panel. From here every other surface (Venue, Personnel, Resources, each Performance) is one click away.</p></figcaption></figure>


# Creating and Rendering

Spin up a new Show, upload a .packedshow, and download the resulting .vbake, VVIZ, or Depence files — the production lifecycle from first save to final render.

A **Show** is the top-level container for a drone-show production in the portal. Every render, file, deadline, contact, and storyboard slide belongs to a Show, so creating one is the first step for any new project.

## Creating a Show

From the **Shows** workspace sidebar, click **Create New Show**. You'll land on the new show's **Show Details** tab with the bare minimum — name, description, start/end dates, and the option to pick an existing or create a new [Flight Authorization](/drone-show-software/verge-web-portal/creating-and-submitting-flight-authorizations).

A Show contains one or more **Performances** — the individual flights. Most shows have one performance, but multi-day events, rehearsal flights, and tour stops use multiple performances under a single Show. Add more from the left navbar (`+ Add New Performance`).

<figure><img src="/files/78xrsCMBY8qwRt6e1vqc" alt=""><figcaption><p>The Show Details tab for a newly-created Show.</p></figcaption></figure>

## Uploading and Rendering Show Files

Once you have an approved [Flight Authorization](/drone-show-software/verge-web-portal/creating-and-submitting-flight-authorizations), navigate to a Performance and open the **Renders** tab, then click **Upload Show File** to submit a `.packedshow` exported from the [Design Studio](/drone-show-software/verge-design-studio). The portal will start the render and report live progress on the Renders tab.

When the render completes, use the **Download** icon next to the render row to retrieve the resulting `.vbake` for upload to your drones.

<figure><img src="/files/vTXqoyorRG38xSdwYvZg" alt=""><figcaption><p>The Shows table can be expanded to show each Show's renders inline.</p></figcaption></figure>

<figure><img src="/files/l3jm20sRG06unxzhQclj" alt=""><figcaption><p>The Renders tab for an individual Performance.</p></figcaption></figure>

## Exporting VVIZ and Depence Files

In addition to the `.vbake` used to fly the drones, the portal can produce **VVIZ** and **Depence** output files for external previsualization software:

1. Navigate to the relevant Show, then the Performance, then the **Renders** tab.
2. Click **Upload Show File**.
3. Under **Output files**, check **VVIZ** and/or **Depence** in addition to the default `.vbake` output.
4. Submit the render and wait for it to complete.
5. Once finished, click the **Files** icon on the render row and choose **Download VVIZ** (or **Download Depence**).

The completed render's files can also be reached from the main Shows page: locate the show's row in the Shows table, expand the row to reveal its renders, and click the Download icon next to the desired render.

<figure><img src="/files/mljGikGoZOG6EbLrjLqj" alt=""><figcaption><p>The Upload Show File modal with the VVIZ output file option checked.</p></figcaption></figure>

<figure><img src="/files/c3YMMBsjy9jrBHBaliqe" alt=""><figcaption><p>Downloading the VVIZ or Depence file from the Files menu on a completed render.</p></figcaption></figure>

***

Once a Show exists, the bulk of the production work happens on the [Logistics, Collaboration, and Coordination](/drone-show-software/verge-web-portal/shows/logistics-collaboration-and-coordination) and [Storyboarding and Previewing](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing) pages.


# Logistics, Collaboration, and Coordination

Every coordination surface on a Show — venue, personnel, resources, deadlines, contacts, files, and per-performance details — designed for cross-organisation collaboration via the shareable show link.

A drone show is a coordination problem as much as it is a creative one. Pilots, pyro coordinators, designers, venue contacts, customers, and freelancers all need to see the same information, contribute to it, and stay aligned across organisational boundaries. The portal solves this by making every detail of a Show editable in one place — and shareable to anyone with the public link.

The left navbar of a Show is split into **show-level tabs** (Show Details, Venue, Personnel, Resources) and **per-performance tabs** (Performance Details, Storyboard, Renders). Show-level information applies to the whole event; per-performance information applies to one flight.

## Show Details

Every Show opens to the **Show Details** tab — its identity card. Show Name, Description, Start/End Dates, and the bound [Flight Authorization](/drone-show-software/verge-web-portal/creating-and-submitting-flight-authorizations) all live here, alongside a metadata card that shows who created the Show, when, and which organisation owns it.

<figure><img src="/files/78xrsCMBY8qwRt6e1vqc" alt=""><figcaption><p>Show Details — the canonical metadata about a Show.</p></figcaption></figure>

Changes auto-flag in the header with a pulsing **Save Pending Changes** indicator; click the floppy-disk icon to persist them. The header also holds the **Print Show** icon (which produces a printable handout of every tab) and the **Share** icon, which opens the share dialog described under [Storyboarding and Previewing](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing#sharing-a-show).

## Venue

The **Venue** tab carries the show's physical location. Type or paste coordinates (decimal or DMS), search by address through the Mapbox-backed picker, or drag the marker — all three methods stay in sync. Altitude auto-populates from the elevation API once lat/long are set.

The same picker is used in the design-request and show-request flows so locations are entered the same way everywhere in the portal.

## Personnel

The **Personnel** tab is the show's contact roster. The top half is a fixed-role table with rows for **Pilot, Co-Pilot, Pyro Operator, On-Site Contact, Content Capture,** and **Designer** — the roles most productions need at minimum. Each row takes a name, phone, and email; leave any of them blank when not applicable.

Below the key roles, an **Additional Contacts** table holds anyone else attached to the show — vendors, secondary contacts, customer reps. Each entry is just name, role, phone, email.

<figure><img src="/files/XfGKPO603zMThoCW20CV" alt=""><figcaption><p>Personnel — fixed roles at the top, an open list of additional contacts below.</p></figcaption></figure>

Contacts added here are visible everywhere the show's contact list is referenced — including the Resources tab and the deadline-assignment popover described below.

## Resources

The **Resources** tab is the unified workspace for everything that lives alongside a show: **Deadlines, Files, Links,** and **Contacts**. Each section is a collapsible table; deadlines are open by default since they're the most active surface.

<figure><img src="/files/89NAC95w1EaUYbufpJe2" alt=""><figcaption><p>The unified Resources tab. Deadlines, Files, Links, and Contacts all sit in one place, with a top-level performance filter.</p></figcaption></figure>

### Filtering by Performance

A **Filter by performance** dropdown at the top scopes every table to either **All resources**, **Show-level only**, or a specific performance. Resources can be associated with the show as a whole or attached to one or more performances — picking a performance here narrows all four tables to the ones referenced by it.

### Deadlines

The Deadlines table is the project plan for a show. Each row holds a name, due date/time, a completion checkbox, and three popovers — **Files**, **Links**, and **Contacts** — that attach any combination of resources to the deadline.

* **Timezone** — Pick a display timezone at the top of the table. The selector defaults to your browser zone and only changes how dates are rendered; the underlying timestamps are stored as UTC instants so different viewers see the same moment correctly localised to their chosen zone.
* **Sorting** — Click the **Due** column header to flip ascending/descending.
* **Calendar view** — The **Calendar View** button opens a month-grid visualisation of every deadline, color-coded by completion status. Click an event to toggle its completed state.

<figure><img src="/files/zsyMkxajjpHuKSJ7v141" alt=""><figcaption><p>Deadlines Calendar — completed tasks render green; pending render red. Click any event to flip its status.</p></figcaption></figure>

### Files

Files are uploaded via a drag-and-drop dropzone; multiple files can be selected at once, and each shows its filename and size before submission. Clicking **Add** uploads immediately — no separate Save Show step required for uploads. Each file row exposes its size, a per-row download, the **Performances** popover (to associate the file with one or more performances), and a per-row trash. The **Download All** button on the section header pulls every visible file in one shot.

### Links

Links work the same way as files — title + URL, with the same Performances popover and a one-click open. They're intended for outbound resources (vendor portals, weather services, FAA filings, reference docs).

### Contacts

The Contacts table is a view of the show's contact roster filtered by association. Adding a contact here is equivalent to adding it on the Personnel tab; the two views share storage and stay in sync.

## Performance Details

Each Performance has its own **Performance Details** tab with the data unique to that flight:

* **Performance Name** and **Description**
* **Launch Time** — stored as a UTC instant; the timezone selector at the top controls only how the time is displayed
* **Drones In Show** — how many drones appear in the choreography
* **Drones On Site** — how many are physically on site; sub-fields break the on-site count into **LED Drones** and **Pyro Drones**. The LED + Pyro sum auto-fills the Drones On Site total, but a manual override sticks.
* **Launch Method** — Manual or Timecode

<figure><img src="/files/dmQCi8gH7R2NFZuLjiIt" alt=""><figcaption><p>Performance Details — drones on site broken down into LED and Pyro counts.</p></figcaption></figure>

## Deadline Lifecycle and Notifications

The deadline workflow is designed to keep the team accountable without anyone needing to chase the portal. Two automatic emails go out:

### Assignment

When a contact is added to a deadline's Contacts popover, an email is dispatched to that contact's address on the next save. The email identifies the show, the organisation that owns it, the deadline name, the due time, and includes the public share link — so the contact can open the show, see the details, and complete the work directly.

<figure><img src="/files/w34YmYqgsclEDXMXRAhS" alt=""><figcaption><p>The email a contact receives when they're assigned to a deadline.</p></figcaption></figure>

### Completion

When a deadline transitions from incomplete to complete, an email goes to the user who created the deadline, letting them know it's done. The email links back to the show so they can verify and move on to the next milestone.

<figure><img src="/files/gKaPCUSHLNjvGDW5orNh" alt=""><figcaption><p>The email the deadline creator receives when someone marks the deadline complete.</p></figcaption></figure>

Both emails fire only on the actual state transition — undoing an assignment or unchecking a completion won't trigger spurious notifications.

## Cross-Organisation Collaboration

The combination of the unified Resources tab, deadline notifications, and the [shareable public show link](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing#sharing-a-show) means that a customer, a vendor, or a freelance pilot can be brought into a production with zero account setup:

1. The producer assigns the contact to one or more deadlines on the show.
2. The contact receives an email with the share link and the deadlines they own.
3. They open the link in any browser, complete their work (uploading files, commenting, marking deadlines complete), and the producer is automatically emailed back the moment each item is done.

For partner organisations that are full Verge customers, the **Share** dialog's **Organizations** tab grants their members collaborative edit access to the same show, with no duplication of data across orgs.

***

For the storyboarding tool, customer-review workflow, and shareable render preview, continue to [Storyboarding and Previewing](/drone-show-software/verge-web-portal/shows/storyboarding-and-previewing).


# Storyboarding and Previewing

Storyboard a show before it's designed, share it with customers and partner organisations, and review the final rendered preview together — all from a single public link.

Once a Show is created and the logistical groundwork is in place, two creative-loop tools take over: the **Storyboarding** tool for pre-production visualisation, and the **Shareable Render Preview** for post-render customer approval. Both are built around the show's single public link, so customers and partner organisations can participate without ever needing a Verge account.

## The Storyboarding Tool

The storyboard is the centerpiece of pre-production. It lets producers and designers communicate the creative vision of a show — slide by slide — long before any drone-level design work begins in the [Design Studio](/drone-show-software/verge-design-studio).

A storyboard is composed of an ordered set of **slides**, each representing a single beat, element, or scene of the show. Slides can be rearranged via drag-and-drop, individually replaced, or duplicated as the creative direction evolves.

### Bringing Your Own Design Elements

Producers often arrive with their own creative deliverables — sketches, reference art, mood boards, or vector logos. The storyboarding tool accepts uploaded PNG, JPEG, and SVG files (up to 16 MB each). SVG uploads are flagged as **studio-readable**, meaning they can be exported and imported directly into the Design Studio as the starting point of a real design.

<figure><img src="/files/jwMyWTtSscKgonZO3n4s" alt=""><figcaption><p>Each slide can hold a different media type — bring your own artwork, pick from existing assets, or generate a new slide.</p></figcaption></figure>

### Selecting from Existing Show Effects

If your organization has built up a library of past designs, you don't have to start from scratch. The storyboard tool can pull directly from your **Show Effect** asset library, letting you drop a previously designed element (a logo formation, a comet burst, a signature sequence) straight onto a slide. This is especially useful for repeat clients, recurring brands, or template-driven shows.

<figure><img src="/files/1fLjHxUbVyPl372BmmRe" alt=""><figcaption><p>Browse the organization's show effect library and pick from existing/past assets to populate a slide.</p></figcaption></figure>

### Generating Slides with AI

For early concepting, the storyboard tool includes an AI generator. Describe the show in plain language (e.g. *"a 300-drone wedding finale with a heart formation, then doves taking flight, ending in fireworks"*), choose how many elements you'd like (1–10), specify a drone count (50–1,000), and optionally provide a reference image for style guidance. The generator returns a set of ready-to-place storyboard slides.

<figure><img src="/files/N1stzOY4tUoX4tchqM9d" alt=""><figcaption><p>The AI Sequencer — describe a show in text, choose drone count and element count, and generate a full storyboard.</p></figcaption></figure>

<figure><img src="/files/CAOWpiezvCYIX97hK2H3" alt=""><figcaption><p>The generated storyboard, ready for review, reordering, or hand-off to the design team.</p></figcaption></figure>

### Cloning Existing Storyboards

Tour-style shows and templated productions rarely start from a blank canvas. Any existing storyboard can be cloned in a single click — slides, ordering, media, and metadata all carry over to the new performance. From there, the designer can swap branding, tweak ordering, or replace specific slides without having to rebuild the structure.

### Importing Storyboards Into the Design Studio

Once a storyboard is approved, designers can import studio-readable slides directly into the [Design Studio](/drone-show-software/verge-design-studio), where they become real, editable scene objects on the timeline. This eliminates the manual "translate the storyboard into a design" step and ensures the producer's creative intent flows cleanly into the technical implementation.

### Slide-Level Comments

Every slide is independently commentable. Producers can leave notes like *"make this logo 20% bigger"* on slide 4 while a customer requests a color change on slide 7 — without losing context. Comments are scoped to the specific slide and surface in the show-wide comments panel, so nothing gets lost in a generic chat thread.

<figure><img src="/files/LJwrf352Het2TTQ1cYYz" alt=""><figcaption><p>Leave a comment on a specific storyboard slide — feedback stays anchored to the artwork it's about.</p></figcaption></figure>

## Sharing a Show

Once a show takes shape, the portal makes it trivial to bring outside collaborators — customers, partner organizations, freelance designers, or pyro vendors — into the conversation without giving them full access to your organization. Open the **Share** dialog from the icon in the Show's header.

### Sharing With Other Organizations

The **Organizations** tab lets you search for and add partner organizations. Members of any organization on the share list can open the show, view its details, and participate in storyboard review and resource coordination — the same view they'd have on their own shows.

<figure><img src="/files/ftCQjkZxTdXjD3BjF5Au" alt=""><figcaption><p>Add partner organizations to a show to give their members collaborative access.</p></figcaption></figure>

### Public Share Links

For customers and external reviewers who don't have a Verge Aero account, the **Links** tab exposes two URLs:

* **Public (read-only) link** — anyone with the URL can view the show, comment on storyboard slides, rearrange storyboard elements as part of the review process, mark assigned deadlines complete, and download files. No login required.
* **Edit link** — for members of the owning organization (or any organization on the share list), grants full edit access to the show's data fields.

This split lets you send your customer a single link they can click from any device, comment on, and approve — without ever creating an account or seeing the rest of your organization's data. The same link is what gets embedded in the [deadline-assignment and completion emails](/drone-show-software/verge-web-portal/shows/logistics-collaboration-and-coordination#deadline-lifecycle-and-notifications), so contacts go straight from inbox to action.

## Shareable Render Previews

The most powerful piece of the coordination workflow is the **shareable render preview**. After a show is rendered, the public share link lets customers preview the **entire show — synchronized with its music** — right in their browser.

This means a producer can:

1. Submit a `.packedshow` file (see [Creating and Rendering](/drone-show-software/verge-web-portal/shows/creating-and-rendering)).
2. Wait for the render to complete.
3. Send the customer the public share link.
4. The customer plays back the full 3D preview with audio, exactly as it will look in the sky.

Customers can scrub through the timeline, view the show from multiple angles, leave comments, and approve the final cut — all before a single drone leaves the ground. This dramatically shortens the approval cycle compared to traditional video render hand-offs and gives customers a far more interactive review experience.

<figure><img src="/files/ZvRs4XX5IOdZ24mMi6Ki" alt=""><figcaption><p>A shared render preview — customers play back the entire show with music directly in the browser.</p></figcaption></figure>

## Bringing It All Together

The combination of storyboards, slide-level comments, organization sharing, public review links, and shareable render previews turns the Verge Web Portal into a complete coordination platform for drone show production. Producers, designers, pilots, pyro coordinators, and customers all work against the same record — from the first AI-generated concept slide through final customer approval of the rendered show — and the [Logistics, Collaboration, and Coordination](/drone-show-software/verge-web-portal/shows/logistics-collaboration-and-coordination) workflows keep everyone accountable to their deadlines along the way.


# Utilizing Show Requests

Simple, streamlined, show requests that can be shared or directly embedded.

Verge's Show Request page is a simple, straight-forward web form that can be utilized to send a shareable link to customers or prospective customers who would like to request shows from your organization.

A link to your organization's show request form can be accessed from a top level button under the "Shows" workspace -> Shows tab.

<figure><img src="/files/YYBtHUUx7jqlb5Fwt9Lm" alt=""><figcaption></figcaption></figure>

This will take you to your organization's custom branded marketing page. Each organization has their own branding, logo, website, etc. on their respective

<figure><img src="/files/ZlH92kGVx1Wt6YzgsoVJ" alt=""><figcaption></figcaption></figure>

This page can also be embedded into a website or other web application for easier use.

Utilizing this form allows you to streamline the process of receiving and managing show requests from customers and prospective customers, keeping all of the information in one place.

Once a show request is submitted, it will show up within your Organization's Shows, under the "Requested" tab.

<figure><img src="/files/Il5drVa8rl8R3T3yCYgj" alt=""><figcaption></figcaption></figure>

If you decide to approve the show request, the show will immediately show up in your organization's list of shows and a corresponding shareable link will be emailed out to the customer.

<figure><img src="/files/TB5Xa2Ug4zf8QDSMdiGh" alt=""><figcaption></figcaption></figure>

If, instead, you decide you cannot accommodate this customer's request, you can simply decline the request via the Requested tab within your organization's Shows and the customer will not be notified.

<figure><img src="/files/RxsSDAdFBp4A2FHcg9ll" alt=""><figcaption></figcaption></figure>


# Fleets

Organize your devices into fleets and groups, file RMAs, and track inventory.

The **Fleets** workspace is where your organization's hardware lives. Every drone, battery, charger, gateway, base station, and pyro board your team operates is represented by a **device** in the Portal. Devices are organized into **fleets** — region- and type-scoped groups (X1 or X7) that map to how your operation is actually run — and then surfaced through a handful of tools that take you from day-to-day fleet management through repair tracking and physical shipment.

This section is organized around four features, each of which has its own page:

1. [**Fleet Management**](/drone-show-software/verge-web-portal/fleets/fleet-management) — create new fleets, move devices between them, rename regions, and remove fleets that are no longer in use. The foundation everything else builds on.
2. [**Device Groups**](/drone-show-software/verge-web-portal/fleets/device-groups) — assemble reusable, ad-hoc groups of devices that cut across fleets. Useful when you need to act on the same set of drones repeatedly — to spin up a new regional fleet, file an RMA, send a CSV to support, or export an inventory report.
3. [**RMA Requests**](/drone-show-software/verge-web-portal/fleets/rma-requests) — open, track, and close Return Merchandise Authorizations for devices that need repair. The RMA flow scans the affected devices, captures per-device notes, and routes the request to Verge's support team.
4. [**Inventory Tracking**](/drone-show-software/verge-web-portal/fleets/inventory-tracking) — pack drones into physical cases and pallets, mark shipments as sent / received / completed, and label everything with scannable QR codes for end-to-end tracking before and after a show.

> **Tip:** Devices appear in only one fleet at a time, but they can belong to any number of Device Groups simultaneously. Reach for fleets when you're modelling **where the hardware lives**, and for groups when you're modelling **a set of devices you'd like to act on together**.


# Fleet Management

Create, organize, and maintain your drone fleets in the Verge Aero Portal.

The Fleet Management page lets you create new fleets, delete empty ones, move devices between fleets, and rename fleet regions. Navigate to [**Fleet > My Fleets**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/fleets/README.md) in the Verge Aero Portal to access these tools.

<figure><img src="/files/MdKnRUensAr9LMqXIbp4" alt="My Fleets page showing three fleets — New York X1s, Los Angeles X1s, and North America X7s — with Create Fleet, Transfer Devices, and Upload FAA Data buttons at the top"><figcaption><p>The My Fleets page with fleet management controls. Each fleet row includes a <strong>view</strong> button, a transfer icon, and a delete icon.</p></figcaption></figure>

***

## Creating a Fleet

Select **Create Fleet** from the My Fleets toolbar to open the fleet creation dialog.

<figure><img src="/files/8rnXdWKwhrtbYfi6zeuH" alt="Create Fleet modal with X1/X7 selector, Region text field, and optional Devices CSV upload"><figcaption><p>The Create Fleet modal. Device type, region, and an optional initial device CSV can all be provided at creation time.</p></figcaption></figure>

Fill in the following fields:

| Field           | Required | Description                                                                                                                 |
| --------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Device Type** | Yes      | Select **X1** or **X7**. This determines which drones can be assigned to the fleet and cannot be changed after creation.    |
| **Region**      | Yes      | A label that identifies where or how the fleet is used — for example, `North America`, `Los Angeles X1s`, or `EU Tour`.     |
| **Devices CSV** | No       | A plain-text or `.csv` file containing a flat list of device identifiers to add to the new fleet at creation, one per line. |

Select **Create Fleet** to confirm. The new fleet will appear immediately in the fleet list.

### Adding Devices at Creation Time

If you supply a Devices CSV, each identifier in the file is looked up and validated before being moved into the new fleet. The Portal accepts two identifier formats:

* **X1 serial numbers** — used for X1 drones (e.g. `6340`)
* **Full UIDs** — used for X7 drones (e.g. `P8DR4T3U96`)

A device is only moved if all of the following are true:

1. The identifier matches an existing device in the system.
2. The device currently belongs to a fleet that your organization owns.
3. The device type matches the fleet type — X1 serials can only go into X1 fleets, and X7 UIDs can only go into X7 fleets.

After the fleet is created, a success notification confirms how many devices were added. If any identifiers in your file did not meet the criteria above, a warning notification lists them so you can investigate.

{% hint style="info" %}
You can always add devices to an existing fleet later using the **Transfer Devices** flow described below.
{% endhint %}

***

## Transferring Devices Between Fleets

Devices can be moved between fleets at any time using the **Transfer Devices** action. This is useful when reorganizing a fleet, splitting a large fleet into regional groups, or consolidating devices before a show.

There are two ways to open the Transfer Devices dialog:

* **From the fleet list** — select the **Transfer Devices** button in the toolbar (no source fleet pre-selected), or click the **↔** icon on a specific fleet row to pre-fill the source context.
* **From inside a fleet** — select the **Transfer Devices** button in the fleet detail header to transfer devices out of the currently viewed fleet.

In the dialog, select a **target fleet** from the dropdown and upload a **Devices CSV** (same format as above). The same validation rules apply — only devices your organization owns and of the matching drone type will be transferred. Any identifiers that do not qualify are listed in a warning notification after submission.

{% hint style="info" %}
The target fleet dropdown is automatically filtered to show only fleets of the same type as the source fleet (X1 or X7) when a source fleet is pre-selected.
{% endhint %}

***

## Renaming a Fleet Region

The **Region** field is the primary label for a fleet. To rename it:

* **From the fleet list** — click the **pencil icon** (✏) next to the region name in the table row.
* **From inside a fleet** — click the **pencil icon** in the fleet detail header, next to the fleet stats bar.

<figure><img src="/files/ibIK15zmgMFKcp9RtCnD" alt="Fleet detail view for New York X1s showing the Return to Fleets button, Transfer Devices button, pencil rename icon, download icon, and drone count stats"><figcaption><p>The fleet detail header. The pencil icon opens the Rename Region dialog; the transfer icon opens the Transfer Devices dialog scoped to this fleet.</p></figcaption></figure>

A small dialog will appear with the current region name pre-filled. Edit the name and select **Save**. The change takes effect immediately across the Portal.

***

## Deleting a Fleet

A fleet can only be deleted when it contains **zero devices**. On the fleet list, the **trash icon** for a non-empty fleet is disabled — hovering over it shows the tooltip *"Fleet must be empty to delete."*

Once a fleet is empty, the trash icon becomes active. Clicking it opens a confirmation dialog that asks you to confirm before proceeding. Deletion is permanent and cannot be undone.

{% hint style="warning" %}
To delete a fleet that still contains devices, first transfer all of its devices to another fleet using the Transfer Devices flow described above.
{% endhint %}


# Device Groups

Build reusable, ad-hoc groups of devices that cut across fleets — and act on them in one click: create a new fleet, file an RMA, email support, or export to CSV.

A **Device Group** is an arbitrary collection of devices your organization owns, built up by scanning, uploading a list, or picking from your existing fleets. Unlike a fleet — which represents *where a device lives* — a group represents *a set of devices you'd like to act on together*. Devices stay in their original fleets after being added to a group, and a single device can belong to any number of groups at once.

Groups are useful any time you find yourself working with the same set of drones repeatedly — for example, the X7s headed to a particular tour, every drone that auto-landed last show, or the units selected for a firmware compatibility test. Once a group is created, the row actions menu lets you spin a new fleet out of it, initiate an RMA on every device, email the list to support, or export it as a CSV — without having to scan or assemble the list a second time.

Navigate to [**Fleet > Groups**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/groups/README.md) in the Verge Aero Portal to access this feature.

<figure><img src="/files/V7SRSbTfF0IZU6gPSb2s" alt="Groups page in the Fleet workspace showing a table of device groups with name, created date, notes, device count, and per-row actions menu"><figcaption><p>The Groups page lists every device group your organization has created. Each row is expandable to reveal the devices in that group and has an actions menu for downstream operations.</p></figcaption></figure>

***

## Creating a Group

Select **Create Group** in the top toolbar to open the group creation dialog.

<figure><img src="/files/JbhNc8Bqdv8rtuXefzgN" alt="Create Device Group modal with Group Name field, optional Description field, and a tabbed Add Devices section offering Scan UIDs, Upload File, and Pick from My Devices tabs"><figcaption><p>The Create Device Group modal. Provide a name and an optional description, then build the device list using any combination of scanning, file upload, and picking from existing fleets.</p></figcaption></figure>

Fill in the following fields:

| Field           | Required | Description                                                                                                                          |
| --------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Group Name**  | Yes      | A short label that identifies the group — e.g. `Tour: West Coast 2026 X7s`, `Bird-strike survivors`, or `Firmware rollout cohort A`. |
| **Description** | No       | Free-form notes about why the group exists or how it should be used. Visible on the Groups page and included in the support email.   |

### Adding Devices

The **Add Devices** section offers three tabs — you can mix and match them in the same group.

| Tab                      | When to use                                                                                                                                                  |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Scan UIDs**            | Physical access to the drones. Hold each drone's QR label up to the camera, or toggle to **INPUT** mode and use a USB scanner (e.g. Eyoyo).                  |
| **Upload File**          | You already have a list of identifiers — pasted from a spreadsheet, exported from another tool, etc. Upload a `.csv` or `.txt` with one identifier per line. |
| **Pick from My Devices** | Pick visually from a paginated, searchable table of every device in your organization's fleets. Easiest when the drones aren't physically nearby.            |

Each device that's been added — by any of the three methods — appears in the **devices to be added** preview list at the bottom of the modal. Use the trash icon to remove any device added by mistake. The preview is paginated 10 per page; the total count above the list reflects every staged device.

{% hint style="info" %}
The Portal accepts both **X1 serial numbers** (e.g. `6340`) and **full X7 UIDs** (e.g. `P8DR4T3U96`). The label format on the device tells you which one to use.
{% endhint %}

### Validation and Ownership

Every device added to a group must currently belong to a fleet your organization owns. The Portal checks this as you scan and again when you submit the form. If any identifier doesn't match a device in our system, or matches a device that's not in one of your fleets, the modal surfaces an alert listing exactly which identifiers were rejected and why. The group is not created until all listed devices pass validation — so fix or remove the bad entries and try again.

Select **Create Group** to confirm. The new group appears at the top of the Groups page immediately.

***

## Inspecting a Group

Each row on the Groups page summarizes one group: its name, the date it was created, the description (truncated, with the full text on hover), and its device count. Select the chevron at the left of the row to expand it and load the full device list for that group.

The expanded view shows each member device with its identifier, current status, last connection date, and the email of the user who last connected it. The list is fetched on-demand when you expand the row, so groups with thousands of devices won't slow down the main table.

***

## Acting on a Group

Each group has an **actions menu** (the `⋮` icon at the right of the row) that exposes the downstream operations a group is designed to enable. Every action operates on the group's current device list — there's no need to re-scan or re-upload.

| Action                      | What it does                                                                                                                                                                                                                                                                  |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Edit**                    | Change the group's name or description. The device list isn't editable here — to change membership, create a new group.                                                                                                                                                       |
| **Initiate RMA from group** | Pre-fills every device in the group into the [Initiate RMA form](/drone-show-software/verge-web-portal/fleets/rma-requests#entering-rma-details). You enter the RMA description, notes, and per-device details from there.                                                    |
| **Create fleet from group** | Opens a small dialog asking for a fleet **region**. Submits a [new fleet creation](/drone-show-software/verge-web-portal/fleets/fleet-management#creating-a-fleet) with the group's devices already attached. The fleet type (X1 / X7) is inferred from the group's contents. |
| **Export as CSV**           | Downloads a CSV with one row per device: identifier (X1 serial number when present, otherwise full UID), last connection date, last connected user's email, and last known latitude / longitude.                                                                              |
| **Email to support**        | Sends the group — name, description, an optional message you provide, and the same CSV — to `support@vergeaero.com`. You're CC'd on the email so you have a record of the request.                                                                                            |
| **Delete**                  | Removes the group. The devices themselves stay in their fleets — only the group record is removed. A confirmation prompt is shown first.                                                                                                                                      |

<figure><img src="/files/7SNa42qUTJlH7qr6K1rq" alt="Email Group to Support modal with the group name displayed in the title and an Optional Message textarea"><figcaption><p>The Email to Support dialog. Use the optional message field to add any context — what's wrong, what you need from us, deadlines, etc. The CSV and group metadata are attached automatically.</p></figcaption></figure>

{% hint style="info" %}
Deleting a group **does not** delete its devices or remove them from their fleets. It only removes the grouping itself.
{% endhint %}

***

## When to Reach for a Group

Some patterns where groups pay off:

* **Recurring touring fleets.** Build a group of every drone heading out for a tour, then **Create fleet from group** to spin up the regional fleet when the tour kicks off — much faster than re-scanning each drone.
* **Batch RMAs.** When a single hardware issue affects many drones, scan them all into one group once and use **Initiate RMA from group** to bundle them into a single RMA.
* **Support escalations.** Email a curated list of devices to `support@vergeaero.com` with context about a problem — the CSV travels with the email so the engineer who picks it up has everything they need.
* **Inventory snapshots for accounting / compliance.** Export the group to CSV any time you need a reproducible list of devices for an audit, insurance filing, or other reporting workflow.


# RMA Requests

Submit and track Return Merchandise Authorization (RMA) requests for devices that need repair or replacement.

When a device in your fleet needs servicing — whether for a hardware fault, damage from a hard landing, or a component that has reached end of life — you can open an **RMA (Return Merchandise Authorization)** directly from the Verge Aero Portal. The RMA flow walks you through scanning the affected devices, recording per-device details, and routing the request to Verge's support team. After submission, you'll receive email confirmations and progress updates as the RMA is processed and completed.

***

## Starting an RMA

There are two ways to initiate an RMA, both inside the **Fleet** workspace.

### From the RMA Requests Page

Navigate to [**Fleet > RMA Requests**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/rmas/README.md) to see every RMA your organization has ever submitted, along with its current status. To open a new request, select **Initiate RMA** in the top toolbar.

<figure><img src="/files/H5sLlzo4EWU6X8ox2UUA" alt="Fleet > RMA Requests page listing existing RMAs with their statuses, with the Initiate RMA button in the toolbar"><figcaption><p>The RMA Requests page is the central place to track every RMA your organization has opened. Use the status filter to narrow the list, and select <strong>Initiate RMA</strong> to start a new one.</p></figcaption></figure>

### From a Fleet's Device List

If you already know which devices need to go in for service, it's often faster to start the RMA directly from the fleet view. Navigate to [**Fleet > My Fleets**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/fleets/README.md) and open the fleet that contains the affected devices.

Use the checkboxes on the left side of the device table to select each device that needs an RMA.

<figure><img src="/files/7GgTYTI6hETUcIhYTC58" alt="Fleet detail view with several device rows checked in the left column"><figcaption><p>Select each device that needs servicing using the checkboxes in the device table. The selection count appears next to the bulk actions cog.</p></figcaption></figure>

With one or more devices selected, open the **cog (⚙) bulk actions menu** at the top of the table and choose **initiate RMA**.

<figure><img src="/files/NeIyPEYR2FUEfkFT7p7j" alt="Cog bulk actions menu open with Initiate RMA, Add Note, and Transfer Ownership options"><figcaption><p>The cog menu becomes active as soon as at least one device is selected. <strong>Initiate RMA</strong> takes you straight into the RMA details form with those devices pre-filled, skipping the scanning step.</p></figcaption></figure>

***

## Adding Devices to the RMA

When you start an RMA from the **RMA Requests** page, a scanning dialog opens so you can build up the list of devices to include. (If you started from the fleet list, the devices you checked are already attached and this step is skipped.)

<figure><img src="/files/dD3ftpTHi5efGGLTWDCH" alt="Scan Devices for RMA modal showing the camera viewfinder, INPUT/SCAN toggle, and an empty scanned-devices list"><figcaption><p>The Scan Devices for RMA dialog. Switch between camera-based scanning and manual input using the SCAN/INPUT toggle.</p></figcaption></figure>

Three input methods are supported:

| Method                               | When to use                                                                                                                                                                                                                                |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Phone or laptop camera**           | Default mode. Hold a device's QR label up to the camera and the Portal will read it automatically.                                                                                                                                         |
| **USB barcode scanner** (e.g. Eyoyo) | Toggle to **INPUT** mode and aim the scanner at each label. The scanner types the identifier and presses Enter, which submits the scan.                                                                                                    |
| **Paste from clipboard**             | Toggle to **INPUT** mode and paste a UID or serial number copied from another tool — for example, a CSV column or a chat message. Press Enter to add it. Manually typing into the input box is not supported; the value must be pasted in. |

Each successful scan shows a confirmation toast and adds the device to the list below. If you accidentally add a device twice, you'll see a warning toast — duplicates are ignored. To remove a device from the list, select the trash icon on its row.

When all the affected devices are in the list, select **Continue to RMA Details** to move on.

{% hint style="info" %}
The Portal accepts both **X1 serial numbers** (e.g. `6340`) and **full X7 UIDs** (e.g. `P8DR4T3U96`). The label format on the device tells you which one to use.
{% endhint %}

***

## Entering RMA Details

The next dialog is where you describe the issue, decide who should receive update emails, and add per-device notes.

<figure><img src="/files/UA3XifQkhFrGceKNlkGI" alt="Initiate RMA modal with RMA Description, RMA Notes, Send RMA Update Emails To selector, and per-device notes section"><figcaption><p>The Initiate RMA form when launched from the RMA Requests page. The same form is shown when launched from the cog menu, with the selected devices already attached.</p></figcaption></figure>

Fill in the following fields:

| Field                         | Required | Description                                                                                                                   |
| ----------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **RMA Description**           | Yes      | A short summary of the issue affecting the listed devices. This is the headline our support team sees first.                  |
| **RMA Notes**                 | No       | Any additional context — flight logs to look at, environmental conditions, prior repair history, etc.                         |
| **Send RMA Update Emails To** | Yes      | The member of your organization who should receive the confirmation email and all subsequent status updates. Defaults to you. |

Below the description fields, the form shows the **per-device notes** section. Use the **Previous Device** and **Next Device** buttons to step through each device in the RMA and record device-specific details — for example, "X1 #6340: motor 3 stalled mid-show" or "X7 P8DR4T3U96: GPS antenna damaged in transit."

<figure><img src="/files/NLweh0hHXiCGbtceEVCn" alt="Initiate RMA modal launched from the fleet cog menu, showing per-device fields for each pre-selected device"><figcaption><p>When the RMA is started from the fleet cog menu, the selected devices are already attached. Use Previous/Next Device to record per-device notes and descriptions.</p></figcaption></figure>

When everything is filled in, select **Submit**.

***

## Email Confirmations and Updates

As soon as the RMA is submitted, an email confirmation is sent to the address you chose in **Send RMA Update Emails To**. This email serves as your receipt — it includes the assigned RMA identifier, the list of devices, and the description you entered. Hold on to it for reference and for any shipping coordination that follows.

<figure><img src="/files/0dCZQnRqp0p2BSA1Te89" alt="Example RMA confirmation email showing the RMA identifier, device list, description, and Verge support contact information"><figcaption><p>The confirmation email functions as your RMA receipt. Verge's support team uses this same email thread to send shipping instructions and progress updates.</p></figcaption></figure>

You'll receive follow-up emails on the same thread as the RMA moves through its lifecycle:

* **Submitted** — the initial confirmation, sent when you submit the form.
* **Processed** — sent when our service team has received your devices, evaluated them, and started the repair work.
* **Completed** — sent when the devices have been serviced and shipped back to you (or replaced, depending on the outcome).

You can also check the live status of any RMA at any time on the [**Fleet > RMA Requests**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/rmas/README.md) page.

***

## Devices Not Owned by Your Organization

For security and traceability, you can only open an RMA on devices that are currently assigned to a fleet your organization owns. If you scan or paste an identifier for a device that doesn't belong to your organization, the Portal will block it and show an explanatory alert.

<figure><img src="/files/T2Be75RgBKVd4APhEmOv" alt="Red alert in the scan dialog reading &#x27;You do not have permission to access this device&#x27; with a link to open a support request"><figcaption><p>If a scanned device isn't part of your organization's fleet, the Portal blocks it from being added to the RMA and offers a link to open a support request.</p></figcaption></figure>

This typically happens for one of three reasons:

1. **The device was sold or transferred to another organization** and the records are correct — the new owner should open the RMA.
2. **A typo or misread** — double-check the identifier on the physical label and try again.
3. **Ownership is out of date in our systems** — for example, a recent fleet transfer hasn't been recorded yet.

If you believe the device really should be yours, follow the **open a support request** link in the alert. This routes you to the [**Support Requests**](https://github.com/Verge-Aero/VergeDocs/blob/main/support/requests/README.md) page where you can submit a ticket and the Verge team will help reconcile the ownership record so you can complete the RMA.

{% hint style="warning" %}
Don't ship a device for repair before the RMA is open and acknowledged. The RMA identifier is what links your physical shipment to the request in our system — without it, devices arriving at our facility cannot be matched back to your organization.
{% endhint %}


# Inventory Tracking

The Inventory Tracking feature lets you manage your drone fleet end-to-end — from packing drones into physical cases before a show, through shipping and receiving them back afterward. Navigate to [**Fleet > Inventory Tracking**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/device-tracking/README.md) in the Verge Aero Portal to access this feature.

***

## Part 1: Tools and Labeling

Before drones and cases can be tracked in the Portal, they need physical QR code labels printed and applied. This section covers everything you need to get labels made and a scanner connected.

### Tools Required

| Tool                                                  | Purpose                                                                                                                                                              |
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Brother P-Touch 900W**                              | Label printer                                                                                                                                                        |
| **P-Touch Editor 6**                                  | Label design software (runs on the computer connected to the printer)                                                                                                |
| **24mm / 0.94" laminated label tape cassette**        | Label media for the P-Touch 900W                                                                                                                                     |
| **Eyoyo scanner** (or compatible USB barcode scanner) | Scanning labels into the Portal                                                                                                                                      |
| **CSV file**                                          | Your drone UID / FAA number data set — downloadable from [Fleet > My Fleets](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/fleets/README.md) in the Portal |

***

### Drone Labels

#### Prepare the Data Set

1. Download your drone UID / FAA data set as a CSV from the Portal: navigate to [**Fleet > My Fleets**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/fleets/README.md), select your fleet, and use the CSV download option. This file contains the drone and battery UIDs and FAA registration numbers you will use to generate labels.
2. Copy the CSV file to the computer running P-Touch Editor 6.

#### Set Up the Brother P-Touch 900W

1. Connect the power cable to the printer.
2. Connect to your computer via USB or wirelessly. If you are using more than one printer simultaneously, USB is recommended to prevent connection conflicts.
3. Install the Brother P-Touch 900W drivers and P-Touch Editor 6 if not already installed.
4. Insert a 24mm / 0.94" laminated label tape cassette into the printer.

#### Design the Label in P-Touch Editor 6

{% hint style="info" %}
Label template files (.lbx) for X1 drone labels and case labels are available for download from the **Getting Started** tab in the Portal under [Fleet > Inventory Tracking](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/inventory-tracking/README.md). You can open these directly in P-Touch Editor 6 and skip to the [Link the Data Set](#link-the-data-set) step.
{% endhint %}

1. Open P-Touch Editor 6 and create a new label.
2. Set the overall length of the label.
3. Create **Text Box 1** and enter a placeholder appropriate for your UID format:
   * **X1 drone** — 4-digit integer UID → use placeholder `XXXX`
   * **X7 drone** — 10-character alphanumeric UID structured as `{2-char factory code}{2-char product code}{6-char UID}` (e.g. `P8DR4T3U96`, where `DR` denotes a drone and `BA` denotes a battery) → use placeholder `XXXX567890`
   * **FAA number** → use placeholder `FAA4567890`
4. Select the **Barcode** button to add a QR code element to the label.
   * In the side panel under **Protocol**, select **Change**.
   * Scroll down, select **QR Code / Micro QR Code**, and select **OK**.
   * Under **Data** in the side panel, enter the same placeholder you used in Text Box 1.

{% hint style="info" %}
The placeholder in the QR code data field must match the one in the text box — both will be replaced with real data when you link the database in the next step.
{% endhint %}

<figure><img src="/files/53ZV43QzcOExsHMxfaZU" alt="P-Touch Editor 6 showing a label with a text box placeholder and QR code"><figcaption><p>Label layout with text placeholder and QR code</p></figcaption></figure>

<figure><img src="/files/MBYrgSG7Q04XgEqMtMj3" alt="P-Touch Editor 6 barcode protocol dialog with QR Code selected"><figcaption><p>Selecting QR Code / Micro QR Code as the barcode protocol</p></figcaption></figure>

#### Link the Data Set

1. Select the **Database** button and select **Open**.
2. Select **Browse**, locate your CSV file, and select **Open**.
3. If your CSV has no header row, uncheck **Header Rows Contains Field Names**.
4. Select **OK**.
5. Click and drag the header of your UID column onto the text box on the label.
6. Repeat, dragging the same column header onto the QR code element.
7. Both objects are now linked — each row in your CSV will produce a unique label.

<figure><img src="/files/TtvuEvOJaXpxEc5jQrdT" alt="P-Touch Editor 6 database panel showing a column header being dragged to the QR code"><figcaption><p>Linking a CSV column to the QR code element</p></figcaption></figure>

#### Print

1. Select the **Print** button from the menu.
2. Choose **Selected Records**, a **Range**, or **All Records** depending on your batch.
3. Disable **Auto Cut**.
4. Enable **Half Cut**.
5. Enable **Chain Print**.
6. Select the blue **Print** button.
7. When printing finishes, press the scissors button on the Brother P-Touch 900W to cut the label strip.

#### Apply Labels to Drones

**X1 drones:** Apply one label to the bottom of the drone above the diffuser, and an identical label to the top of the drone.

**X7 drones:** Apply the label to the inside of the arm adjacent to the battery port. This position allows the X7 to be scanned while seated in its case.

<figure><img src="/files/YLNh0DF56JuA2EtMS6bD" alt="X1 drone bottom showing label applied above the diffuser dome"><figcaption><p>X1 label placement — bottom, above the diffuser</p></figcaption></figure>

<figure><img src="/files/RWgXNr4Ask0cpvBxtIHp" alt="X1 drone top showing label applied to the top of the body"><figcaption><p>X1 label placement — top of drone body</p></figcaption></figure>

<figure><img src="/files/ahZVFNLuIzmfq8aixHu7" alt="X7 drone with label applied to the inside of the arm adjacent to the battery port"><figcaption><p>X7 label placement — inside of arm, adjacent to battery port</p></figcaption></figure>

***

### Case Labels

Cases use the naming format `C1-001`, `C1-002`, etc. — the `C1-` prefix is required for the Portal to recognize a scan as a case rather than a drone. The physical label only needs to show the case number for readability; the full `C1-` prefixed ID is encoded in the QR code.

#### Prepare the Case Data Set

1. Open a spreadsheet application (Google Sheets or Excel).
2. In **Column B**, enter `001` in cell B1, then drag-and-fill downward for as many cases as you need. Format the column to always show 3 digits (001, 002, 003, …).
3. In **Column A**, enter `C1-` in cell A1, then drag-and-fill downward to match Column B.
4. In cell **C1**, enter the formula `=JOIN("",A1,B1)`. Drag-and-fill Column C to match. This produces the complete case IDs: `C1-001`, `C1-002`, `C1-003`, …
5. Export/download the spreadsheet as a CSV file and copy it to the computer running P-Touch Editor 6.

#### Design the Case Label in P-Touch Editor 6

1. Open P-Touch Editor 6 and create a new label.
2. Set the overall length of the label.
3. Create **Text Box 1** and enter the placeholder `C1-XXX`.
4. Select the **Barcode** button.
   * Under **Protocol**, select **Change**.
   * Select **QR Code / Micro QR Code** and select **OK**.
   * Under **Data**, enter the placeholder `C1-XXX`.

#### Link the Case Data Set

1. Select the **Database** button and select **Open**.
2. Select **Browse**, locate your case CSV file, and select **Open**.
3. Uncheck **Header Rows Contains Field Names** (since the spreadsheet has no headers).
4. Select **OK**.
5. Click and drag the header of **Column C** onto the text box on the label.
6. Drag the same Column C header onto the QR code element.
7. Both objects are now linked to the full case ID (e.g., `C1-001`).

<figure><img src="/files/dCIEQ4oi6Q4KSEnG2rfi" alt="Finished case label showing a case number and its QR code"><figcaption><p>Example case label — the physical label shows the case number; the QR code encodes the full ID including the C1- prefix used by the Portal</p></figcaption></figure>

#### Print Case Labels

Follow the same print settings as for drone labels:

1. Select **Print** from the menu.
2. Choose the records to print.
3. Disable **Auto Cut** → Enable **Half Cut** → Enable **Chain Print**.
4. Select the blue **Print** button.
5. Press the scissors button on the printer when complete.

***

### Scanner Setup

Before scanning labels into the Portal, configure your scanner:

1. Connect the Eyoyo scanner (or compatible USB barcode scanner) to the device running the Verge Aero Portal via USB or wirelessly.
2. Using the setup page in the scanner's user manual, configure it to read **QR codes**.
3. Configure the scanner to append a **Tab keystroke** after each scanned value — this is what submits the scan in the Portal's input field without requiring a manual key press.

***

## Part 2: Portal Workflow

This section covers how to use the Portal to move drones through the full show lifecycle — from packing and shipping to receiving them back.

### Key Concepts

#### Cases

Cases in the Portal correspond directly to your physical Verge cases. When you create a case in the Portal, you're creating a record that mirrors a labeled physical case in your warehouse. Each case has a type that reflects its physical counterpart:

| Case Type           | Drone Family | Capacity  |
| ------------------- | ------------ | --------- |
| Original Metal      | X1           | 5 drones  |
| Original Plastic    | X1           | 5 drones  |
| Refurbished Plastic | X1           | 5 drones  |
| SKB Plastic         | X1           | 5 drones  |
| Refurbished Metal   | X1           | 5 drones  |
| Flight Crate        | X1 or X7     | Unlimited |
| Plastic             | X7           | 10 drones |

{% hint style="info" %}
If you need added flexibility — for example, when packing a large batch or a mixed configuration — the **Flight Crate** case type is available for both X1 and X7 and has no drone capacity limit.
{% endhint %}

X1 and X7 drones cannot be mixed into the same case. The Portal will prevent this when scanning.

#### Pallets

Pallets are the shipping containers that hold your cases. Think of them as a way to group cases together for a particular shipment — they don't correspond to any one specific physical container, but rather represent a logical grouping for tracking purposes. Pallets can be freely created, filled, emptied, and deleted as your operational needs change.

Pallet types (**SKB** and **Flight Crate**) are available to help you categorize your shipments, though the type doesn't enforce any capacity restriction at the pallet level.

***

### Step 1: Create Cases

Navigate to [**Fleet > Inventory Tracking**](https://github.com/Verge-Aero/VergeDocs/blob/main/fleet/device-tracking/README.md) and use the **Create Case** button to create a record for each physical case you've labeled. Make sure the name you enter matches the label exactly (e.g., `C1-001`).

Choose the appropriate case type for each physical case. The Portal will enforce capacity limits when you scan drones in — if a case is full, the scan will be rejected.

***

### Step 2: Scan Drones Into Cases

Once your cases exist in the Portal, use the scanner to pack drones into them.

1. Select **Open Camera** to activate the scanner input panel.
2. Set the mode toggle to **Pack**.
3. Confirm the scanner input is in **Input Mode** — the focus indicator should be **green** with a blinking cursor. If it turns red, click inside the input box to refocus it.
4. Scan a case QR code. The Portal will select and expand that case automatically.
5. Scan each drone QR code that belongs in that case. Each drone is added immediately.
6. Scan the next case label to switch to a new case, then scan its drones.
7. Repeat until all cases are packed, then select **Close Camera**.

<figure><img src="/files/dszTTEwvC6ofxDffCfhJ" alt="Inventory Tracking page in the Portal showing the scanner input box in Pack mode with a green focus indicator"><figcaption><p>Scanner input in Pack mode — green indicator confirms the input field is focused</p></figcaption></figure>

{% hint style="info" %}
The `C1-` prefix in case QR codes is how the Portal distinguishes a case scan from a drone scan. Never use `C1-` as a prefix in drone UID labels.
{% endhint %}

***

### Step 3: Create Pallets and Add Cases

With your cases packed, group them into pallets for shipping.

1. Select **Create Pallet** and give it a name and type.
2. On the **Pallets** tab, find your new pallet and select the **+** (Add Cases) button.
3. Scan each case QR code or select cases from the dropdown to add them to the pallet.
4. Repeat for as many pallets as your shipment requires.

{% hint style="warning" %}
Cases and pallets must be in **Unallocated** status to have cases or drones added to or removed from them. Once a pallet is allocated to a show, its contents are locked until the show workflow is completed or the allocation is reversed.
{% endhint %}

***

### Step 4: Allocate Pallets to a Show

On the **Shows** tab, find your upcoming show and select **Allocate Pallets**. Choose the pallets you're sending and provide an allocation description and notes. The Portal will record how many drones are being allocated.

{% hint style="warning" %}
**Deallocating a show is destructive** — it removes all allocation history events for those pallets, not just the association. Only deallocate if you genuinely need to start over.
{% endhint %}

***

### Step 5: Mark as Shipped

Once the pallets are physically on their way, select **Mark Shipped** on the show. You'll be prompted to enter a shipment tracking link and notes. This moves the show and all its pallets and cases into **Shipped** status.

When the shipment arrives at the show site, select **Mark Delivered** to advance the status.

***

### Step 6: Fly the Show

Once delivered and the show has been performed, the drones are ready to be returned.

***

### Step 7: Receive Drones Back

When cases and drones return from a show, use the Portal to receive them back into inventory.

1. Select **Mark Receive In Progress** on the show to signal that the return process has started.
2. Open the scanner and switch the mode toggle to **Receive**.
3. Scan each returning case. The Portal selects that case as the active case for receiving.
4. Scan each returning drone. The Portal records it as received and removes it from the show allocation. If a drone is damaged, you can flag it during this step.
5. Continue scanning until all returned cases and drones are accounted for.
6. When you're done, select **Mark Receive Completed** on the show.

{% hint style="warning" %}
**Marking receive completed is final.** Any drones that have not been scanned back in at that point will be automatically marked as **Missing**. You'll see a confirmation prompt showing how many drones are still outstanding before you confirm.
{% endhint %}

Once received, drones are removed from their cases and returned to unallocated inventory, ready to be packed into cases again for the next show.


# Creating and submitting Flight Authorizations

Verge's Flight Authorization system allows us to help customers fly safe shows. Shows can be created against flight authorizations and, once approved, allow Verge customers to render shows which can then be uploaded and flown on a customer's drones via the [Console](/drone-show-software/verge-console).

To create a Flight Authorization, create a new show from the Shows workspace or navigate to the Fleet workspace -> Flight Authorization tab to create one independent of a Show.

<figure><img src="/files/dgKiRNcJoQeBiJ1rqB13" alt=""><figcaption><p>A new authorization being created while creating a show in the Shows workspace</p></figcaption></figure>

Alternatively, as mentioned above, you can also create a flight authorization from the Fleet workspace -> Flight Authorizations page, pictured below.

<figure><img src="/files/bRrbERJ4a7uwQbPjZoPk" alt=""><figcaption><p>Creating a new flight authorization from the Fleet workspace -> flight authorizations tab.</p></figcaption></figure>

The Flight Authorization map will also render relevant UAS grids, controlled airspace, restricted flight areas, and more.

<figure><img src="/files/FdsyeyOy80LqSi0LTpq3" alt=""><figcaption><p>UAS grids near a Flight Authorization geofence</p></figcaption></figure>

After action has been taken on your flight authorization request, you will receive an email updating you on the status, whether it was Approved or Denied. Many flight authorizations, especially those outside controlled airspace, will be automatically approved. But if your flight authorization falls within controlled airspace, you will have to wait for a Verge administrator to review and approve or deny. If you are denied, we will provide further steps to ensure a safe flight. Once your flight authorization is approved, you will then be able to render shows against it to fly. For more information on creating shows, see [here](/drone-show-software/verge-web-portal/shows/creating-and-rendering).

<figure><img src="/files/EP6b0c1iuI1iTTNjV8Db" alt=""><figcaption><p>Automatic Flight Authorization approval due to flight auth falling outside controlled airspace.</p></figcaption></figure>


# Performance Summaries & Session Log Analysis

Session Log analysis allows you to view performance summaries and indepth analysis of your drone shows. Session logs can be [uploaded](/drone-show-software/quickstart/console-and-drone-session-logging) via opening the Verge App Toolbox after exiting Show Mode from a successful flight in the Console. See instructions [here](/drone-show-software/quickstart/console-and-drone-session-logging) if that's unclear.

To view session logs after they've been uploaded, navigate to the "Fleet" workspace, then click on "Session Log Analysis" on the left navigation bar as pictured below.

<figure><img src="/files/SKzYDxgOxBdJgdIZ1Ru0" alt=""><figcaption><p>Session Log Analysis tab</p></figcaption></figure>

<figure><img src="/files/AFu6V9s4LW9ot5jSC9uu" alt=""><figcaption><p>Performance Analysis of a drone's flight</p></figcaption></figure>


# Managing License Activations

If you've reached the limit of activations on your Verge Aero product key, you can visit the "My Activations" tab via the user menu in the top right of the web portal to revoke and "free up" activations. This will allow you to use the same key again on another machine. Additionally, organization managers can manage their organization member's licenses and activations

<figure><img src="/files/MrQQD2L0hrOuSjND6GLV" alt=""><figcaption><p>Managing an organization's licenses.</p></figcaption></figure>


# Verge Remote

Verge Remote is a web-based mobile application built into the Verge Aero Web Portal that allows users to connect to active Console instances within their organization.

<figure><img src="/files/2peNILmASxKKvMJdWXYE" alt=""><figcaption><p>How to access your organization's consoles in the Verge Aero Web Portal</p></figcaption></figure>

Much like the Console, Verge Remote allows the user to visualize their fleet both as a flat list and as a 3-dimensional projection of the launchpad grid to help assess and troubleshoot issues when setting up your grid via the 'Swarm' tab. Icons in the top left allow you to swap between the list view, the 360 3D view, and a Satellite view to help you orient yourself to your fleet.

<figure><img src="https://i.imgur.com/TXlznzn.png" alt=""><figcaption><p>Assessing/Troubleshooting a launchpad grid In Verge Remote</p></figcaption></figure>

Changes in the Console will be reflected live in a connected Verge Remote session.

<figure><img src="https://i.imgur.com/6Kddb4C.gif" alt=""><figcaption><p>Demonstrating Console changes being reflected live in Verge Remote</p></figcaption></figure>

Clicking on a drone in the 'Swarm' tab, whether through the list or the 3D tiles will take you to the Drone Info page which allows you to see health information on the drone, including live status updates. The user can additionally calibrate the drones in 4 different modes: Accelerometer, Gyroscope, Compass, and Level. Additionally, the user can change the drone's light modes including turning lights on or off which can be useful when setting up launchpad grids to pick out problem drones. Drones can also be rebooted via this page.

Another way to access the Drone Info tab is to use the QR code scanner to scan the QR code on the top cap of X7 drones. This will allow you to rapidly identify issues with drones in the field.

<figure><img src="https://i.imgur.com/fjRDMS4.png" alt=""><figcaption><p>Viewing the device info page for a healthy drone</p></figcaption></figure>

The device info page, just like the swarm tab, will update live if any changes happen on the drone, such as it moving from a healthy to an unhealthy state, losing GPS, low battery, etc.

<figure><img src="https://i.imgur.com/dxHnH7M.png" alt=""><figcaption><p>A drone which is missing the show file in the Drone Info tab</p></figcaption></figure>

On the Console tab, you can see a live view into the state of various items in the Console pre-show, such as show mode, the preshow checklist, armed status, trigger lock state, etc. These will let you run through the pre-show items necessary to launch your show if desired, freeing you up to move through your fleet as necessary instead of being stuck at your Console computer.

The Console tab can also be used to load and update Vpkg bundles to your drones, as pictured at the top.

<figure><img src="https://i.imgur.com/hT9zbv8.png" alt=""><figcaption><p>A drone which is missing the show file in the Drone Info tab</p></figcaption></figure>

When you're ready to fly, have completed all the pre-show status checks the "Launch" button will enable. Happy and safe flying!

<figure><img src="https://i.imgur.com/kVvgZvW.png" alt=""><figcaption><p>A drone which is missing the show file in the Drone Info tab</p></figcaption></figure>


# Community

Verge Aero runs a Discord server for customers and staff to coordinate, ask questions, and share work. The Web Portal can automatically link your portal account to your Discord account and grant you the right role — **Verge Partner** for customers, **Verge Employee** for Verge Aero staff — which unlocks access to the relevant private channels.

You only need to do this once. If your access changes later, repeat the steps to re-sync your role.

## Linking your Discord account

Open the user menu in the top right of the Web Portal and click **Community**.

<figure><img src="/files/lLvV50reNSMkixT3k1zH" alt=""><figcaption><p>The Community option in the user menu.</p></figcaption></figure>

You will be taken to the Discord linking page. Click **Link Discord Account** to begin.

<figure><img src="/files/dePRh4KFhONVoxhzl0nJ" alt=""><figcaption><p>The Discord linking page.</p></figcaption></figure>

You will be redirected to Discord, where you will be asked to authorize the **Verge Portal** application. If you are not already logged in to Discord, log in first. Then click **Authorize** to continue.

<figure><img src="/files/pbkPXCtFWh53kc8Sssdz" alt=""><figcaption><p>Discord's authorization screen for the Verge Portal application.</p></figcaption></figure>

Discord will redirect you back to the Web Portal, which will confirm the link and tell you which role was assigned.

<figure><img src="/files/b44haKnTMnc9oOD2rLXB" alt=""><figcaption><p>Successful link, with the Verge Partner role assigned.</p></figcaption></figure>

If you were not already a member of the Verge Aero Discord server, you will be added automatically as part of this flow.

## Confirming the role in Discord

Open the Verge Aero Discord server. Your assigned role will be visible on your profile, and you will now see any channels that role grants access to.

<figure><img src="/files/qJKzoSVRxMoUe5aagE6x" alt=""><figcaption><p>The role shown on your Discord profile after linking.</p></figcaption></figure>

## Re-syncing your role

If your role in Discord is ever removed or your access in the portal changes (for example, you join Verge Aero as staff after originally signing up as a customer), repeat the linking flow. The portal will reapply the correct role based on your current account.


# Verge App Toolbox

The Verge App Toolbox provides a centralized way to install, update, launch, and uninstall Verge's desktop software — **AEROStudio** and **AEROConsole**. The latest version of the toolbox can be downloaded at any time from our [downloads page](https://portal.verge.aero/downloads).

## Logging in

Sign in with your Verge account email and password. If you don't have a connection to the internet, click **Offline Mode** to launch builds you previously installed — see [Offline Mode](/drone-show-software/quickstart/offline-mode) for details.

<figure><img src="/files/TuG357L6YRxbNBSOQUcd" alt=""><figcaption><p>Login page of the Verge App Toolbox</p></figcaption></figure>

The streams available to you after logging in are dictated by your desktop permissions, which are managed by your organization's administrators in the Verge Web Portal.

## Simple mode

Simple mode is the default and is designed to get you launched as quickly as possible. Pick **AEROStudio** or **AEROConsole** in the left navbar and you'll see a single, large **Launch** button targeting the build you most recently launched (the stream and version are shown dimmed above the button).

<figure><img src="/files/mzMVQGR1waaf58oEBBLI" alt=""><figcaption><p>Simple mode — one click to launch the most recently used build</p></figcaption></figure>

* **Launch** runs the highlighted build immediately.
* **Select** opens a picker so you can choose a different installed build as the launch target.
* **Install** opens the install dialog so you can add another version.
* A small launch-options cog appears next to **Launch** when the target build defines launch modes (for example, different startup configurations). Click it to choose which mode to use; your choice is remembered for next time.
* An **Updates available** toast appears in the bottom-right whenever any installed stream has a newer build. Dismiss it once you've seen it.

## Switching to Advanced mode

Click the **Simple** toggle in the header to switch to Advanced mode, which exposes the full table of installed builds, per-row launch and uninstall actions, stream filtering, and the install modal. See [Advanced Mode](/drone-show-software/quickstart/advanced-mode) for the full breakdown.


# Advanced Mode

Advanced mode shows the full table of installed builds, with per-row launch and uninstall actions, stream filtering, and direct access to install and update controls. Toggle into it from the **Simple** button in the header.

<figure><img src="/files/68c0RLyqhDLabQnlCke4" alt=""><figcaption><p>Advanced mode — installs table for AEROStudio</p></figcaption></figure>

## App switcher

The **AEROStudio** / **AEROConsole** tabs at the top switch between the two apps. Each app has its own list of installs.

## Header controls

From left to right:

* **Filter by stream** — narrow the table to one or more streams.
* **Refresh** — re-scan disk for installed builds and re-check for updates.
* **Launch** — launches the most recently used build for the active app (or the highest-version installed build if you've never launched anything). The version of the build that will run is shown dimmed above the button.
* **Install** — opens the install dialog.

## Per-row actions

Each row's right-hand action group contains, left to right:

* **Update arrow** — appears only when a newer build is available on this stream.
* **Launch-options cog** — opens the launch-mode picker for this build. Dimmed and disabled when the build defines no launch modes.
* **Green play** — launches this specific build using its saved launch mode (or the build's default).
* **Open folder** — opens the build's install directory in your OS file manager.
* **Trash** — uninstalls the build.

## Installing a build

Click **Install** to open the dialog. Pick a **Stream** (filtered to streams you have access to) and then a **Version**. Versions are tagged with **(latest)** for the newest build on that stream and **(installed)** for any version you already have.

<figure><img src="/files/NTH3Tw8ZbTTAlaf3NPo7" alt=""><figcaption><p>Install dialog — versions show "(latest)" and "(installed)" so you can pick at a glance</p></figcaption></figure>

The toolbox downloads the zip, extracts it, and the new build appears in the table.

## Updates

When any installed stream has a newer build, an **Updates available** toast appears at the bottom-right. It lists the app, stream, and the new version. Dismiss it with the **×** when you're done — it persists until you do.

In the table, an orange **↑** arrow appears in the action column of any row whose stream has a newer version available.


# Licenses

The **Licenses** page lists every license activated for your account, across both AEROStudio and AEROConsole.

<figure><img src="/files/nqN6pS7SD06Sru0Rq8HI" alt=""><figcaption><p>Licenses page — Legacy and New tabs</p></figcaption></figure>

## Legacy vs New

* **Legacy** — older product-key based licenses.
* **New** — current seat-based licenses.

## Columns

* **Product Key** — click the copy icon to copy the key to your clipboard.
* **Organization Name** — the org the license belongs to. Long names are truncated; hover to see the full name.
* **Used / Remaining** — current activations against total seats.
* **App Name** — which app the license unlocks.
* **Details** — click the info icon to open a popover showing the IP address, activation type, and activation date.
* **deactivate** — releases the seat so it can be activated on a different machine.

The Licenses page is disabled in Offline mode.


# Running Apps

The **Running Apps** page shows every AEROStudio and AEROConsole process currently running on your machine. Open it from the **Running Apps** entry in the navbar or from the activity icon in the header.

<figure><img src="/files/DdOmOFsab7i5YGjco1X0" alt=""><figcaption><p>Running Apps — live view of every running Verge process</p></figcaption></figure>

## Columns

* **App** — Studio or Console.
* **PID** — operating-system process ID.
* **Path** — the executable that's running.
* **CPU %** — current CPU usage.
* **Memory** — current memory usage.
* **Source** — **TOOLBOX** if the build was launched from a toolbox-managed install directory, **FOREIGN** if the executable lives outside that directory (for example, an installer-based copy not managed by the toolbox).
* **Action** — **Kill** terminates the process by PID. Use this when an app has hung and won't close on its own.


# Offline Mode

If you don't have an internet connection, **Offline Mode** lets you launch any app you installed before going offline. Click **Offline Mode** on the login page to enter it. If you're heading to a show site without reliable internet, install the versions you need ahead of time.

In offline mode, the header shows an **OFFLINE** label. The Licenses and Docs pages are disabled, and the toolbox skips its update check, but launching, uninstalling, and the Running Apps page all work normally.

<figure><img src="/files/LEqxfVwKmGBPoq3xAPJN" alt=""><figcaption><p>Simple mode while offline — launch your most recently used build</p></figcaption></figure>

<figure><img src="/files/DllwDUZ7j4HoJlNEabVp" alt=""><figcaption><p>Advanced mode while offline — full installs table is still available</p></figcaption></figure>


# Console & Drone Session Logging

After the console exits show mode, session logs will be finalized that can then be uploaded via the Verge App Toolbox. Check back in periodically to see if you have pending session logs to upload. After uploading, these will be available to analyze in the web portal via the Session Log Analysis page.

<figure><img src="/files/QRfUiIycDB42ZAGBGGgR" alt=""><figcaption></figcaption></figure>


# Troubleshooting

To troubleshoot issues with the toolbox, you can find the toolbox icon in the System Tray in Windows or the "View" menu on OSX, as pictured below.

<figure><img src="/files/iil2T0Su7AKpojddCBv5" alt=""><figcaption><p>Verge Toolbox icon in the System Tray on Windows</p></figcaption></figure>

<figure><img src="/files/fqmkpmEpkXUxdsXXrUtL" alt=""><figcaption><p>Verge App Toolbox troubleshooting menu on macOS via the View menu</p></figcaption></figure>

The Toolbox icon can be dragged into the System bar for a more permanent experience

<figure><img src="/files/4Nc25cRQsQLSJ3npgob4" alt=""><figcaption><p>App Toolbox icon dragged into the Taskbar</p></figcaption></figure>

<figure><img src="/files/yXFa8Dynj1bP9wTT2ZBi" alt=""><figcaption><p>Troubleshooting menu via right-clicking on Windows</p></figcaption></figure>


# Verge Design Studio

The Verge Aero Design Studio is a standalone application that makes designing drone shows fast and easy.


# Studio Courses

## [Course 1: Getting Started](/drone-show-software/verge-design-studio/studio-courses/course-1-getting-started)

This course is designed to introduce the basic concepts and foundational elements necessary to design your first drone show. You'll learn how to set up your tools, grasp essential terminology, and gain the confidence to navigate the Verge Aero Design Studio.


# Course 1: Getting Started

[Interface Tools & Settings](/drone-show-software/verge-design-studio/studio-courses/course-1-getting-started/interface-tools-and-settings)

[Show Setup](/drone-show-software/verge-design-studio/studio-courses/course-1-getting-started/show-setup)

[Launch Event, First Render, Adding Lights](/drone-show-software/verge-design-studio/studio-courses/course-1-getting-started/launch-event-first-render-adding-lights)

[Adding Movement](/drone-show-software/verge-design-studio/studio-courses/course-1-getting-started/adding-movement)


# Interface Tools and Settings

{% embed url="<https://scribehow.com/shared/D1__Interface_Tools_and_Settings__E6DavqcMTLubgPCrpEHceg>" %}


# Show Setup

{% embed url="<https://scribehow.com/shared/D1__Show_Setup__Set_GPS_Location__mJAvBYlkQuSz1yMA0evb7Q>" %}

{% embed url="<https://scribehow.com/shared/D1__Show_Setup__Creating_A_Launch_Pad__zygWCrRUTdSRcvjzaXpePA>" %}

{% embed url="<https://scribehow.com/shared/D1__Show_Setup__Content_Node__eTdrzRdgS72CV6d_2rx50A>" %}


# Launch Event, First Render, Adding Lights

{% embed url="<https://scribehow.com/shared/D1__Launch_Event_First_Render_Adding_Lights__ZAi8xFegQDS9Qy9_FCJCfg>" %}


# Adding Show Content

{% embed url="<https://scribehow.com/shared/D1__Adding_Show_Content__nAU5SEX3QJyyoNU9mQqfqw>" %}


# Adding Movement


# Interface

[Color Palette](/drone-show-software/verge-design-studio/interface/color-palette)


# Color Palette

The color palette provides tools for assigning and managing color across splines within a scene. It allows individual splines or groups of splines to be painted or batch-colored using solid colors or gradients, enabling consistent, precise control of color application.

<figure><img src="/files/4Mhdb6C22gbW28eKgqzN" alt="" width="168"><figcaption><p>The swatch panel expanded</p></figcaption></figure>

<figure><img src="/files/d1MAktjLXMK2IPduYvzL" alt=""><figcaption><p>The color swatch tool set panel</p></figcaption></figure>

{% tabs %}
{% tab title="Paint tools" %}
This set of tools provides high-level ways of coloring one or more splines or points in an element.

<details>

<summary><img src="/files/h9lSVT8LmyRsy4WFdzFU" alt="" data-size="line"> Paint Bucket</summary>

The paint bucket tool applies the currently selected color or gradient to all splines or points it is applied to.

</details>

<details>

<summary><img src="/files/aI9yZgNNEwr2dFGeprp7" alt="" data-size="line"> Paint Brush</summary>

The paint brush tool applies color or gradients to splines on a per-segment or per-point basis. It allows precise, manual control over color placement, enabling detailed adjustments, blending, and localized edits within a scene.

</details>

<details>

<summary><img src="/files/XysTpXAoRcQzHmjx1NUt" alt="" data-size="line"> dropper</summary>

The dropper tool samples color data from an existing spline, point, or scene element and sets it as the active color. This allows accurate color matching and reuse, ensuring consistency across painted elements and lighting animations.

</details>

<details>

<summary><img src="/files/eIGqO2M4Ga1bSbDDcMW0" alt="" data-size="line"> Tool Deactivation</summary>

The X button exits the active color tool and returns input control to standard mouse interaction. This allows normal selection, navigation, and editing behavior without applying color or paint actions.

</details>
{% endtab %}
{% endtabs %}

| Parameter    | Type         | Description                                                                    |
| ------------ | ------------ | ------------------------------------------------------------------------------ |
| None         |              | The element has no lighting.                                                   |
| Solid Colors | Color Source | A single, uniform light value is applied for the duration of the event.        |
| Gradient     | Color Source | Lighting transitions smoothly between two or more values across space or time. |
| Reference    | Color Source | Lighting is driven by an external source or predefined lighting asset.         |

## Creating, Editing, and Storing Colors

The color panel beneath the Color Type drop-down displays the currently active solid color or gradient. Selecting this panel opens the gradient editor, where colors can be created, modified, and managed using color stops, blend modes, and alpha keys. The editor also allows custom colors and gradients to be saved for reuse, enabling consistent and efficient color application across the scene.

<figure><img src="/files/TX8YjA0Dgj7Rn3ClyZS5" alt="" width="375"><figcaption></figcaption></figure>


# Scene Objects

Scene Objects are nodes that have a physical location within a scene and provide special functionality. Every scene object has a transform that represents a position, rotation, and scale. Scene objects include targets for forming shapes, controlling swarms, performing advanced lighting, and much more.

### 2D Shapes

Shapes that are flat or only have dimensions in the x and y direction. These shapes can still be rotated and scaled to shift slots into the z direction. Modifiers can also be applied to turn 2D shapes into 3D effects. These shapes are well suited to smaller drone counts or as a primitive that is part of a larger, more complex shape.

* [Text](/drone-show-software/verge-design-studio/scene-objects/text)
* [QR Codes](/drone-show-software/verge-design-studio/scene-objects/qr-codes)
* [Circle](/drone-show-software/verge-design-studio/scene-objects/circle)
* [Rectangle](/drone-show-software/verge-design-studio/scene-objects/rectangle)
* [Ellipse](/drone-show-software/verge-design-studio/scene-objects/ellipse)
* [Polygon](/drone-show-software/verge-design-studio/scene-objects/polygon)
* [Grid](/drone-show-software/verge-design-studio/scene-objects/grid)
* [Fill Circle](/drone-show-software/verge-design-studio/scene-objects/fill-circle)

### 3D Shapes

Shapes that have depth along with height and width. Simple primitives that can be used as part of more complex shapes.

* [Cube](/drone-show-software/verge-design-studio/scene-objects/cube)
* [Sphere](/drone-show-software/verge-design-studio/scene-objects/sphere)
* [Scatter Field](/drone-show-software/verge-design-studio/scene-objects/scatter-field)
* [Torus](/drone-show-software/verge-design-studio/scene-objects/torus)
* [Cylinder](/drone-show-software/verge-design-studio/scene-objects/cylinder)

### [Splines](/drone-show-software/verge-design-studio/scene-objects/spline)

Splines are a continuous set of linear curves that can be manipulated via anchor points to generate complex shapes. Bezier curves are used extensively in SVG files. A number of primitive shapes built out of bezier splines can be created from the scene object menu. Converting those shapes into a Bezier spline exposes full manipulation.

<figure><img src="/files/J9vfwmshVHc9Yq0piy1I" alt="" width="375"><figcaption><p>A Bezier Helix with editable anchor points</p></figcaption></figure>

* Bezier Curve
* [Bezier Line](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-line)
* [Bezier Circle](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-circle)
* [Bezier Helix](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-helix)

### Advanced Objects

* [Launchpad](/drone-show-software/verge-design-studio/scene-objects/launchpad)
* [Formation Group](/drone-show-software/verge-design-studio/scene-objects/formation-group)
* Formation Sequence
* [Array Object](/drone-show-software/verge-design-studio/scene-objects/array-object)
* [Show Effect](/drone-show-software/verge-design-studio/show-effects)
* Flocking Controller

### Volumes

Volumes represent 3D sections of space that can be used to inform lighting effects and collision avoidance such as that used in the flocking controller.

* Sphere
* Cube


# Spline

A spline is a curve or collection of continuous curves that are defined by a set of (in this case) 3D points. Unlike point clouds, splines are an excellent type of geometry for drone formation definition because they can be split up infinitely to support any number of drones.

## Spline Shapes

There are multiple spline-based shapes that can be generated/manipulated with simple parameters. Any of these shapes can be converted into an "Editable Spline" by selected the associated button in the spline edit toolbar.

These shapes include:

* [Bezier Circle](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-circle)
* [Bezier Helix](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-helix)
* [Bezier Line](/drone-show-software/verge-design-studio/scene-objects/spline/bezier-line)

## Color

Splines can be assigned solid colors, or gradients. If a gradient is assigned, then the gradient will be applied along the spline in order from the start to end.

## Editing Splines

When selecting one or more splines, spline shapes, or compound splines, a toolbar will appear on the top of the scene view. This toolbar provides quick ways of manipulating splines, editing geometry, and managing groupings. Buttons become enabled/disabled based on the current selection and state of the splines.

<figure><img src="/files/i2WytMiR3CCpWnUsfnxF" alt=""><figcaption><p>The spline toolset panel</p></figcaption></figure>

{% tabs %}
{% tab title="Convert" %}
These buttons are responsible for changing a shape into another shape container. Some tools and options are not available unless a bezier shape is converted into an editable spline or the shape is a compound spline.

<details>

<summary><img src="/files/21bGkeoM6y7O89qHeFlt" alt="" data-size="original"> To Editable Spline</summary>

Convert a bezier shape into a form that can be manually editable. This will cause the shape to lose its unique parameters in favor of a generic spline

</details>

<details>

<summary><img src="/files/7afeLY2YVeK67S5fbd67" alt=""> To Compound Spline</summary>

Convert a bezier spline or shape into a compound spline, supporting multiple splines in a single shape

</details>
{% endtab %}

{% tab title="Spline Tools" %}
This set of tools provide high-level ways of manipulating one or more splines. They also expose ways of grouping/ungrouping splines into and out of compound splines.

<details>

<summary><img src="/files/tp44N6QR4pWv9uE16ay1" alt=""> Center Anchor</summary>

Automatically shift the shape's centroid to be the average of all spline control points

</details>

<details>

<summary><img src="/files/zROeQKEXbLh8jHX4tAdy" alt=""> Shift Anchor</summary>

Enter a mode where the anchor can be shifted while keeping the spline's geometry world-locked. To stop anchor shifting, the button must be toggled again.

</details>

<details>

<summary><img src="/files/wWp7XJwzIY4Rao04GJr1" alt=""> Reverse</summary>

Reverse the order of the points in the spline. This will result in an identical spline, but with start and end points reversed. Useful for ensuring that lighting effects move in the correct direction

</details>

<details>

<summary><img src="/files/wWp7XJwzIY4Rao04GJr1" alt=""> Reverse</summary>

Reverse the order of the points in the spline. This will result in an identical spline, but with start and end points reversed. Useful for ensuring that lighting effects move in the correct direction

</details>

<details>

<summary><img src="/files/RRsPMSGT16CcIu6D9b8o" alt=""> Duplicate</summary>

Duplicates the selected spline/s. This only works for compound splines. The duplicated spline will appear as a new sub-spline.

{% hint style="warning" %}
Spline must be converted to a compound spline to use the Duplicate tool
{% endhint %}

<figure><img src="/files/JgjUaa7npwlsGhCp63kl" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/nx3abU46IbUtWmUmpuac" alt=""> Merge (Group)</summary>

Combines the selected splines into a single compound spline.

</details>

<details>

<summary><img src="/files/CZc2d0I6l2mrNH41z7A6" alt=""> Separate (Ungroup)</summary>

Removes the selected splines from their current compound spline and puts them into separate standalone splines.

</details>

<details>

<summary><img src="/files/SEWwNoWleQq46H2G8Q8s" alt=""> Close</summary>

Forces the spline to be a complete loop. The endpoint will be shifted to be placed on top of the start point.

</details>

<details>

<summary><img src="/files/H7SWnDP16FqWpyOFtFOY" alt=""> Open</summary>

Allows the spline start and end points to be separated

</details>

<details>

<summary><img src="/files/JUSI6ayLd97Y0P6ROOZn" alt=""> Delete</summary>

Deletes the currently selected anchor point, segment, or spline

</details>
{% endtab %}

{% tab title="Edit" %}
This button array provides a way to choose selection mode as well as entering/exiting spline edit mode. Edit mode must be entered to modify spline anchor points or use the geometry tools

<details>

<summary><img src="/files/APEALCzWBbystXSWWuUD" alt=""> <img src="/files/sAXW0ENcRli0qx5kYnOs" alt=""> Edit Mode (Exit Edit Mode)</summary>

Enter edit mode and allow geometry to be selected and manipulated. The button will toggle to an X when active and must be clicked again to exit edit mode.

</details>

<details>

<summary><img src="/files/yxyNbh4E5oZ8U5KXvQwO" alt=""> Anchor Point/Vertex Selection Mode</summary>

Enter anchor point selection mode where only anchor points (points that lie directly on geometry) can be selected

</details>

<details>

<summary><img src="/files/IcnCKxTO40FjDIGPIfAu" alt=""> Control Point/Handle Selection Mode</summary>

Enter control point selection mode where any control point can be selected and shifted

</details>

<details>

<summary><img src="/files/7WL8Z6HjJJlEpuyqZrY3" alt=""> Segment Selection Mode</summary>

Enter segment selection mode where any segment can be selected and shifted

</details>

<details>

<summary><img src="/files/0gQ8H9cbynyIzb4QJWql" alt=""> Spline Selection Mode</summary>

Enter spline selection mode where any spline can be selected and shifted

</details>
{% endtab %}

{% tab title="Geometry Tools" %}

<details>

<summary><img src="/files/pJTNraVtbXCkHlf6bjIk" alt="" data-size="original"> Smooth Geometry</summary>

Takes all selected geometry and sets it to be as smooth as possible by adjusting spline control points to be tangential and parallel

<figure><img src="/files/sPiYtW7aeA8DcmMRLMhT" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/NMVarKlTJAY2P7nBQL6M" alt=""> Straighten Geometry</summary>

Takes all selected geometry and sets it to be as straight or sharp as possible by adjusting spline control points to be coincident (or on top of eachother) for each anchor point

<figure><img src="/files/R8c6VIXIvsCD2zIhmjPb" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/NediXRdsRCNYuSFvifr7" alt=""> Extrude Geometry</summary>

Takes selected segment (or vertex if on an endpoint) and creates a new line on each side so that it may be pulled away without disturbing surrounding segments

<figure><img src="/files/kuMTMjfnuoDtEnmjRMa6" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/pJTNraVtbXCkHlf6bjIk" alt="" data-size="original"> Merge Geometry</summary>

Fuses two selected endpoints to form a single spline

<figure><img src="/files/hkSm48gsgb0i3LknFcTy" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/pJTNraVtbXCkHlf6bjIk" alt="" data-size="original"> Split Geometry</summary>

Takes selection and breaks its endpoints from the containing spline. This will create new splines to properly contain the new separated segments.

{% hint style="warning" %}
Spline must be converted to a compound spline to use the Split tool
{% endhint %}

<figure><img src="/files/DRtQibuyong7o7o26vIi" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary><img src="/files/pJTNraVtbXCkHlf6bjIk" alt="" data-size="original"> Subdivide Geometry</summary>

Takes the selected segments and evenly subdivides them, inserting a single new vertex per-segment for every click

<figure><img src="/files/e6Rbx3Ph1jfasjcSn65f" alt=""><figcaption></figcaption></figure>

</details>
{% endtab %}
{% endtabs %}

## Slotting Control

<figure><img src="/files/CM7jDNSZ9o0CBetRZbXa" alt=""><figcaption></figcaption></figure>

## Pivot Weighting

The design studio leverages geometric information to make decisions around where to place slots. In the case of a spline, harsh angles or "corners" can be treated specially and the software well make sure that a drone is placed exactly on the corner. This will maximize detail and definition.

<figure><img src="/files/Y9RruPTSoY0KtnlSa8s5" alt=""><figcaption><p>Pivot weighting on (Left) and off (right)</p></figcaption></figure>

`Use Pivot Weighting:` Enable/Disable the use of pivot weighting in the slot solution

`Pivot Angle Threshold:` The angle (in degrees) that a corner must be *below* in order for it to be treated as a pivot point

## Partial Spline

The slot solver can be set to use *only a portion* of a spline. This is particularly useful in combination with animating the slot offset field if you want to move a group of splines along a path.

{% hint style="warning" %}
You must disable pivot weighting in order to use partial spline functionality
{% endhint %}

<figure><img src="/files/k2EWAkCxjrGp6phqEJHn" alt=""><figcaption></figcaption></figure>

`Use Partial Spline:` Enable/Disable the use of a partial spline

`Start Percent (%):` The location (in percent, where 0% is the start and 100% is the end) to start the spline

`End Percent (%):` The location (in percent, where 0% is the start and 100% is the end) to end the spline

<figure><img src="/files/hPGoqU9IgrvXe95KRvBD" alt=""><figcaption><p>Shifting end percent from 100% to 0%</p></figcaption></figure>

## Hull Slot Solver

Along with the standard linear solver, there is also a mode that allows a spline shape to be filled in.

<figure><img src="/files/sOmvLObEqpokfElX6vOr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/QcEVbGEQqF4u5W81kig3" alt=""><figcaption></figcaption></figure>

### **Hull Projection Axis**

* **Description**: Specifies the axis along which the spline is projected to compute the 2D hull for slotting.
* **Options**:
  * **X**, **Y**, **Z**: Choose the axis orthogonal to the hull's plane. Used to flatten 3D splines into a 2D working surface.

### **Slot Mode**

* **Description**: Determines the algorithm used to generate the filled surface inside the spline’s hull. This affects how vertices are distributed across the area enclosed by the projected hull.
* **Options**:
  * **Scaled Fit**
    * Fills the convex or concave polygonal region and then *stretch* them so that points touch the boundary of the shape
    * Ideal for structured interpolation and clean, regular fills.
    * Can set the number of columns/rows directly or define a density for placement
  * **Poisson Distribution**
    * Inserts vertices using a Poisson disk sampling method.
    * Ensures randomly distributed points with a minimum distance between them, avoiding clumping while preserving uniformity.
    * Best suited for naturalistic or non-uniform point distributions (e.g., organic modeling, scattered elements).
    * Row and scanline settings are ignored in this mode.
    * Density controls how close/far points are distributed
    * Random seed can be tweaked to get slightly different distributions
  * **Bounded Grid**
    * Fills the hull area with a regular grid of points, clipped to the boundary of the projection.
    * Produces a structured mesh of evenly spaced rows and columns, spacing is identical vertically and horizontally.
    * Works well for mechanical or architectural shapes requiring evenly spaced subdivisions.
    * Density controls how close/far points are distributed


# Bezier Circle

### Bezier Circle

A Bezier Circle shape provides a circle made of multiple bezier splines placed equally around its perimeter. This is not to be confused with the standard 2D circle available from the shape palette which is a simple geometric model of a circle.

| Parameter   | Type                      | Description                                                                                                                                                                                        |
| ----------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Radius      | Decimal (Meters)          | The distance from the center of the helix to the horizontal extends of the helix                                                                                                                   |
| Circularity | Decimal (0-2)             | A rating of anchor weighting to provide different levels of smoothness. 2: the shape is smoothed at its control points. 1: The shape is perfectly circular. 0: The shape is made of straight lines |
| Segments    | Integer                   | The number of spline segments to use for each turn                                                                                                                                                 |
| Start Angle | Decimal (Degrees)         | Indicates the starting angle (around the centroid) that the circle starts.                                                                                                                         |
| Arc Length  | Decimal (Degrees) (0-360) | The positive or negative number of degrees that the circle spans                                                                                                                                   |

<figure><img src="/files/u9uSTjQ3O4LTSIP1Dazx" alt=""><figcaption><p>The inspector for a Bezier circle</p></figcaption></figure>

<figure><img src="/files/80hTrE9rEqI5nKzVgfBz" alt=""><figcaption><p>Arc Length being manipulated between 0 and 360 degrees</p></figcaption></figure>


# Bezier Helix

### Bezier Helix

A Bezier Helix shape provides an upward spiral with a constant radius.

| Parameter   | Type                             | Description                                                                                                                                                                                        |
| ----------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Smooth Mode | Options (Smooth, Circular, Hard) | Choose an option to automatically assign a circularity to Smooth (2), Circular (1), or Hard (0)                                                                                                    |
| Circularity | Decimal (0-2)                    | A rating of anchor weighting to provide different levels of smoothness. 2: the shape is smoothed at its control points. 1: The shape is perfectly circular. 0: The shape is made of straight lines |
| Radius      | Decimal (Meters)                 | The distance from the center of the helix to the horizontal extends of the helix                                                                                                                   |
| Segments    | Integer                          | The number of spline segments to use for each turn                                                                                                                                                 |
| Height      | Decimal (Meters)                 | The distance from the bottom of the helix to the top of the helix (y-axis)                                                                                                                         |
| Num Turns   | Decimal                          | Represents the number of circles that the helix is made up of. Can support partial loops                                                                                                           |
| Start Angle | Decimal (Degrees)                | Indicates the starting angle (around the centroid) that the helix starts.                                                                                                                          |

<figure><img src="/files/NcKryE9EJQZsp9MKsFbT" alt=""><figcaption><p>Inspector for a Bezier Helix</p></figcaption></figure>

<figure><img src="/files/TL5y9KsDBk95VOBlrnkk" alt=""><figcaption><p>A Bezier Helix with the num turns field being adjusted</p></figcaption></figure>


# Bezier Line

### Bezier Line

A Bezier Line is the simplest spline shape. It consists of two points with a single segment connecting them.

| Parameter | Type             | Description                                                               |
| --------- | ---------------- | ------------------------------------------------------------------------- |
| Length    | Decimal (Meters) | How long the line is, with the centroid located at the middle of the line |
| Segments  | Integer          | The number of spline segments to use for each turn                        |

<figure><img src="/files/Z8jkKNgGh2eIi8nbEGCr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/FmbyWl6yINUIE6WkGEIp" alt=""><figcaption></figcaption></figure>


# Launchpad

A launchpad is the core object that used to design a drone show. Launchpads are drone containers and represent the starting positions of those drones in the show. Unlike other objects, launchpads *must* be located on the ground and have a locked y position component. Launchpads include a drone control channel that exposes functionality for launching drones, tracking scene shapes, and returning the drones to their landing positions.

<figure><img src="/files/8sV9yDjxQbppdjO5UlAm" alt="" width="345"><figcaption><p>A screen capture of the launchpad inspector</p></figcaption></figure>

#### Drone Count

The drone count field can be used to adjust the total number of drones in the launchpad. The drone count can be changed at any time and will propogate through the show design. The drone count is also automatically capped based on the formation shapes and the max number of drones that can be safely placed in that formation to maintain launchpad density.

<figure><img src="/files/FzN4gscEXzouqrQhv3qE" alt=""><figcaption><p>A grid launchpad in the middle of a staggered launch sequence</p></figcaption></figure>

#### Formation

A pool of shapes are available

* Grid
* Circle
* Rectangle
* Polygon
* Arbitrary

#### Drone Spacing

The launchpad provides information about the distance between the closest two drone launch positions. This simplifies adjusting parameters to reach a desired density. In the case where spacing is too low to safely launch, an error message is shown and the render fails to run. As spacing is manipulated, the launch event will automatically adjust and scale in length to accomodate the additional or reduced time involed in safely launching the drones.

<div align="center" data-full-width="true"><figure><img src="/files/KGdl4Xq2G45131eD6rIf" alt="" width="495"><figcaption><p>An error message indicating that the launchpad spacing is insufficient for launch</p></figcaption></figure></div>

#### Overflow Shape

Optionally, an overflow shape can be defined on a launchpad. In the case where a targeted shape does not have enough available slots to place the drones, excess drones are automatically moved into the overflow shape.

## Agent Definition

Each launchpad also exposes parameters that can be used to configure the contained drone type and attached payloads. By default, a drone is assumed to be equipped with an standard RGBW LED. This section becomes important when configuring a show for using [pyro](/drone-show-technology/fireworks-and-drone-shows) or enabling [yaw control](/drone-show-software/verge-design-studio/advanced-topics/yaw-control).

<figure><img src="/files/2I7qvaLHcNGeVKqZ2EKP" alt="" width="335"><figcaption></figcaption></figure>


# Text

An advanced text shape that can extract formations from any True Type Font or from provided, fixed-count pointcloud fonts.

|                     |         |                                                                                                                                                                  |
| ------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Content             | Text    | What your text will say                                                                                                                                          |
| Match Object Name   | Yes/No  | Whether the text will mirror what's in the inspector label.                                                                                                      |
| Font Size           | Decimal | The size of the font                                                                                                                                             |
| Extra Spacing       | Decimal | Increases or decreases the spacing between letters in the X, Y, or Z direction                                                                                   |
| Anchor Offset       | Decimal | The location of the text in the X, Y, and Z directions relative to its anchor point.                                                                             |
| Alignment           | Enum    | How the text is aligned with the anchor point                                                                                                                    |
| Use Integrated Font | Yes/No  | If checked, the option to use Verge integrated font will appear. Choose from low, medium, and high, each option offering a different number of points per letter |
| Font Style          |         | Choose from a list of uploaded fonts                                                                                                                             |
| Import              |         | Import TTF font from your hard drive                                                                                                                             |
| Decompose Shape     |         | Convert the current text shape into a hierarchy of its components                                                                                                |

<br>

<figure><img src="/files/Q2kokdhQ6qklhQajdr5O" alt="" width="346"><figcaption></figcaption></figure>

<figure><img src="/files/uKU764fk520pPvfevZLH" alt="" width="347"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for text</mark></sub></p></figcaption></figure>

<figure><img src="/files/4eyoXvAyqcv8eVgl1Gmi" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Text while extra spacing is being manipulated in the X direction between 0 and 15</mark></sub></p></figcaption></figure>


# QR Codes

A QR code is a machine-readable code that encodes data—such as a URL, text, or contact information—so it can be quickly scanned by a camera or reader. This provides a very quick way to generate a QR code formation.

|                  |         |                                                                                                                                                                                           |
| ---------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Content          | Text    | The encoded text message. Typically a URL                                                                                                                                                 |
| Correction Level |         | The amount of redundant data built into a QR code that allows it to be correctly read even if part of the code is missing or damaged. Particularly useful if missing drones is a concern. |
| Invert           | Yes/No  | if selected, where the usual dark modules are light and the usual light background is dark is inverted.                                                                                   |
| Step Size        | Decimal | The distance between points in the QR code                                                                                                                                                |
| Slot count       |         | The number of points required to create the QR code                                                                                                                                       |

<figure><img src="/files/7klZ9ecKRvgQYXkerJuH" alt="" width="352"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a QR code</mark></sub></p></figcaption></figure>

<figure><img src="/files/smsrMrMpccguIhoteECc" alt="" width="365"><figcaption><p align="center"><sub><mark style="color:$info;">QR code while Invert is being toggled on and off</mark></sub></p></figcaption></figure>


# Circle

A simple 2D geometric model of a circle.

| Parameter                | Type             | Description                                                                         |
| ------------------------ | ---------------- | ----------------------------------------------------------------------------------- |
| Radius                   | Decimal (Meters) | The distance from the center to the perimeter of the circle.                        |
| Circle Count             | Integer          | The number of concentric circles inside the circle.                                 |
| Inner T (Tangent) Radius | Decimal          | Shown when Circle Count > 1. The radius from the innermost circle to the perimeter. |

<figure><img src="/files/70YoHPtbhvrcUVJJ8uJo" alt="" width="351"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a circle</mark></sub></p></figcaption></figure>

<figure><img src="/files/4DXwNMIuHPyqYb26ZCCl" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Circle count being manipulated between 1 and 5</mark></sub></p></figcaption></figure>


# Rectangle

A simple 2D geometric model of a rectangle

| Parameter            | Type             | Description                                                                                                    |
| -------------------- | ---------------- | -------------------------------------------------------------------------------------------------------------- |
| Width                | Decimal (Meters) | The distance from the left side of the rectangle to the right side of the rectangle.                           |
| Height               | Decimal (Meters) | The distance from the bottom of the rectangle to the top of the rectangle.                                     |
| Area (square meters) | Decimal          | The amount of flat space inside the boundary of the rectangle as dictated by the width and height. (Read-Only) |
| X                    | Decimal (Meters) | The location of the center of the rectangle in the X direction relative to its anchor point.                   |
| Y                    | Decimal (Meters) | The location of the center of the rectangle in the Y direction relative to its anchor point.                   |

<figure><img src="/files/BLLYYjiBIqRuj4qDh27X" alt="" width="347"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a rectangle</mark></sub></p></figcaption></figure>

<figure><img src="/files/XwromWhQUM7I0R0XTnO7" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Rectangle height and width being manipulated between 15 and 20</mark></sub></p></figcaption></figure>


# Ellipse

A simple geometry representation of an Ellipse.

| Parameter | Type             | Description                                                                    |
| --------- | ---------------- | ------------------------------------------------------------------------------ |
| Radius X  | Decimal (Meters) | The distance from the center to the outside of the ellipse in the X direction. |
| Radius Y  | Decimal          | The distance from the center to the outside of the ellipse in the Y direction. |
| Center X  | Decimal          | The location of the ellipse in the X direction relative to its anchor point.   |
| Center Y  | Decimal          | The location of the ellipse in the Y direction relative to its anchor point.   |

<figure><img src="/files/M6hwtuQfHxVui0R3VBHR" alt="" width="349"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a Ellipse</mark></sub></p></figcaption></figure>

<figure><img src="/files/KxwNOb4r2UYyZQx4cGCv" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Ellipse height being manipulated between 1 and 2</mark></sub></p></figcaption></figure>


# Polygon

A polygon is a plane figure formed by connecting a finite number of straight line segments end-to-end, where the first and last points meet to enclose a region.

### Slot Mode: Scale To Fit

Scales each row or column so that it takes up the full available space along that scanline.

| Parameter          | Type                   | Descripton                                                 |
| ------------------ | ---------------------- | ---------------------------------------------------------- |
| Scanline Direction | Horizontal or Vertical | The direction the rows are generated within the polygon.   |
| Set Row Count      | On/Off                 | Allows the adjusting of row count within the polygon.      |
| Row Count          | Decimal                | The number of rows within the polygon.                     |
| Start T            | Decimal                | How much of the polygon is filled starting from the top.   |
| End T              | Decimal                | How much of the polygon is filled starting from the bottom |

<figure><img src="/files/ySz2OtHi9NfbbZqQzxDw" alt="" width="346"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a Scaled Fit polygon</mark></sub></p></figcaption></figure>

<figure><img src="/files/1gW1XzK3YSqfwse3IXDk" alt="" width="316"><figcaption><p align="center"><sub><mark style="color:$info;">Polygon scanline direction being manipulated between vertical and horizontal</mark></sub></p></figcaption></figure>

### Slot Mode: Bounded Grid

A grid of evenly spaced lines or points that is restricted to a specific, finite area or region.<br>

| Parameter    | Type    | Descripton                                             |
| ------------ | ------- | ------------------------------------------------------ |
| Slot Density | Decimal | The amount of space between drones within the polygon. |

<figure><img src="/files/L24D2omVUhlsFlQ4rjSH" alt="" width="344"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a Bounded Grid polygon</mark></sub></p></figcaption></figure>

### Slot Mode: Poisson

A distribution method that provides pseudo-random placement at a specified density.

| Parameter      | Type    | Description                                            |
| -------------- | ------- | ------------------------------------------------------ |
| Slot Density   | Decimal | The amount of space between drones within the polygon. |
| Random Seeding | Decimal | Points are randomly generated to ensure variability.   |

<figure><img src="/files/Y937q80YTDg0hbFHkTBQ" alt="" width="346"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a Poisson polygon</mark></sub></p></figcaption></figure>

<figure><img src="/files/hI5AL7i18hljIRfjgTYw" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Polygon slot mode being manipulated between bounded grid, poisson, and scaled fit</mark></sub></p></figcaption></figure>

## Editing Polygons

When selecting a polygon, a toolbar will appear on the top of the scene view. This toolbar provides quick ways of manipulating polygons, editing geometry, and managing the anchor point. Buttons become enabled/disabled based on the current selection and state of the polygon.

<figure><img src="/files/nUpfkOyifqcbIR7qUaB6" alt="" width="128"><figcaption></figcaption></figure>

{% tabs %}
{% tab title="Tools" %}

<details>

<summary>Center Anchor</summary>

Automatically shift the polygon's centroid to be the average of all control points

</details>

<details>

<summary>Delete</summary>

Deletes the currently selected anchor point, segment, or spline

</details>

<figure><img src="/files/z9K0hFPitFKm6NmAUnB0" alt="" width="31"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Edit" %}
This button array provides a way to enter/exit polygon edit mode. Edit mode must be entered to modify polygon hull anchor points

<details>

<summary><img src="/files/APEALCzWBbystXSWWuUD" alt=""> <img src="/files/sAXW0ENcRli0qx5kYnOs" alt=""> Edit Mode (Exit Edit Mode)</summary>

Enter edit mode and allow geometry to be selected and manipulated. The button will toggle to an X when active and must be clicked again to exit edit mode.

</details>
{% endtab %}
{% endtabs %}


# Grid

The grid shape provides a way to place points at equal distances across a 2D plane

|                          |                  |                                                                                                                                                 |
| ------------------------ | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>Offset (X, Y)<br></p> | Decimal (meters) | The location of the grid in the X and Y direction relative to its anchor point.                                                                 |
| Constant Density Mode    | On/Off           | When on, centers the formation with equal density based on the value provided by the "Density" field.                                           |
| Slotting Mode            | Decimal          | <p>Simple - Square placement<br><br>Staggered - Each row is offset by half the horizontal distance between points in an alternating pattern</p> |
| Density                  | Decimal          | The amount of space between drones within the grid.                                                                                             |
| Max Slots                | Decimal          | The maximum number of drones that can be applied to the grid. Only valid when using "Constant Density Mode"                                     |
| Width                    | Decimal (meters) | The width of the grid.                                                                                                                          |
| Length                   | Decimal (meters) | The length of the grid.                                                                                                                         |

<figure><img src="/files/XRYfT1luDYaZGkiqr62X" alt="" width="349"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a grid</mark></sub></p></figcaption></figure>

<figure><img src="/files/9uQhYJFTXQXhXnQFFEsx" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">A grid being manipulated between simple and staggered slotting method</mark></sub></p></figcaption></figure>


# Fill Circle

A fill circle is a circular shape that includes all points inside the circle’s boundary as well as the boundary itself.

|                 |                  |                                                                                                                                                                                                                                                                                                                                                                                                |
| --------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Radius          | Decimal (Meters) | The distance from the center to the outside of the circle.                                                                                                                                                                                                                                                                                                                                     |
| Boundary Weight | Decimal          | The number of points that are assigned to the boundary of the fill circle.                                                                                                                                                                                                                                                                                                                     |
| Fill Method     | Decimal          | <p>Sunflower - a point-placement technique that uses the golden angle to place points in a spiral pattern, producing near-uniform coverage of a circular area without visible rows or clustering.</p><p>Equal Area Rings - a point placement technique that distributes points along multiple concentric circles (rings), starting from the center or edge, to evenly fill a bounded area.</p> |

<figure><img src="/files/GxtjpLinYWjqj43R4Z8z" alt="" width="348"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a fill circle</mark></sub></p></figcaption></figure>

<figure><img src="/files/lsjDigHg073qQbfvkuWz" alt=""><figcaption><p align="center"><sub><mark style="color:$info;">Fill circle being manipulated between sunflower and equal area rings fill method</mark></sub></p></figcaption></figure>


# Cube

A simple 3D model of a cube

| Parameter     | Type    | Description                                                                                                             |
| ------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| Width         | Decimal | The distance from the left side of the cube to the right side of the cube in meters.                                    |
| Height        | Decimal | The distance from the top of the cube to the bottom of the cube in meters.                                              |
| Length        | Decimal | The distance from the front of the cube to the back of the cube in meters.                                              |
| Slotting Mode |         | <p>Perimeter - placing points on the perimeter of the cube.<br>Fill - filling the interior of the cube with points.</p> |

<figure><img src="/files/bcGaBo9LyE1J2cAwzJGm" alt="" width="352"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a cube</mark></sub></p></figcaption></figure>

<figure><img src="/files/gSYZB25eQDaI12xNPGkA" alt="" width="233"><figcaption><p align="center"><sub><mark style="color:$info;">Cube being manipulated between perimeter and fill slotting method</mark></sub></p></figcaption></figure>


# Sphere

A simple 3D model of a sphere

| Parameter               | Type             | Description                                                                                                                                                            |
| ----------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Radius                  | Decimal (Meters) | The distance from the center to the perimeter of the sphere.                                                                                                           |
| Sphere Start Percentage | Decimal          | The percentage position on a sphere where the mapping begins, measured relative to the sphere’s full extent.                                                           |
| Sphere End Percentage   | Decimal          | The percentage position on a sphere where the mapping ends, measured relative to the sphere’s full extent.                                                             |
| Cap Ends                | On/Off           | Truncating a sphere at a specified height or angle so that only part of the sphere is used, with the cut edge forming a defined boundary (often a flat circular face). |

<figure><img src="/files/dUKnozpzGF59lDsXQUlo" alt="" width="351"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a sphere</mark></sub></p></figcaption></figure>

<figure><img src="/files/WP2sPbjrGukhq4MM9LF1" alt="" width="281"><figcaption><p align="center"><sub><mark style="color:$info;">Sphere start percentage being manipulated between 0 and .5</mark></sub></p></figcaption></figure>


# Scatter Field

| Parameter        | Type             | Description                                                                                                                                                                                                |
| ---------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Valid Slots      | Decimal (Meters) | The number of points that fit within the scatter field.                                                                                                                                                    |
| Dimensions       | Decimal          | The measurable distance in the X, Y, and Z direction in meters.                                                                                                                                            |
| Radius           | Decimal          | The distance from the center to the perimeter of the scatter field.                                                                                                                                        |
| Placement Method |                  | <p>A pseudo-random placement methodology that provides a fairly even distribution of points in the given space.</p><p>Poisson 2D - Fit to a 2D Y/X space.<br><br>Poisson 3D - Fit to a 3D X/Y/Z space.</p> |
| Ransom Seeding   | Decimal          | Points randomly generated to ensure variability. Initialization value for the pseudo-random solution ensures replication will still provide variability.                                                   |

<figure><img src="/files/baSJqn5uO1HFDuBMGQTF" alt="" width="352"><figcaption><p>Inspector for a scatter field</p></figcaption></figure>

<figure><img src="/files/2kKwRehEKVPMeQdIXJMS" alt="" width="375"><figcaption><p align="center"><sub><mark style="color:$info;">Scatter field being manipulated by random seeding</mark></sub></p></figcaption></figure>


# Cylinder

A simple 3D model of a cylinder

| Parameter           | Type             | Description                                                                                                                                       |
| ------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| Height              | Decimal (Meters) | The distance from the top to the bottom of the cylinder                                                                                           |
| Start Angle Deg     | Decimal          | Indicates the starting angle (around the centroid) that the circle starts.                                                                        |
| End Angle Deg       | Decimal          | Indicates the ending angle (around the centroid) that the circle ends.                                                                            |
| Radius              | Decimal          | The distance from the center of the cylinder to the horizontal extends of the cylinder                                                            |
| Offset              | Decimal          | The location of the center of the cylinder in the X, Y, or Z direction relative to its anchor point.                                              |
| Slotting Mode       |                  | <p>Surface - filling the surface of the trunk of the cylinder with points<br><br>Wire Frame - placing points on the perimeter of the cylinder</p> |
| Trunk Fill          |                  | <p>Simple - Square placement<br><br>Staggered - Each row is offset by half the horizontal distance between points in an alternating pattern</p>   |
| Trunk Stagger Axis  |                  | <p>Rows - The trunk of the cylinder is filled horizontally.<br><br>Columns - The trunk of the cylinder is filled vertically</p>                   |
| Cap FIll            |                  |                                                                                                                                                   |
| Cap Boundary Weight | Decimal          | The number of points that are assigned to the boundary of the cap of the cylinder                                                                 |

<figure><img src="/files/pZpKoAJRrBhoUjU6SpTf" alt="" width="352"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a cylinder</mark></sub></p></figcaption></figure>

<figure><img src="/files/V0PQ0hCD60WkjC11dhG5" alt="" width="375"><figcaption><p align="center"><sub><mark style="color:$info;">Cylinder being manipulated by random seeding</mark></sub></p></figcaption></figure>


# Torus

A simple 3D model of a Torus

| Parameter    | Type             | Description                                                                                                                                   |
| ------------ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Major Radius | Decimal (Meters) | The radius of the circle formed by the centers of the torus’s circular cross-section.                                                         |
| Tube Radius  | Decimal          | The distance from the center of the torus’s tube to the surface of the tube.                                                                  |
| Offset       | Decimal          | The location of the center of the torus in the X, Y, or Z direction relative to its anchor point.                                             |
| Grid Mode    |                  | <p>Simple - Square placement<br><br>Stagger - Each row is offset by half the horizontal distance between points in an alternating pattern</p> |
| Stagger Axis |                  | <p>Rows - The torus is filled horizontally.<br><br>Columns - The torus is filled vertically</p>                                               |

<figure><img src="/files/JgU0i2TFAxaNkvwU0qS6" alt="" width="354"><figcaption><p align="center"><sub><mark style="color:$info;">The inspector for a torus</mark></sub></p></figcaption></figure>

<figure><img src="/files/LoSDLvxopwbIxysS3BF2" alt="" width="375"><figcaption><p align="center"><sub><mark style="color:$info;">torus being manipulated by major radius</mark></sub></p></figcaption></figure>


# Formation Group

A formation group is a collection of individual elements with a single anchor point. Any number and combination of elements can be organized into a formation group.

To create a formation group, click the formation group button in the shapes panel or, select the desired elements from the hierarchy, then click the formation group button.

Once elements are in the formation group, they will be reflected in the formation elements panel. Elements can be added, deleted, or reorganized using the buttons at the top of the panel.

<figure><img src="/files/VYW7PQFqbgoqbopudRLj" alt="" width="341"><figcaption><p align="center"><sub><mark style="color:$info;">Inspector view of a formation group elements panel</mark></sub></p></figcaption></figure>

{% tabs %}
{% tab title="Edit" %}
These buttons are responsible for organizing, adding, and removing elements within the formation element panel.

<details>

<summary><img src="/files/sUBtTnZ5jJ8bTBpRkG6f" alt="" data-size="line"> Move element</summary>

Enter anchor point selection mode where only anchor points (points that lie directly on geometry) can be selected

</details>

<details>

<summary><img src="/files/lo6bZvfDKRS6HlAkknN0" alt="" data-size="line"> Add element</summary>

Enter control point selection mode where any control point can be selected and shifted

</details>

<details>

<summary><img src="/files/fY7TDZUuw8MGKw23KZuY" alt="" data-size="line"> Delete element</summary>

Enter segment selection mode where any segment can be selected and shifted

</details>
{% endtab %}
{% endtabs %}

<figure><img src="/files/MGCWQrRA1VZshzxtBDrT" alt="" width="375"><figcaption><p align="center"><sub><mark style="color:$info;">Inspector view of a formation group elements panel</mark></sub></p></figcaption></figure>

Once an element within the group has been selected, element constructs will appear for that element in the inspector.

<figure><img src="/files/NWuXFVvLlJme2QIj26Ti" alt="" width="333"><figcaption><p>Formation group in the inspector</p></figcaption></figure>

| Parameter             | Type   | Description                                                                                                                                          |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Shape reference       |        | indicates the element in the formation group slot.                                                                                                   |
| Allocation Mode       |        | <p>Flexible - assigning a percentage of drones to the selected element<br><br>Fixed - assigning a fixed amount of drones to the selected element</p> |
| Enable Minimum        | On/Off | Defines a minimum number of slots for the element when using flexible allocation mode.                                                               |
| Enable Maximum        | On/Off | Defines a maximum number of slots for the element when using flexible allocation mode.                                                               |
| Flexible slot weight  |        | A predetermined weighting factor, in percentage, applied to a specific element                                                                       |
| Allocated Slots       |        | The number of fixed slots assigned to an element                                                                                                     |
| Exclude From Lighting | On/Off | Excludes an element from lighting events assigned to the parent formation group                                                                      |

<div align="center"><img src="/files/A0HfoNRbqXlo3VcRkC0P" alt=""></div>

<p align="center"><sub><mark style="color:$info;">Inspector view of a formation group</mark></sub></p>


# Formation Sequence

a planned progression in which a group of elements moves through multiple formations in a specific order.

Formation sequences allow you to transition a subset of drones from one element to another element without doing a full element transition.

By creating formation sequences and tracking them in a group, you can transition parts of elements instead of full elements. It also allows you to continually allocate a subset of drones to specific elements.

<figure><img src="/files/KPkW1zzLbhlO8nrDL2b3" alt="" width="301"><figcaption><p>Formation sequences in the hierarchy</p></figcaption></figure>

<figure><img src="/files/kWZjENf2orNf0JCSIX8V" alt="" width="342"><figcaption><p>Formation sequences in a formatio group, in the inspector</p></figcaption></figure>

<figure><img src="/files/ewZUclcATftmlb2b7YHF" alt="" width="356"><figcaption><p>Formation Sequence in the inspector</p></figcaption></figure>

<figure><img src="/files/XnPduCE6soKsdL1wTq9m" alt="" width="563"><figcaption><p>Formation sequences in the timeline</p></figcaption></figure>

| Parameter                 | Type             | Description                                                                                                                                          |
| ------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Allocation Mode           | Decimal (Meters) | <p>Flexible - assigning a percentage of drones to the selected element<br><br>Fixed - assigning a fixed amount of drones to the selected element</p> |
| Fixed Slots               | Decimal          | The number of fixed slots assigned to an element                                                                                                     |
| Remove From Lighting      | On/Off           | Excludes the formation sequence from lighting events assigned to the parent formation group                                                          |
| Allocation Mode           |                  | <p>Flexible - assigning a percentage of drones to the selected element<br><br>Fixed - assigning a fixed amount of drones to the selected element</p> |
| Overflow Shape            |                  |                                                                                                                                                      |
| Apply Color Source Before |                  |                                                                                                                                                      |

<figure><img src="/files/JgU0i2TFAxaNkvwU0qS6" alt="" width="354"><figcaption></figcaption></figure>

<figure><img src="/files/jicD8lGKLDVAau6k5Vnv" alt="" width="375"><figcaption><p>formation sequence from render view</p></figcaption></figure>


# Array Object

An object contains a collection of elements arranged in a specific order, where each element can be accessed using a numerical index.

| Parameter       | Type    | Description                                                                                                                                                                                        |
| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Operation Type  |         | <p>Linear - The elements in the array follows a linear path<br><br>Circular - The elements in the array follows a circular path<br><br>Along Shape - The elements in the array follow a spline</p> |
| Slot Source     |         | The source (parent) shape/the object being repeated                                                                                                                                                |
| Local Rotation  | Decimal | Rotation applied around the axis of each source copy in the X, Y, and Z directions                                                                                                                 |
| Local Offset    | Decimal | Offset applied around the axis of each source copy in the X, Y, and Z directions                                                                                                                   |
| Local Scale     | Decimal | Scale applied around the axis of each source copy in the X, Y, and Z directions                                                                                                                    |
| Count           | Decimal | The number of source copies being created                                                                                                                                                          |
| Decompose Shape |         | Convert the current array into a hierarchy of its components                                                                                                                                       |

<div align="center"><img src="/files/dXpXwiflJHrhDL1wYnGq" alt=""></div>

<p align="center"><sub><mark style="color:$info;">Inspector view of an array object</mark></sub></p>

Parameters for linear operation type

| Parameter   | Type             | Description                                                                              |
| ----------- | ---------------- | ---------------------------------------------------------------------------------------- |
| Start Point | Decimal (Meters) | The first position on the line where the initial (source) object of the array is placed. |
| End Point   | Decimal (Meters) | The last position on the line where the initial (source) object of the array is placed.  |

<figure><img src="/files/WtMWqu2EwDQXo3Ne2GWS" alt="" width="349"><figcaption><p align="center"><sub><mark style="color:$info;">Parameters for linear operation type in the inspector</mark></sub></p></figcaption></figure>

Parameters for circular operation type

| Parameter | Type             | Description                                                                                         |
| --------- | ---------------- | --------------------------------------------------------------------------------------------------- |
| Offset    | Decimal (Meters) | The location of the center of the Array in the X, Y, and Z directions relative to its anchor point. |
| Radius    | Decimal (Meters) | The distance from the center to the perimeter of the circle.                                        |

<figure><img src="/files/YG9jKmlkEW6Omxf6C0lJ" alt="" width="348"><figcaption><p align="center"><sub><mark style="color:$info;">Parameters for circular operation type in the inspector</mark></sub></p></figcaption></figure>

Parameters for along shape operation type

| Parameter   | Type   | Description                                                                                                          |
| ----------- | ------ | -------------------------------------------------------------------------------------------------------------------- |
| Shape       |        | The defined path spline                                                                                              |
| Use Tangent | On/Off | Rotate each instance in the array to match the tangent direction of the path spline at the point where it is placed. |

<figure><img src="/files/mJkH8vzhcX1XsH4VmH9t" alt="" width="349"><figcaption><p align="center"><sub><mark style="color:$info;">Parameters for along shape operation type in the inspector</mark></sub></p></figcaption></figure>

<figure><img src="/files/AWHPy45XStHzzd9Yn8qk" alt="" width="375"><figcaption><p align="center"><sub><mark style="color:$info;">Array being manipulated by Z local rotation</mark></sub></p></figcaption></figure>


# Flocking Controller

A simple 3D model of a Torus

| Parameter    | Type             | Description                                                                                                                                   |
| ------------ | ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Major Radius | Decimal (Meters) | The radius of the circle formed by the centers of the torus’s circular cross-section.                                                         |
| Tube Radius  | Decimal          | The distance from the center of the torus’s tube to the surface of the tube.                                                                  |
| Offset       | Decimal          | The location of the center of the torus in the X, Y, or Z direction relative to its anchor point.                                             |
| Grid Mode    |                  | <p>Simple - Square placement<br><br>Stagger - Each row is offset by half the horizontal distance between points in an alternating pattern</p> |
| Stagger Axis |                  | <p>Rows - The torus is filled horizontally.<br><br>Columns - The torus is filled vertically</p>                                               |

<figure><img src="/files/JgU0i2TFAxaNkvwU0qS6" alt="" width="354"><figcaption></figcaption></figure>

<p align="center"><sub><mark style="color:$info;">The inspector for a torus</mark></sub></p>

<figure><img src="/files/LoSDLvxopwbIxysS3BF2" alt="" width="375"><figcaption></figcaption></figure>

<p align="center"><sub><mark style="color:$info;">torus being manipulated by major radius</mark></sub></p>


# Light Animation

Light Animation events are events that define how illumination behaves over time within a scene. Each light animation event has a construct that controls intensity, color, movement, and modulation, allowing light to pulse, sweep, fade, fill, or react dynamically to events. Light animation events are used to choreograph visual rhythms, accent motion, guide attention, and synchronize lighting with shapes, swarms, music, or narrative moments throughout the scene.

### Lighting Events

To add lighting events to a scene object, a light mixer layer must be added to that scene object. Lighting layers are activated in the inspector.

<figure><img src="/files/DwG8pwfkXr9FXWodQIkT" alt="" width="375"><figcaption></figcaption></figure>

Additional lighting layers can be added via either of the Add Light layer buttons.

<figure><img src="/files/F8ud8LVd2C0TyGPmSkG7" alt="" width="335"><figcaption></figcaption></figure>

<figure><img src="/files/hkbnoo5MaQlB1esSPXvo" alt=""><figcaption></figcaption></figure>

* [Constant](/drone-show-software/verge-design-studio/light-animation/constant)
* [Strobe](/drone-show-software/verge-design-studio/light-animation/strobe)
* [Pulse](/drone-show-software/verge-design-studio/light-animation/pulse)
* [Shape Fill](/drone-show-software/verge-design-studio/light-animation/shape-fill)
* [Shape Chase](/drone-show-software/verge-design-studio/light-animation/shape-chase)
* [Projection](/drone-show-software/verge-design-studio/light-animation/projection)
* [Sparkle](/drone-show-software/verge-design-studio/light-animation/sparkle)
* [Fade](/drone-show-software/verge-design-studio/light-animation/fade)
* [Volumetric](/drone-show-software/verge-design-studio/light-animation/volumetric)

##


# Constant

A constant lighting event.

| Parameter   | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ----------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Color Type  |         | <p>None - The element has no lighting.<br><br>Solid - A single, uniform light value is applied for the duration of the event.<br><br>Gradient - Lighting transitions smoothly between two or more values across space or time.<br><br>Reference - Lighting is driven by an external source or predefined lighting asset.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| Color       | Swatch  | The color type current color and selection                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| Interp Type |         | <p>Geometry - Color interpolation follows the underlying geometry of the scene or object. Colors are distributed based on shape, surface, or spatial relationships, allowing lighting to conform naturally to complex forms.<br><br>Linear - Color interpolation progresses along a straight axis or direction. Colors blend evenly from one end to the other, producing clean, directional gradients across the scene. Start and end points of the color can be defined by X, Y, and Z coordinates.<br><br>Radial - Color interpolation radiates outward from a central point. Values transition based on distance from the center, creating circular gradients, halos, or spotlight-like effects. RADIUS CENTER POINT</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Blend Mode  |         | <p>Normal - The lighting event is applied directly without blending. Its color and intensity fully replace any underlying lighting values.<br><br>Multiply - Lighting values are multiplied with the existing lighting, resulting in darker output. This mode is useful for adding shadows, depth, or dimming effects without introducing new light.<br><br>Screen - Lighting values are inverted, multiplied, and then inverted again, producing a brighter result. Screen is commonly used to add light, glow, or highlights while preserving detail.<br><br>Overlay - Combines Multiply and Screen behavior based on the underlying lighting. Dark areas become darker and bright areas become brighter, increasing contrast while maintaining overall balance.<br><br>Add - Lighting values are added to the existing lighting, increasing brightness and intensity. This mode is ideal for energetic effects, flares, or emphasizing peaks.<br><br>Subtract - Lighting values are subtracted from the existing lighting, reducing brightness. Useful for creating cutouts, fades, or dramatic lighting drops.<br><br>Darken - For each color channel, the darker value between the event and underlying lighting is used. This preserves shadows and prevents the lighting from becoming brighter than what already exists.<br><br>Lighten - For each color channel, the lighter value between the event and underlying lighting is used. This preserves highlights and ensures the lighting does not reduce existing brightness.</p> |
| Fade In/Out | Decimal | <p>Method - Defines how the fade is calculated over time. The method determines the curve or behavior of the transition, such as linear, eased, or custom, shaping how smoothly or dramatically the fade progresses.<br><br>Units - Specifies the measurement used to evaluate the fade.<br><br>-Percentage - Defines the fade length as a proportion of the total event duration. The fade-in completes after the specified percentage of the event has elapsed, allowing the transition to scale automatically with longer or shorter events.<br><br>-Time Length - Defines the fade duration explicitly in time. This sets how long the fade-in takes from start to completion, independent of other units or scene scaling, ensuring consistent timing across the animation.<br><br>-Normalize - Controls whether fade values are scaled to a consistent range. When enabled, the fade is automatically adjusted so its output fits within expected minimum and maximum limits, ensuring smooth, predictable transitions regardless of input values.<br><br>Length - Sets the duration or extent of the fade.</p>                                                                                                                                                                                                                                                                                                                                                                                                                      |

<figure><img src="/files/WWZTcu4LBSO3gUDR8P34" alt="" width="354"><figcaption><p>Inspector for constant lighting event</p></figcaption></figure>

<figure><img src="/files/Lx2yyTKj3K96GiFfzthq" alt="" width="375"><figcaption><p>Constant color being manipulated to pink</p></figcaption></figure>


# Strobe

A rapid on–off lighting effect by repeatedly toggling intensity over time.

| Parameter  | Type       | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Unit Type  |            | <p>Hz - the strobe or modulation rate in cycles per second. Higher Hz values produce faster, more intense flickering, while lower values create slower, more deliberate pulses.<br><br>BPM - the strobe or modulation rate in musical beats per minute. This allows lighting effects to synchronize naturally with music or rhythmic cues, aligning pulses to the tempo of a track or performance.</p> |
| Unit       | Decimal    | Amount applied to the unit type                                                                                                                                                                                                                                                                                                                                                                        |
| Duty Cycle | percentage | Defines the proportion of each strobe cycle during which the light is active. A higher duty cycle keeps the light on longer per cycle, producing a fuller glow, while a lower duty cycle results in sharper, more percussive flashes.                                                                                                                                                                  |

<figure><img src="/files/u4ffTIPiwgfoYHf9jS8X" alt="" width="350"><figcaption><p>Inspector for strobe lighting event</p></figcaption></figure>

<figure><img src="/files/kN4yGSLZGeDxb2cMYpOs" alt="" width="375"><figcaption><p>Strobe lighting event</p></figcaption></figure>


# Pulse

A smooth, repeating rise and fall in light intensity over time.

| Parameter | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| --------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Unit Type |         | <p>Hz - the strobe or modulation rate in cycles per second. Higher Hz values produce faster, more intense flickering, while lower values create slower, more deliberate pulses.<br><br>BPM - the strobe or modulation rate in musical beats per minute. This allows lighting effects to synchronize naturally with music or rhythmic cues, aligning pulses to the tempo of a track or performance.</p> |
| Unit      | Decimal | amount applied to the unit type                                                                                                                                                                                                                                                                                                                                                                        |

<figure><img src="/files/Xidmol8OjQKAE9mkMNkb" alt="" width="353"><figcaption><p>Inspector for pulse lighting event</p></figcaption></figure>

<figure><img src="/files/iCreuQnwNsvYhGZVsYWk" alt="" width="375"><figcaption><p>Pulse lighting event</p></figcaption></figure>

A pulse lighting event is modeled as a sine wave because a sine function produces a smooth, continuous rise and fall over time, which matches how a pulse is intended to behave visually.

In this context, light intensity is mapped to the value of a sine wave as time progresses:

* The crest of the sine wave represents peak intensity.
* The trough represents minimum intensity.
* The zero crossings define the midpoint or base intensity.

As time advances, the sine wave oscillates, causing the light to gradually brighten, reach a maximum, then smoothly dim and repeat. This avoids abrupt transitions and hard edges, producing an organic, rhythmic motion often described as a “breathing” effect.

Because sine waves are mathematically smooth and periodic, they are ideal for pulse lighting events that need consistent timing, predictable behavior, and visually pleasing transitions without flicker.

<figure><img src="/files/10wnqLovmtGkEsSURbdc" alt="" width="375"><figcaption><p>Sin wave</p></figcaption></figure>


# Shape Fill

Controls how light fills within the bounds of a shape.

| Parameter      | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                       |
| -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Filled Color   | Swatch | The color the element fills with                                                                                                                                                                                                                                                                                                                                                                  |
| Unfilled Color | Swatch | The color the element begins with.                                                                                                                                                                                                                                                                                                                                                                |
| Fill Effect    |        | <p>In To Out - Lighting begins at the center of the shape and expands outward toward its edges.<br><br>Out To In - Lighting starts at the outer edges of the shape and moves inward toward the center.<br><br>Left Fill - Lighting fills the shape progressively from the left side to the right.<br><br>Right Fill - Lighting fills the shape progressively from the right side to the left.</p> |
| Fade Amount    |        | Density or strength of the fade effect. How much the effect is blended.                                                                                                                                                                                                                                                                                                                           |

<figure><img src="/files/inOjdYAJXUiAz1R5sbJr" alt="" width="354"><figcaption><p>Inspector for shape fill lighting event</p></figcaption></figure>

<figure><img src="/files/AY5kOG4Y86oD1q0QJKCw" alt="" width="375"><figcaption><p>Examples of shape fill lighting events</p></figcaption></figure>


# Shape Chase

A moving lighting effect that travels along the splines of the element.

| Parameter         | Type   | Description                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Intensity Mapping | On/Off | How lighting intensity values are distributed across an element                                                                                                                                                                                                                                                                                                                                        |
| Pattern           |        | <p>Square - The chase advances in discrete steps with abrupt on–off transitions.<br><br>Sine - The chase follows a smooth, sinusoidal curve.<br><br>Sawtooth - The chase ramps steadily in one direction and then resets abruptly.<br><br>Triangle - The chase increases and decreases linearly in a symmetrical pattern.</p>                                                                          |
| Chase Cycle Time  |        | The duration required for a chase pattern to complete one full pass through its sequence.                                                                                                                                                                                                                                                                                                              |
| Off Time          |        | The duration during which the light remains inactive between chase steps.                                                                                                                                                                                                                                                                                                                              |
| Amplitude         |        | The maximum range or strength of variation in a lighting effect.                                                                                                                                                                                                                                                                                                                                       |
| Reverse Direction | On/Off | Reverses the direction of the Chase.                                                                                                                                                                                                                                                                                                                                                                   |
| Unit Type         |        | <p>Hz - the strobe or modulation rate in cycles per second. Higher Hz values produce faster, more intense flickering, while lower values create slower, more deliberate pulses.<br><br>BPM - the strobe or modulation rate in musical beats per minute. This allows lighting effects to synchronize naturally with music or rhythmic cues, aligning pulses to the tempo of a track or performance.</p> |
| Unit              |        | Amount applied to the unit type                                                                                                                                                                                                                                                                                                                                                                        |
| Pulse Size        |        | The spatial width or extent of a pulse as it travels through an element.                                                                                                                                                                                                                                                                                                                               |

<figure><img src="/files/rHjvEmCMVzhImbNmPtat" alt="" width="352"><figcaption><p>Inspector for shape chase lighting event</p></figcaption></figure>

<figure><img src="/files/qKyduwne6xvtqB6yojOd" alt="" width="375"><figcaption><p>Shape chase lighting event</p></figcaption></figure>


# Projection

lighting is projected across objects as if cast by a virtual projector, allowing images, gradients, or animations to sweep over elements.

| Parameter          | Type | Description                                                                                                                                        |
| ------------------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Target Projector   |      | Defines the projector tied to the projector lighting event.                                                                                        |
| Use Drone Position |      | Use the real position of the drone rather than using the position of the slot the projector is trying to get to for resolving the projected color. |

<figure><img src="/files/rHwqTvNVolzBzKlnbV9n" alt="" width="352"><figcaption><p>Inspector for projection lighting event</p></figcaption></figure>

<figure><img src="/files/3QUFrOAtShkV4mJj6uOt" alt="" width="375"><figcaption><p>Projection lighting event</p></figcaption></figure>


# Sparkle

Brief, randomized bursts of increased intensity across a scene or shape.

| Parameter      | Type | Description                                                   |
| -------------- | ---- | ------------------------------------------------------------- |
| Sparkle Rate   |      | How frequently sparkles are generated over time.              |
| Sparkle Range  | %    | The intensity or brightness variation of individual sparkles. |
| Sparkle Amount | %    | How many sparkle instances are active at a given moment.      |

<figure><img src="/files/YJlxGH0Y3mOzlbbhk18J" alt="" width="347"><figcaption><p>Inspector for sparkle lighting event</p></figcaption></figure>

<figure><img src="/files/A4yt5d7QWRLV8L6vnTsV" alt="" width="375"><figcaption><p>Sparkle lighting event</p></figcaption></figure>


# Fade

A basic lighting transition that smoothly increases or decreases intensity over time using a single, uniform curve.

| Parameter   | Type         | Description                                                         |
| ----------- | ------------ | ------------------------------------------------------------------- |
| Start Color | Color Source | The color the fade begins with.                                     |
| End Color   | Color Source | The color the fade ends with.                                       |
| Simple Fade | Check Box    | When checked, the starting and ending fade colors can be specified. |

<figure><img src="/files/c6DTWBc5pY4nQC6wRJuP" alt="" width="343"><figcaption><p>Inspector for fade lighting event</p></figcaption></figure>

<figure><img src="/files/WmTBH66N5mfYmyPOhVB9" alt="" width="375"><figcaption><p>Fade lighting event</p></figcaption></figure>


# Volumetric

Applies illumination within a three-dimensional region of space rather than across a flat surface or shape.

| Parameter          | Type      | Description                                                                                |
| ------------------ | --------- | ------------------------------------------------------------------------------------------ |
| Volume             |           | Defines the volume tied to the volume lighting event.                                      |
| Use Drone Position | Check Box | Use the drones position in the volume to solve a color rather than the slot it is tracking |

<figure><img src="/files/nLY7Jdllk4iysLn6VLNx" alt="" width="343"><figcaption><p>Inspector for volumetric lighting event</p></figcaption></figure>

<figure><img src="/files/7StT0D09AYxw4Y2Gbiql" alt="" width="375"><figcaption><p>Volume lighting event</p></figcaption></figure>


# Show Effects

Show effects provide a convenient way to package complex scene object hierarchies and animation sequences into a single object. They solve issues with scalability and simplify the act of re-using designs in future shows. Show effects are the cornerstone functionality that enable the [Composer](https://wiki.droneshow.software/wiki/Composer) editor.

<div align="center" data-full-width="true"><figure><img src="/files/wQm3tss88g0smrhw9ch2" alt="" width="375"><figcaption><p>Show Effects package complex animation and hierarchy info into a single object</p></figcaption></figure></div>

### [Show Effect Sequences](/drone-show-software/verge-design-studio/show-effects/show-effect-sequences)

Sequences provide for a method of animating one effect in many different ways, supplying the user with a way to choose from a number of looks embedded in a single object.

### [Show Effect States](#show-effect-states)

States provides a convenient way to initialize a show effect with a certain set of parameters. Typically they are used to place an effect into a starting state to be used with a sequence.

### [Show Effect Asset Repository](/drone-show-software/verge-design-studio/show-effects/show-effect-asset-repository)

The Verge Design Studio has a built-in cloud repository where show effects can be published, shared, and downloaded, all with version-control.

### [Creating Show Effects From Existing Scene Objects](/drone-show-software/verge-design-studio/show-effects/converting-scene-objects-into-show-effects)

Show Effects were introduced in version 2024.1. There are automated tools to convert legacy objects into show effects to simply using the new workflow.


# Show Effect: Asset Repository

Verge Aero’s design studio has a built-in, cloud-enabled solution for managing and sharing drone show effects within an organization. The asset repo also supports versioning which ensures that shows designed in the past are not accidentally impacted when publishing updates to existing effects.

#### Account Login

First, make sure that you are properly logged in with a valid Verge Aero account. For more information about logging in to your account, go [here](https://wiki.droneshow.software/wiki/Verge_Aero_Account). It is important to ensure that you are logged in on the Design Studio application, which requires separate steps than logging in on the toolbox. To use the asset repository, you must also belong to an organization with an active software license. If you do not already belong to an organization, contact your org admin and ask that they add you.

### The Repository Browser

The asset repository browser can be found by navigating to the [Assets](https://wiki.droneshow.software/index.php?title=Assets\&action=edit\&redlink=1) tab right above the timeline. Within the [Assets](https://wiki.droneshow.software/index.php?title=Assets\&action=edit\&redlink=1) tab are two dropdowns, the [Local](https://wiki.droneshow.software/index.php?title=Local\&action=edit\&redlink=1) browser and the [Cloud](https://wiki.droneshow.software/index.php?title=Cloud\&action=edit\&redlink=1) browser. The [Local](https://wiki.droneshow.software/index.php?title=Local\&action=edit\&redlink=1) browser will show any assets that are located in the Show Designer documents folder. To get to the repository browser, expand the [Cloud](https://wiki.droneshow.software/index.php?title=Cloud\&action=edit\&redlink=1) dropdown.

Under "Your Organizations", you should see a dropdown for each org that you are a member of. Navigating to "All Digital Assets" will show all effects that are currently accessible to you. There are additionally breakdowns by Author and Collection.

<figure><img src="/files/YvzDxFyw4kG0I66UZUnN" alt=""><figcaption><p>Left-click and drag an effect into the scene view to import</p></figcaption></figure>

To import a show effect, simply left click and drag the effect into the scene view. There is also a search bar (located in the upper right corner of the asset browser) that can be used to look for specific effects.

#### Using Effects Offline

Although it is a cloud feature, the show effect repo can be used offline if you prepare for the situation beforehand. It should also be noted that as long as you’ve loaded and viewed the effects once, they can then be accessed without an internet connection. If you wish to prepare a show effect for use offline, you can right-click on any effect or collection in the browser and select \*Cache\*.

<figure><img src="/files/ckxicwd4zRcDWY9PlfRU" alt="" width="375"><figcaption><p>Right-click on a collection or show effect and click "Cache" to store it locally</p></figcaption></figure>

Once cached, the current state of the selected collection or effect will be saved on your machine. You will be able to freely use show files referencing those show effects or import for new shows.

### Managing Show Effect Collections

Show effect collections are, in essence, folders that contain any number of grouped effects. One effect may belong to multiple collections. Collections provide a convenient way to group effects by concept, drone count, year, and more. A new collection may be created by navigating to the "Collections" dropdown in the cloud browser hierarchy, right-clicking in the folder view, and selecting "Create Collection". Once created, you may rename the collection by right-clicking on it and selecting the appropriate option.

#### Deleting a Collection

You may delete a collection by right-clicking on it and choosing "Delete". You can only delete the collection if you are part of the owning organization. Deleting a collection *will not* delete the contained effects. If you lose track of an effect, then you can select "All Digital Assets" in the asset hierarchy to find it.

#### Sharing Effects with Another Organization

<figure><img src="/files/ftCQjkZxTdXjD3BjF5Au" alt="" width="375"><figcaption><p>Right-click on a collection and choose "Share". Search for and choose an organization to share your collection with.</p></figcaption></figure>

Effects cannot be shared on their own with another organization. You can, however, share collections. After identifying the collection you would like to share, or creating a new one with intention of sharing, right-click on that collection and choose "Share" from the dropdown. A window will then appear that will allow you to search for other organizations using the Verge platform (censored above for privacy). Selecting "Share" next to the organization name will then provide read-only access to that org for the selected collection. Any effects that you add, remove, or update from the shared collection will be updated for shared orgs appropriately.

### Publishing Show Effects

After creating a new effect, or [converting an existing scene object](/drone-show-software/verge-design-studio/show-effects/converting-scene-objects-into-show-effects), show effects can be published to an organization's asset repo by clicking on the "Publish Effect" button in the object's inspector. The publish view will provide a preview of the thumbnail and a set of options to modify the preview. You may choose an active slot source, a preview drone count, and a rotation. If you are a part of multiple organizations, you may choose which org you wish to publish the effect to. Additionally, you must choose a collection to save the effect to. Make sure that you have at least one collection created before publishing an effect. You may add the effect to multiple other collections after publishing.

#### Creating a New Version of a Show Effect

To create a new version of an existing show effect, you must first unpack the show effect. Unpacking can be done by selecting a show effect, navigating to the inspector, and clicking the "Unpack" button. Once unpacked, you may freely modify the show effect. To upload modifications, follow the same steps as would be performed when publishing a new effect. The publish panel will look slightly different; you will be unable to modify the effect name, author name, or owner. Click "Submit" to upload the new version.

{% hint style="info" %}
The new version will take the place of the previous version in the asset browser. Any saved show will save a reference to the show effect *and* the version of that effect that was used. This way, if you update the show effect, it will not have any impact on previously designed shows.
{% endhint %}

<figure><img src="/files/EiEZsWcpXB1Y4iMY3Jlz" alt="" width="297"><figcaption><p>The publish panel for a new version of a "Popcorn" show effect</p></figcaption></figure>

#### Sharing Show Files that Contain Cloud Show Effects

When a show effect is used in a show that has been imported directly from the effect repo, the effect data is not stored inside of the show file. Instead, a reference to that show effect is saved which can be used to automatically import the effect on any target machine. This is also true for packed show files. Opening a show file correctly requires an active internet connection and that the user has permissions to access any contained show effects. If you wish to avoid this or are working in conditions that do not allow it, then you must *Unpack* the effect before export.


# Converting Scene Objects into Show Effects

### How To

It is incredibly easy to take immediate advantage of the show effect system added in 2024.1. Any existing effect can be converted to a show effect with a couple of clicks.

1. Select the top level object that you wish to convert into an show effect
2. In the button panel above the object hierarchy, click on the icon showing the show effect symbol with an arrow pointing downward.
3. The entire hierarchy under the target object will now be condensed into a single show effect. This effect can be published, shared, and transported as normal

<figure><img src="/files/w4l3c4L1GboEoZAdR7W7" alt=""><figcaption><p>Select the top level object that you wish to convert into an show effect and click the convert button</p></figcaption></figure>

<figure><img src="/files/l3neXfSrC7uW9fvuICZ3" alt=""><figcaption><p>The entire hierarchy under the target object will now be condensed into a single show effect. This effect can be published, shared, and transported as normal</p></figcaption></figure>

### Additional Notes

By default, the resulting show effect will have a single sequence, and a single slotting source

* The resulting effect will automatically choose the top-level object as the slotting source. When converting a complex object, it is most convenient to make your top-level object a formation group or formation sequence.
* All animations and events contained in the show effect hierarchy will be collapsed into “Sequence 0”. The sequence will automatically be scaled to the exact time length of the contained events. The collapsed events will also automatically be shifted so that the sequence starts at 0 seconds.

<figure><img src="/files/YlxBIssGk9gi1U7Af2zK" alt=""><figcaption><p>A screenshot of the timeline after converting a scene object into a show effect</p></figcaption></figure>


# Show Effect: Sequences

Sequences provide for a method of animating one effect in many different ways, supplying the user with a way to choose from a number of looks embedded in a single object.

A show effect can have a virtually unlimited number of sequences. Each sequence represents a completely separate set of timelines and events.

## Creating a Sequence

First, ensure that the show effect is in *Edit Mode*. A new sequence can be added by clicking on the "Add Sequence" button in the Show Effect inspector view. After creating a new sequence, click on the "Active Sequence" dropdown and select the new sequence to modify it. The name can then be freely edited via the "Name" field. The timelines for all scene objects inside of the show effect will be cleared and the sequence may be built as desired.

<figure><img src="/files/WTnoZbnycwXbb0AqJriq" alt="" width="202"><figcaption></figcaption></figure>

## Removing a Sequence

Removing a sequence is equally simple as creating one. Once in *Edit Mode*, set the "Active Sequence" to the sequence that you wish to delete. Click the "Remove Sequence" button to delete all contents of that sequence.

## Modifying a Sequence

To select any objects or timelines in the Show Effect, it must be in *Edit Mode.* The "Active Sequence" dropdown can be used to select which sequence will be edited. Events can be modified in the same way that any other event or timeline is manipulated when in *Edit Mode*. Note that when in this mode any sequence events on the Show Effect are disabled and the all events in the sequence will be played relative to the global time.

## Playing a Sequence

1. Add a Show Effect Channel to a Show Effect
2. Right-Click -> Insert Event -> Effect Sequence Event
3. Select your desired sequence via the "Targeted Sequence"

A sequence event will take a target sequence and play back the contained timelines where the start of the event corresponds to 0 seconds on the target timeline. Shifting the sequence up and down the timeline will also shift the start time of the timelines. This makes the act of lining up animations very straight-forward

## Sequence Event Options

### Reset Sequence Length

This button will resize the sequence event to match the time length of the contained sequence. So if, for example, the sequence is a rotation that lasts from 0 to 30 seconds and then flashing lights until 45 seconds, then the event will resize to 45 seconds.

### Normalized Playback

Default: *Enabled*

This is a togglable option that will scale the sequence in *time* based on how short or long the sequence event is set to, speeding it up or slowing it down appropriately. This will ensure that no matter how long the event is, the sequence starts at the beginning and ends when the event is finished. This is a convient way to re-time complex sequences without needing to scale all contained events independently. When disabled, the sequence will play at a standard 1x speed, regardless of length. So if the event is shortened to half of the sequence's length, then only half of the sequence will be played.

### Trim Empty Time

Default: *Enabled*

When enabled, this will remove all time at the start of a sequence where no events are occurring. This will force a sequence to be played back relative to the start of the first event instead of the start of the timelines.

### Start Offset

Default: 0

This is a *normalized* offset for the start of a sequence where 0 corresponds to 0% and 1 corresponds to 100%. Shifting this up or down will trim more or less of the start of a sequence away.

### End Offset

Default: 1

This is a *normalized* offset for the end of a sequence where 0 corresponds to 0% and 1 corresponds to 100%. Shifting this up or down will trim more or less of the end of a sequence away.


# Show Effect: States

States provides a convenient way to initialize a show effect with a certain set of parameters. The show effect state system leverages the animation system. Any fields that can be animated can be saved as a state. It also provides a way to have multiple, easily-swappable, static configurations of a single set of scene objects without needing to create sequences.

<figure><img src="/files/LfeZkvYfxItdEktFbmav" alt="" width="200"><figcaption></figcaption></figure>

## Recording a State

To create a new save state, make sure that the show effect is in *Edit Mode*. Under the *Effect States* dropdown, left-click *New State* to create a new, unpopulated state cache. Set the values that you wish to save to the state (Note: the only parameters that can be saved are those that can be animated). Left-clicking on *Record State* will save the current values to the selected state. The state can be renamed by modifying the *Name* field.

## Restoring a State

There are two ways of syncing a show effect and its contents to a state. Any recorded state can be loaded by selecting it from the inspector dropdown and then left-clicking the *Load State* button. Alternatively, Show Effect State Events can be triggered from the timeline, which allows a state to be loaded when the event is started.

<figure><img src="/files/aDWab8ASYkqslt41o7Ul" alt=""><figcaption><p>Two states being loaded back-to-back on the timeline</p></figcaption></figure>


# Show Effect: Slot Sources

Slot sources provide a way to store multiple effects in a single show effect object. They also enable flexibility on swapping in different effects automatically depending on slot count.

## Using the Auto Source Selector


# Composer

The [Verge Aero](/) Composer is a special mode in the [Verge Design Studio](/drone-show-software/verge-design-studio) that further simplifies the process of creating drone shows. It is designed to be accessible to designers of all skill levels, and requires no prior knowledge or experience with 3D design tools. [Show Effects](/drone-show-software/verge-design-studio/show-effects), the primary building blocks of the Composer, can be drag-and-dropped into the Composer timeline to create unique shows in minutes. As a trade-off for its simplified and expedited show creation process, effect customization in the Composer is significantly more limited than in the [Verge Design Studio](/drone-show-software/verge-design-studio).

<figure><img src="/files/IR2FROn4gadJ8dm7piEy" alt=""><figcaption><p>A Composer design comprising of two Show Effects and one audio track</p></figcaption></figure>

### Panels

The Composer comprises of four panels: Assets, Timeline, Inspector and Preview. Show elements (such as [Show Effects](/drone-show-software/verge-design-studio/show-effects)) are dragged from the Assets panel into the Timeline panel. Selecting an element in the Timeline panel will display additional customization options in the Inspector panel. The Preview panel updates in real time to reflect any changes to the show design.

<figure><img src="/files/Rdz6krmlDUsGG6ggqNKV" alt=""><figcaption><p>The four panels of the Composer: Assets, Timeline, Inspector, and Preview</p></figcaption></figure>

#### Assets

The Composer makes use of the [Show Effect Asset Repository](/drone-show-software/verge-design-studio/show-effects/show-effect-asset-repository) to bring show elements into its design. The Composer can support a variety of asset types, but is best suited for [Show Effects](/drone-show-software/verge-design-studio/show-effects) and audio files (.wav, .ogg, and .mp3).

Other supported files include: non-[Show Effect](/drone-show-software/verge-design-studio/show-effects) .vfab files, .svg and .obj files, and images of type .png, .tga, .jpg, .jpeg, .bmp, .psd, and .gif.

To add an asset into the Composer design, click on an asset and drag it into the timeline panel.

#### Timeline

The timeline is where individual assets are arranged together to create a show. It comprises of one lane of visual content and one lane of audio content, where content within either lane cannot overlap.

**Visual Timeline**

The visual timeline always begins with a 'Launch' element, and always ends with a 'Return' element. Between those two elements, any number of visual assets (such as [Show Effects](/drone-show-software/verge-design-studio/show-effects)) can be added. 'Launch' and 'Return' are unique elements that may behave differently from added visual elements. The descriptions below relate to added visual elements, and the information may or may not apply to these two elements.

<figure><img src="/files/ZDhM1nwF5MWiuLY9HW3q" alt=""><figcaption><p>A visual timeline element</p></figcaption></figure>

A visual timeline element's duration can be adjusted by clicking and dragging on the right edge of the element. For [Show Effects](/drone-show-software/verge-design-studio/show-effects), this will typically speed up or slow down the effect to match the new duration, but could behave differently depending on the configuration of the effect.

On the left side an element is a circle that can be clicked and dragged to modify the start delay of an element. The start delay is a block of time in which an element's effects are not processed. Effectively, it holds the element's initial state (position, rotation, color, etc) in place until the end of the start delay. For example, consider an element that turns red after 1 second and has a start delay of 5 seconds. It will hold in its initial state for 5 seconds, and then begin processing the element's effects and turn red after 1 more second (6 seconds total). The purpose of start delays is to allow time for drones to transition from one visual element to another. Otherwise, an element's lighting effects may begin before forming the initial shape of the element.

Elements in the visual timeline can be reordered by clicking and dragging the elements.

**Audio Timeline**

The audio timeline is directly below the visual timeline, and is empty by default. Audio elements are added by dragging in audio assets from the Asset panel. Audio cannot be modified in the audio timeline, only added and deleted.

**Controls**

*Set/Scrub Playback Time* - left click on timeline time area (top)

*Play/Pause -* Space key

*Scroll Visible Section of Timeline* - middle mouse button + drag OR drag center of scroll bar at bottom of timeline

*Zoom* - mouse scroll wheel OR drag endpoints of scroll bar at bottom of timeline

*Select Element* - left click on element center

*Multi-Select Elements* - 'Ctrl' + left click

*Adjust Element Duration (Visual Only)* - left click + drag on right edge of element

*Adjust Element Start Delay (Visual Only)* - left click + drag on gray circle in element (defaulted to left edge)

*Move Element* - left click on element center + drag

*Delete Element* - select element and press 'Del' key on Windows or 'Cmd' + 'Del' on OSX OR right click element and select 'Delete'

#### Inspector

The Inspector panel can be used to modify properties of a visual timeline element. To populate the Inspector panel, select a visual timeline element. The properties in the Inspector can vary depending on element selected.

*Position* - Modify the X, Y, and Z coordinates of the selected element

*Rotation -* Modify the rotation (around the vertical axis) of the selected element

*Scale -* Modify the scale of the selected element

*Drone Count ('Launch' element*) - Set the number of drones in the launch pad. All visual elements will default to this drone count

*Custom Drone Count* - Toggle on an element to override the 'Launch' element's drone count

*Drone Count (Non-'Launch' element) -* Set the number of drones assigned to the element, overriding the 'Launch' element's drone count

*Duration* - Set the duration (in seconds) of an element

*Start Delay* - Set the start delay (in seconds) of an element (see Visual Timeline section for more information)

*Trim -* With the Timeline play head over the selected element, click the trim button (scissors) to split the element into two distinct, independent elements. The Trim section in the inspector will reflect the portion of the initial element that the new element represents. Use the Trim tool when only a portion of a [Show Effect](/drone-show-software/verge-design-studio/show-effects) is desired.

#### Preview

The Preview panel reflects the Composer design at a given time. By default, the Preview panel displays the design in 'Preview' mode. This mode is a fairly accurate estimation of what the rendering will look like that updates in real time. After rendering the design, a toggle will appear to enter 'Render' mode. 'Render' mode displays exactly where drones will be at a given time in a design. As a trade-off, 'Render' mode does NOT update in real time. It is recommended to remain in 'Preview' mode while creating and modifying a design, and only using 'Render' mode to validate that a design is executing as expected.

The preview panel's view port window shares the same controls as the [Verge Design Studio's](/drone-show-software/verge-design-studio) scene view port

*Ambient Light Slider* - adjusts environment ambient lighting

*Render Button -* renders the Composer design

*Close Button -* closes the Composer and returns to the [Verge Design Studio](/drone-show-software/verge-design-studio)

*Preview/Render Toggle (appears after first render) -* Toggles between 'Preview' and 'Render' mode

*Play/Pause Button -* Play/Pause design

*Fullscreen/Minimize Button* - Expands/minimizes the preview panel

### Relationship with Verge Design Studio (Composer Output)

When creating a Composer design, a Composer Output object is created in the [Verge Design Studio](/drone-show-software/verge-design-studio). This object contains all of the information related to the Composer design. Only one active Composer design can exist in the [Verge Design Studio](/drone-show-software/verge-design-studio) at a time, and opening the Composer will either create a new Composer design or open the existing one.

<figure><img src="/files/ofTGCYt82KdlS01jnZvb" alt="" width="357"><figcaption><p>Composer Output inspector in the <a href="/pages/JjjojIyKxaiBPzzLwvtg">Verge Design Studio</a></p></figcaption></figure>

A Composer Output is a self contained object (much like [Show Effects](/drone-show-software/verge-design-studio/show-effects)). In the [Verge Design Studio](/drone-show-software/verge-design-studio), there are only a few properties that can be modified in the Composer Output: the object's transform and the Visual Content Root Position.

The Transform will move the entirety of the Composer design, including the Launch Pad. The Visual Content Root position will move only the content in the Composer design. All position values within the Composer design are relative to the Visual Content Root Position.

The Composer Output also contains an 'Unpack' button. Clicking this button will make the Composer Output no longer self contained, and the Composer Output will be expanded into a typical [Verge Design Studio](/drone-show-software/verge-design-studio) show design. This will unlock the Composer design so that it can be customized beyond the capabilities of the Composer. Once unpacked, however, the Composer Output cannot be re-packed. This means that unpacking a Composer Output will make it no longer accessible within the Composer itself, and will only be able to be modified withing the [Verge Design Studio](/drone-show-software/verge-design-studio).

### Tips

**Expediting the process of creating custom shows in the** [**Verge Design Studio**](/drone-show-software/verge-design-studio)

The Composer can piece together a simple show much faster than the studio. When designing a highly customized show (and if possible), it may save time to design a show in the Composer and then unpack the Composer Output for further customization. The Composer can lay the basic framework for a show, and allow a show designer to focus on the more intricate and customized sections of a show.

### Troubleshooting

**My Composer design preview appears correct, but when I render, some drones are missing or appear to be stuck near the ground**

Designs in the [Verge Design Studio](/drone-show-software/verge-design-studio) can interfere with Composer designs if they share the same space. In this case, there is likely another Launch Pad that is blocking the drones in the Composer design. Either move or delete the Launch Pad in the studio to resolve this issue.


# Animation Editor

The Animation Editor is a tool within the [Verge Design Studio](/drone-show-software/verge-design-studio) that simplifies the manipulation an object's properties over an interval of time. Like other 3D animation tools, it is driven by the use of keyframes, which can be created and modified in its Dope Sheet and the Graph Editor views.

### Getting Started

#### How to Access It

The Animation Editor can be found by navigating to the Animation Editor tab above the timeline. Then, select the objects to animate from the object hierarchy.

#### When to Use It

The Animation Editor is best suited for any objects that will exhibit movement (ex. translation, rotation, orbit, growth, etc) over a period of time. It is not effective for creating static shapes.

#### Core Concepts

<figure><img src="/files/JkRrGYMPL0jtcadDx32J" alt="" width="375"><figcaption><p>An example of a property with a static value of 20</p></figcaption></figure>

Objects are made up of many different properties, some examples being position, scale, and radius. Depending on the type or configuration of an object, an object's available properties may vary. These properties define how the object exists in space.

Assuming no other manipulation is present, setting these property values in the Inspector will preserve those values for the entirety of a design. Take an object's position, for example. If the position is set to a height value of 20, then the object will remain at a height of 20 always.

<figure><img src="/files/dVwkOIt9XJn9EM9hk5gj" alt="" width="375"><figcaption><p>An example of a property animating from a value of 10, to 20, back to 10</p></figcaption></figure>

If, instead, the intention is for the object to rise to the height of 20 and come back down over the course of 10 seconds, we can use the Animation Editor. The images to the right are visualizations of these two cases, with the green line representing the property that controls the object's height. The line shows the value of the property at any given point in time. The gray diamonds (keyframes) set a property's value at a distinct point in time.

At its core, the Animation Editor is a means to add keyframes to properties. These keyframes can be used to manipulate the property curve to change over the course of the design.

The Animation Editor makes use of the [Choreography Timeline](https://wiki.droneshow.software/index.php?title=Choreography_Timeline\&action=edit\&redlink=1) system to manipulate the root object. The relationship from root object to keyframe is as follows:

* Root Object
  * Component
    * Animation Layer
      * Animation Event
        * Property
          * Keyframe

The Dope Sheet and Graph Editor are two distinct views of the same keyframe information. Generally, the Dope Sheet is better suited for modifying timing, while the Graph Editor is best suited for modifying property values and keyframe interpolations.

### Keyframes

Keyframes define the value of a property at a given time, as well as the interpolation of the value between itself and its neighboring keyframes (see Graph Editor). They drive the entirety of the animation system, and any modification of an animation requires a modification of one or more keyframes.

Both of the Animation Editor's views contain right click options to create keyframes, but they can be created separately as well.

<figure><img src="/files/5Nnl6GgkSNujnkAg1RXk" alt=""><figcaption><p>Circled: Auto Keyframe Mode Toggle (left), Add Keyframe (right)</p></figcaption></figure>

#### Auto Keyframing

Auto Keyframe mode will automatically create and modify existing keyframes when properties are set at any given time.

For example, assume a design contains an object with no keyframes on it yet, with Auto Keyframe mode enabled. Setting the design time to 35 seconds and modifying the object's position Y value to 20 will create a new keyframe at that time and value. Then, setting the design time to 40 and value to 25 will also create a matching keyframe.

#### Manual Keyframing

Manual Keyframe behaves similarly to Auto Keyframe mode, but will create new keyframes for all properties, regardless of whether or not they've changed. Some properties keyframes may not be added if the property curve does not already exist AND the property value is the default value.

With the Animation Editor open, a keyframe can be manually added by pressing the 'T' key or pressing the 'Add Keyframe' button.

#### Keyframe Relationship

The Keyframe Relationship button determines how a keyframe should be affected when its parent animation event's start or end times are modified. The three modes are:

* Free - keyframe remains at the same design time (i.e. keyframe at 30 seconds design time will stay at 30 seconds)
* Relative - keyframe maintains same time proportion within the event (i.e. will stay at 75% of the time of the event)
* Absolute - keyframe maintains timing relative to the beginning of the event (i.e. will stay at 1 second after start of event)

<figure><img src="/files/u9f0aMwl5ZnsSLtHVjSu" alt=""><figcaption><p>Keyframes will appear on animation events on the main timeline</p></figcaption></figure>

#### Outside of the Animation Editor

Keyframes on animation events are visible on the main Timeline. Keyframes times can be modified from here by first selecting the animation event, and then dragging the keyframes.

### Formation Sequence Selections

<figure><img src="/files/5P5ZxQTXAVUAozu28V7c" alt=""><figcaption><p>A Formation Sequence pinned to the Animation Editor</p></figcaption></figure>

Selected objects will be displayed in the Animation Editor, where animations can be created or modified. Two special exceptions to this are Launch Pads and Formation Sequences. Instead, these two types will display their timeline events at the top of the Animation Editor. This makes it easier to line up animations with these events without having to leave the Animation Editor. These can be pinned in the hierarchy so that they remain there if if the object is deselected.

### Hierarchy

<figure><img src="/files/vaA8XUCVfxG2TUGAN7fn" alt="" width="375"><figcaption><p>The Animation Editor Hierarchy</p></figcaption></figure>

The hierarchy displays the selected root objects and all relevant components down to the animated properties.

Layers, events, and properties can be added with the '+' button.

Lock elements using the lock icon. Locked elements will restrict the modification of that element (or it's children's) keyframes.

Toggle a property's visibility using the eye icon. Visibility is only affected in the Graph Editor.

Collapsing irrelevant elements in the hierarchy can make it easier to navigate the Animation Editor when dealing with a large number of properties.

### Dope Sheet

<figure><img src="/files/NYk5uJu0V4SIQRMJoeZh" alt="" width="375"><figcaption><p>An example of the dope sheet with several properties</p></figcaption></figure>

The Dope Sheet is a high-level view of animations. Its primary purpose is to set timing for keyframes and to coordinate timing across different properties or objects. It does not provide any way to modify the interpolation between keyframes, which is instead handled by the Graph Editor.

Diamond keyframes in the Dope Sheet represent property keyframes. These are the 'true' keyframes used to calculate animations. Square keyframes are created at all higher levels in the hierarchy for any given property keyframe. They exist solely to to group and organize property keyframes. Dragging a 'higher level' square keyframe will drag child elements that have keyframes at the same time.

To create a keyframe, right click on a property's lane at the desired time of the keyframe.

The blue rectangle behind the keyframes represents an animation event. Drag the left or right edges of the rectangle to modify the start or end times of the event, or drag from the center of the event to move it as a whole. Note that keyframes will respond differently to these changes based on the currently set Keyframe Relationship.

### Graph Editor

<figure><img src="/files/YGJy0wmY9IFEQpg80FJF" alt="" width="375"><figcaption><p>Three properties being modified in the graph editor, with two keyframes selected</p></figcaption></figure>

The Graph Editor view displays curves for all properties and is where the interpolation between keyframes can be modified. While keyframe times can be modified in the Graph Editor, the Dope Sheet is typically better suited for it.

The lines in the graph editor represent the value of a property at any given point in time. Keyframes can be dragged left and right to modify their times, and up and down to modify their values.

When selecting a keyframe, if it has neighboring keyframes on the same property, it will display its interpolation handles. Drag these handles to modify the interpolation between the keyframe and its neighbors.

To add a keyframe, select a property in the hierarchy and right click in the Graph Editor, then choose "Add Keyframe". This will create a keyframe at the play head.

It is recommended to make use of the visibility toggle in the hierarchy to hide/show properties as needed.

### Basic Controls and Usage

*Multiselect/highlight (Dope Sheet and Graph Editor)* - click + drag

*Add keyframe shortcut* - 'T'

*Add keyframe via right click* - see Dope Sheet and Graph Editor sections

*Cut* - 'Ctrl/Cmd' + X

*Copy* - 'Ctrl/Cmd' + C

*Paste* - 'Ctrl/Cmd' + V

*Delete Keyframe* - Windows: 'Del' OSX: 'Cmd' + 'Del'


# Advanced Topics


# Using Multiple Launchpads

A launchpad object serves as the core to a drone show design. It is used to target shapes, transition between formations, and launch/land drones. Any number of launchpads may be placed in the scene, each with its own set of parameters and timelines. Using multiple launchpads is an excellent way to extend the runtime of a show. A new batch of drones can be launched and moved into position right before landing a previous batch to seamlessly continue a show. It is also a good way to organize/separate drones with different payloads such as pyro. All drones in the scene, regardless of launchpad, will be routed appropriately with full collision avoidance.

## Merging Launchpads

It may be desirable to combine the drones from multiple launchpads into a single effect. This can be easily done by using a Launchpad Merger object. The merger object, when tracked by one or more launchpads, will automatically expand to contain all drones that are targeting it. For example, if two 100-drone launchpads are targeting a merger object, the merger will become a single 200-drone controller. The merger then functions exactly like a formation sequence, where other objects can be tracked and transitioned between.

When drones are added or removed from the merger, it will automatically take the transition-in or transition-out time of those drones and shift the drones already tracking the merger to their new expanded/shrunk slot counts.

<figure><img src="/files/ny35fKcon5ezOFILRAvO" alt=""><figcaption><p>Shows two 100-drone launchpads joining a single grid</p></figcaption></figure>

### Adding and Using a Launchpad Merger Object

* Right-Click on the scene view
* Choose Create > Swarm Control > Launchpad Merger
* Add track events to the launchpad merger timeline just as though it is a launchpad or a formation sequence
* Track the launchpad merger with a launchpad to join the group
* Track another object to then transition the launchpad to a different shape

<figure><img src="/files/ofdti20zdaz27q2FQrNg" alt=""><figcaption><p>An example of the timeline for two launchpads tracking a launchpad merger (as seen in the animation above)</p></figcaption></figure>


# Yaw Control

There are multiple payload options (such as Pyro) that benefit from the ability to point drones in specific directions. The design studio has support for automating drone yaw based on shape information such as normal or tangent vectors.

## Enabling Yaw Control

To activate yaw control, go to the launchpad inspector and make sure that "Use Default Agent Config" is unchecked. Set "Payload Mount" to "Yaw".

<figure><img src="/files/Kj833ERdjy21jS86n6uI" alt="" width="331"><figcaption></figcaption></figure>

## Payload Target Events

To create yaw targets, a tracked shape must contain a ***Geometry Payload Layer*** with ***Payload Target Events***. ***Geometry Payload Layers*** can be placed inside of a ***Geometry Light Mixer*** component.

<figure><img src="/files/Q1BgBEp8fgIl44xsEKtP" alt="" width="563"><figcaption></figcaption></figure>

There are multiple event types that provide flexible ways of turning drones.

* World Target
  * Face all drones toward the center of a scene object. This object can be animated to dynamically shift drones as the scene object moves
* World Vector
  * Face all drones in a specific direction
* Local Rotation
  * Face all drones with an optional offset relative to the tangent vector of the current slot
* Dynamic Rotation
  * Animatable version of the local rotation effect with options for looping and phase offsets

<figure><img src="/files/wh87CkPNFTCm9uoDDelv" alt=""><figcaption><p>An example of drones turning to face a world target in the scene</p></figcaption></figure>

## Transitions

All Payload Target events also handle transitions by spending the first x% of the event easing into the new rotation. The percentage as well as the easing method is configurable.

<figure><img src="/files/9DasTSyfgDMW1xcee68v" alt="" width="278"><figcaption></figcaption></figure>


# Designing With Pyro

The Verge Design Studio contains fully-integrated tools to design, visualize, and validate shows with pyro drones.

{% hint style="info" %}
Although the tools covered here are still very helpful for designing drone shows with third-party modules (such as the [Cobra 6M SPFX Module](https://www.cobrafiringsystems.com/6m)), to take full advantage of the automation and workflows available you must use one of Verge Aero's [integrated firing systems](/drone-show-hardware/payloads/x1-pyro-module).
{% endhint %}

## Defining Pyro And Mounting

Each cue can be assigned its own pyro product and mounting direction. When enabled, cues and their associated firing vector are color-coded to make it easier to identify visually. Products are defined via [VDL](https://finale3d.com/documentation/vdl-effect-glossary/). A limited number of products are currently supported, but any can be used when exported to an external application such as Finale3D. Mounting direction can be chosen via a dropdown. Simple directions such as forward/backward, up/down, etc are provided with a custom direction also definable. These directions are relative to the drone and not to the world unless the drones are commanded to point north.

<figure><img src="/files/zqkZn0ElLBGmZcDf6i1x" alt=""><figcaption></figcaption></figure>

## Cue Triggers

To trigger a pyro cue, a drone must be tracking a slot on an object that is firing a trigger event.

### Sequential Trigger

A sequential trigger leverages the geometry of the attached shape to fire cues in a specific order. Pyro can be fired:

* Left-to-Right
* Right-to-Left
* Out-to-In
* In-to-Out

The triggering of the first and last pyro cue is dependent on the length of the event.

<figure><img src="/files/5LNRRZxkGGFaKm7tKXgI" alt=""><figcaption><p>A right-to-left sequential trigger event</p></figcaption></figure>

### Simultaneous Trigger

A simultaneous trigger will fire every slot's cue at the same exact time. The length of the event is irrelevant.

<figure><img src="/files/mv8Gw1jD75h9NofTHcOe" alt=""><figcaption><p>A demonstration of triggering all products at once</p></figcaption></figure>

### Random Trigger

A random trigger event will fire all present drone slots, but in a pseudo-random order spread equally across the time length of the event.

<figure><img src="/files/1WALTwK2GBuQzLIaaNf4" alt=""><figcaption></figcaption></figure>

### Alternating Trigger Slots

Trigger events also have support for triggering every N slots rather than all of them. This allows multiple trigger events to be layered, accomplishing more interesting effects.

<figure><img src="/files/TqcDtXlspgTIBM1gV9O2" alt=""><figcaption><p>A demonstration of triggering altenating slots from left and right</p></figcaption></figure>

## Pre-viz

The following products are supported for pyro-mounted pre-viz natively:

| VDL                                                               | Description                                                                                                                            |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| [Comet](https://www.youtube.com/watch?v=pYxaxQwWzZI)              | A type of firework star fired into the sky from the ground which leaves a long trail of sparks in its wake as it flies through the air |
| [Strobe](https://www.youtube.com/watch?v=m_cXMcqtTwk)             | A type of firework that produce a series of bright flashes of light in a regular pattern.                                              |
| [Waterfall](https://www.youtube.com/watch?v=-7UKK9POTWg)          | A type of firework that creates the illusion of a waterfall of sparks                                                                  |
| [Mine](https://www.youtube.com/watch?v=rhxB5qGwr_g)               | A type of pyrotechnic device that is fired from a mortar and expels stars and other effects into the air                               |
| [Smoke](https://www.youtube.com/shorts/yIbdQykK78g?feature=share) | A type of pyrotechnic that produces smoke as a result of a chemical reaction. Can be made to be many different colors.                 |

More products will be added in the future, however pyro pre-viz/design applications that support the [VVIZ ](/drone-show-software/verge-design-studio/vviz-format)format such as Finale3D or FWsim are capable of visualizing practically any drone-mountable product.

{% embed url="<https://scribehow.com/shared/Pyro_Previz__PLsQT2FxSwaDplVQXMz-WQ>" %}

## Pointing Pyro

Pyro mounts will obey drone [yaw control](/drone-show-software/verge-design-studio/advanced-topics/yaw-control) and display guiding arrows to provide feedback during the design process. Ultimately, the only thing the designer needs to be concerned with is that the arrow (and subsequent previz) points in the direction they expect. A simple example of this is in the case that a comet is mounted out of the back of a drone. When configuring a payload target event, the drone must be rotated an additional 180 degrees to point the product as though it were facing out of the front of a drone. Product pointing up or down can not be rotated. Yaw can also be updated on a per-frame basis and create complex sequences.

<figure><img src="/files/Sf9oLFYNFm1a8fna7Kfh" alt=""><figcaption><p>Example of two cues being targeted around a circle. In this example, the drone is shown continuously rotating to point along the tangent of the circle.</p></figcaption></figure>

## Finale3D Support

<figure><img src="/files/TcqTWD5OFL1F7TAtsXyx" alt=""><figcaption></figcaption></figure>

Any performance can be exported to Verge Aero's standard [VVIZ format](/drone-show-software/verge-design-studio/vviz-format). This format provides support for LED and pyro drone performances. When imported into Finale3D, the following details are carried over:

* Pyro product VDL
* Pyro mount direction
* Drone Heading
* Drone Position
* LED Color

## FWsim Support

<figure><img src="/files/hTACJles1KxgAHI8Byrx" alt=""><figcaption></figcaption></figure>

FWSim documentation can be found [here](https://www.fwsim.com/doc/en/drone_shows.html).


# VVIZ Format

## The VVIZ Format

VVIZ stands for **\[V]**&#x65;rge **\[Vi]**&#x73;ual&#x69;**\[z]**&#x61;tion Format. This format has been adopted by multiple software vendors as an interchange format for drone shows. The format has support for exporting drone position, colors, pyro payloads and more.

VVIZ files are human readable, JSON-formatted strings. They are not intended to output flight-ready path data are also unsuitable for external validation. The file is meant for providing data for visualization only.

***

### VVIZ Header Data

A set of entries can be found at the start of the file that provide reference values on how other data in the file should be interpreted.

```json
  "version": "1.0",
  "performanceName": "VVIZTest",
  "coordinateFrame": "ogl",
  "globalReferenceFrame": {
    "lat": 39.905963,
    "lon": -75.166393,
    "alt": 0.0
  },
  "defaultPositionRate": 3.0,
  "defaultColorRate": 16.0,
  "timeOffsetSecs": 0.0,
```

`"version"`: Indicates the file type revision represented by this file. It will only be incremented when any backwards compatibility-breaking changes are made.

`"performanceName"`: Provides a field for naming the performance. Largely useful for identification purposes.

`"coordinateFrame"`: Indicates what coordinate system is used to convert from xyz to real-world coordinates. "ogl" refers to X = right, Y = up, and Z = forward

`"globalReferenceFrame"`: This object contains a latitude, longitude, and altitude "root" that corresponds to the 0,0,0 coordinate of the local space that all drones occupy.

`"defaultPositionRate"`: If a delta time is not listed for a traversal frame, then assume that the time step is:

$$
dt = \dfrac{1}{defaultPositionRate}s
$$

`"defaultColorRate"`: Unlike position coordinates (which uses deltas in seconds), payload color data deltas are measured in frames. Frames are always represented as a fixed delta time of:

$$
dt = \dfrac{1}{defaultColorRate}s
$$

`"timeOffsetSecs"`: This indicates that an offset should be applied to all color and positional data contained in the file. This is useful for manually synchronizing content to fit timelines in third-party design or visualization applications.

***

### Event Tags

Event tags are markers that indicate the start of some discrete event. They are a useful way to understand the intent of designers when synchronizing with external elements, such as audio, video screens, or ground pyro.

```json

  "eventTags": [
    {
      "time": 20.0,
      "tagType": "EffectStart",
      "tagID": "Zombie",
      "color": {
        "r": 1.0,
        "g": 1.0,
        "b": 1.0
      }
    },
    {
      "time": 30.05,
      "tagType": "SongStart",
      "tagID": "Thriller",
      "color": {
        "r": 0.3378955,
        "g": 1.0,
        "b": 0.0
      }
    },
    {
      "time": 30.05,
      "tagType": "PyroStart",
      "tagID": "Mines",
      "color": {
        "r": 1.0,
        "g": 0,
        "b": 0.0
      }
    }
  ],
```

`"time"`: Indicates the time in seconds (since start) that this event occurs

`"tagType"`: Required field that

`"tagID"`: An optional field that helps to differentiate two or more tags with the same type

`"color"`: An optional field that allows tags to be colored for visualization purposes

***

## Performances

The "performances" field contains an ordered list of objects that describe all movements and payload actions that occur in the show.

A single performance contains two entries, an agent description, and a payload description. *Agent* is a generic term for an autonomous vehicle in this case. The agent description contains a definition of its starting, or home, location as well as arbitrary information about the agent that may be useful in third-party applications.

```json
"agentDescription": {
        "homeX": -6.85800028,
        "homeY": 0.05000041,
        "homeZ": -6.858,
        "homeH": 180,
        "airframe": "Verge_X1",
        "agentTraversal": [
          {
            "dx": 0.0,
            "dy": 0.0666669756,
            "dz": 0.0,
            "dh": 0.0,
            "dt": 14.666667
          },
          {
            "dx": 0.0,
            "dy": 3.93333149,
            "dz": 0.0,
            "dh": 0.0,
            "dt": 4.0
          },
          ...
        ]
      }
```

### Home `"homeX"`, `"homeY"`, `"homeZ"`, `"homeH"`

The agent description contains a local-space XYZ position that indicates its starting location. Additionally, it includes a home heading angle (in degrees) which indicates its initial heading. Use this as the starting position when initializing agent positions and performing the delta steps in the following section.

### Drone Position and Heading : `"agentTraversal"`

Drone coordinates are delta compressed. This means that each step contains data representing the change in position, heading, and time since the previous step rather than providing absolute values. To reconstruct drone coordinates, initialize its state at its "home" values and then add the delta values (`dx`, `dy`, `dz`,`dh`) to create a new frame. Step the time (`dt`) in the next frame and then add the new deltas to the coordinates from previous frame. Continue this process until all frames have been consumed.

{% hint style="info" %}
Heading can be modified via [Yaw Control](/drone-show-software/verge-design-studio/advanced-topics/yaw-control) in the Verge Design Studio
{% endhint %}

### Payloads

The behavior of payloads, any device being carried by an agent, is described via the `"payloadDescription"` object. There are currently two payload types supported, `"Light"` and `"Pyro"`.

### Light Payloads

If the `"type"` is labeled as `"Light"` then it is a pyro trigger payload.

```json
"payloadDescription": [
        {
          "type": "Light",
          "lumens": 900.0,
          "colorType": "RGBW",
          "sourceType": "Dome",
          "payloadActions": [
            {
              "r": 0,
              "g": 0,
              "b": 0
            },
            {
              "r": 255,
              "g": 255,
              "b": 255,
              "frames": 583
            }
          ]
        }
      ]
```

The payload description may contain optional fields describing the light characteristics. This offloads the need to know about a specific drone's characteristics to the designer. These fields include:

`"lumens"` : The light's max output in lumens

`"colorType"`: The light die sources. This is typically RGB or RGBW.

`"sourceType"`: Allows the light's shape to be defined. Standard diffusers are "dome", but other types such as "spotlight" could be expected here

#### Light Payload Playback

The object `"payloadActions"` contains an array of light data *chunks*. A red, green, and blue channel with values between 0-255 represent a standard 24-bit color. If a step contains a `"frames"` variable, then it can be assumed that this color is held for a length of frames equal to its value. The length of a frame is located in the header under `"defaultColorRate"`. If no such entry exists, then it represents a single frame.

### Pyro Payloads

If the `"type"` is labeled as `"Pyro"` then it is a pyro trigger payload.

<pre class="language-json"><code class="lang-json">"payloadDescription": [        
<strong>        {
</strong>          "type": "Pyro",
          "eventTime": 33.5,
          "vdl": "red comet 5 times",
          "pan": -90,
          "tilt": 180
        }
]
</code></pre>

#### Trigger `"eventTime"`

The event time is the time, in seconds from start, that the pyro payload fires. There may only be one event time per payload, however there may be many pyro payloads.

#### VDL Support `"vdl"`

Finale3D's [VDL ](https://finale3d.com/documentation/vdl-effect-glossary/)(Visual Descriptive Language) can be used to define pyro drone payloads. It is used to indicate what product is attached, what color it is, how long it burns, how bright it is and more. This data is exported as part of the VVIZ format and can be visualized directly within Finale3D as part of their other pyro previz.

#### Pan and Tilt `"pan" / "tilt"`

Pan and tilt describe the orientation or mounting direction of a pyro product. Pan is rotation around the vertical axis (or Yaw for a drone) in a clockwise direction. Tilt is a rotation forward. A pan/tilt of (0,0) is considered to be straight up.

***

## Supported Applications

### Finale3D

<figure><img src="/files/TcqTWD5OFL1F7TAtsXyx" alt=""><figcaption></figcaption></figure>

#### Exporting to Finale3D

[Finale3D](https://finale3d.com/) is a powerful fireworks design software that is used by industry professionals across the world. Finale3D supports importing VVIZ files.

To import into Finale3D, go to:

> File > Import > Import Drone Show\...

When imported into Finale3D, the following details are carried over:

* Pyro product VDL
* Pyro mount direction
* Drone Heading
* Drone Position
* LED Color

Finale3D's documentation on the format can be found [here](https://finale3d.com/documentation/vviz-file-format/).


# VRSP

The **V**erge **R**obotics **S**treaming **P**rotocol is a real-time network protocol that is designed to enable third-party applications to display the active state of a Verge Design Studio session.

The protocol supports any

All VRSP packets start with a standard header:

`Packet Identifier:` \[**string**] A string starting with "VRSP\_" followed by a packet identifier

`Version:` \[**uint8**] **I**ndicates the protocol's version \[Currently always 1]

`Instance ID:` \[**uint32**] An unsigned integer that identifies a specific swarm configuration

***

## Definition Packet - `"VRSP_DEF"`

Definition packets are responsible for providing static information about an active swarm. When a new definition is created or its content is changed, the packet's instance ID is regenerated as a pseudo-random 32-bit unsigned integer. Before any data packets are parsed, at least one definition packet with a matching instance ID must be received.

Definition packets are sent out at a reduced rate (Default: 1 Hz) as their contents are not expected to change often.

A definition packet consists of the following information:

`Device Count:` \[**uint32**] The number of expected devices in the stream

`Root Latitude:` \[**double**] The exact latitude location that maps to \[0.0.0] in local space

`Root Longitude:` \[**double**] The exact longitude location that maps to \[0,0,0] in local space

`Root Altitude:` \[**double**] The exact altitude location that maps to \[0,0,0] in local space

```csharp
int DeviceCount;
double RootLatitude;
double RootLongitude;
double RootAltitude;
```

After the definition packet header, device definitions are serialized along with a list of device IDs that are represented by each definition. An embedded JSON string is used to serialize device info and payload information.

For each unique definition, the following is written:

`Definition Device Count:` \[**uint32**] The number of devices that use this device definition

`Definition String Length:` \[uint32] The length of the definition JSON payload

`Definition String:` \[UTF-8 String] A JSON-formatted string that contains device and payload definitions

`Device IDs:` \[uint16 Array] An array of device IDs that use this definition. Array length matches *Definition Device Count*

The JSON-formatted definition contains information about the device as well as information about attached payloads.

### Device Definition

A single device definition entry contains three fields:

`Definition ID:` \[Integer] A unique 0-based index that can be used to differentiate between definition table entries

`Model Name:` \[String] A human-readable name that indicates the drone or device that is being described

`Payload Definitions:` \[Object Array] A list of payload definition objects that describe the attached elements based on their type as well as their mounting methodology. These definitions are important for resolving data packets and understanding how to render the final result.

### Payload Definition

```yaml
{
  "DefinitionID": 1,
  "DeviceModel": "X7",
  "LightLumens": "900",
  "PayloadDefinitions": [
    {
      "DefType": "Pyro",
      "MountDef": "Static",
      "Cues": [
        {
          "ID": 1,
          "VDL": "Silver Waterfall 10s",
          "MountDirection": {
            "w":0,
            "x":0,
            "y":0,
            "z":1
          }
        },
        {
          "ID": 4,
          "VDL": "red comet three times",
          "MountDirection": {
            "w":0,
            "x":1,
            "y":0,
            "z":0
          }
        }
      ]
    },
    {
      "DefType": "Laser",
      "MountType": "2DOF",
      "Color": {
        "r":255,
        "g":0,
        "b":0
      }
    }
  ]
}
```

Payload definitions must contain a "DefType" and a "MountType". Other fields differ depending on the "DefType"

#### Standard Definition Fields

`MountType:` Describes the type of mount in use. Currently supports "Static" and "2DOF"/"3DOF" (typically a gimbal).

#### Light Payload Definition - "Light"

This is a description of a light source that *is not* the same as the one typically built-in as part of a drone light show drone. Characteristics are defined in the payload definition field of the definition packet. This payload type also supports spotlights.

`LightLumens:` Indicates the maximum intensity of the light source in lumens.

`Color [Optional]:` If present, this object describes a fixed light color. Payload data is then expected to serialize a single intensity value rather than RGB values.

`LightType [Optional]:` Can be included to describe the type of the light source. Writing "Spotlight" will describe the payload as a targetable spotlight rather than the default point light.

If the light is a "Spotlight" then the following fields are supported:

`SpotAngle:` The angle of the spot light's cone in degrees.

#### Pyro Payload Definition - "Pyro"

This is a description of attached pyro products. This also includes each cue's mounting direction.

`Cues:` An array of cues that represent the available pyro payloads. When triggered in a data packet, these descriptions provide all necessary information for rendering the pyro product.

`ID:` The 1-based Cue ID for the product. This is used to identify which product is being fired.

`VDL:` This field provides the definition of the pyro product [Finale3D's VDL](https://finale3d.com/documentation/vdl-effect-glossary/).

`MountDirection:` A quaternion that provides a rotation (from forward) of the product as it is mounted on the platform.

#### Laser Payload Definition - "Laser"

A description of an attached laser. Functionally similar to spotlights, but with a very small spot angle.

`Color [Optional]:` If present, this object describes a fixed light color. Payload data is then expected to serialize a single intensity value rather than RGB values.

***

## Data Packet - `"VRSP_DATA"`

Data packets contain serialized swarm state data. This includes position and all data describing the current state of attached payloads. Payload data is serialized according to options described in the payload definition fields of the definition packet.

```csharp
//Required
float X;
float Y;
float Z;
byte OptionFlags;
//Optional
color32 LightColor; //0x1
half Heading; //0x2
half4 Orientation; //0x4 w,x,y,z
```

### Position \[Required]

Local coordinates are encoded using a left-handed coordinate system, where y is up.

<figure><img src="/files/oGWVQNTayQ0tm9Eie2ce" alt=""><figcaption></figcaption></figure>

| Variable | Local Direction | Global Direction |
| -------- | --------------- | ---------------- |
| X        | Right           | East             |
| Y        | Up              | Up               |
| Z        | Forward         | North            |

### Optional Data

Additional device characteristics can be included here based on the value of the option flags:

#### Light Color \[Optional] (0x1) :

An RGB, 24-bit value that indicates the current color of the device's LED payload.

#### Heading \[Optional] (0x2):

An 16-bit floating point value that indicates which way the device is pointing.

#### Orientation \[Optional] (0x4):

Represented by a half-precision quaternion, this provides a full description of the device's rotation.

### Payload Mounting Devices

***

### Payload Options

Payload options are serialized raw data. Some contents can be inferred from the details provided in the definition packets.

There are currently payload data fields for the following types:

### Light

#### RGB Color - If RGB Source

`Red Channel:` \[uint8] A value between 0-255 that indicates the intensity of the red light source

`Green Channel:` \[uint8] A value between 0-255 that indicates the intensity of the green light source

`Blue Channel:` \[uint8] A value between 0-255 that indicates the intensity of the blue light source

#### Intensity - If fixed color

`Intensity:` \[uint8] A value between 0-255 that indicates the intensity of the light source

### Pyro

`Cue ID:` \[uint8] Using this ID and referencing the associated payload definition will allow the exact attached product to be resolved.

`Time Since Trigger:` \[ushort] The time, in milliseconds, since the pyro fired. Pyro descriptors are only expected to be present for the duration of a pyro effect. This is useful for synchronization purposes.

### Laser

#### RGB Color - If RGB Source

`Red Channel:` \[uint8] A value between 0-255 that indicates the intensity of the red

`Green Channel:` \[uint8] A value between 0-255 that indicates the intensity of the green light source

`Blue Channel:` \[uint8] A value between 0-255 that indicates the intensity of the blue light source

#### Intensity - If fixed color

`Intensity:` \[uint8] A value between 0-255 that indicates the intensity of the light source

***

### Payload Locomotion:

If a payload is affixed to a gimbal or other manipulation device, then it is serialized after the other payload data. If the platform itself has a yaw or orientation definition, that must be accounted for on the payload's final transform solution.

#### Static

The module is hard-mounted to the platform. The payload's orientation or direction is described in the definition packet. No data is serialized here.

#### 2-DOF / 3-DOF

Either of these options embed a half4 quaternion. Rotation limits are enforced by the sending application.


# Third-Party Support

The Design Studio provides support for multiple third-part applications. Verge Aero has also created a standard export format called the [VVIZ ](/drone-show-software/verge-design-studio/vviz-format)format that is openly documented an supported by many widely-used applications in the entertainment industry.

## [Finale 3D](/drone-show-software/verge-design-studio/vviz-format#finale3d)

<figure><img src="/files/TcqTWD5OFL1F7TAtsXyx" alt=""><figcaption></figcaption></figure>

## [Syncronorm: Depence](/drone-show-software/verge-design-studio/third-party-support/syncronorm-depence)

<figure><img src="/files/bWUo4StUXtZ6LiFRSjpE" alt=""><figcaption></figcaption></figure>

## [FWSim](https://www.fwsim.com/doc/en/drone_shows.html)

<figure><img src="/files/hTACJles1KxgAHI8Byrx" alt=""><figcaption></figcaption></figure>


# Syncronorm: Depence

Depence is a powerful application that allows users to design, pre-visualize, and control complex shows.

{% embed url="<https://www.youtube.com/watch?v=1Knj-IXvA2U>" %}

See [here ](https://www.syncronorm.com/products/depence2/overview)for more information.

## Depence Pre-viz Export Support

The Design Studio currently supports exporting the following data to the Depence application:

* Drone Position
* Drone Rotation
* Drone Light Color
* Drone Payload States
  * Pyro Payloads

## How To Export To Depence

To export a Depence Drone Show file, simply ensure that your show has been saved at least once, then navigate to and click File>Export>Depence Drone Show File.

<figure><img src="/files/Fpz4JQ0dvURxTxVQ9FhK" alt=""><figcaption></figcaption></figure>

You can then choose a quality level, where higher levels are more accurate, but create a larger file size.

<figure><img src="/files/357zWhBnKGd8ESZjSqAE" alt=""><figcaption></figcaption></figure>


# Verge Console

The Verge Aero Console is an application that is used to configure and manage fleets of drones for performing drone shows.

### Software Management

Every hardware component of the Verge Aero drone show system can be updated from the Console.

Updating Verge Aero devices with the [VPKG System](/drone-show-software/verge-console/firmware-vpkg-system).

### Safety

### I/O Options

[Real-time lighting](https://wiki.droneshow.software/index.php?title=Real-time_lighting\&action=edit\&redlink=1)

* [Art-Net](https://wiki.droneshow.software/index.php?title=Art-Net\&action=edit\&redlink=1)
* [sACN](https://wiki.droneshow.software/index.php?title=SACN\&action=edit\&redlink=1)

Drone Data Streaming

* [PosiStageNet](https://wiki.droneshow.software/index.php?title=PosiStageNet\&action=edit\&redlink=1)
* [RTTRP](https://wiki.droneshow.software/index.php?title=RTTRP\&action=edit\&redlink=1)
* [OSC](https://wiki.droneshow.software/index.php?title=OSC\&action=edit\&redlink=1)


# Slotting - Assigning Drones

Most of the work that goes into setting up a drone show goes into laying out the launchpad and assigning roles to each drone. The act of assigning a drone is known as *slotting*.

When a flyable show is generated via the [Verge Web Portal](/drone-show-software/verge-web-portal) and loaded into the console, geo-locked coordinates, or *slots,* are created which correspond to the starting positions of each drone. One drone must be placed in each slot in the real world so that it can be assigned to it.

<figure><img src="/files/JKQVPY08rY6yE1NcKC8P" alt=""><figcaption></figcaption></figure>

## Launchpad Overview

The slotting panel contains a short summary of launchpad characteristics that simplify setup. Launchpad Dimensions and Launchpad Density are displayed in Meters (if Metric units are selected) or Feet (if Imperial units are selected).

<figure><img src="/files/hhi9bTYCPRHH1CDd59X9" alt=""><figcaption></figcaption></figure>

## Slotting Solvers

There are two available solvers for assignment. Each solver assigns drones to slot in a unique way and will provide different results. If drones are placed *perfectly* in launchpad positions and GPS quality is optimal, then the same solution will be provided by all methods.

### Legacy

This is the solver that has been in use since the original release of the Console application. Slots are assigned with a simple algorithm that finds the closest slot to a drone and then conversely chooses the drone *closest* to that slot (only if it also meets certain system health requirements). There is no global optimization method and is also problematic in the case where two drones are closest to one slot. In this case, one drone will be left unassigned.

### Smart Slotting

This is the latest, and preferred, method. This option was introduced in Console version 2024.2. The *Smart Slotting* solver considers the state of the entire fleet and compares it to the launchpad. It applies multiple constraints, such as distance limits, and seeks to minimize the total distance from all drones to the slots in the launchpad. This overcomes weaknesses in the previous methodology, supporting less structured launchpad layouts and cases where GPS accuracy is sub-optimal.

## Slotting Modes

### Continuous

The default option, continuous slotting will automatically solve, assign, and slot drones at regular intervals. This mode is hands-off and allows pilots to focus on placing drones in the field. Simply power on drones, place them, and the console will do the rest.

### Static

This option disables automatic slotting, but provides a number of input options to manage when and how slotting occurs. This mode also causes a new set of buttons to appear in the drone inspector window.


# Firmware - VPKG System

During typical operation, Verge Aero’s drone show system consists of hundreds or thousands of devices that each run their own installation of software/firmware. To maximize success, compatibility, and safety, it is of utmost importance that all devices are synchronized to a single configuration. To accomplish this, the Verge Aero Console provides automated software validation and synchronization tools to alert the pilot of divergences and to simplify the act of mass software updates.

### The VPKG Format

A VPKG is a single file that contains a manifest and packages every binary necessary to update components of the system. By using a single file, human error is minimized and we can ensure that the system state as a whole is always valid. Each VPKG is assigned a single version ID which also simplifies the confusion of differing version numbers and formats across the system. Each entry contains a version number, an MD5 hash for error checking, a component tag, and a name. This file cannot be modified by the user and is provided by Verge Aero on a stable release schedule. Each version of the [Verge Aero Console](/drone-show-software/verge-console) is shipped with a VPKG embedded to support offline software synchronization. The VPKG format also supports hardware variants by allowing multiple architectures to be represented simultaneously, identified via special tags. For example, AP\_ORANGE\_FW represents an [X1 ](/drone-show-hardware/drones/x1)drone that is running a Cube Orange autopilot hardware module and AP\_X7\_V1\_FW represents an [X7](/drone-show-hardware/drones/x7) running version 1 of its autopilot hardware. This means that a mixed fleet of any number of hardware variations can all be managed and updated simultaneously.

```
BundleMetadata:
 FileName: x7_dev-v1_2_2_2
 Label: v1.2.2.2
 Version: 1.2.2.2
 Tags:
 Changelog:
 Path:
 Hash:
 MD5:
PackageContents:
 AP_X7_V1_FW:
   FileName: x2_fc-v1.2.2.2.bin
   Label:
   Version: 1.2.2.2
   Tags:
   Changelog:
   Path: Target/Autopilot/Firmware
   Hash: 518e4d59ee000000
   MD5: 6b43ad0db95fe64f006897ed2195034b
 HM_X7_V1_FW:
   FileName: x2_drone-v1.2.2.2.bin
   Label:
   Version: 1.2.2.2
   Tags:
   Changelog:
   Path: Target/Hivemind/Firmware
   Hash: a10894b3c349afef
   MD5: dffcdab626b4f2aad117f588ba5f2a22
 RPI3B_MAESTROSERVER:
   FileName: maestroserver-1.2.1.8
   Label:
   Version: 1.2.1.8
   Tags:
   Changelog:
   Path: Target/Maestro/MaestroServer
   Hash:
   MD5: 02099e8fb749b9d86679b3a82739cab0
```

### Updating from the Console

Synchronizing the system to a VPKG is incredibly simple from a user-perspective. The user must ensure that the proper bundle version is loaded into the “Software Bundles” panel, press the “Upload” button, and then verify that they wish to start the upload process. After that, the system automatically handles all necessary update actions. It is still important that the user maintain vigilance and look for inconsistencies.

#### Drone Version Sync

As part of a drone’s network initialization process, version hashes for the autopilot and companion computer are exchanged. These hashes are unique to each build and provide a snapshot of the software version. The Console application compares the provided hash against the one that is present in the VPKG. If they do not match, then the drone is flagged as “Out of Date” and is not usable until the issue has been resolved.

The update process operates as follows:

* The VPKG file is uploaded to the fleet
* The VPKG and contained binaries are verified via the MD5 hashes contained in the manifest
* The drones are instructed to synchronize themselves to the uploaded VPKG
  * Each drone is aware of which tags it must use to located the appropriate architecture’s binary
* The companion computer transfers the autopilot firmware image to the autopilot computer and initiates the bootloader to begin flashing that image
* The companion computer enters into a bootloader state and begins flashing its own firmware

Figure 3.1: Shows the inspector panel for an X7 drone with fields for hivemind (CC) and autopilot firmware hashes

<div align="center" data-full-width="false"><figure><img src="/files/MHSpolnUzS99fIxpYsNb" alt="" width="98"><figcaption><p>Shows a device grid error stating<br>that the autopilot firmware<br>does not match the loaded package’s firmware</p></figcaption></figure></div>

#### Managing [Autopilot](/drone-show-technology/autopilot) Parameters

[PX4](/drone-show-technology/autopilot/px4) is configurable via parameters that affect flight characteristics, sensor configuration, and mission behaviors. Parameters may be set independently from firmware installation and this can lead to inconsistencies. Additionally, some parameters must differ between devices as they are used to store individualized calibration data. To eliminate this inconsistency, the drone command computer contains a white list of parameters that are maintained between updates (calibration parameters) and all other parameters are reset to defaults that are embedded directly into the autopilot firmware build. As an additional safety measure, parameters that are expected to be identical between all drones are hashed and checked against a master parameter file within the VPKG file.

Figure 4.1: Shows a device grid error stating that the parameter hash does not match the expected value in the VPKG file

#### [Maestro Server](https://wiki.droneshow.software/wiki/Maestro_Server)

The Maestro server runs a standardized, unchanging linux distribution. Software is deployed and executed via transferred applications. When connecting to the maestro server, the Verge Aero Console checks the versions of the applications that are currently running. If they diverge, the Console alerts the user that it is out of date. The Console can then upload the version present in the VPKG and reboot the Maestro server to apply changes.

<figure><img src="/files/PbnuN3g6Ks922U4Thml1" alt="" width="233"><figcaption><p>Shows the case where the Maestro version does not match the expected value in the VPKG file</p></figcaption></figure>

#### Network Gateways

All communication hardware contains a bootloader that allows the Verge Aero Console to perform updates remotely. The process is nearly identical to the Maestro Server process. A Telnet session is established to each connected gateway and the version is read automatically. If the version does not match the version contained within the VPKG, then the user is alerted and they may execute the process to update the device.


# Managing Pyro

When a show is designed with pyro enabled in the Design Studio, it exports/embeds additional metadata into the flight file. When the file is opened in the console, some new buttons and UI elements are exposed. Since the pyro planning was

## Arming/Disarming

Just like arming/disarming a drone for flight, the console supports arming/disarming the pyro modules on individual drones or the entire swarm at once. To arm all modules simultaneously, click the "Pyro" button in the show control panel. When the button is <mark style="color:red;">red</mark>, it indicates that the modules are disarmed. Clicking it will swap the state to armed. When the button is <mark style="color:green;">green</mark> all modules are armed and clicking it will disarm all drones. When it is <mark style="color:orange;">orange</mark> some of the modules are armed and some are disarmed, with the exact number summarized as part of the button text.

<figure><img src="/files/89e7xAClvmUuq0r5gxSG" alt=""><figcaption><p>A new button appears when loading a vbake with pyro support</p></figcaption></figure>

<figure><img src="/files/i90jNQsRjmAKIri9n8CR" alt=""><figcaption><p>Shows that the fleet is partially armed.</p></figcaption></figure>

Drones can be individually armed or disarmed by selecting the drone, navigating to the inspector panel, going to the pyro module panel, and clicking the "Arm" or "Disarm" button.

## Slotting Pyro Drones

Pyro modules leverage the [addressing system](/drone-show-software/verge-console/slotting-assigning-drones) used for placing and assigning drones. To include a pyro drone in a show, place it into a slot that includes the same products that are mounted to the drone. To check which products are included and what cues that belong to, check the [pyro module panel](#pyro-module-info) once slotted.

To view pyro module states in the grid view, select the "Pyro View" panel at the top middle of the toolbar panel.

<figure><img src="/files/YWQx5cNI3REv8vBXGEq8" alt=""><figcaption><p>Select the pyro view</p></figcaption></figure>

<figure><img src="/files/zgeYFZF7qkCTfKZEPbDw" alt=""><figcaption></figcaption></figure>

The pyro view provides a quick way to see the status of all connected drones and whether the cues on the attached pyro modules are:

* Included in the show and connected \[<mark style="color:green;">Green</mark>]
* Included in the show and not connected or showing an error \[<mark style="color:red;">Red</mark>/<mark style="color:purple;">Magenta</mark>]
* Not included in the show \[Grey]
* Still detecting/settling \[<mark style="color:yellow;">Yellow</mark>]

If all sub-cells are green or grey, then everything is configured correctly.

## Module-States

Each pyro module provides detailed state information and fault detection/reporting. Its state is displayed in the device grid in a color-coded pattern. The cell's background color indicates if it is disarmed (<mark style="color:red;">red</mark>) , if there is a fault (<mark style="color:purple;">magneta</mark>), or if it is armed (<mark style="color:green;">green</mark>).

Additionally, state information is provided for every cue connection on the pyro module. This is represented by six smaller cells that each have a (number representing its cue ID) along with a color, (representing its state).

### Pyro Module Mode

Each pyro module provides detailed state information and fault detection/reporting. This information is displayed in the device's [inspector panel](#pyro-module-info).

| Module Mode | Description                                                                                                 |
| ----------- | ----------------------------------------------------------------------------------------------------------- |
| Idle        | The module is ready to arm or test                                                                          |
| Arming      | The module is transitioning to armed mode                                                                   |
| Armed       | The module is armed (12V enabled, fire enable is high)                                                      |
| Disarming   | The module is transitioning to idle mode                                                                    |
| Fault       | The module is in a fault state (12V disabled, fire enable is low). See the fault state for additional info. |

### Pyro Module Faults

If the drone is displaying a fault, check the info panel for more information. It may display one of the following fault labels:

| Module Fault          | Description                                                                                |
| --------------------- | ------------------------------------------------------------------------------------------ |
| None                  | System is healthy                                                                          |
| Bad PFET              | One or more cues detected a bad PFET                                                       |
| No Power Good         | 12V power good signal was not present when expected                                        |
| Unexpected Power Good | 12V power good signal was present when not expected                                        |
| Timeout               | The client failed to issue a command within the timeout period (while not idle or faulted) |
| Comm Failure          | Hivemind failed to communicate with the pyro module                                        |
| CPU Time Error        | Hivemind is not allocating enough CPU time for the pyro module                             |
| Software Error        | There has been some unknown issue with the software                                        |

## Test-Firing a Pyro Module

For testing purposes, the console provides a method for test firing a single drone at a time. To open the test-firing panel:

1. Select a single drone
2. Navigate to the inspector
3. Navigate to the "Pyro Module" tab
4. Make sure the drone is armed and click the "Test-Fire Panel" button
5. Toggle the "Enable Test Firing" field
6. Now, click the button associated with the cue that you wish to fire

<figure><img src="/files/yLltd38mzppflWr5ZhEn" alt=""><figcaption><p>Pyro Test-Fire Panel</p></figcaption></figure>

## Pyro Module Info

If a drone has a connected pyro module, a new tab will appear in its inspector. The "Pyro Module" tab contains all important information about the connected pyro module along with information about the pyrotechnics that expected to be mounted on it. This information appears based on where the drone is placed in the launchpad. Along with module state and cue state, each cue lists a product description along with the expected mounting direction.

<figure><img src="/files/z632l6IKP6JIv8go6n3P" alt=""><figcaption></figcaption></figure>


# Maestro Server

The Maestro Server is a core component in the Verge Aero base station. It is responsible for hosting and managing network connections with all devices on the local network. The [Verge Aero Console](/drone-show-software/verge-console) also connects with the Maestro Server in order to translate commands into wireless signals via the AT86/LoRa gateways. Additionally, the server contains USB drivers to support a directly-connected u-blox ground station RTK module. [RTCM](/drone-show-technology/gps-gnss/rtcm) data is gathered and transmitted through the Maestro Server with no need for a [Verge Aero Console](/drone-show-software/verge-console) to be connected. This ensures that, should a connected laptop get disconnected or damaged, mission-critical data streams are left uninterrupted.

### Updating the Maestro Server

<figure><img src="/files/XyQnXvUQCmT3vJPq90BW" alt="" width="242"><figcaption><p>Shows Maestro Server versions</p></figcaption></figure>

<figure><img src="/files/PbnuN3g6Ks922U4Thml1" alt=""><figcaption><p>Shows Maestro Server Out-Of-Date</p></figcaption></figure>

The Maestro Server can be updated via the [Verge Aero Console](/drone-show-software/verge-console). The console reads the current version of all applications running on the Maestro Server computer and displays them in the network summary panel. If the version differs from the version available in a loaded [VPKG](/drone-show-software/verge-console/firmware-vpkg-system), then it will display an "Out-Of-Date" message. Performing a standard system update will synchronize all modules running on the server with the version in the loaded [VPKG](/drone-show-software/verge-console/firmware-vpkg-system).


# Drones

Verge Aero currently offers two drone models that serve different needs:\
\
The [X1 ](/drone-show-hardware/drones/x1)is Verge Aero's original workhorse drone platform. With a modular design, carbon fiber frame, and , it was one of the first drone show drones available on the market.

The [X7 ](/drone-show-hardware/drones/x7)represents Verge Aero's first fully in-house design, providing a sleek, elegant design that is both affordable and reliable. In opposition to the hoard of drone designs integrating off-the-shelf components, the X7 is a huge step forward for Verge Aero's goals of providing a truly vertically-integrated platform.


# X1


# X7

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcKUbwnB2taQhq8hpTbK2OWtWhpSnFD0mIXyTLx_jn4GCyUcPa5itnRwOBEhISVlsXvvTp9f0HxDznUXSgJWM6J6dYAdUJY6nhiWofcu3fVa1Rwk8tpEVy7Pq5ngBDWBGcTexead41sofcA4MLGIPsuhXk?key=KPIJ3AmaEpIoWdRMwkbk_Q" alt=""><figcaption></figcaption></figure>


# Payloads


# X1 Pyro Module

The X1 drone has the capability to comfortably lift 500g with an upper maximum of 700g of additional payload. Depending on the type and size of payload, the X1 is able to support 6 independently-addressible pyro cues.

## The X1 Pyro Module

Verge Aero has developed a custom pyro module that integrates directly with its drone show platform. Coming in at a mere 70 grams, it provides an affordable, lighter-weight alternative to 3rd-party firing systems that unneccesarily include their own power source, radio module, packaging, and independent control software. The goal of the X1 pyro module is to minimize weight, and maximize safety.

| Feature                             | X1 Pyro Module                                         | Cobra                               | Fire One WMM-4Q                     |
| ----------------------------------- | ------------------------------------------------------ | ----------------------------------- | ----------------------------------- |
| Weight                              | \~70g                                                  | \~270g                              | \~190g                              |
| Dimensions                          | 7.25 x 5.5 x 2.75 cm                                   | 10 x 9.2 x 2.4 cm                   | 12.2 x 6.9 x 2.8 cm                 |
| Unique Addresses                    | > 65K                                                  | 400                                 | 99                                  |
| Radio Redundancy                    | <mark style="color:green;">✔</mark> \[Sub-Ghz/2.4 Ghz] | <mark style="color:red;">X</mark>   | <mark style="color:red;">X</mark>   |
| Wireless Range                      | 4+ km LoS                                              | 500m LoS                            | 6 km LoS                            |
| Timecode Support                    | <mark style="color:green;">✔</mark>                    | <mark style="color:green;">✔</mark> | <mark style="color:green;">✔</mark> |
| Number of Cues                      | 6                                                      | 6                                   | 4                                   |
| OTA Updates                         | <mark style="color:green;">✔</mark>                    | <mark style="color:green;">✔</mark> | <mark style="color:red;">X</mark>   |
| Per-Cue Continuity Tests            | <mark style="color:green;">✔</mark>                    | <mark style="color:green;">✔</mark> | <mark style="color:green;">✔</mark> |
| Remote Arm/Disarm                   | <mark style="color:green;">✔</mark>                    | <mark style="color:green;">✔</mark> | <mark style="color:green;">✔</mark> |
| Remote Manual Trigger               | <mark style="color:green;">✔</mark>                    | <mark style="color:green;">✔</mark> | <mark style="color:green;">✔</mark> |
| [Auto-Disarm Systems](#auto-disarm) | <mark style="color:green;">✔</mark>                    | <mark style="color:red;">X</mark>   | <mark style="color:red;">X</mark>   |

As a weight-saving measure, the module has been potted with a silicon material that provides water-proofing.

<figure><img src="/files/p16bjWyJibNVu8J8IvMW" alt=""><figcaption><p>A close-up of the pyro module</p></figcaption></figure>

### Mounting The Pyro Module

The X1 pyro module is attached via a quick-mount bracket. The bracket is secured via 4 points of contact, each contact uses a push-button interface to make detaching the bracket quick and easy. Because the pyro module is fixed to the pyro bracket, pyro products may be mounted and configured independently from the drone itself. This division is important for two reasons:

1. A certified pyro technician can focus on rigging and mounting the products without the drone present
2. If a drone experiences issues and must be pulled from the show, it becomes incredibly easy to swap the entire pyro payload to a different drone

<figure><img src="/files/PLQZNOg6Rak7rrHLDysQ" alt=""><figcaption><p>One of the four attach/detach points</p></figcaption></figure>

A single ribbon cable provides an interface between the hivemind control board and the pyro module. This is the only data/power line that must be attached when connecting the pyro module. It may be disconnected/connected when the drone is powered on without any concern that cues will be triggered. Once disconnected, it must be once again armed from the console to enable firing.

<figure><img src="/files/eMu0lMyLV8rCDLojanyi" alt=""><figcaption><p>The mesh ribbon cable providing power and data connections to the X1 companion computer</p></figcaption></figure>

{% embed url="<https://vimeo.com/1069304186/088b74f392>" %}

## [Design Studio](/drone-show-software/verge-design-studio) Integration

The design studio provides all necessary tools to plan, visualize, and validate drone shows with integrated pyro. When using the X1 pyro module, triggers programmed into the show via the studio are automatically fired as part of the same show file that is in use today. This completely eliminates the need for third-party hardware and software.

### Product Configuration

Each pyro product can be configured independently to define its VDL (Finale3D), mounting direction, and more. All of these fields are exported as part of the [VVIZ ](/drone-show-software/verge-design-studio/vviz-format)format which is supported by third-party software such as [Finale3D](/drone-show-software/verge-design-studio/advanced-topics/designing-with-pyro#finale3d-support).

<figure><img src="/files/nXz9z6V9JoV4Zp6Oe8qB" alt=""><figcaption><p>Examples of some products defined for a series of drones</p></figcaption></figure>

### Parametric Triggers

Rather than program each trigger independently, shape-based triggers can be generated in the same way lighting events are. Using geometric information, pyro can be triggered based on the order they are placed in a shape. For example, they can automatically be fired counter-clockwise around a circle using a single event.

<figure><img src="/files/vqmWChhFsxH9xA9ctN0a" alt=""><figcaption><p>The event settings for a sequential trigger</p></figcaption></figure>

### Pre-Viz

The Design Studio is capable of showing realistic previews of pyro drones at any point in the design process. The visualization accounts for the drone's movement, the way the pyro is mounted, and what effect is being triggered.

<figure><img src="/files/eW5zbvbbjv3H4oTKHnd4" alt=""><figcaption><p>A waterfall effect visualized in the design studio</p></figcaption></figure>

### [Yaw Control](/drone-show-software/verge-design-studio/advanced-topics/yaw-control)

Along with position, the design studio allows drones to be turned to face a specific direction. This can be changed dynamically throughout the show depending on the shape that the drones are traveling on. The simplest example of this, along with trigger control, can be seen below, with a circle that fires comets outward by yawing the drones and firing them in order of the circle.

<figure><img src="/files/H1P6xZUpz11Q8kMWztLo" alt=""><figcaption><p>Red comets being fired outward around a circle with a sequential trigger</p></figcaption></figure>

## [Console](/drone-show-software/verge-console) Integration

When using the X1 pyro module, a new panel appears within the drone's inspector that exposes important information and tools relevant to the module. The expected product and mount directions are exported as part of the show file.

<figure><img src="/files/ueNqAJXUrQh3iN7xWWPn" alt=""><figcaption><p>A sample image of the inspector view for pyro with an unconnected E-Match, a bad circuit detection, and two successfully connected E-Matches</p></figcaption></figure>

## Pyro View

Mirroring the functionality of the core device grid view, a new "Pyro View" displays color-coded cue health status in a single view. A greyed-out cue is unused in the show. A red cue is either disconnected or experiencing an error. A green cue means that it is populated, present in the show, and clear of any faults. This makes it very easy to identify which modules are experiencing issues.

<figure><img src="/files/V1NaMcrdnsXFbbl7ECEd" alt=""><figcaption><p>An example of 100 pyro drones with their cue states displayed</p></figcaption></figure>

## Safety Features

#### Manual disarm

The pilot has the ability to disarm *all* pyro modules across the entire fleet with the push of a button. This will always be the safest option in the case of an emergency. Individual drones may also be selected and disarmed manually, but other, automatic safety features will generally make this capability superfluous.

#### Auto-Disarm

When hundreds or thousands of pyro drones are active and in-flight, it becomes virtually impossible to identify and disable specific pyro modules. The only fallback is to disable *every* drone simultaneously at the first notice of failure. This weakness is overcome by the X1 pyro module. Crucially, the merger of pyro module and flight control systems allow the drone to make informed decisions and ensures that firing never occurs in any situation it deems unsafe.

The following conditions result in the module being immediately disarmed and powered down:

* Drone enters failsafe due to sensor failure, low-battery, or otherwise
* Drone is commanded to abort the show for any reason, regardless of requested behavior

For a full breakdown of standard Verge Aero safety mechanisms, refer to [this article](/drone-show-technology/safety).

#### Soft-Arm Mechanism

If a pyro module is armed and the attached drone is launched, it conducts a "Soft-Arm" check. No pyro may be triggered, remotely or automatically, until this check is passed. The check only passes if the drone has successfully launched and has not experienced a failsafe. Additionally, if the designed show contains no pyro triggers for the role that is designated to the drone in the show, then it will never be soft-armed. It will fly its role, but with no ability to trigger onboard pyro products.

#### **Circuit Fault Detection**

The pyro module performs multiple checks during bringup and exposes in-depth information to the user about its state. Some fault states include:

| Fault            | Description                                                                                |
| ---------------- | ------------------------------------------------------------------------------------------ |
| Bad PFET         | One or more cues detected a bad PFET                                                       |
| No Power         | 12V power good signal was not present when expected                                        |
| Unexpected Power | 12V power good signal was present when not expected                                        |
| Timeout          | The client failed to issue a command within the timeout period (while not idle or faulted) |
| Comm Failure     | Failed to communicate with the pyro board                                                  |
| CPU Time Error   | The pyro driver is not getting enough CPU time                                             |

Per-Cue circuit testing ensure that the firing system is working properly and can pass errors on a per-cue basis.

#### Overweight Failsafe

The Verge Aero drone show system utilizes a floating, soft-geofence "bubble" that triggers a failsafe if a drone ever strays more than 4 meters from its target position. This provides very early issue detection rather than waiting for it to travel large distances before breaching a fence that circumscribes the entire performance space. If a drone is too heavy, it will attempt to meet the commanded flight paths, but will fail within seconds. Without such a mechanism, other systems would continually lag behind their target position and may collide with other drones.

### Mounting Pyro Product

The flat metal sheeting protects the underside of the drone from heat and evenly distributes recoil across the chassis. It comes with affixed cable clips to simplify wire routing. It is absolutely imperative that wires be kept taut and cleanly routed in order to avoid situations where they become tangled in the drone's rotors.


# Drone Pyro Products

## [Smoke Products](/drone-show-hardware/payloads/x1-pyro-module/drone-pyro-products/smoke)

## [Comet Products](/drone-show-hardware/payloads/x1-pyro-module/drone-pyro-products/comets)

## [Mine Products](/drone-show-hardware/payloads/x1-pyro-module/drone-pyro-products/mines)

## [Other Products](/drone-show-hardware/payloads/x1-pyro-module/drone-pyro-products/other)


# Smoke

| Name                                                   | Effect                                                              | Timestamp  |
| ------------------------------------------------------ | ------------------------------------------------------------------- | ---------- |
| Green Smoke Mines                                      | <img src="/files/aYts3BDp6PtZ7HSQcq8f" alt="" data-size="original"> | 00::06::00 |
| <p>Red Smoke Mine Crackle<br>\[Crackle Noise]</p>      | <img src="/files/FmeiPAkLxHBl2VEl0Hrb" alt="" data-size="original"> | 00::29::00 |
| Orange Smoke Mine Down                                 | <img src="/files/9EasUnWEXOGDyKc6Yp4y" alt="" data-size="original"> | 00::37::00 |
| Red Smoke Mine Down                                    | <img src="/files/SQRHbfi8LCTRLkjxIVTC" alt="" data-size="original"> | 00::44::00 |
| <p>Yellow Smoke Mine Crackle<br>\[Crackle Noise]</p>   | <img src="/files/V3ZPEsBcB2vPywQzFoL5" alt="" data-size="original"> | 00::53::00 |
| Red Smoke Comets Long                                  | <img src="/files/TTiMk7AvCHJII15HeaMs" alt="" data-size="original"> | 01::16::00 |
| Blue Smoke Mine Up                                     | <img src="/files/7thWJQ124OtAOXHQongm" alt="" data-size="original"> | 01::21::00 |
| Green Smoke Mine Down                                  | <img src="/files/XlP3FXkb8bl1JB99z30e" alt="" data-size="original"> | 01::36::00 |
| Pink Smoke Mine Down                                   | <img src="/files/mlQeiNCBUEkhPZ5UzZ3i" alt="" data-size="original"> | 01::49::00 |
| Orange Smoke Mine Up                                   | <img src="/files/ajIQvPxDHY8cx9XWCi93" alt="" data-size="original"> | 01::56::00 |
| <p>Yellow Smoke Crackling Down<br>\[Crackle Noise]</p> | <img src="/files/CIAb26SG4DEjY6Xavxb4" alt="" data-size="original"> | 02::03::00 |
|                                                        |                                                                     |            |


# Comets

| Name                                                  | Effect                                                              | Timestamp |
| ----------------------------------------------------- | ------------------------------------------------------------------- | --------- |
| Three Point Comet                                     | <img src="/files/9U1Mhp20ke7nQ1zRlutd" alt="" data-size="original"> | 2::16::00 |
| Triple Glitter Drop Comets                            | <img src="/files/pX28M7MAf5mBRpb7Q2d6" alt="" data-size="original"> | 2::24::00 |
| Triple Glitter Drop Comets \[Brighter]                | <img src="/files/LWDT0HzzZ4DGJZ6BhFAY" alt="" data-size="original"> | 2::32::00 |
| Triple Red Comet Up w Falling Glitter Trail           | <img src="/files/TbiO96pqNCztbFsoxdYo" alt="" data-size="original"> | 4::07::00 |
| Triple Yellow - Green Comet Down                      | <img src="/files/tVBTkUz2AyYOG4MXaF3R" alt="" data-size="original"> | 4::24::00 |
| Triple Blue-Red Comet Up                              | <img src="/files/suK8QS4g552jioNdDlKJ" alt="" data-size="original"> | 4::36::00 |
| Green Comet Up With Silver Burst                      | <img src="/files/ulPU2j4PoCJf5XJyWtsg" alt="" data-size="original"> | 4::59::00 |
| Red Comet Up With Gold Burst                          | <img src="/files/4spgRvH6CHbWRiqfGgft" alt="" data-size="original"> | 5::07::00 |
| Red Comet Up With Gold Sparkle                        | <img src="/files/BDrUBqkenAnTSHAwiqoq" alt="" data-size="original"> | 5::14::00 |
| <p>Comet Down With Sparkle Tail<br>Purple Burst</p>   | <img src="/files/MuiIbEKbhdEhzRk2HjlO" alt="" data-size="original"> | 5::25::00 |
| Red Comet Down With Gold Burst                        | <img src="/files/07poR12ePJ3G1wGOWayO" alt="" data-size="original"> | 5::32::00 |
| Blue Comet Down With Gold Sparkle Burst               | <img src="/files/HA4qMwu9ftfJG4Xx4FtN" alt="" data-size="original"> | 5::38::00 |
| Red Comet Up With Silver Burst                        | <img src="/files/1WNgF98yJJ2Oay7rYSbo" alt="" data-size="original"> | 5::47::00 |
| <p>Comet Up With Gold Crackle<br>\[Crackle Noise]</p> | <img src="/files/hNMka3iKK1cu0mnVSjHN" alt="" data-size="original"> | 6::00::00 |
| Triple Gold Comet Down W Strobe                       | <img src="/files/RPdpSo1OVkM0pvc8pGkH" alt="" data-size="original"> | 8::08::00 |
| Triple Red Comet Drop                                 | <img src="/files/lJD6d1ls8G00h939looA" alt="" data-size="original"> | 8::23::00 |


# Mines

| Name                   | Effect                                                              | Timestamp |
| ---------------------- | ------------------------------------------------------------------- | --------- |
| Purple/Green Mine Up   | <img src="/files/2u7UHnNMX43dEx1WRkd4" alt="" data-size="original"> | 3::12::00 |
| Gold Mine Down         | <img src="/files/DJf5jFSPALHa2cVEFPxO" alt="" data-size="original"> | 3::31::00 |
| Glitter Mine Down      | <img src="/files/sToJBPUaDAPUjw0Q8yTc" alt="" data-size="original"> | 3::41::00 |
| Glitter Mine Short Up  | <img src="/files/o6MRilQBAL8ICL4WnMqg" alt="" data-size="original"> | 3::51::00 |
| Gold Mine Up           | <img src="/files/pU4CFhi0fwksOOQHq4eF" alt="" data-size="original"> | 3::52::00 |
| Gold Glitter Mine Down | <img src="/files/zxEMtsB0guc3d9jxYiRf" alt="" data-size="original"> | 8::00::00 |


# Other

| Name                                                | Effect                                                              | Timestamp |
| --------------------------------------------------- | ------------------------------------------------------------------- | --------- |
| <p>Whistle Spinner Multiple<br>\[Whistle Noise]</p> | <img src="/files/8hu4Q46lbLevhf46pT9M" alt="" data-size="original"> | 6::32::00 |
| <p>Bomb Drop<br>\[Loud "Pop" Noise]</p>             | <img src="/files/JCCn4bPgcmIMpxcpKuHH" alt="" data-size="original"> | 7::06::00 |




---

[Next Page](/llms-full.txt/1)

