Due to the lapse in federal government funding, NASA is not updating this website.

Suggested Searches

OpenVSP User Parameters

The guides below will introduce you to OpenVSP's User Parameters and how to leverage these features to change model behavior, represent information, or act as a driver for multiple variables or controls.

Encyclopedia
Updated Sep 29, 2025

Introduction

User Parameters are unique variables that you can leverage to control or link your model in ways that aren’t available by default in OpenVSP. There are always 16 predefined user parameters that will always have the same Group, Name, and ParmID regardless of which model you are using. This makes them very robust in scripting and automation. Perhaps of greater interest to the designer is the ability to create custom parameters and adjust them from this menu. Once a user parameter has been created, the parameter is available for adjustment or linking as with any other model parameter. For example, a wing may be sized according to gross weight and wing loading rather than by span and area. An propeller may be sized according to the thrust, disk loading, tip speed, etc. So you can see how leveraging User Parameters in your model can enable a wider variety of parametric variation than would otherwise be available by default.

User Parameters may also be used to store numerical information in your model and not be linked to any other parameter at all. For example, you can create an integer type to keep track of the model version or use a double type value to record a target lift coefficient or maximum span. Be creative!

OpenVSP 3.42 released a new feature called “Attributes” which now serves to add metadata to your models rather than relying on User Parms. The 2025 OpenVSP Workshop included a presentation on these new features and a video demonstration of how to use them. See the Attributes Ground School content for these resources.

User parameters enable even more design freedom in your model and can completely change your model behavior. They can represent almost anything and will link to your model however you need.

Brandon Litherland
Aerospace Engineer

Creating and Adjusting User Parameters

Creating a custom User Parameter is fairly straightforward. In the Create Parm box, choose the type of variable (Integer or Double) and then provide a name, group, and description along with the min, default, and max values. Providing a clear description of the new variable is good practice because it will serve as a reminder of the purpose of the variable and inform other users of the variable’s intent. Once you have entered the information for your new variable, click “Create” to add the variable to the list of User Defined Parms. The new parameter will now be available under the Adjust tab. If you find that any of the parameter settings are incorrect or require adjustment, click on the parameter in the Create tab inside the User Defined Parms box to show the information in the Edit User Defined Parms box. From the Edit box, you can enter new information into any of the fields and the parameter will update with the new values. Note that you cannot change the Type from Integer to Double or vice versa.

When you create a new parameter, think about what kind of number it should be and what the purpose will be. For example, if the new parameter is intended to be a scale factor, then a Double value makes sense. If the parameter is intended to represent whole parts (engines or people, for example), then an Integer type should be chosen.

You can create and adjust user parameters as much as you like but be careful if you choose to remove them. Any links to these parameters will be destroyed and cannot be recovered!

Brandon Litherland
Aerospace Engineer

Wing Loading Example

This tutorial demonstrates how the Wing Sizing example was created using Advanced Link and the two user parameters gross weight and wing loading. Note that the link sets the total planform area rather than the sectional area. Advanced Link operation is a more advanced topic that is not covered in detail in this tutorial.

This is a fairly simple example of how you can completely change how a model is parameterized with just a few alterations and links. Consider a turbojet engine model controlled by station equations and pressure ratios rather than directly setting cross-sections.

Brandon Litherland
Aerospace Engineer

Linked Hinge Example

In this tutorial, a multi-hinged arm is demonstrated by altering a single user parameter linked to multiple Hinge components and solid cylinders. Each of the Hinge angles are set with linear links to the user parameter as a fraction of fully deployed. In this way, a single user parameter can be used to perform combinations of translation and rotation about multiple coordinate systems to achieve complex motion. Creating and adjusting linear Links in OpenVSP is not covered in detail in this tutorial but you can find related Ground School content here.

Here you see an example of how to reduce the degrees of freedom in your model. Think about how you want your model to really function and then work back from that using links, user parms, or other features.

Brandon Litherland
Aerospace Engineer