diff --git a/Flightsimarch.draw.io b/Flightsimarch.draw.io new file mode 100644 index 0000000..e48acf6 --- /dev/null +++ b/Flightsimarch.draw.io @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Flightsimarch.drawio.png b/Flightsimarch.drawio.png new file mode 100644 index 0000000..7fe55ad Binary files /dev/null and b/Flightsimarch.drawio.png differ diff --git a/flight-proposal.org b/flight-proposal.org new file mode 100644 index 0000000..0da3776 --- /dev/null +++ b/flight-proposal.org @@ -0,0 +1,57 @@ +#+OPTIONS: toc:nil +* Xplane WebRTC +[[./xprc.drawio.png]] + +The Xplane WebRTC project takes inspiration from Google Stadia +for a streaming based solution for playing video games. But our +plan is to build one specifically for flight simulators. We target +Xplane 11 for being cross platform and completely offline dependent +on sceneries with reasonable documentation on usage of the SDK to use the game. +The novelty of the project being all aspects of the project will be completely open source. +There are already major segments of the project complete and have been tested which will +be mentioned in the appropriate section for the necessary details. I am also investing +in my PhD to familiarize myself to work with slim down kernels on HPC scenarios +(This will help me extend the Xplane to run on a distributed scenario). This +project is fun long term work and has no heavy deadlines but rather the art of +optimizing the current paradigm of how we use heavy workload applications. +The following above is a really high level abstraction description of the +projects and barely covers the depth of what the project intends to push forward. + +The big question is what parts have been rebuilt for the project and how they +contribute to the end goal of the project. The first property of the project is +that it should be able to run on a p2p network. P2PRC is a p2p orchestrator designed +to run applications in a p2p network using Containers initially. There are plans to +extend it to run on Uni-kernels and based on my PhD extend it to run on a Multi-kernel +paradigm as well. This will be our custom alternative to Kubernetes which will be used to +distribute and run on workloads on p2p effectively. This would make our entire run on +Anyone's machine which can reside behind NAT. + +We also intend to make an open source solution to distribute a slim down version of X Plane +so that nodes can quickly Spawn Xplane instantly with only the required scenery needed. +This will be in contrast to running the full scenery of the game which is around 55 GB. +Something novel that could be worked on here is a novel approach to only send the scenery +of the flight path when distributing the game. This will mean building parsers for the +Xplane scenery files and then finding techniques to only get a correct set of scenery +files needed in other machines. The techniques are expected to open source but since the +scenery files are proprietary they are expected to be public. + +The streaming part of the project is expected to use the browser standard WebRTC sockets +with the corresponding sockets. This is because there is already massive development +of the chromium browser with GPU encoders and decoders for faster performance. +We have already built a prototype which has been tested and seems to work as intended. + +The PhD will be one of a long term novel approach which will support Multi-kernels with +TAG based architecture support for running C++ programs more securely. This might mean +most parts of the PhD might not be used. The Multi-kernel approach is definitely an +interesting area to experiment on to figure out how the project would use such an +approach and this open lot of areas of future research and hopefully better +performant flight simulators with better purposed algorithm to offload tasks to +devices such as FPGAs or potato machines in abstraction layer similar to speaking nodes in an network. + +* Architecture +This chapter dives into the high architecture design of the +project and each module is communicated in detail on the following +section below. +#+attr_latex: :height 500px +#+CAPTION: High level architecture of the entire project +[[./Flightsimarch.drawio.png]] diff --git a/flight-proposal.org~ b/flight-proposal.org~ new file mode 100644 index 0000000..86bd54c --- /dev/null +++ b/flight-proposal.org~ @@ -0,0 +1,54 @@ +#+OPTIONS: toc:nil +* Xplane WebRTC +[[./xprc.drawio.png]] + +The Xplane WebRTC project takes inspiration from Google Stadia +for a streaming based solution for playing video games. But our +plan is to build one specifically for flight simulators. We target +Xplane 11 for being cross platform and completely offline dependent +on sceneries with reasonable documentation on usage of the SDK to use the game. +The novelty of the project being all aspects of the project will be completely open source. +There are already major segments of the project complete and have been tested which will +be mentioned in the appropriate section for the necessary details. I am also investing +in my PhD to familiarize myself to work with slim down kernels on HPC scenarios +(This will help me extend the Xplane to run on a distributed scenario). This +project is fun long term work and has no heavy deadlines but rather the art of +optimizing the current paradigm of how we use heavy workload applications. +The following above is a really high level abstraction description of the +projects and barely covers the depth of what the project intends to push forward. + +The big question is what parts have been rebuilt for the project and how they +contribute to the end goal of the project. The first property of the project is +that it should be able to run on a p2p network. P2PRC is a p2p orchestrator designed +to run applications in a p2p network using Containers initially. There are plans to +extend it to run on Uni-kernels and based on my PhD extend it to run on a Multi-kernel +paradigm as well. This will be our custom alternative to Kubernetes which will be used to +distribute and run on workloads on p2p effectively. This would make our entire run on +Anyone's machine which can reside behind NAT. + +We also intend to make an open source solution to distribute a slim down version of X Plane +so that nodes can quickly Spawn Xplane instantly with only the required scenery needed. +This will be in contrast to running the full scenery of the game which is around 55 GB. +Something novel that could be worked on here is a novel approach to only send the scenery +of the flight path when distributing the game. This will mean building parsers for the +Xplane scenery files and then finding techniques to only get a correct set of scenery +files needed in other machines. The techniques are expected to open source but since the +scenery files are proprietary they are expected to be public. + +The streaming part of the project is expected to use the browser standard WebRTC sockets +with the corresponding sockets. This is because there is already massive development +of the chromium browser with GPU encoders and decoders for faster performance. +We have already built a prototype which has been tested and seems to work as intended. + +The PhD will be one of a long term novel approach which will support Multi-kernels with +TAG based architecture support for running C++ programs more securely. This might mean +most parts of the PhD might not be used. The Multi-kernel approach is definitely an +interesting area to experiment on to figure out how the project would use such an +approach and this open lot of areas of future research and hopefully better +performant flight simulators with better purposed algorithm to offload tasks to +devices such as FPGAs or potato machines in abstraction layer similar to speaking nodes in an network. + +* Architecture +#+attr_latex: :height 500px +#+CAPTION: High level architecture of the entire project +[[./Flightsimarch.drawio.png]] diff --git a/flight-proposal.pdf b/flight-proposal.pdf new file mode 100644 index 0000000..729268d Binary files /dev/null and b/flight-proposal.pdf differ diff --git a/flight-proposal.tex b/flight-proposal.tex new file mode 100644 index 0000000..196ae9e --- /dev/null +++ b/flight-proposal.tex @@ -0,0 +1,88 @@ +% Created 2025-04-06 Sun 12:44 +% Intended LaTeX compiler: pdflatex +\documentclass[11pt]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{wrapfig} +\usepackage{rotating} +\usepackage[normalem]{ulem} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{capt-of} +\usepackage{hyperref} +\author{Akilan} +\date{\today} +\title{} +\hypersetup{ + pdfauthor={Akilan}, + pdftitle={}, + pdfkeywords={}, + pdfsubject={}, + pdfcreator={Emacs 30.1 (Org mode 9.7.11)}, + pdflang={English}} +\begin{document} + +\section{Xplane WebRTC} +\label{sec:orgb89245a} +\begin{center} +\includegraphics[width=.9\linewidth]{./xprc.drawio.png} +\end{center} + +The Xplane WebRTC project takes inspiration from Google Stadia +for a streaming based solution for playing video games. But our +plan is to build one specifically for flight simulators. We target +Xplane 11 for being cross platform and completely offline dependent +on sceneries with reasonable documentation on usage of the SDK to use the game. +The novelty of the project being all aspects of the project will be completely open source. +There are already major segments of the project complete and have been tested which will +be mentioned in the appropriate section for the necessary details. I am also investing +in my PhD to familiarize myself to work with slim down kernels on HPC scenarios +(This will help me extend the Xplane to run on a distributed scenario). This +project is fun long term work and has no heavy deadlines but rather the art of +optimizing the current paradigm of how we use heavy workload applications. +The following above is a really high level abstraction description of the +projects and barely covers the depth of what the project intends to push forward. + +The big question is what parts have been rebuilt for the project and how they +contribute to the end goal of the project. The first property of the project is +that it should be able to run on a p2p network. P2PRC is a p2p orchestrator designed +to run applications in a p2p network using Containers initially. There are plans to +extend it to run on Uni-kernels and based on my PhD extend it to run on a Multi-kernel +paradigm as well. This will be our custom alternative to Kubernetes which will be used to +distribute and run on workloads on p2p effectively. This would make our entire run on +Anyone's machine which can reside behind NAT. + +We also intend to make an open source solution to distribute a slim down version of X Plane +so that nodes can quickly Spawn Xplane instantly with only the required scenery needed. +This will be in contrast to running the full scenery of the game which is around 55 GB. +Something novel that could be worked on here is a novel approach to only send the scenery +of the flight path when distributing the game. This will mean building parsers for the +Xplane scenery files and then finding techniques to only get a correct set of scenery +files needed in other machines. The techniques are expected to open source but since the +scenery files are proprietary they are expected to be public. + +The streaming part of the project is expected to use the browser standard WebRTC sockets +with the corresponding sockets. This is because there is already massive development +of the chromium browser with GPU encoders and decoders for faster performance. +We have already built a prototype which has been tested and seems to work as intended. + +The PhD will be one of a long term novel approach which will support Multi-kernels with +TAG based architecture support for running C++ programs more securely. This might mean +most parts of the PhD might not be used. The Multi-kernel approach is definitely an +interesting area to experiment on to figure out how the project would use such an +approach and this open lot of areas of future research and hopefully better +performant flight simulators with better purposed algorithm to offload tasks to +devices such as FPGAs or potato machines in abstraction layer similar to speaking nodes in an network. +\section{Architecture} +\label{sec:orgcd900b9} +This chapter dives into the high architecture design of the +project and each module is communicated in detail on the following +section below. +\begin{figure}[htbp] +\centering +\includegraphics[height=500px]{./Flightsimarch.drawio.png} +\caption{High level architecture of the entire project} +\end{figure} +\end{document} diff --git a/xprc.drawio b/xprc.drawio new file mode 100644 index 0000000..dff5626 --- /dev/null +++ b/xprc.drawio @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xprc.drawio.png b/xprc.drawio.png new file mode 100644 index 0000000..2aa23a7 Binary files /dev/null and b/xprc.drawio.png differ