LEP Studio and it’s Playground
Further work on Lep Studio : work from 21 September to 26 October 2026
A report for the LEparagliding open-source community - Francois de Villiers - 26 October 2026
1. Background
LEP Studio is listed under Software on the LEparagliding project page (LEP Studio page); it is based on LEparagliding 3.28). Michael Holm built it. I had a meeting with him on 21 September to request the 0.4.2 update with the solid STEP file for use with CFD, as it is much better as input to structured CFD analysis than trying to use STL. Michael did an excellent job of using high-end AI to build a graphical input and output for the text-based Fortran paragliding program that Pere Casellas developed, and of providing a cloth simulation of a paraglider, using XPBD with internal equation based aerodynamics, to make it fly. Sadly it seems that he is not interested in developing it further.
I was not really familiar with XPBD, but I knew some work done by Johan Hammes on paragliding https://www.johanhammes.com/earthworks/clothphysics (video: "XPBD with local vicinity velocity damping")
I wanted to consider the possibility of utilising Lep Studio for proper engineering design, and decided to simulate only a part of the wing structure first. I had to recompile and then modify the code and concentrated on a single cell with applied external aerodynamic forces from Flow5. I introduced meshing, modified the mini-ribs, studied the resulting ballooning, added diagnostics and learned XPBD along the way. An interim report on aspects of the single-cell analyses is on the gnuC2 news page.
After seeing what was possible I moved to improving the complete paraglider modeling in the Playground with proper aerodynamic input, improved structured meshing with the idea of using it for design purposes. See next section 2 for improvements made so far.
2. What has been introduced in Lep Studio since version 0.4.2 - 21 Sept 2026
- Flow5 and OpenVSP ballooning aerodynamic input.
- Four more solvers: static Newton, quasi-static Newton, Baraff-Witkin, and the finite-element type mem4py. The XPBD solver is used until the wing converges and the other solvers are then used to verify it.
- A solving window showing displacement, force and dynamics convergence across the model.
- Gmsh, ensuring a good structured mesh and only acceptable triangles ensuring proper aerodynamic loads from Flow5
- A rigid 3d mode for trim balance, for comparison with the LEP trim mode (Section 35, method 6).
- Trim balance views and diagrams against flexible wings.
- Comparison of flexing modes with rigid modes (displacement, rib view, span view, twist and so on) by removing rotation.
- Removal of the old rib frames that were not made from spring connections, and of the rigid tie points with the line ( Michael early development.) and ensuring proper gmsh around the rib holes
- Change of the bending stiffness of the elements, which was overly stiff and caused many issues.
- Damping for faster solving.
- Reinforcements connecting with lines (circle patches only), similar to RBE nodes in finite elements.
- The inclusion of cut line lengths from LEP with compensation for elastic line behaviour.
- Folded reinforcements on the trailing edge and the intake edges.
- Horizontal and diagonal spanwise straps replaced with cloth.
- Extraction of the ballooned profiles and re-analysis in Flow5 until the Playground converges: full FSI (fluid-structure interaction with a panel method); three iterations were required.
- Automatic riser adjustment for a given calage setting, from 55 % to 30 %.
- Testing of an generating influence matrix for shortening lines instead of changing risers, minimising profile deformation.
- Transient restart capability for the second solving methods.
- Fixing the triangles connected to the lines of the singles skin gliders.
3. Outstanding
- Most of the work was done on only one C-type double-skin paraglider. (gnuC2) The code needs to be tested on other double-skin wings; Flow5 and OpenVSP are not compatible with single skin; the required is a full complete CFD of a halfwing at least.
- Applying brakes in straight and turning flight, cloth behaviour in pulling brakes, applying in Flow5/Openvsp
- The development menus and windows were created on the fly and need to be properly placed and generated.
- Connection with open-source CFD instead of Flow 5 and Openvsp (Vspaero) panel methods especially for single skin.
- Extracting boundary conditions for local single or multiple cell analyses, a normal thing done with large structural finite element codes to study local effects in detail.
- Possible integration with https://www.laboratoridenvol.com/leparagliding/lepg-html/lepg-html.en.html another interface for https://www.laboratoridenvol.com/leparagliding/leparagliding.en.html that have been developed much further and more user friendly.
- Upgrades to Studio 0.4.2 on github coming soon.
4. What is XPBD?
XPBD, extended position-based dynamics, is a way of simulating soft and rigid bodies by working directly on positions. Each step predicts where every node would go under the external forces, then moves the nodes to satisfy constraints (edge length, area, bending, cables, pressure, contact), one constraint at a time, and finally derives the velocities from the position change. It is fast, robust and easy to extend, which is why it is used for real-time cloth and soft bodies.
- Position Based Dynamics (PBD): M. Müller, B. Heidelberger, M. Hennix, J. Ratcliff, "Position Based Dynamics", VRIPhys 2006. In PBD the stiffness of a constraint depends on the number of iterations and on the time step.
- XPBD: M. Macklin, M. Müller, N. Chentanez, "XPBD: Position-Based Simulation of Compliant Constrained Dynamics", Motion in Games 2016, pp. 49-54. It adds a compliance (inverse stiffness) and a Lagrange multiplier to every constraint, so that the stiffness no longer depends on the iteration count or the time step, and constraint forces can be estimated from the multipliers.
- Small steps: M. Macklin and co-authors, "Small Steps in Physics Simulation", SCA 2019: many small substeps with a single iteration each beat one large step with many iterations. This is the form most real-time codes use.
- Rigid bodies: M. Müller, M. Macklin, N. Chentanez, S. Jeschke, T. Y. Kim, "Detailed Rigid Body Simulation with Extended Position Based Dynamics", SCA 2020.
- Overviews: J. Bender, M. Müller, M. Macklin, "A Survey on Position Based Dynamics", Eurographics 2017 tutorial (library entry); M. Müller's Ten Minute Physics tutorials with working code.
What was seen in this work (measured): the XPBD end frame of a 10 to 30 s flight is 2.6 to 3.3 mm rms from the static equilibrium of the same model (section 5), which is why the other solvers are used to confirm it; very stiff lines and small elements need many substeps or iterations; with low damping the K calage of the whole wing swung about +-1.5 % with a 3 s period and had not decayed after 4.5 s, and a constraint-damping option was added to the single-cell model on 30 September.
5. Who is using XPBD?
Organisation | Where XPBD appears | Source |
NVIDIA (research group of M. Müller, M. Macklin, N. Chentanez) | Authors of the XPBD paper (2016), "Small Steps in Physics Simulation" (2019), "Detailed Rigid Body Simulation with XPBD" (2020) and the 2017 Eurographics survey (course notes list Müller and Macklin at NVIDIA PhysX Research). | publication list, course notes |
NVIDIA Isaac Lab | Has an XPBD solver configuration in its Newton physics module. | Isaac Lab source documentation |
SideFX (Houdini) | Vellum, its cloth, hair and soft-body framework: "uses an extended Position Based Dynamics approach". | Vellum overview |
Epic Games (Unreal Engine) | Chaos Cloth has optional XPBD constraints (flag bUseXPBDConstraints, marked experimental by Epic). | Chaos Cloth API |
Blender (open source) | An XPBD solver node for cloth, hair and particles in the simulation nodes. | developer documentation |
Michael Holm (SoftWingLab, LEP Studio) | The XPBD soft-body core of the Playground. | section 6 |
Johan Hammes (paragliding) | XPBD for paraglider simulation, shown with a velocity-damping variant. | video |
Xueliang Wen a, Hui Cheng b, Humberto Afonso c, Muk Chen Ong a | Development of XPBD algorithm for Mooring Lines and Aquaculture Nets: Comparisons with Mass-spring Model and FEM
| https://www.sciencedirect.com/science/article/abs/pii/S0029801824010096 |
5.1 Earlier paraglider and ram-air kite work this builds on
Who | What | Links |
Tom Lolies, Bruce Goldsmith Design R&D and ISAE-SUPAERO (with Miguel Charlotte and Nicolas Gourdain) | 2019: "Numerical methods for efficient FSI simulations of paragliders": mass-spring cloth on a quad mesh, implicit Euler written as an optimisation problem and solved with L-BFGS, 0.5 to 1.5 million nodes, coupled to a low-fidelity flow solver. 2022: "A fluid-structure interaction methodology to design ram-air parachutes and paragliders", 26th AIAA Aerodynamic Decelerator Systems Technology Conference, Toulouse, 16-19 May 2022, AIAA 2022-2752. Triangular Delingette springs (isotropic, E t = 100,000 N/m), ESDIRK4 time integration with a Newton loop, a 3D unsteady panel method with an integral boundary layer and a separation model, internal pressure taken as the mean Cp over the inlets, line attachments modelled as three springs, wrinkling classified by the Pauletti criterion. Compared with paraglider flight-test observations and ram-air parachute wind-tunnel tests. This is a paraglider fluid-structure model built on the same ingredients as the Playground (cloth, lines, panel-method loads), solved globally by implicit integration. The 2022 paper does not use XPBD. | PEGASUS 2019 paper, AIAA 2022-2752 |
Paul Thedens (SkySails Power) and Roland Schmehl (TU Delft) | "An Aero-Structural Model for Ram-Air Kite Simulations", Energies 16(6), 2603, 9 March 2023. A structural finite-element solver with kinetic dynamic relaxation, mem4py, staggered-coupled to the potential-flow code APAME through preCICE; validated against SkySails Power flight data; the potential-flow solver overestimates the glide ratio by roughly 10 to 15 %. mem4py is open source (MIT licence) and is the fourth solver added to the Playground in this work (section 4). | paper, TU Delft copy, mem4py code |
5.2 The solvers used for verification: SPG and mem4py
SPG ("Spring") is a research-focused C++ library by Alex Rodriguez (MIT licence, first release October 2024) in which every solver works with every mechanical energy through one interface: github.com/alexrodag/spg. The solvers it implements, with the reference its author gives for each:
The fourth verification solver is mem4py (section 5.1), a separate membrane finite-element code rather than part of SPG.
6. The tools this work is built on
6.1 LEP Studio 0.4.2
- What it is. A C++ port, with a Qt 6 desktop interface, of Pere Casellas' LEparagliding 3.28 "Jardins", the engineering program that designs a paraglider canopy and its lines. It reads the same design text file as Pere's program and is free software under GPL 3.0 like the original. First commit 24 July 2026, version 3.28 on 25 July; Michael wrote 110 of the 143 commits in the copy used here. Releases are at github.com/Kulitorum/LeParagliding (Michael publishes as Kulitorum).
- What it makes. Manufacturing plans (leparagliding.dxf), the exact wing as OpenCASCADE NURBS surfaces (lep-3d.step), a closed exterior-only solid for CFD (lep-solid.step), design data (lep-out.txt), line data (lines.txt), a run log, and the simulation mesh lep-sim.json that the Playground reads. A section editor with its own undo, version history embedded in the design file, a preset menu and an OpenCASCADE viewer make it a design studio rather than a converter.
- Based on. Pere's engine (translated, with his design file format and section numbering kept), OpenCASCADE for the geometry and STEP, Qt 6 for the interface, and, for the Playground, a soft-body core from Michael's own SoftWingLab project.
6.2 The Playground, and why it has that name
- It is a tab in Studio that inflates the wing, pulls lines and brakes and shows the result live. The commit that added it, on 27 July 2026, is called "Add the Playground tab: a toy live-wing XPBD simulation", and Michael's note says the Playground "began as a toy: inflate the wing, pull the brakes, watch it move". The LEP Studio page calls it a "soft-body wind tunnel". His stated claim boundary: relative structural signals of one design and comparisons between design revisions, not certified absolute aerodynamics.
- Core. XPBD soft-body physics vendored on 25 July from SoftWingLab, relicensed GPL-3.0 by its owner: distance and cable constraints, an orthotropic membrane, per-face pressure, contact, lumped pneumatics and suspension-line cascades. The mesh is sampled from LEP's ballooning law, so the rest pose is the design shape. The core is no longer a verbatim copy; its README lists what changed.
6.3 ParaCFD - More work by Micheal
- What it is. A GPU CFD code for paragliders in C++20 and CUDA with a Qt 6 / OpenGL interface and OpenCASCADE STEP import (GPL-3.0; github.com/Kulitorum/ParaCFD), by Michael Holm. Its history starts on 11 July 2026 from his earlier scour-protection CFD code. It reads one closed STEP solid, which is what lep-solid.step is for.
- Based on. A static Cartesian grid of uniform-cell bricks with 2:1 refinement, cut by the wing surface (embedded boundary, cut cells); CUDA momentum transport with a Smagorinsky subgrid term, a GMRES pressure projection and a Spalding smooth-wall law instead of a boundary-layer mesh. Its README says it does not yet reliably calculate the lift of the supplied wing, uses rigid geometry only and needs CUDA.
- My assessment. I find it very impressive: a whole closed wing in 20 to 30 minutes per angle on a 6 GB graphics card, and two different cards agreed to four digits. In approach it resembles the rectangular-block cut-cell codes such as EFD.Lab / FloEFD. I gave up on it because the whole grid has to fit in GPU memory: on the 6 GB cards I have, the planner refuses grids above 4.2 GiB, one more refinement level everywhere would need 11.3 GiB, and refining only the nose is rejected by the cut-cell builder. The finest cell was 26.6 mm, 2.5 cells across the 66 mm nose radius, and the nose is where the lift and drag gap sits. The aerodynamic loads in the rest of this report come from Flow5, OpenVSP and VSPAERO.
Development - 21 Sept - 26 October - AI style

