3D Dynamics - Vibrations and aircrafts
Tl;DR
The moment 2D mechanics is not enough.
Intro
- WHY Im writting this post: Bc I want to fully understand all 3d effects that will affect me during my ULM/PPL prep and as a way to test my mbsd oss fwk
- What Ive learnt with it: Ive ended
The dimension reduction worked great for cars.
But how about airplanes?
Can we use 2D or 3D is a must?
3D Dynamics x Airplanes
While 2D is the “speed king” for automotive refinement, the airplane use case is where the Dimensional Reduction Lemma finally hits a hard wall.
In an aircraft, you aren’t just sitting on a chassis that moves up and down; you are strapped to a power plant that is physically trying to twist the entire airframe.
For an airplane, 3D is a must for three primary reasons:
- The Gyroscopic Precession (The “Cross-Axis” Moment)
A spinning propeller and crankshaft act as a giant gyroscope.
In a car, the chassis stays relatively level.
In a plane, you are constantly pitching (climbing/diving) and yawing (turning).
The Physics: If you have a massive propeller spinning at 2500 RPM and you suddenly kick the rudder to yaw the plane left, the gyroscopic effect generates a massive pitch moment that tries to pull the nose up or down.
The Solver Requirement: This is a cross-product effect ($\vec{M} = \vec{\omega} \times \vec{L}$).
- Thrust-Moment Coupling
In our 2D engine model, we focused on “shake” (inertial forces). In an airplane, the Thrust is a massive constant vector acting along the $z$-axis (the one we ignored in 2D).
The Offset: If the engine is mounted even slightly above or below the center of gravity of the wing or fuselage, that thrust creates a permanent pitching moment.
Engine Mounts: Airplane mounts (often called “Lord mounts”) have to handle this constant axial tension/compression while still isolating the $1\times$ and $2\times$ vibration from the cockpit. A 2D model literally cannot see the $z$-axis thrust.
- Six-Degree-of-Freedom (6-DOF) Airframe Response
In a car, “Ground” is a stiff, heavy chassis.
In a plane, the “Chassis” is a lightweight, flexible aluminum or carbon fiber tube.
Complex Transmissibility: An engine vibration might start as a vertical shake at the nose, but because the fuselage is long and flexible, it might manifest as a tail-wagging vibration at the rear.
The Mount Matrix: Airplane mounts are often arranged in a “ring” or “dynafocal” configuration, where the mounts are angled so their focal point is the engine’s CG. This makes the $K$ (stiffness) matrix a dense 6×6 block that couples every single translation to a rotation.
| Feature | 2D Multi-Body | 3D Multi-Body |
|---|---|---|
| Piston Inertia | Perfect | Same |
| Combustion Force | Perfect | Same |
| Propeller Thrust | Hidden | Visible |
| Propeller Gyroscopics | Impossible | Required |
| Tail-Wagging (Yaw) | Impossible | Required |
If you are designing the internal balance of the engine (e.g., “Do I need counterweights on this Lycoming O-360 crankshaft?”), the 2D phasor framework is still the best and fastest tool.
But the moment you want to know “Will the pilot feel a vibration in the rudder pedals during a steep turn?”, you have to leave the 2D world and embrace the full 6-DOF 3D dynamics.
MBSD 0-9-0 Simulation
Coming from the 0-8-0 release, its time for the 0-9-0 where we take a good foundation around quaternons
scp jalcocert@192.168.1.2:/home/jalcocert/multibody-tests/v-0-8-1-concerns.md . I got inspired by this project’s roadmap: https://dbackup.app/roadmap/
In fact, thats sth i want to have in each of my project soon, with a /changelog as well, that feeds from the same the repo has.
No open fatigue around here.
For the 0-9-0 was like 🚀
#http://192.168.1.2:3034/hermesagent/mbsd/src/branch/oss-core-2d/web
cd /home/jalcocert/Desktop/mbsd-framework/mbsd-core
git switch main
git merge --ff-only v0.9.0-dev
git tag -a v0.9.0 -m "MBSD Core v0.9.0"
git push origin main
git push origin v0.9.0
awk '
/^## v0\.9\.0 / { found=1; next }
/^## / && found { exit }
found { print }
' CHANGELOG.md | gh release create v0.9.0 \
--repo JAlcocerT/mbsd-core \
--verify-tag \
--title "MBSD Core v0.9.0 - Spatial Translational Dynamics" \
--notes-file - \
--latestThen examples:
cd /home/jalcocert/Desktop/mbsd-framework/mbsd-examples
git switch main
git merge --ff-only v0.9.0-dev
git tag -a v0.9.0 -m "MBSD Examples v0.9.0"
git push origin main
git push origin v0.9.0
awk '
/^## v0\.8\.0 / { found=1; next }
/^## / && found { exit }
found { print }
' CHANGELOG.md | gh release create v0.9.0 \
--repo JAlcocerT/mbsd-examples \
--verify-tag \
--title "MBSD Examples v0.9.0 - Spatial Translational Dynamics" \
--notes-file - \
--latestThe remaining roadmap: fixed-orientation constrained translational dynamics
- 0.9.0:
real rotational dynamics and orientation integration - 0.9.1: rotational joints, forces and torques.
- 0.9.2: 2D/3D API symmetry, documentation and API freeze.
- 1.0.0: stable minimal 2D/3D kinematics and dynamics.
v0.8.1 contains no dynamics. All four v0.8.0 concerns are now addressed:
- Contradictory drive value/velocity laws are rejected.
- Trajectory diagnostics compare pose derivatives with reported linear and angular velocities.
- model_id identifies structure; excitation_id identifies sampled drive behavior.
- Highly underconstrained systems use rank-aware minimum-norm projection.
- Nested result validation remains fully hardened.
Verification:
- Core: 95 tests passed.
- Examples: 28 tests plus all runnable examples passed.
- Ruff, builds, Twine and isolated wheel smoke tests passed.
- Both dev branches are clean.
Latest commits:
- Core: 3c81df0
- Examples: 7a4c19c
And yes: the former 0.8.2 dynamics preview belongs in 0.9.0. After releasing 0.8.1, we should create a fresh v0.9.0-dev from it and selectively bring over the useful old dynamics work rather than releasing v0.8.2-dev.
All six findings are addressed on v0.8.1-dev.
- Correct rotating-frame centrifugal, Coriolis and Euler forces.
- Correct physical reaction sign: -Cq.T @ lambda.
- Reject non-unit quaternions and invalid/mismatched diagnostics.
- Export and validate unit-separated spatial residual metrics.
- Include CAM and point-on-line Jacobian time derivatives.
- Clearly label the spherical example as an underdetermined kinematic path.
Verification:
- Core: 101 tests passed.
- Examples: 28 tests and all examples passed.
- Ruff, builds, Twine and isolated-wheel smoke tests passed.
- Both repositories are clean.
No spatial dynamics was added.
That work starts with the fresh v0.9.0-dev line after releasing 0.8.1.
All five videos and engine-gallery.mp4 (placed at multi-body/external/mbsd-freecad/exports/engine-gallery.mp4) were rebuilt and verified.
Re-render with:
make inline-engine-videos
make engine-reelPrepared the paired 0.9.0 release candidate across mbsd-core and mbsd-examples.
Key changes:
- Added restricted simulate_fixed_orientation() spatial translational dynamics.
- Added world-frame force descriptors, accelerations, multipliers, and physical reactions.
- Added position-, velocity-, and acceleration-level diagnostics.
- Added strict dynamic-result JSON schema and reader.
- Added optional coordinate-drive acceleration laws.
- Replaced fixed-step derivative validation with adaptive Richardson estimation.
- Made spatial result arrays read-only and strengthened in-memory validation.
- Clarified and renamed rotating-frame pseudo-force handling while retaining compatibility.
- Added analytic force-driven and constrained-translation examples.
- Updated versions, lockfiles, changelogs, compatibility manifests, CI references, documentation, and the roadmap.
Important files:
- spatial dynamics implementation (mbsd-core/src/mbsd/spatial/dynamics.py)
- spatial builder API (mbsd-core/src/mbsd/spatial/builder.py)
- Core changelog (mbsd-core/CHANGELOG.md)
- force-driven example (mbsd-examples/examples/spatial_force_driven_translation.py)
- constrained translation example (mbsd-examples/examples/spatial_constrained_translation.py)
- roadmap (roadmap.md)
Validation completed:
- Core: 112 passed
- Examples: 31 passed
- Ruff passed in both repositories.
- Full example workflow passed.
- Built mbsd-0.9.0 wheel and source distribution.
- Built mbsd_examples-0.9.0 wheel and source distribution.
The release boundary remains explicit: no quaternion integration, torque response, offset-COM dynamics, contact, or coupled six-DOF rotational dynamics.
MBSD 0.9.0 — Spatial Translational Dynamics
The release boundary should remain explicit: it is spatial because translation can occur along arbitrary 3D directions, but it does not yet include rotational dynamics, torque response, quaternion integration, offset-center-of-mass effects, contact, or fully coupled 6-DOF motion.
I put together an engine lab around the old mbsd fwk with some typst reports
But it was about time to try freecad around the new multi-body:
https://app.multibodysystemsdynamics.com/?demo=slider-crank&r=0.35&l=1.15&e=0&rpm=60&steps=241
V6 x Plane
Created roadmap-v6-airplane.md (multi-body/external/mbsd-freecad/roadmap-v6-airplane.md).
The physics needs one clarification: acceleration along one axis does not automatically cause rotation around another. Cross-axis rotation needs:
- A force acting away from the aircraft’s center of mass.
- Engine or propeller reaction torque.
- Gyroscopic reaction from pitching/yawing a spinning propeller.
- Asymmetric aerodynamic forces.
- Inertial-axis coupling.
MBSD 0.9.2 is ready for a useful demonstration where the entire aircraft is one rigid body and engine/propeller effects are documented input loads. It supports translation, quaternion rotation, full inertia tensors, offset forces, torques, and Euler gyroscopic terms.
It is not ready to dynamically couple separate pistons, crankshaft, propeller, mounts, and airframe.
0.9.3 coupled six-DOF foundation and especially 0.9.4 constrained rotational dynamics.The roadmap proposes seven scenarios, including:
- Centered versus offset thrust.
- Pitch producing gyroscopic yaw.
- Yaw producing gyroscopic pitch.
- Engine spin-up producing roll reaction.
- Idealized V6 shaking.
- A combined take-off sequence.
- Reversible spin and manoeuvre directions to verify every torque sign.
V6 x Plane x 0-9-4
After releasing the next bit towards the v1.0:
Conclusions
Who could have guessed: for bicycles and for airplanes we have to level up the modelling to 3D
Consulting Services
DIY via ebooksFAQ
- https://app.fireflies.ai/perks
- Perplexity and commet (from W11 only on the desktop)
do we really need betterpic and similar tool?
Or have they been superseeded by image 2 from openai?
https://www.youtube.com/watch?v=qfWpPEgea2A&t=191s
https://www.youtube.com/watch?v=rlLwSr-wIAg&t=431s
aristotel onassis