[Beta] Announcing the SimIn SDK

Dear FSDeveloper Community,

It's been quite a long journey. We (Federico Sucari @fs1 and Sean Isom @theisomizer), have been working to understand the FSX, ESP, and P3D internals for the last six years. We are passionate about this mission, and through our collective projects we have been trying to bring next-level functionality to both developers and end users.

For years we both have been members of FSDeveloper, and it has always been impressive to see the out-of-the-box ideas that this passionate group of developers bring to the community.

We have combined a lot of this knowledge and tech that we have developed into our new venture, FSSI, and at this time we would like to announce our first product; a library called the SimIn SDK.

The goal of SimIn is both to standardize and open existing methods that many top developers use, and to expose new functionality for developers that isn't currently available through a single platform that can be used across simulator versions.

SimIn is a simple concept, working behind the scenes to read and write from the sim memory information that can be manipulated to create a more realistic simulation. Additionally, it provides a layer of abstraction above the raw simulator structures, enabling rapid development. The SDK is structured as lightweight reg-free COM, has a similar syntax to the P3D PDK, and functionality is divided into Services:

- Terrain Service: Asynchronously reads terrain DEM, LandClass, Population, WaterClass, etc. data at runtime, for any region of the world. You can query several squares grid of information in one call. Also contains APIs to read vector data, such as roads, water, etc.

- Facilities Service: Reads all airport, airways, scenery objects, and any other data in bglcomp produced BGLs. Similarly can be queried for any point on the earth, as a grid, radius, or even at the user location.

- FDE Service: Allows the user to read and change fixed AIR data in-sim, on the fly creating dynamic air tables from any field present in the .air or aircraft.cfg.

- Effect Service, which in the beta is only available in P3D V4, allows the user to change, as in the FX Tool, many different effect parameters on the fly. A sample is provided that shows the basics of dynamic lighting.

- Menu Serivce: Allows adding dynamic sim text menus in a way that works across all sim versions, from FSX->P3D.

- Core Functions and G2D Service: Exposes several internal simulator methods programatically, included access to set a screen color effect, set the volume programatically, and read and write the Ground Friction physics coefficients.

Under most use cases, the library has very little overhead. It is multithreaded, taking advantage of many pieces of simulator engine functionality that are already optimized, and most importantly, should not require any updates to support any P3D updates/upgrades in the future. This solid design should simplify application maintenance, preventing developers from having to scramble the moment a new P3D build is announced.

The core functionality of the SimIn SDK will be free for freeware projects. We will support commerical licenses when we hit RTM, with more flexible license terms and the ability to compile your code together with SimIn provided as a .lib. More to come on this soon, and feel free to contact us if you are interested.

Below is a link to our Beta SDK (build 0.9.0), and we strongly encourage developers to try it out. Currently, it only supports P3D V3 and V4, although we are exploring FSX support in the future. As a beta, it will prompt with a message box at sim startup. Other than the warning, it contains our full public functionality and is in no way limited. We will try to keep API changes between the beta and 1.0 release minimal, prioritizing bug fixes and API usability over new features.

A help document in .chm is included, along with redistributable .dlls, as well as some sample simconnect DLLs, a gauge, and all necessary headers.

We hope you enjoy it! This is still heavily under development, and please use this forum to open topics with questions, requests for help, clarification, feature requests

All the best,

Federico and Sean


Download the full SDK beta here: http://bit.ly/2yPsNyM

Documentation only: http://bit.ly/2yVQRjI
(will be available online once the website is up)

Note: Some users are reporting problems with the downloaded .chm, please see this link on how to unblock if you are running into blank pages: https://blogs.msdn.microsoft.com/crminthefield/2014/01/06/blank-page-with-no-content-is-displayed-when-trying-to-view-the-microsoft-dynamics-crm-2013-implementation-guide-ig-chm-file/
 
Last edited:
Hi guys,

skimming though the documentation, this really looks very promising and definately like a s***-load of work, already :). So kudos to all of you :cool:.

What came to my mind for the future was this question: do you see any possibility to alter facility data (mainly navaids like VOR, NDB, ILS) on-the-fly? Don't know if this was anyway possible, though.

Greets, Benny
 
Hi guys,

skimming though the documentation, this really looks very promising and definately like a s***-load of work, already :). So kudos to all of you :cool:.

What came to my mind for the future was this question: do you see any possibility to alter facility data (mainly navaids like VOR, NDB, ILS) on-the-fly? Don't know if this was anyway possible, though.

Greets, Benny
What are you trying to achieve? To inject your own data?
You want to do this in a large scale?
Thanks
Federico
 
What are you trying to achieve? To inject your own data?
You want to do this in a large scale?
Thanks
Federico
Hi Federico,

I am not directly planning to inject new stations, but to alter data of existing ones. For now, I have to go through the bgl files programmatically and change what I want to change before the sim gets started. So for each and every change I need to restart the sim or force a reload of the library midflight for the changes to have an effect, which is not very practical.

So, if it was possible to change this data in memory after the bgl's got loaded this would be a huge improvement.

But I am not versed at all with memory hacks and stuff, or how the bgl data is stored and processed after loading, so I don't know if there was any way to achieve this.

Greets, Benny
 
Hi Federico,

I am not directly planning to inject new stations, but to alter data of existing ones. For now, I have to go through the bgl files programmatically and change what I want to change before the sim gets started. So for each and every change I need to restart the sim or force a reload of the library midflight for the changes to have an effect, which is not very practical.

So, if it was possible to change this data in memory after the bgl's got loaded this would be a huge improvement.

But I am not versed at all with memory hacks and stuff, or how the bgl data is stored and processed after loading, so I don't know if there was any way to achieve this.

Greets, Benny
We can eventually think of implementing this feature. Thanks
 
Hello,

Any news if SimIn SDK works 100% with P3D V4.4?
I use probably the same techniques as you do for a few features (FDE mods in realtime), and I lost many entry points with this P3D V4.4 version...


Update: no it seems it was a glitch in my first tests... I could resume with all normal features. Very strange.


Best regards
JL
 
Hello,

Any news if SimIn SDK works 100% with P3D V4.4?
I use probably the same techniques as you do for a few features (FDE mods in realtime), and I lost many entry points with this P3D V4.4 version...

Best regards
JL
Should work. Regards
 
Top