Work during last month
1. The closed STEP input and ParaCFD (5-9 October)
Single-skin designs are not supported. Eventually got paracfd to get gnuc2 input. Min cell size limited by GPU memory. A possibility if the solving iteratively using normal PC memory. Something to resolve later.
Route to a closed solid for ParaCFD | What happened |
Studio STEP of the gnuC2 CFD copy (ParaCFD reads STEP only) | Refused at grid build on 5-6 October: "1 unresolved EB cell ... candidate triangle 125173, CAD face 153". The logs do not name which of the Studio's STEP files it was. |
LEP's STL files | A 3.4 mm high sliver triangle and open surfaces. With a zero-thickness tip rib the OpenSCAD STL crosses itself (302 crossing triangles at the tip). |
Flow5 panel mesh (38,400 triangles), tip holes capped, written as one flat STEP face per triangle (38,556 faces) | Accepted as one solid. Grid build failed with 83 (whole wing) or 37 (half wing) "unresolved cells" until a one-line local patch; with it the half wing builds with none. |
OpenVSP 3.54 "split and stitched" STEP, round tip cap (1 manifold solid, 124 B-spline faces, 7.23 m3) | Passes ParaCFD's strict grid build: unresolved 0, no closure defects. |
ParaCFD results
gnuC2 (projected area 22.989 m2, 10 m/s, rho 1.225), finest cell 26.6 mm, one run per case. All numbers are measured unless marked.
At 8 degrees | Lift (N) | Drag (N) |
Flow5, viscous (XFoil polars, trip at 2 % chord) | 1032.9 | 66.5 (induced 43.2, profile 23.3) |
VSPAERO, total lift, original / fine mesh | 947.5 / 960.0 | induced about 36 (wake based) |
ParaCFD, wall law on (mean) | 922.7 | 69.8 (friction 16.2, pressure 53.2: one instant) |
ParaCFD, wall law off (mean) | 978.6 | 52.7 (all pressure) |
- At the same lift (CL 0.734) Flow5 needs 8.0 degrees and 66.6 N (L/D 15.5); ParaCFD needs 9.2 degrees and 79.7 N (L/D 12.9). The induced drag is the same in both (42.4 and 43.2 N); the gap is friction and form drag.
- With the wall law off, the drag left over after subtracting the induced drag (11.2, 13.6, 25.6 N at 4, 8, 12 degrees) sits in the first 10 % of the chord: the nose suction is too weak. The location is measured; the cause (nose resolution and cut-cell pressure integration) is inferred.
- Wind-tunnel check: Belloc's rigid arched wing (tunnel Re 0.92e6, ours 1.9e6, tunnel data uncorrected): lift slope per radian measured 3.01; VSPAERO +23 to +25 %, Flow5 +31 to +36 %, ParaCFD with the wall law off +23 %, with it on +17 %. All inviscid codes over-predict.
- Limits: the closure fails at exactly 9.00 degrees; no pitching moment or centre of pressure is logged; closed rigid solids only.

