User Interface for video and image stitching

Student Project (1-3 participants)

The aim of the project is to create a User Interface (UI) for video stitching. The UI should allow users to select multiple input files (images and videos). Through the UI, users should be able to select/cut parts of the video and rearrange the elements order. The result should be an xml/json file that contains the different input elements and their stitching configuration.

Your tasks:

  • Implement the UI
  • Generate a stitching configuration file
  • Send a stitching request inside an Amazon SQS queue

Required skills:

  • HTML / CSS / Javascript
  • JSON / XML
  • React, Angular or other JS Frameworks

Related Links:

Contact:

Mehdi Ben Fadhel

Evaluate scalable and high-performance Node.js application designs

Student project (2-3 participants)

Nowadays many apps and services are realized using Node.js/Javascript. The key to success is a carefully thought out application design that ensures the service is offered without interruptions or downtimes.

Your tasks:

  • Learn and elaborate on the general concepts and specific techniques of distributed and scalable applications with Node.js and relevant tools.
  • Define a set of relevant criteria to measure high-performance operation and service degradation/bottlenecks in typical client-server/cluster setups.
  • Build some simple but non-trivial example services (own ideas welcome, otherwise as per our specification) and execute successively on single and multiple (virtualized/dockerized) nodes and test the load capacity of the cluster using appropriate tools. List and follow best practices.
  • Compare and evaluate the chosen designs and approaches.

Your team will answer at least the following questions:

  • How many concurrent connections/clients will my single specific Node.js instance handle?
  • How does the load capacity increase if more of my instances are added to the cluster and how does a balanced and efficient mode of operation look like?
  • Which application design offers best service stability when memory, CPU, network limits on my instances are reached or single instances die abruptly in your cluster?
Required skills:
  • Node.js/JavaScript (must)
  • Linux (must)
  • Docker (recommended)
  • Backend application development using REST/JSON (preferred)
  • Monitoring / load testing tools (ideally)

Related technologies:

Contact:

Martin Lasak

Use React to rewrite a Bootstrap theme

Student Project (at least 2 participants)

The web doesn’t offer a standard library with readymade components for UI that could be used to quickly create a website. Instead various frameworks and tools exist to assist in that task. These frameworks constantly evolve and differ a lot in what they offer. Lately React is quickly becoming a de facto standard for writing web frontends because it is component based and makes it easy to write and reuse components.


Your tasks:

  • Rewrite a provided open source Bootstrap theme with React to create an interactive single-page app template.
  • Evaluate the use of webpack, React and Bootstrap.

Required skills:

  • Web Technologies: JavaScript, HTML, CSS

Related links:

Contact:

Alexander Futász

WebAssembly Evaluation

Student Project (2-3 participants)

WebAssembly (wasm) is a new portable, size- and load-time-efficient format suitable for compilation to the web. It is already supported in major Browsers like Chrome, Firefox and Safari and currently being designed as an open standard by the W3C WebAssembly Community Group that includes representatives from all major browsers. The main goal of WebAssembly is to run code in the browser at native speed by taking advantage of common hardware capabilities available on a wide range of platforms.


Your tasks:

  • Develop a processing-heavy application in pure JavaScript and WebAssembly (source is c/c++)
  • Evaluate toolchain for producing WebAssembly code
  • Evaluate the JavaScript and WebAssembly implementations in all Browsers that support WebAssembly

Required skills:

  • Web Technologies: JavaScript, HTML, CSS
  • C/C++ (basic skills)

Related Links:

Contact:
Louay Bassbouss

Television in Web Apps with DVB-T2

Student Project (at least 2 participants)

Everything is the Web. Help bring traditional television to the world of web apps.

Your tasks:

The task involves low level programmig in C/C++ to. You will be working on a Node.js addon that bridges the Linux DVB kernel API to make the functionality available from a Node.js context. This work has been started by a prior student project, your task is to finish and polish up the current application.


Required skills:

  • Linux (must)
  • C/C++ (must), JavaScript

Related technologies:

Related FAME Projects:

Contact:

Cloud Browser

Student Project (4 participants), Master Thesis

The Cloud Browser differs from traditional browsers in that web pages are rendered in the cloud and only the UI output of the web page is streamed to the client using appropriate video streaming technologies. The Client is in general a simple device that is only capable to decode and play a video stream. It doesn't have the capabilities to run a Browser, render web pages or perform computing intensive operations. It only offers capability to interact with the user e.g. using Remote Control. All user interactions need to be sent to the cloud browser and triggered on the corresponding web page. 

One potential use case of cloud browser is a Set-Top-Box that runs in the cloud. The operator provides low performance and cheap devices to costumers that connect to its cloud infrastructure. In this case, the operator doesn't need to supply new kind of devices if he wants to offer new services that requires new hardware or software capabilities. Using the Cloud Browser solution, he needs only to update the cloud browser software stack for all customers at once. Another use case is the rendering of 360° Video in the cloud instead of the local browser. The approach has two main advantages: (1) there is no need to stream the whole 360° video to the client, but only the view requested by the user and (2) there is no need to render the 360° video locally which requires expensive computing operations. 

