OpenVSP Curve Editor
These guides will demonstrate how to interact with the Curve Editor in OpenVSP including altering curves, converting sections to editable types, and even creating three-dimensional sections. Users should be aware that these features are considered advanced and should be leveraged sparingly except in such cases where fully customized cross-sections are required.

Contents
- Introduction
- Display Options
- Inserting Background Images
- Initializing Curve Types
- Converting Body Cross-Sections to Edit Curves
- Limiting Edit Curve Use with Airfoils
- Cross-Section Scale
- Adding and Removing Control Points
- Adding Radius to Curves
- Curve U and G1 Parameters
- Reparameterize Curves by Arc Length
- Three-Dimensional Curves
Introduction
OpenVSP includes a manual curve editor that enables users to modify existing cross-sections or create entirely unique shapes with simple, click-and-drag operations. Any cross-section type may be converted to an Edit Curve by clicking the “Convert CEDIT” button next to the type dropdown and Show buttons. The Edit Curve type may also be selected from the dropdown to initialize a new Edit Curve at that cross-section. The curve editor is intended to make cross-section modification as user-friendly as reasonable while maintaining remarkable customization options including multiple curve types (linear, spline, Bezier), three-dimensional control, symmetry, numerous display options, corner radii, and U-spacing distribution.
Users are encouraged to test this cross-section type to become familiar with the Edit Curve features but are warned that this is an advanced capability. If your model cross-sections can be implemented with other curve types such as ellipses, rounded rectangles, etc., then we recommend using those. Edit Curve sections should be used when the parameterization of existing cross-sections (including the number of control points or corners) is insufficient to accomplish your goals.
Cross-section improvements were presented at the 2022 OpenVSP Workshop which include several features of Edit Curves.
Display Options
The Curve Editor includes several options under the Display tab which control how the curve and background are shown in the plotter. The color, line thickness, point size, and point color are adjustable and background images may be inserted, shifted, and scaled to fit. This makes recreating highly complex cross-sections quite easy in OpenVSP. Also, under the Curve tab, there is an option to change the plot axes from the default normalized coordinates to absolute coordinates. This scales the axes by the set section height and width and may assist with visualizing the physical size of a custom cross-section.
The Curve Editor also has the ability to zoom and pan the plot area with the middle and right mouse buttons, respectively. This enables users to very finely control each point manually, if desired, and quickly visualize the entire section as needed.
Inserting Background Images
A background image may be inserted in the plot area in the Curve Editor to serve as a guide for the overlaid curve and control points. Activate the “Image” button to browse for an image file and then scale or fit the background as needed. If a background image is shown from an opposite view than OpenVSP’s convention, where U_0 starts on the right side of the plot and right side of the body, then the image may be flipped across the plotter Y axis.
Once a background image has been placed such that the desired width and height scaling fits the image, the background may be locked to the curve display using the “Lock Image” button. Once locked, the background and curve plot will zoom and pan in sync, enabling the user to closely focus on fitting corners and blends without sacrificing overall visibility.
Initializing Curve Types
New Edit Curves may be initialized from the Curve tab where users may choose among a circle, ellipse, or rectangle. In practice, these are ways to initialize the three different curve types as Cubic Bezier, PCHIP Spline, or Linear, respectively. In each case, the new curve will be of unit coordinate height and width, ranging from -0.5 to 0.5 in both the horizontal and vertical axes. Note that initializing a new curve type does NOT alter the defined Scale XSec parameters controlling the height and width but rather creates a new curve in the coordinate space.
Converting Body Cross-Sections to Edit Curves
Any cross-section type in OpenVSP may be converted to an Edit Curve by clicking the “Convert CEDIT” button next to Show and the type dropdown menu in the XSec tab (for bodies). Some cross-section types may be exactly recreated by the conversion process such as ellipses and rounded rectangles while other, more complex or mathematically strict, types may be approximated. Users should be aware of the limitations when converting different section types for modification. However, in most cases a close match to the desired shape may be achieved with a stock cross-section and then converted to an Edit Curve for further refinement without much effort making this capability exceptionally useful to the designer.
Limiting Edit Curve Use with Airfoils
A somewhat significant exception to the conversion accuracy of sections to Edit Curves is that of airfoils. While a NACA 4-series may be very closely approximated by an Edit Curve conversion, it is not exact. More complex airfoils such as NACA 6-series or custom AF/DAT airfoils will rarely be well approximated. This should be expected given that airfoils have very specific geometric definitions that are difficult to capture with longer, piecewise curve segments. Users are strongly discouraged from attempting to design airfoils with the Curve Editor. Better success will likely be achieved by using the CST conversion for airfoils if you require custom geometric parameterization of the curve.
This is not to say that converting an airfoil to an Edit Curve cannot be useful. In some cases, for example when blending a wing to a fuselage, an edit curve will result in a custom profile that will blend well to a surface. Another example is with the slight modification or reparameterization of a Wedge or biconvex airfoil type, which are formed from either straight or parabolic segments and will be exactly captured by an Edit Curve conversion.
Cross-Section Scale
The Scale XSec group under the Curve tab in the Curve Editor is where users will find the scaling parameters for the cross-section such as height, width, and area. Recall that the parameterized curve defined by the control points is in one coordinate space which is then scaled along the horizontal and vertical axes by width and height, respectively, to achieve the final shape. Because the Edit Curve is an integrable function in all three curve types, the area bound by the curve may be computed. Alternatively, if the area is fixed then OpenVSP may iteratively solve for the remaining parameters. This is particularly useful for supersonic or flow-through sections.
Under normal circumstances, the range of the X and Y coordinates of the Edit Curve are from -0.5 to 0.5 or having unit distance. This ensures that the scaled height and width correspond to a representative physical dimension in the model. However, the curve is under no such constraint to prevent the range from being larger or smaller than the +/- 0.5 values. For example, a cross-section with height = 2.0, having Y coordinates from -1.0 to 1.0 (distance of 2.0), would have a measured physical height of 4.0. Again, users must take great care when setting control points in the display or in the Control Points fields to ensure that their design intent is being maintained.
Adding and Removing Control Points
To add points to an Edit Curve, either set the desired U location along the curve and click “Split U” or click the “Split Pick” button and click on the desired cut point on the curve in the display. In either case, a new point will be added to the curve and any necessary interpolation will automatically take place to maintain the existing curve shape. Note that adding a control point to a Cubic Bezier type will result in new control point tangencies for the new point and adjacent points. Adding a control point to a PCHIP Spline will result in a slightly different curve due to the new enforced point.
To remove points from an Edit Curve, either select the point using the arrows to cycle the active point then click “Delete Selected” or click “Delete Pick” and click on the desired point to be removed. Similar to adding a point to a Spline, removing points will result in a relofted curve. Also, removing a point from a Cubic Bezier curve will not alter the adjacent points’ tangencies or locations. With Cubic Bezier curves, only the primary control points (not the adjacent tangency points) may be deleted.
Adding Radius to Curves
OpenVSP version 3.27 saw the addition of radius to Edit Curve control points. With this feature, users can specify a dimensional radius at a control point rather than approximating a radius with Bezier points. This greatly simplifies parameterizing cross-sections in a way that is much more intuitive to a designer while reducing the total number of points.
Note that the Radius value at a control point is the dimensional radius having been scaled by height and width, not a radius in the untransformed coordinate space of XY points. For example, whether your section is one length unit wide or ten, a radius value of 0.2 will remain 0.2 length units at the corner.
Curve U and G1 Parameters
When working with Edit Curves, it is important to understand the implications of working with the U location parameter. When altering the U value of a control point, the physical location of the point is not changing; rather it is the alignment to adjacent cross-section U locations. For example, take two adjacent circular cross-sections, one of which is an Edit Curve. If the bottom control point of the Edit Curve is changed from U = 0.25 to U = 0.5, then the feature line passing through the bottom of the Edit Curve will now pass through the left side of the adjacent circle. All of the interpolated segments between U = 0.5 and the remaining control points will be “squished” until the curve is reparametrized by arc length. Another parameter that affects the U locations along a curve is the Spin parameter, which effectively alters the U origin point. By combining Edit Curve U locations and Spin, the user has significant control over how feature lines and interpolated segments pass between adjacent cross-sections.
Another important feature of Edit Curves is the ability to enforce G1 continuity, or slope continuity, through a Bezier control point. Activating the G1 button for a control point will enforce the adjacent tangency points to pass through at the same angle similar to setting angles equal in Skinning. However, the strengths or lengths of those tangency vectors need not be equal e.g., equal curvature is not enforced. Applying G1 continuity is a handy way of ensuring that your Edit Curves pass smoothly through a control point.
Reparameterize Curves by Arc Length
In some cases when working with Edit Curves, users may find that the defined U parameters for control points do not intuitively align with adjacent sections due to how the control points were first added or altered. In this case, the curve may be reparametrized by arc length which redistributes the U locations evenly between fixed control points. For example, with the simple pentagon shape in the tutorial the first and last control points are the only fixed locations (U = 0,1) so reparametrizing the curve would result in a new U distribution of 0.2 units each (1/5) assuming all arc lengths are equal. However, in the event that a control point should be aligned with a specific location on adjacent cross-sections, as with the left side of the pentagon at U = 0.5, the U value may be fixed by clicking the Fix U button for that control point. This prevents the reparameterization from moving that U location and will evenly distribute any free U points along the curve. Reparametrizing Edit Curves by arc length is an excellent way of distributing interpolated segments so that the model surface remains smooth.
Three-Dimensional Curves
The ability to add depth, or Z offset, to Edit Curves was added in OpenVSP version 3.27. With this parameter, users are now able to define arbitrary curves in 3D space rather than being limited to cross-section slices. This new capability provides numerous opportunities for component customization and the creation of entirely new unique geometries in OpenVSP. Users should be aware that three-dimensional curves and cross-sections are an advanced feature of OpenVSP and should be used very deliberately with production designs. In many situations, Skinning will likely accomplish the same task with more robustness to variation. Users are encouraged to test out this feature and get to know the controls and behaviors before attempting implementation into designs.