Element size limit on paracfd due to GPU memory limit

Paracfd with step gnuC2 step input

Paracfd gnuc2 tip vortex

Lift and drag at 8 degrees, the same plain wing in two codes, and the nose of the root section as each code sees it.
2. Aerodynamics of gnuC2 and what was found in the LEP geometry output (1-26 October)
2.1 Reference set-up
- Flow5 is built from sections (the xwimp route), never from a mesh import (a structured mesh import of the Studio STEP gave CL 15 % low; the import route, not the geometry): 121 sections (3 per cell), 40 chordwise panels with TANH spacing, viscous with forced transition at 2 % chord. Chordwise is the slow direction: CL at 5.7 degrees 0.548, 0.554, 0.557, 0.559 for 16, 24, 32, 40 panels; spanwise is converged (3 sections per cell are enough; 5 change CL by 0.5 %).
- OpenVSP 3.53.1, later 3.54: twist entered by "method A" so that OpenVSP sees the same in-plane incidence as LEP (it pitches sections in the vertical plane; without the correction rib 30 shows 1.25 degrees instead of 4.05), 64 wake nodes and the wake-based induced drag (the default 8 nodes gave negative near-field induced drag; wake nodes 8 to 128 change the wake-based CL by under 1 % and CDiw by about 5 %, which does not explain the roughly 12 % lift gap to Flow5). Orientation and twist conventions of LEP, Flow5 and OpenVSP were compared section by section.
- Trim balance from CFD (2 Oct, replacing a manual XFLR5 iteration): at a calage of 33 % (the input used on 2 October) the trim angle is about 5.1 to 5.4 degrees (Flow5) and 5.0 (OpenVSP), 35 to 36 km/h, L/D 7.4 to 8.0. LEP's Section 35 method 6 was reproduced to four digits from the Fortran. Observed in it: Cl, Cd, Cm and Cp are fixed inputs not tied to alpha, the centre of pressure is assumed at 22.5 % while the CFD resultant crosses at 30.5 % chord, and the line geometry is not shifted when the solved calage differs from Section 8. Studio got two views for this, Trim Setup and Trim Fly.
2.2 Findings in LEP's output (reported to Pere and Pawel on 5 October)
Finding | Evidence | State |
Tip rib position. Rib 31 is 17.44 cm from rib 30 along the arch; the xwimp writes the flat 12.07 cm. The Flow5 and OpenVSP tips end about 55 mm from LEP's. | Fix in a fork of the xwimp export (arch distance). Explicit-geometry Flow5 fork: all 31 ribs match the engine's rib loops to 0.69 mm worst, against 56 mm at the tip and 7.6 mm mean in the old chain; six regression tests pass. The twist pivot differs too (25 % in Flow5 and OpenVSP; 33.33 % in LEP). | measured; fork is local |
Washin. The twist is computed inside the loop that reads the ribs, before the last rib's chord exists. For gnuC2 the applied twist is 0.7408 of the intended one on ribs 2 to 30 (rib 30: 4.05 against 5.47 degrees; the last cell steps 1.95 degrees instead of 0.53); only the tip gets the full 6 degrees. | Reproduced from the engine output. Pere's 3.29.1 (12 Oct) leaves cases 1 and 2 unchanged and adds case 3, which we ran: it matches the intended twist to 0.0006 degrees. Studio's translated C++ core has the same loop and no case 3. | measured; not ported to Studio |
Decimal commas. Section 8 written as "47,77" is read as 47: calage 47.00 instead of 47.77, K 119.99 cm instead of 121.96. | Studio's input migration now normalises numeric-only records in every section; test added. | fixed locally |
disp (Section 2) is not written to the xwimp. | 3.29.1 still writes no disp column and the flat rib 31 spacing. | open, asked |
Effect on Flow5 at 7 degrees (viscous, 10 m/s, measured): the arch-distance and yaw fixes change CL by +0.6 %; the intended washin changes CL by +2.7 %, CD by +20 counts and Cm by -0.0085, the largest of the five variants tried.
2.3 Mac build kit for Pere's Fortran program
A macOS build of the Fortran LEparagliding 3.29.1 (Apple silicon and Intel) was made without touching the Fortran sources. On GitHub's macOS runners the output is byte-identical to Pere's committed example files and the programs are self-contained. Pere merged pull request 1 (six new files) on 21 October; pull request 2 (the six ready-made Mac programs) was waiting for him when last checked, on 21 October. Not tested by a person on a physical Mac.
3. The whole-wing Playground against LEP Section 35 (9-16 October)
The single-cell model (22 September to 4 October) has one cell between two ribs: orthotropic XPBD membranes (8000, 5000, 1000, 1500 N/m warp, weft, coupling, shear), ribs with holes, rods and patches, the mini-ribs "stitched from the back", lip cords, A/B/C line attachments, and pressure from a two-dimensional Cp. At its review on 28 September it had not converged to a result I would trust: the nose was still settling and the mini-rib and skin seam lengths conflicted at the trailing edge. From 9 October the work moved to the whole-wing Playground, with Flow5 pressure coefficients (30 cells, upper and lower, 40 cosine chord bins, 3 to 15 degrees) as the load source.
3.1 Result
Design calage 47.77 %, flexible wing, auto risers (A 3.4 cm, B 1.8 cm pull), my live check of 14 October (measured):
Quantity | LEP Section 35 | Playground |
Calage | 47.77 % | 47.74 % |
Angle of attack | 8.00 deg | 7.82 deg |
Airspeed | 10.01 m/s | 10.12 m/s |
Glide ratio | 8.46 | 8.59 |
Lift | 1036 N | 1041 N |
Wing drag / total drag (Cde = 1) | 66.7 / 122.5 N | 64.2 / 121.2 N |
A / B / C line load shares | 40 / 40 / 20 % | 56.7 / 34.5 / 8.9 % (not matched) |
With the wing, the whole line tree and the carabiners locked as one rigid body, plus LEP's forces, centre of gravity and line-drag point, the Playground reproduces LEP exactly (theta -0.897 against -0.896, alpha 8.00, K and pilot positions within 2 mm). So LEP's statics are consistent with the Playground; what differs is its aerodynamic load and line network (measured, 9 Oct).
3.2 Defects found and fixed in the Playground
Defect | Effect |
Cp mapping: 1126 lower-surface faces under the nose took the upper-surface Cp from their mesh tag. | Lift 10 to 13 % low, pressure thrust. After the fix lift at 8 degrees 1030.7 N (was 903.0; Flow5 1032.9). |
Frame: built on the first skin node of the central rib, not LEP's chord axis. | 0.254 degrees of tilt, 34 mm at K. At rest K now equals LEP's (y 1.1744, z 7.7956 m). |
Nothing held the two carabiners apart in free flight. | They closed from 0.21 to 0.106 m each side of the centre and the pilot sank 0.27 m instead of 0.20. A rigid spreader link was added. |
Angle of attack read on a span-averaged chord, and rib twist counted twice in the Cp lookup. | Reported alpha 1.4 degrees off LEP's central chord. Now read on the central chord (or on a chosen chord station). |
Gravity cancellation of the numerical node mass was wiped each step. | About 15 N of extra weight; settled lift 1054.7 down to 1039.9 N. |
Viscous drag missing: Flow5's friction (35 % of the drag at 8 degrees) is not in the Cp field. | Now applied as tangential shear sized from Flow5's CDv; the earlier one-direction traction (26.6 N) became 22.2 N and the glide ratio moved from 8.63 to 8.92. |
Decimal commas (section 2.2). | Calage 47.00 instead of 47.77 in every earlier export. |
3.3 Where K settles, and the line shares
- Left alone, K settles at 52 to 55 % of the chord against LEP's 47.77. K hangs 7.4 to 7.8 m below the chord, so 1 degree of force tilt is 130 mm and 5.3 % of calage. The settling happens within 0.25 s of the loads coming on; ramps, solver quality and the launch pose make no difference (measured). The line shares at the canopy come out A 53, B 44, C 2.6 % (measured), a chordwise rather than spanwise mismatch; real line elasticity from LEP Section 18 was added and changes little (stretch about 2 mm per path).
- How the chord is read moves the calage by 2.4 points on the same wing shape: reading every rib gives 47.66 % and theta -1.22 degrees against LEP's 47.77 and -1.26; the central rib alone gives 49.46 % and -1.56 (measured).
- Added to Studio's Playground on the way: a Flow5-against-Playground load check per angle and per cell, automatic risers that hold a calage, heading hold, window capture (F12), layout comparison and a captured-pose ghost in R, theta, z about K, a convergence window, LEP trim start, a riser tuning window, rib overlay and wing-curve windows.
4. Meshing, solvers,add ons and the wing tip (16-23 October)
- Whole-wing mesh. The Playground's own build dropped 27 of 43 cross straps at 55 % chord and shifted others by up to 17 cm. After a research round: whole wing, Gmsh kept, every strap and diagonal is meshed cloth, the skin stays structured on shared cosine stations. A mesher with a connection check was written (240 straps, none flagged); line attachments are tapes plus a half-circle patch with graded skin patches (skin triangles under 20 degrees near line points: 35.7 % down to 1.6 %); 11,490 loose nodes (a quarter of all) were removed; a table of eight materials was added. One regression was found and fixed: a rewrite deleted a helper and six ribs silently failed to mesh in earlier hand-outs.