One important requirement for Cloud Browsers is the zero-latency streaming of the current view. The time between a user interaction and the receiving of the corresponding frames that show the effect of his interaction must not exceed a threshold of few milliseconds. The WebRTC technology could be one potential technology that fulfill this requirement.

Your tasks:

  • You will implement a Cloud Browser framework that includes the following components:
    • Server that offers the Cloud Browser functionality and is capable to serve multiple users and sessions in parallel. The Server should also offer an API for receiving user inputs.
    • Client that offers a player for video stream received from the cloud browser and is capable to open new sessions on the Cloud Browser using appropriate APIs. The Client needs also to intercept user inputs and send them to the server. The Client may be implemented on low capability devices 
Required skills:


  • Web Technologies: JavaScript, HTML, CSS
  • Communication Technologies: WebRTC and/or WebSockets (Optional)

Related technologies:


Related FAME Projects:


Contact:

Louay Bassbouss

Semantic Web of Things – environmental simulator 

Student Project (3-4 participants)

The aim is to build a configurable simulator to define different environments containing various interactive objects which simulate interactions over time for a given user story. A user story should be some sort of a flow chart diagram to define user movements and interactions with objects. In the end the simulator will transform such a user story into a multivariate time series of sensor/actor data and provide this as CSV, JSON files or LIVE outputs via HTTP requests to a configurable endpoint. The interactive objects should be semantic web things models.

When using Unity3D: The environment simulator can be a Unity3D plugin or scene as 2D – topdown view. Further can be the user story some sort of waypoints and interactions defined in Unity3D.

Your tasks: • Define different semantic web thing models and scenarios for a smart home environment and provide them in the simulator as pre-defined options • Develop the environmental simulator which can use the sematic web things models to define interactive objects behaviors and the flow chart based user stories to transform them into a multivariate time-series data and provide them as CSV, JSON or LIVE output. • Evaluate limitations and benefits of using semantic web things for the smart home environment, especially for enhancement with AI technics such as recommendations or assistant functions (implicit interactions).

Required skills:

  • JSON, JavaScript, NodeJS
  • Unity3D, C# (extended)

Related Links:

Contact:

Sebastian Schmidt 

P2P  information routing on multiple communication channels

Student project (1-2 participants)

Mobile devices are normally equipped with multiple network connections such as Wifi, 3G/4G, Bluetooth or NFC. Therefore, this creates abundant opportunities for mobile devices to share valuable data with each other in a P2P fashion agnostic to physical connections. The short contact durations, relatively small sharing sizes, and uncertain data availability demand agile, light weight peer based data sharing APIs. This project aims to build a P2P information routing libraries/apps that enable mobile devices to discover which data exist in nearby peers, and retrieve interested data robustly and efficiently. A set of data routing algorithms will be built to make use alternative communication channels in the context of dropping current communication channel or having access to better connections (see [1] and [2] as examples).

Your Tasks:

  • Build an library on a mobile environment, e.g Android or IOS, to support the described features on at least 3 communication channels.
  • Build a demo application with the above library.


Required Skills:

  • Basic knowledge on distributed algorithms and distributed systems
  • Programming experiences in Java/C++/Go/Javascript
  • Knowledge & Experience in network communications(Bluetooth, Wifi,…)
  • Understanding P2P


Contact:

Danh Le Phuoc


Related Links:

Semantic Web of Things with Blockchain 

Student project (2-4 participants)

There is a great deal of interest in integrating blockchain with IoT data. Moreover, the Semantic Web is getting more tractions in integration IoT data recent years. This leads to several experiments in using Semantic Web and blockchains for sharing IoT data or similar kinds, so called Sematic Web of Things. Interestingly, there is also an effort of the blockchain community in advocating “decentralizing the Web” which is commonly promoting the use of p2p-based distributed storage associated with blockchains, e.g, File coins[2] with IFPS[3] or Ethereum with Swarm[1].


Your tasks:

  • Set up a private blockchain network using Ethereum or similar. Optionally, a p2p distributed file system using IPFS[3] or Swarm[1] can be added to this network. Students will have access to a lab of 120 Raspberry PI nodes for this setup.
  • Integrate Semantic Web or Linked Data features for IoT data on top this infrastructure (see [4] as an example)
  • Build an application for storing, searching, and selling IoT based on the software components provided by this setup.


Required Skills:

  • Basic knowledge on distributed algorithms and distributed systems
  • Understand Blockchain and distributed ledgers
  • Programming experiences in Java/C++/Go/Javascript
  • Teamwork and software project collaboration and management


Contact:

Danh Le Phuoc



Related Links: