pyVSPAERO

80 views
Skip to first unread message

Rob McDonald

unread,
May 4, 2026, 12:17:53 AM (11 days ago) May 4
to ope...@googlegroups.com
Introducing pyVSPAERO -- an experimental Python package for reading and visualizing results from VSPAERO's binary *.adb (and other) files.

It isn't a part of mainline OpenVSP yet, but I've pushed up a GitHub branch with the current state of the project. Let's see where this goes.

https://github.com/ramcdona/OpenVSP/tree/pyVSPAERO

VSPAERO's binary *.adb format is not a static format meant for other programs to read. The developers reserve the right to change it at any time. Consequently, in the past my advice to someone who wants to read the data in the file was to use the exiting C++ source code as a library for reading the file. That way, when the format changed, you could update in step. To my knowledge, nobody ever actually did this.

Recently, I needed to automate visualization of VSPAERO test cases for V&V purposes. I didn't just want 2D plots of forces, moments and Cp distributions, I wanted more.

So, I asked my friend Claude to help. I had it study the C++ Solver and Viewer source code to build a specification document for the *.adb file. I also had it develop parsers and data structures to read the data into memory. We tried to keep this designed and organized as 1:1 to the C++ code to hopefully ease updates when future changes come.

So now there exists a Python package for reading *.adb files.

From there, we used PyVista (which is based on VTK) to develop helper routines for visualizing the data. This provides a toolkit for many common visualization tasks. There are a handful of example scripts that use the toolkit to automate the kinds of visualization tasks I needed.

But why stop there? We then studied the C++ source of the VSPAERO Viewer to build a list of capabilities structured as a requirements document to develop a Python replacement. A first attempt at a browser based solution was abandoned (I can discuss if anyone is interested), but we ended up on a Qt (via PySide6 and pyvistaqt) based approach.

The pyVSPAERO_viewer is a separate package. That way, if you just want the *.adb parser and data structures, you don't need to pull in a bunch of other dependencies.

This is not a 1:1 replacement for Viewer. I have not pursued the loads/deflection structures integration. I have also not pursued the live visualization of optimization runs. Otherwise, most of Viewer's capabilities are there, along with a few new tricks.

The VTK based visualization looks great BTW.

Screenshot 2026-05-03 at 8.42.53 PM.png

Rob

Mike Kelly

unread,
May 4, 2026, 2:41:58 PM (10 days ago) May 4
to OpenVSP
Looks interesting. I recently finished a digital twin tool that imports VSPAero data that I then validate with ArduPlane black box data from my prototype model test flights. I'll give this a look.

cean wang

unread,
May 5, 2026, 5:46:13 PM (9 days ago) May 5
to 'Miroslav Grulovic' via OpenVSP
Why not let vspaero output vtk file?

--
You received this message because you are subscribed to the Google Groups "OpenVSP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openvsp+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openvsp/f7dee94e-218f-4b0c-b124-9b03b17b19c8n%40googlegroups.com.

Mike Kelly

unread,
May 6, 2026, 2:32:55 PM (8 days ago) May 6
to OpenVSP
To clarify, my use of the term "digital twin" was inaccurate. It is more of a trim solver using VSPAero outputs of Cl, Cd, and Cm vs. alpha, elevator deflection angle, and flap deflection angle, plus measured static thrust vs. throttle demand. Flight test data provides the actual parasite drag and dynamic thrust.
Reply all
Reply to author
Forward
0 new messages