Cloth/structural mesh of the all the parts of the wing

Deformation due to trim speed
- Solvers. In an isolated copy of Studio the whole wing can be captured at any moment and solved by static Newton, quasi-static Newton, since 22 October, mem4py (membrane FEM with dynamic relaxation, MIT licence, with Windows and fabric-law patches). On the same frames Newton and mem4py agree to 0.3 to 0.5 mm rms over the canopy (up to 1.6 mm at the tip ribs) and to 0.02 N rms in line tension (measured); mem4py is not faster (6 to 8 minutes against 2 to 8 for Newton, depending on the frame). Full flight state can be saved and restored from disk; jobs run on a three-machine cluster.

Convergence parameters

Some of the parameters that can be set - Groundhandling, Trim speed etc

Realtime comparison between rigid and flexible wing

Realtime comparison between rigid and flexible wing (continue)

Various comparisons of flex wing vs Rigid

Magnified rib displacement from rigid comparison
- Convergence of the flight itself. The XPBD end frame is 2.6 to 3.3 mm rms from the static equilibrium; the sharp convergence test is the Newton diagnostic. Cloth bending was reduced from 2000 N m/rad per hinge to D = 1e-5 N m (my own cloth measured 10 micro-N m per metre; the wing cloth itself is not measured).
- Wing tip. The tip cells opened within 1 s in every build from 19 October; bisecting with one unchanged checker showed the reduced cloth bending as the main cause (measured). The accepted fix is a closed tip seam with a hem and no rods: free tip edges 134 down to 0, trim unchanged against the original mesh (lift 1037.5 N, drag 52.5 against 52.7 N, alpha 7.248 against 7.258 degrees); over the flight the tip fold angle grows from 65 to 111 degrees (66 to 125 with the original open slit). A finer last cell blows up the solver.
- Connection lines to cloth. Connection to more than 1 nodes and simulating straps with line elements and automatic meshing around these areas

