{"id":800,"date":"2026-04-03T02:04:06","date_gmt":"2026-04-03T02:04:06","guid":{"rendered":"https:\/\/openvsp.org\/blogs\/?p=800"},"modified":"2026-04-03T02:04:06","modified_gmt":"2026-04-03T02:04:06","slug":"openvsp-3-49-0-released","status":"publish","type":"post","link":"https:\/\/openvsp.org\/blogs\/announcements\/2026\/04\/03\/openvsp-3-49-0-released","title":{"rendered":"OpenVSP 3.49.0 Released"},"content":{"rendered":"<p>This release is all about one new capability and a lot of bug fixes. Even if you don&#8217;t plan on using the new capability, you should update for the fixes.<\/p>\n<p>There has been a lot of new stuff over the last year. The best way to figure out how all of it works is to attend the <a href=\"https:\/\/openvsp.org\/wiki\/doku.php?id=workshop2026\">OpenVSP Workshop<\/a> in Daytona Beach, FL. August 4-6.<\/p>\n<p>Before I talk about the new capability, you should know about one of the fixes.<\/p>\n<p>Previously, if you used a non-zero center of rotation and toggled a component between REL and ABS positioning, it would walk off to la-la-land. This has been fixed. However, it means that a component in ABS with a non-zero center of rotation will now end up in a different location than before. This might change people&#8217;s models. I&#8217;m sorry. It should be easy to detect and fix.<\/p>\n<p>Very few people use the center of rotation &#8212; and ABS is used much less frequently than REL, so I&#8217;m optimistic this won&#8217;t burn too many models. However, the risk is there. Be careful.<\/p>\n<p>OpenVSP 3.44.0 introduced a native landing gear component to support a bunch of new analysis capabilities. Those analyses really needed a definition of the ground plane and how the aircraft moves\/rotates in relation to it. So although it looked like landing gear, it was really about the ground plane.<\/p>\n<p>The gear model has been extended to also describe how the gear is stowed or retracted. This is not a tool for the complex design of a retraction mechanism. This is not a tool for kinematic analysis. This is a very simple capability to help the early stage configurator have a plausible solution for where the gear is going to fit. Think of it as starting point to throw over the wall to the gear design team &#8212; where they won&#8217;t be too mad at you.<\/p>\n<p>There are two modes, you can either specify the &#8216;Stowed Position&#8217; or the &#8216;Gear Mechanism&#8217;.<\/p>\n<p>When working with Stowed Position, you specify the location and orientation of the stowed tires\/bogies. There is no mechanism preventing you from placing the nose gear in the vertical tail, or 20ft above the aircraft. You just put the stowed gear where you want it, the reasonableness of that location is up to you.<\/p>\n<p>When working with Gear Mechanism, you specify a series of joints (trunnion, knee, wrist) and how they move. The retraction motion schedules all movement in proportion (there is no scheduling or nonlinear speed). There is no representation of any other part of the mechanism (no side struts, actuators, torque links, locks, etc.). The intent is to specify a plausible way for the gear to move from extended to retracted. This is not actually a gear design\/analysis tool.<\/p>\n<p>The gear motion provides many degrees of freedom. Use them sparingly. Each additional motion represents added complexity and cost. They are sometimes necessary, but they should always buy their way onto the airplane.<\/p>\n<p>Once you know where the gear is stowed, you can use the existing interference checks to ensure it fits in the OML and has adequate clearance with other subsystems. To aid this, the Tire and Rim Association&#8217;s tire clearance model has also been implemented.<\/p>\n<p>Using the gear component (and now retraction) has a lot to it. It will not be trivial to figure out. Come to the Workshop and you can learn it from me.<\/p>\n<p>There are lots of fixes all over the place.<\/p>\n<p>The Python API in the Ubuntu build has been fixed for real this time. The Wave Drag tool won&#8217;t crash when you look at it the wrong way. Inlet\/outlet subsurfaces might work with Wave Drag again.<\/p>\n<p>Corner rounding (mostly for rounded rectangle) should be more robust. You can make a circle from a square now if you really want to.<\/p>\n<p>A crash with ground maneuverability analysis has been fixed. Landing gear now show up correctly when loaded a second time. Tail strike \/ tip strike analyses with off-nominal gear positions could sometimes have a parameter mismatch.<\/p>\n<p>Many other small fixes.<\/p>\n<p>Features:<\/p>\n<ul>\n<li>Stowed \/ Retracted landing gear<\/li>\n<li>TRA Clearance model<\/li>\n<li>Single gear auxiliary geometry<\/li>\n<li>Faster interactivity with landing gear<\/li>\n<\/ul>\n<p>Build system:<\/p>\n<ul>\n<li>Use venv when building Ubuntu to fix numpy version problems<\/li>\n<li>Update to Eigen3 5.0.0<\/li>\n<li>Update OpenABF to support new Eigen<\/li>\n<\/ul>\n<p>Fixes:<\/p>\n<ul>\n<li>Center of rotation with ABS positioning fixed<\/li>\n<li>Wave drag crash on load<\/li>\n<li>Ambiguous subsurface with line subsurfaces in WaveDrag<\/li>\n<li>Fix mismatch of gear plane for certain analyses<\/li>\n<li>Improve robustness of corner rounding<\/li>\n<li>Fix crash with ground maneuverability analysis<\/li>\n<li>Fix scrolling stability of Check Box Browsers<\/li>\n<li>Fix some Python unit tests<\/li>\n<li>Only show &#8216;Apply Rotation&#8217; when it makes sense<\/li>\n<li>Fix landing gear scaling on second load<\/li>\n<li>Fix crash due to non-deregistered attribute collection<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This release is all about one new capability and a lot of bug fixes. Even if you don&#8217;t plan on using the new capability, you should update for the fixes. There has been a lot of new stuff over the &hellip; <a href=\"https:\/\/openvsp.org\/blogs\/announcements\/2026\/04\/03\/openvsp-3-49-0-released\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-800","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/posts\/800","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/comments?post=800"}],"version-history":[{"count":1,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/posts\/800\/revisions"}],"predecessor-version":[{"id":801,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/posts\/800\/revisions\/801"}],"wp:attachment":[{"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/media?parent=800"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/categories?post=800"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/openvsp.org\/blogs\/wp-json\/wp\/v2\/tags?post=800"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}