6DOF Flight Simulator
No active aircraftLift 1× · drag 10× · arrows anchored at quarter-chord / y_MAC
Control deflections (deg)
Active rate damping
Negative feedback: command correction = −gain × body angular rate (rad/s). Applied after expo, before travel limits and Q scaling. All gains span 0 to 10 on a logarithmic scale, including zero at the left endpoint. Beta feedback reverses the original correction (× −1), adding +gain × sideslip angle (rad) to yaw; yaw-rate and beta corrections add together. Settings autosave in MiniSIM.Damping.
Reduces nose-up pitch authority within 2° of the AoA limit. Nose-down recovery and differential roll/yaw remain available.
Joystick stick gain
Aircraft trim
Aircraft loading
Percentages of the fuel and expendable loads in the aircraft JSON. SM = (neutral point − current CG) / wing MAC, shown as percent MAC.
Aircraft and flight condition
Joystick-to-control-surface matrix
Mixing gains: −10 to +10. Travel limits are degrees; throttle uses percent. Expo Rate is 0–1 (0 is linear, 1 is cubic). Live output previews the current table, including trim and dynamic-pressure scaling; Valid edits automatically apply and save. Missing surfaces and landing gear placeholders are disabled.
Q feel is already active for pitch/roll and optionally rudder: full authority through 100 KEAS, then pressure-based scaling. Set its exponent under Calibrate Joystick → Q Gain. Trim and throttle are unaffected.
Matrix loading…
Opening MiniSim stores ControlMatrix, SurfaceSettings and InputChannels under MiniSIM in the aircraft JSON and sends them back to JETcentral when connected. Valid table edits, added input columns and restored defaults automatically apply and save after a short typing pause while flight continues. Apply Matrix or Save to JSON saves immediately and pauses the simulation. Save to JSON updates the active aircraft settings without exporting a file. Joystick calibration, stick gains and Q Gain remain local device settings.
Model Explanation
Aerodynamic model and sources
Optional wind-tunnel calibration is saved in MiniSIM.WindTunnelCalibration. It matches selected measured lift and drag curves with shape-preserving interpolation and adds their difference from the neutral blade-element reference to live forces. Original control/rate increments, surface stall indicators and aerodynamic pitching moments remain. The separate body-drag allowance is capped at the measured whole-aircraft drag minimum when needed, so it cannot exceed the calibrated drag budget. Corrections are distributed using the original surface lift proportions (projected lifting-area proportions near zero total lift), with separate drag proportions; these are visual/model assumptions, not measured individual surface loads. Beyond measured AoA, the correction fades over 10° toward the estimated curve, with the neutral lift capped at the measured peak and neutral drag bounded by the measured minimum. Lift/drag data cannot independently identify tail loads, control derivatives or pitching moments; no additional pitch moment is inferred. Use Uncalibrated Model restores the original force model.
Finite-wing prediction references: DeVoria & Mohseni: low-aspect-ratio wing model and experiments (Helmbold slope) · Embry-Riddle: finite-wing slope and induced downwash · NASA TN D-2373: swept-wing stall. Stall and CLmax estimates require section data for accuracy; low-AR or sweep alone does not establish vortex breakdown. The post-stall continuation follows NASA Viterna–Corrigan. No automatic sharp-edge delta vortex-lift bonus is assumed for rounded NACA surfaces.
Each element uses its local swept flow, area, airfoil and control deflection. Low-speed finite-wing lift slope uses a Helmbold–Diederich lifting-surface estimate with aspect ratio and half-chord sweep, plus the configured span-efficiency correction. Local AoA uses a unit chord normal to the swept span, avoiding an extra sweep amplification. Induced drag: CDi = CL² / (π e AR). AR belongs to the complete parent surface, not the small element. Default span efficiency is 0.85; estimated profile drag and stall behavior are engineering assumptions, not measured polars.
MIT Unified Engineering F9: finite-wing lift slope and induced drag · NASA Glenn: induced drag and aspect ratio · MIT F3: thin-airfoil lift, camber and pitching moment · NASA TN D-2373: A Review of the Stall Characteristics of Swept Wings
Blade-element model loading…
Wing-to-tail downwash reference: MIT 16.333 static stability notes (pages 2-5/2-6). The conventional elliptic-wing estimate reduces the aft tail’s effective angle of attack.
Control-effectiveness reference: MIT’s thin-airfoil notes — the thin-airfoil camber integrals provide the basis for the ideal trailing-edge control lift and pitching-moment increments.
Show Aero Forces uses a fixed arrow scale based on aircraft span and current weight; drag arrows are exaggerated 10×. Increasing another surface’s load does not shrink the other arrows. Tail downforce can decrease during nose-up rotation because local pitch-rate flow produces damping, and increased aircraft AoA can also unload the tail. Behind Aircraft animates the enabled control surfaces using the same applied deflections as the flight model, including trim and travel limits. Ailerons, elevators, rudders and flaps rotate about their hinge lines; a stabilator rotates the complete horizontal tail about its quarter-chord line. Controls remain live while paused.
The HUD airspeed tape shows KCAS from an ideal pitot/static indication, with no instrument or position error. It uses local atmospheric pressure and compressible-flow pressure relations; supersonic flow includes the normal shock ahead of the pitot tube. Mach appears above the airspeed tape. Altitude is in feet and vertical speed is in fpm. References: NASA pitot/static indication and NASA normal-shock equations.
How the blade-element flight model works
MiniSim divides every enabled lifting surface—wings, horizontal and vertical tails, winglets, dorsal surfaces and strakes—into small spanwise elements. Each element uses its own position, chord, area, sweep, dihedral, incidence and twist from the aircraft geometry. Mirrored surfaces have separate left and right elements; disabled surfaces contribute no aerodynamic force.
Enabled two-section wings are discretized panel by panel: the inner and outer panels each use their own span, root/tip chord, sweep, dihedral, incidence, twist and airfoil polar. The outer panel starts at the inner panel’s endpoint. Projected-semispan definitions are converted to true panel span using dihedral. Finite-wing corrections use the combined parent surface’s area and aspect ratio.
At each time step, the local airflow is the aircraft velocity at the center of gravity plus the velocity caused by rotation: Vlocal = VCG + ω × r. Flow is projected perpendicular to the local swept span direction. This determines each element’s angle of attack and dynamic pressure. Sideslip on a swept wing can give the left and right wings different loads; roll, pitch and yaw rates also change local airflow and generate aerodynamic damping.
The element’s airfoil polar supplies lift, profile drag and pitching moment. Supplied AirfoilPolar data are used when present; otherwise MiniSim estimates section behavior from thin-airfoil theory and NACA four-digit camber, with an approximate stall model. Finite-wing lift and induced-drag corrections use the complete parent surface’s aspect ratio and span efficiency, defaulting to 0.85. Lift and drag are scaled by local dynamic pressure and element area. Horizontal-surface S is the total area of both halves; vertical-fin S is per fin, so mirrored V tails and winglets contribute twice that area. The flight update uses smaller internal integration steps when low inertia makes angular damping too fast for the normal 10 ms step, preventing numerical stall/recovery oscillation. The model sums all element forces and their moments about the CG, including quarter-chord airfoil moments, then integrates the aircraft’s six-degree-of-freedom motion with gravity and thrust.
Elevators, ailerons and rudders affect elements inside their own span. Ideal trailing-edge control effectiveness depends on control-to-parent chord ratio. When the horizontal tail has no enabled elevator, its whole area acts as a stabilator, with pitch deflection changing every tail element’s effective incidence. Elevator and stabilator travel is ±25°, including trim. If the horizontal tail is absent or disabled, the existing elevon choice can use symmetric aileron deflection for pitch and differential deflection for roll.
Wing downwash correction at the horizontal tail
The lifting wing deflects its wake downward, reducing the effective angle of attack at an aft horizontal or canted V tail. The corrected airflow is resolved into each tail’s local lift plane; a truly vertical fin does not receive the canted-tail pitch correction. MiniSIM first integrates the current main-wing loads, then estimates the downwash angle using ε = 2 CL,w / (π ARw), in radians. Here CL,w is wing lift divided by freestream dynamic pressure and wing area, and ARw is the complete wing’s aspect ratio. This is the elliptic-lift-distribution approximation in MIT 16.333, Lecture 2: Static Stability, pages 2–5 and 2–6 (PDF).
That angle rotates the local airflow at enabled horizontal-tail elements aft of the wing, giving approximately αtail = αlocal + itail − ε before adding control effects. Element lift is perpendicular and drag parallel to the full corrected local airflow, including downwash and rotational velocity. The spanwise projection sets section coefficients and dynamic pressure; it does not redirect drag. Tail lift is perpendicular and tail drag parallel to this corrected airflow; their rotated forces and moment arms determine the pitching moment. The same correction is used in initial trim, live flight, Auto Trim and whole-aircraft lift/drag sweeps. Accounting for this reduction in tail incidence corrects the excessive tail force that previously demanded large elevator trim angles. MIT’s page 2–6 explicitly describes resolving tail lift and drag relative to the local wake velocity.
MiniSIM applies a uniform, instantaneous downwash angle to the aft horizontal tail only. It does not resolve the wake’s spatial shape, transport delay or tail-position dependence, or add a separate tail dynamic-pressure loss. The wing’s own finite-span correction is already included. This approximation is less reliable near stall or in strongly separated flow.
This is a quasi-steady model with estimated polars where measured data are unavailable. It includes approximate wing-to-horizontal-tail downwash, using the current wing lift and aspect ratio; a resolved wake, general surface interference and dynamic stall are omitted. Imported whole-aircraft stability derivatives are not added to the element forces. A residual body parasite-drag estimate acts at the CG.
Whole-aircraft lift and drag curves
The Whole-Aircraft Lift Curve & Drag Polar button above the control matrix sweeps angle of attack from −15° to +35° with the current control and trim deflections held fixed. It sums every enabled blade-element surface and the simulator’s supplemental body drag, then computes wind-axis lift and drag coefficients using wing reference area. Speed and density come from the current flight condition; sideslip and angular rates are zero and engine thrust is excluded. This is a notional-airflow AoA sweep: velocity is V[cos α, 0, sin α] in body coordinates, with speed and density fixed. At each angle the simulator computes every element’s local forces, sums them, projects into wind-axis lift and drag, and divides by freestream dynamic pressure times wing reference area. No flight time is advanced and no trim solution is performed at individual sweep points. These are static model estimates rather than a retrimmed flight envelope. Each plot has its own Save Plot button for a PNG; labels can be dragged and their positions are included in the export.
Manual and automatic trim
The trim cross beside Calibrate Joystick changes nose-up/down pitch trim and left/right roll trim in 0.5° steps. These offsets are added to pilot commands and appear in the live surface outputs. Auto Trim balances pitch, roll and yaw aerodynamic moments using the current airspeed, angle of attack, sideslip, altitude and flap configuration, assuming zero angular rates. It adjusts pitch, roll and rudder trim within available surface travel. Position, attitude, speed and throttle remain unchanged. This balances moments; it does not guarantee level flight or constant speed. The status reports when a residual moment remains.
How the thrust model works
MiniSim runs the Engine Model widget’s shared calculation headless for initial trim and every flight step. It uses the loaded aircraft’s Engine dictionary: engine count (Number), sea-level dry and wet thrust (T_SL.Mil and T_SL.Max), dry/wet lapse coefficients (F1dry, Edry, F2dry, F1ab, Eab, F2ab), throttle-ratio parameter (TR), and TSFC and Model parameters. Available thrust changes with the current Mach number and standard-atmosphere altitude. Altitude is limited to the engine model’s supported range of 0–100,000 ft.
For an engine without afterburner, 0–100% throttle scales dry thrust from zero to full military power. For an afterburning engine, 0–80% throttle covers that dry-power range; 80–100% adds the increment from full military to full wet thrust. If afterburner provides no additional thrust at the current flight condition, thrust remains at full dry power. These are linear power mappings; the model has no idle-thrust or engine spool-up dynamics.
Initial trim solves for the power needed to balance calculated drag, using the same dry/afterburner mapping as flight. If required thrust exceeds available power, the command is limited to maximum available thrust. The shared engine result already includes engine count. MiniSim converts the total thrust from lbf to newtons and applies it along the aircraft’s forward body axis; individual engine positions, thrust-vectoring and engine-offset moments are not modeled.
The shared TSFC model also calculates fuel flow in lb/hr at the current flight condition and power setting. Fuel is not consumed from the aircraft’s mass during the simulation, unless you change the loading sliders. Fuel and expendable-payload percentages update the current mass, center of gravity and roll, pitch and yaw inertias immediately.
Where the moments of inertia come from
The Fuel and Expendable payload sliders scale the individual loads in Weight at their stored Xcg, Ycg and Zcg locations. MiniSIM subtracts the removed mass’s parallel-axis inertia and its intrinsic component inertia, then adjusts pitch and yaw inertia for the new longitudinal CG. Component dimensions provide uniform-box inertia estimates; shared Weight Model local/calibrated pitch contributions are used when supplied. Loads without dimensions or component contributions use the point-mass approximation. Returning both sliders to 100% restores the imported baseline without cumulative scaling.
The moments of inertia describe resistance to angular acceleration; they are separate from aerodynamic moments. MiniSim, HQ and FQ read the top-level Inertia dictionary first, then direct aircraft fields and saved Weight Model results for missing values. Legacy nested fields are searched only as a final fallback for Ixx, Iyy and Izz (also accepting InertiaIxx/InertiaIyy/InertiaIzz and I_xx/I_yy/I_zz). Positive imported values are assumed to be in slug·ft² and multiplied by 1.35581795 to obtain kg·m²; the JSON Units field is not currently interpreted.
If an inertia is missing or invalid, MiniSim uses simple estimates: Ixx = m b² / 12, Iyy = m L² / 12, and Izz = Ixx + Iyy. Here m is aircraft mass from Weight.W_TO, with Weight.W_empty + Weight.W_f as the fallback; b is wingspan and L is aircraft length, converted to SI units. These are rough mass-and-dimension estimates, not a detailed integration of the aircraft’s mass distribution. The rotational equations include coupling between roll, pitch and yaw rates but use a diagonal inertia matrix; products of inertia such as Ixz are ignored.
Sources: MIT’s thin-airfoil notes; MIT finite-wing lift and induced drag; NASA Glenn induced drag. The numerical inertia fallbacks and estimated polar defaults are implementation assumptions.