Matthieu LABAN
.NET, My Life, Flight Simulation and Real Flight...

 
About Me :
25 Years old developer and aviation
enthusiast living in Santa Clara, California.
View Matthieu Laban's profile on LinkedIn 
Contact me at :
mlaban at gmail dot com


Photo & Video Galleries:
- Gallery List
- Flight Videos
Resume :
e-mail me to get my latest résumé
V-Tail Support (sort of) 

For the longest time, simulating the rudder in Infinite Runway has been a big problem.
I remember in the early days of the simulator how much I struggled with matrix transformations to compute the right forces...
During turns, the airplane would slip or do completely weird things because the forces were not applied with the right transformation.
What painful times, but in a way, it made me feel like an 21st century aviation pioneer ;-)

I had solved this problem by simply adding support for a vertical wing and hard coding a bunch of things in the wing section code to transform the vectors in the proper space...

Fast forward to the today... I wanted to get back to engine/propeller simulation and I noticed that my propeller blades were using the old airfoil system which was okay, but not as precise as the new system which supports plugin airfoils and better support for multiple profiles along a wing.

The idea was to use the new wing system and actually attach wings as the blades of the propeller... problem was, there was roughly any support for wings that were other than 0 or 90 degrees of rotation on the longitudinal axis let alone wings that were facing up or down :-/ (remember, the hard coded thing...)

I then went back to the code that handled the angle of attack/lift/drag vector computation and tried to figure out how to get those value correctly once and for all :)

After a bit of matrix transformation struggles, I finally got the vectors in order and my first test was to build an experimental model with a V-Tail style rudder. I gotta say, it works great :) It's not like a real V-Tail where it handles both the rudder and the elevator, but more like an Hybrid version of a regular elevator and a split rudder...
I uploaded a video below to demonstrate the handling of the flight model.

This is a pretty good step forward because it will allow all sorts of wing types to be added to the airplane... some that come to mind are STOL Kits, struts, winglets, and propeller blades.
The big advantage of using this new wing system is that in the example of a propeller, i'll be able to simulate the drag generated by a idling propeller, or the drag of the wing struts. This opens lots of doors, and is even better when you think that all these wings can use the custom plugin model to compute the forces, so if anyone is not happy with the drag computation of a particular foil, they can replace it with their own math :)

-

In other news, I'm getting close to welcoming my second partner in this sim effort (First partner being Brian K. who did the modelling of the 172 in the video).
Philippe, a friend of mine from school and colleague from my FXComposer days @ NVIDIA has expressed interest in working on the terrain. I really enjoyed working with him @ NVIDIA so I think it could work out great! At least I could get back to focusing mainly on simulation stuff :)

Happy Landings!
(Follow me on twitter @ twitter.com/mlaban)

Update on Infinite Runway 

I'm in the middle of a move to a new apartment, so I haven't had time to code much on the sim, however, some progress has been made since last update.

I've mostly been working on the database for the world data.
What I'm trying to achieve is to simplify the vector data I'm getting from the Open Street Map database as well as the coastlines file to make things usable in real time in Infinite Runway.
The complexity and size of the database make it impossible to use it directly without some sort of pre-processing.

The first step in building ground textures is to figure out if we are dealing with land or ocean.
I initially thought I could use the OSM coastline database, however it turns out it's way too precise and it's extremely complicated to retrieve in a format that is easy to process.
After reading about the subject and how the guys at OSM were building their coastline data, I crawled my way to a filed called processed_p.shp which contains the world coastlines at a precision that fits my needs.
I then wrote some code to upload all the shapes to a database and updated my scenery builder to output the combined (simplified) shapes in files for quads of 10 degrees of latitude and longitude.
I'm quite happy with the results, the data loads extremely quickly from the simplified files and I can show a map of the entire world in a few seconds.

My next step is to create the files for the landclass, roads and various other types of landscape features. I'm currently building a path simplifier to reduce the number of points on roads while preserving their overall shape.

I recently exchanged some emails with Curtis Olson of FlightGear (very nice guy btw!) and he told me that everything about building a flight sim is always 10 times more complicated than you think at first, but that you eventually learn 10 times more than you thought...

I can totally relate to this with what I'm doing now, I'm amazed by the fact that building a simulator can take me to places like writing stored procedures for faster database queries... :)

I've been thinking lately that I might have another person join me in this insane flight simulator project... I like building the terrain system but I have to admit that making planes fly is much more interesting to me than dealing with threaded loading of quad tree elements...
I have a friend who would be interested in working on just that... I still need to think about it though :)