Principia replaces Kerbal's sphere of influence with real n-body gravity
𝑛-Body and Extended Body Gravitation for Kerbal Space Program
At a glance
- What is it?
- Principia is a Kerbal Space Program mod that computes n-body and extended body gravitation, so a vessel is pulled by every celestial rather than by one dominant body at a time. It is written in C++ with a research grade toolchain and expects players to read a concepts guide before they can use it.
- Who is it for?
- Adopt Principia if you want to plan real interplanetary trajectories and your idea of fun includes reading a concepts guide about plotting frames and flight planning. Do not adopt it for casual sandbox play, because the mod changes the physics model rather than adding content, and it works best alongside a mod such as RealSolarSystem that supplies real celestial bodies.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 7, 2026, and from our analysis. They are not legal advice.
Star history
- mockingbirdnest/Principia940 ★ · -2
| Repository | 2026-10-21 | 2026-11-07 |
|---|---|---|
| mockingbirdnest/Principia | 942 | 940 |
-2 Stars in the last 17 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The sphere of influence model is what Principia throws away
Stock Kerbal Space Program gives you a toy physics model. A vessel orbits whichever celestial body currently has the largest gravitational pull on it, and influence switches at discrete boundaries. Principia is a mod that implements n-body and extended body gravitation instead, and the README puts the difference plainly: instead of being within the sphere of influence of a single celestial body at any point in time, your vessels are influenced by all the celestials.
That sounds like a subtle numerical tweak, but it changes what a mission can be. With a single dominant body, a vessel near one planet barely feels the others, and gravity assist geometry is limited by which body happens to dominate. With every body pulling at once, the flight path is the sum of many small influences, which is what makes missions that are more complex and more realistic than in the stock game possible.
The documentation also names the obvious use case, a mod like RealSolarSystem which has real-life celestials, since a realistic solar system is exactly the situation where the toy model breaks down. The repository is C++ with an MIT licence, and the last push was on 2026-10-18, so the code is being worked on right up to the current cycle.
The concepts guide is a prerequisite, not a nicety
The README is unusually direct about this. N-body gravitation is more complex than the toy physics of the stock game, and before using the mod the maintainers recommend reading the concepts document, which explains the most important parts of Principia. Two items in it are singled out: the plotting frame and flight planning.
The plotting frame is the coordinate system in which trajectories are drawn. This is the conceptual load that trips people up. In a game where everything happens inside one body's reference frame, you can reason about a manoeuvre as a change in that frame. Once several bodies are pulling simultaneously, the frame you draw in stops being the frame you fly in, and the difference between them has to be understood rather than guessed. The guide also points at a tutorial showing how to go to the Mun with Principia in an energy efficient manner, and at a separate guide on using the support for rendezvous.
Two more reading pointers exist for people who hit trouble. The FAQ page covers how to install the mod, how to report bugs, and it documents the known issues and limitations. The change log gives a fairly detailed description of the new features in each release, which is the fastest way to find out whether a bug you are seeing was fixed last month or is a known limitation you have to plan around.
Releases arrive on the new moon and carry mathematician names
The release cadence is unusual and easy to remember. Principia is released on every new moon with whatever features and bug fixes are ready at the time, and the README describes this as ensuring relatively timely improvements and bug fixes. The current release is Lichnerowicz, the October version, and it adds new features and bug fixes.
The names follow the pattern of the mathematicians the physics comes from, so a Lichnerowicz release is expected to be a regular monthly build rather than a major version bump. The download page offers binaries for Ubuntu, macOS and Windows, and the release covers game versions 1.8.1, 1.9.1, 1.10.1, 1.11.0, 1.11.1, 1.11.2 and 1.12.2 through 1.12.5. There is also a Chinese mirror on 腾讯微云 for the convenience of Chinese users.
If you would rather not trust the distributed binary, the project points at a setup document that describes building the mod from the Lichnerowicz release instead. That release is tagged in the repository itself, which means the source you build from and the binary you would have downloaded are the same snapshot.
The Makefile demands a specific clang and a platform choice
Building the mod from source is a serious proposition, and the build file makes the hard requirements explicit. The compiler is clang, the expected clang version is 20, the minimum macOS version is 13, and the target platform defaults to x64.
CXX := clang++
PRINCIPIA_CLANG_VERSION ?= 20
PRINCIPIA_MACOS_VERSION_MIN ?= 13
PRINCIPIA_PLATFORM ?= x64The platform variable is not a free choice. It must be either x64 or x64_AVX_FMA, and the build stops with a clear error if it is set to anything else.
$(error PRINCIPIA_PLATFORM must be 'x64_AVX_FMA' or 'x64')So the two CPU targets are the plain x64 build and one that can use the AVX and FMA instruction sets, which is the obvious knob for anyone on hardware that supports them and the obvious hazard for anyone who does not.
The rest of the build is not a single Makefile job. The repository contains a solution file plus separate filters, one for the C++ code and one for the C# side, along with a Vagrantfile, a find_msbuild.ps1 script, a generate_assembly_info.ps1 script and a set of .props files that pull in the third party libraries. There is an install_deps.sh script, an add_ksp_assemblies_macos.sh script for the game assemblies on macOS, and install_iwyu.sh for the include what you use tooling.
Benchmarks, coverage tooling and journal directories explain the shape
The top level listing is where the project stops looking like a game mod. There are directories for astronomy/, base/, functions/, geometry/, graphics/, integrators/, journal/, ksp_plugin/, ksp_plugin_adapter/ and ksp_plugin_test/, and then a set of directories that exist to measure and verify the code rather than to run it: benchmark_automation/, benchmarks/, coverage_analyser/ and nanobenchmarks/.
The third party libraries listed in the .props files match that profile. Google Benchmark, GoogleMock, GoogleTest, Abseil, Protobuf and RE2 are all pulled in, along with Boost and its multiprecision support, core-math from Inria, and the zfp compression library, plus lodepng for image handling. A physics engine that integrates trajectories in extended body gravitation is exactly the kind of code where the integrator choice, the arbitrary precision arithmetic and the test coverage matter, and the repository is structured as though the authors treat it that way.
Two directories are worth a second look. journal/ is a separate translation unit group in the build, distinct from the plugin, which suggests a publication trail for the work rather than just source code. The ksp_plugin_adapter/ and ksp_plugin_adapter_stub/ pair suggests the code is separated from the game interface in a way that lets the plugin be tested without Kerbal running.
Where Principia is the wrong tool
The honest limits are the same on both sides. Principia does not add new vehicles, new missions or new graphics; it changes one thing, the gravitation model, and everything else in the game has to be relearned around it. For a player who wants to fly a rocket around Mun and land, a mod that replaces the frame you reason in is friction for no benefit.
It also needs a companion to be fully meaningful. The README highlights the combination with RealSolarSystem, and without a realistic solar system the improvement over stock physics is smaller, because the toy model is less wrong when the bodies are toy sized and close together.
The learning curve is the real cost. Reading a concepts guide about plotting frames before your first flight is a commitment of a different order from installing a graphics mod, and if you do not want to do that, the monthly release cycle, the linked tutorials and the FAQ are of no use to you.
For an engineering team that wants to extend the physics further, the trade changes again. The MIT licence permits reuse, and the C++ core is separated from the KSP plugin through the adapter directories, so the simulation code is the interesting part rather than the game glue. But then you are maintaining a fork of a mod that receives a new upstream release every new moon, and merging that into your changes is a recurring cost rather than a one off.
Editorial conclusion
Adopt Principia if you want to plan real interplanetary trajectories and your idea of fun includes reading a concepts guide about plotting frames and flight planning. Do not adopt it for casual sandbox play, because the mod changes the physics model rather than adding content, and it works best alongside a mod such as RealSolarSystem that supplies real celestial bodies. Verify first that the release you download matches your game version, since the current monthly release covers 1.8.1, 1.9.1, 1.10.1, 1.11.0, 1.11.1, 1.11.2 and 1.12.2 to 1.12.5, and read the known issues and limitations in the FAQ before you plan a mission around a particular manoeuvre.
Frequently asked questions
What does the Principia mod change in Kerbal Space Program?
It implements n-body and extended body gravitation, so vessels are influenced by all the celestials instead of only by the body whose sphere of influence they are in. The README says this makes more complex and more realistic missions possible, especially with a mod such as RealSolarSystem.
How do I install Principia?
The README points to the FAQ page of the project wiki, which explains how to install the mod, how to report bugs, and documents the known issues and limitations. Binaries for Ubuntu, macOS and Windows are published for the current release, and there is a Chinese mirror on 腾讯微云.
How often are new versions of Principia released?
On every new moon, with whatever features and bug fixes are ready at the time. The current release is called Lichnerowicz and covers game versions 1.8.1, 1.9.1, 1.10.1, 1.11.0, 1.11.1, 1.11.2 and 1.12.2 to 1.12.5.
What are the plotting frame and flight planning in Principia?
They are the two concepts the README asks every user to learn before playing, both explained in the project concepts document. The plotting frame is the coordinate system in which trajectories are drawn, which differs from the frame a vessel actually flies in once several bodies pull at once.
Can I build Principia from source?
Yes, the project links a setup document for building the mod from the Lichnerowicz release. The Makefile requires clang version 20, a minimum macOS version of 13, and a PRINCIPIA_PLATFORM of either x64 or x64_AVX_FMA, and the build also has a C# solution with separate filters.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/mockingbirdnest-principia)Star history chart for your README
[](https://hysenlabs.com/projects/mockingbirdnest-principia)Was this useful?