Access Global, Photorealistic Flight Simulation with GeoFS
GeoFS started nearly six years ago. With the increasing quality of aerial images offered by Google Earth and as an aviation (and simulators) enthusiast, I felt frustrated that no flight simulator made good use of this data and decided to build my own. The goal of GeoFS was, and still is, to give users simple access to flying within these environments and the chance to enjoy the view. GeoFS grew more sophisticated as more people started to enjoy it, too. Today, it offers about sixteen aircraft ranging from the Piper Cub to Concorde and A380. Some aircraft are fitted with virtual cockpit rendering.
GeoFS is massively multi-player: users can see and chat with other players. Is also includes joystick support, autopilot, wind system, sound and light effects, replay mode, a map of restricted airspace, and a selection of over 30,000 referenced runways to take off from. The physics engine aims to be as realistic as possible while trying the keep the experience enjoyable for every skill level.
The application was originally built on top of the Google Earth plugin and has only recently been ported to Cesium. Porting to Cesium has been relatively straightforward. My code base abstracts enough of the underlying API to allow for an easy replacement. One of the best things resulting from the migration was that GeoFS now runs (and rather well) on mobile platforms. Running a native web technology is also much more logical and comfortable: using a Javascript debugger was a real burden with the NPAPI plugin but is as natural as it should be when using Cesium. Some major differences, however, led to some parts of GeoFS being entirely rewritten. For example, what are known as “Overlays” in the Google Earth plugin had to be replaced (this turned out to be for the best) with native HTML/CSS3 animations. Complex aviation instruments are being rendered with this technique, and performance was a concern but proved, eventually, to be very satisfactory.
Cesium is a relatively young platform, and the inevitable quirks had to be dealt with. But this is where the open source approach is making a real difference: I could easily browse through the code to understand problems, and even fix them myself if needed. And of course, much improvement and growth is expected in the near future. The API documentation has proven to be very good, and there are now plenty of examples to get inspiration from. Overall performance and stability are very satisfying, without much effort put into optimization.