Line connection point and the modeling of the v-strap in a halfcircle reinforcement strap
- Adding matl properties. Not all properties are currently specified in the Lep FOrtran program and in his development environment i t might need overwriting to test.

Material properties overrides

Trim balance diagrams - LP vs Playground - Chord line can be determined by the front part of the chord for comparison.
5. The deformed wing back into Flow5, and the calage sweep (21-26 October) - First FSI
5.1 Is the Playground's drag drop real? (21 Oct)
No (measured). A Playground flight with the deformed wing gave a wing drag 13 to 22 N lower than the design wing. Flow5 rebuilt on the deformed wing's ribs gives the same drag as the design wing at the same lift (-0.3 N); the drop is an artefact of the Playground's fixed pressure map on a tilting skin.
5.2 FSI loop at 47.77 %
Each cycle: take the flight's frame, extract its ribs as Flow5 sections (explicit geometry, 2 strips per cell, viscous, 3 to 10 degrees, about 13 minutes), build a new pressure table, continue the flight for 10 s, check against a static Newton solve.

47.77 % | Fixed table (cycle 0) | FSI converged (cycle 3) | LEP Section 35 |
Angle of attack, wing | 7.25 deg | 7.84 deg | 8.00 deg |
Airspeed | 10.45 m/s | 10.02 m/s | 10.01 m/s |
Wing drag | 51.3 N | 71.5 N | 66.7 N |
Total drag / glide ratio | 111.6 N / 9.29 | 127.0 N / 8.16 | 122.5 N / 8.46 |
Lift | 1037 N | 1035 N | 1036 N |
Wing L/D | 20.3 | 14.5 | 15.5 |
The Playground reads its angle of attack 0.25 degrees below the angle to the rib node line; this is a fixed offset between the node line and LEP's chord line (the same for rigid and flexible wings and every calage), and the Flow5 sections use LEP's chord reference (CL times area 15.240 against 15.301 m2, Cm identical), so no correction of the Flow5 table is needed.
The remaining 4.8 N of wing drag against LEP (5.5 N against Flow5's own result) was traced (measured, exterior pressure only): the mouth faces are loaded and the interior pressure is exactly the stagnation pressure, so the Playground flies as a closed wing, like Flow5 and like LEP at Cde = 1; the mouth band itself agrees with Flow5. The excess sits in the nose (x/c below 0.06): the Playground has 0.30 m2 more wind-facing area there (10 %, +8.6 N drag), partly offset by -3.8 N on the rear lower surface. Rib outline nodes of the Playground lie on the Flow5 sections to 0.8 mm rms; the cloth between the ribs is outside the straight loft that Flow5 uses (upper skin about 31 mm and lower about 5 mm at 3 to 9 % chord), which is the designed ballooning. A crude estimate of that billow gives 0.37 to 0.44 m2, the same size as the measured excess (inferred; billow was not switched off to isolate it). The rear lower surface is not explained.

Centre cell, nose, in LEP's chord frame: green squares are the Playground's rib nodes (on the Flow5 section), red dots its skin nodes half way between the ribs, dashed line the straight Flow5 loft at mid-cell.
5.3 Calage sweep
Zero risers (K calage about 55 %) down to 30 % in steps of 5 %, flexible and rigid, 20 to 30 s flights, on two machines. Static Newton and mem4py were run on every flexible end frame. The workbook (15 tabs, 28 charts, also uploaded as a Google Sheet) holds all aerodynamic parameters, twist per rib, movements, edge and strap tensions, and the solver comparison.

Flexible: end frame of each XPBD flight; star: the deformed-shape-into-Flow5 result at 47.77 %; diamond: LEP Section 35. All flights except the star used the fixed pressure table.
- From 55 % to 30 % calage the flexible wing goes from 8.6 to 4.2 degrees and from 9.7 to 12.9 m/s; riser A is pulled 0 to 138 mm. At 4.6 m from the centre line the rib twist changes by -1.04 to -1.44 degrees relative to the centre rib (wash-out, relative to the rigid design shape).
- The sweep used the fixed pressure table: its flexible wing drag (51 to 52 N, wing L/D about 20) is the artefact of section 5.1, and its angle at 47.77 % is about 0.6 degrees below the FSI result. It is reliable for the trends of angle, speed, riser pull and shape, not for drag.
- Accuracy on the flexible shapes: mem4py against Newton 0.32 to 0.53 mm rms (95 % within 0.9 mm); the XPBD flight end against Newton 2.6 to 3.3 mm rms; line tensions mem4py against Newton 0.02 N rms (largest line about 330 N).
- Limits: the rigid wing could not reach 30 % (riser A at its 261 mm, K only 36.8 %). The Flow5 pressure table covers 3 to 15 degrees: 25 % (about 3.4 degrees) would still be inside it and was not run; 20 % (about 2.6 degrees) would not.

Twist of all 61 ribs relative to the centre rib: top, change from the rigid design wing for each sweep point and the FSI result; bottom, total twist against the twist the design file intends (dashed green, 6 degrees at the tip) and the twist the engine applied (grey), which is the washin finding of section 2.2. The straight tip ribs 59 and 60 use their neighbour's axis.
6. Known limits of these results
- Everything in sections 3 to 5 used the under-twisted washin of LEP 3.28 and 3.29 (section 2.2 - error in previous code); the Flow5 pressure table, the sweep and the FSI loop have not been run with the corrected twist.
- The Flow5 pressure table covers 3 to 15 degrees only and returns zero load outside it. One wing (gnuC2, a C-type double skin) has been analysed.
- The A/B/C line shares (57/34/9 % against LEP's 40/40/20 %) and the 52 to 55 % calage at which K settles without risers are not matched.
- The billow drag excess was explained by estimate, not by switching billow off; the rear lower surface (x/c 0.75 to 1.0, -3.8 N) is not explained. Billow in the above cases was not used for input from Flow5 and uses a smooth wing. The estimated drag is slightly higher to the large frontal a larger friction area.