Open Source WebRTC Communications Platform.

Lynckia is based on WebRTC technologies. It is 100% compatible with latest stable versions of Google Chrome. Web users will be able to talk from their web browsers with no need to installing anything. Lynckia allows web developers to include videoconference rooms on their web. They can also implement streaming, recording and any other real-time multimedia features!

Framework for building distributed social network websites

Social Stream is an engine for Ruby on Rails , the popular web development framework. Social Stream provides your Rails application with a robust and flexible framework for building any kind of social network websites. Social Stream has already used in succesful websites such as the Virtual Science Hub , an excursion-oriented social network, and Advise Only , and invertors social network.


  • Juan Quemada
    Full-professor at DIT-UPM and lead researcher of GING. He has wide experience in research and teaching
  • Joaquín Salvachúa
    Professor at DIT-UPM
  • Pedro Rodríguez Pedro Rodríguez
    Backend developer of Lynckia. Working on his Ph.D in videoconference systems. github account
  • Javier Cerviño
    Frontend developer of Lynckia. He is about to finish his Ph.D in videoconference systems in Cloud Computing platforms. github account
  • Alvaro Alonso
    Frontend and backend developer of Lynckia. Working on his Ph.D in Cloud Computing and videoconference systems. github account
  • Antonio Tapiador
    Lead developer of Social Stream. He is about to finish its Ph.D in distributed social networks. He has teaching experience. github account
  • Carolina García
    Master degree in Telematic Engineering, her Master's thesis included Placedonia, a places-oriented social network. github account
  • Crispín
    Comando Cran Cofounder. Associate degree in Graphic Design. He has redesign of Social Stream using last CSS techniques. github account


  • Media/Signalling Gateway to other communication systems: SIP, H.323, Flash, …

    Requirements: C++, JavaScript. Knowledge and experience on SIP, H.323 and Flash technologies.
    Objective: Design and implement a Gateway to non-WebRTC systems. This gateway will deal with signalling translation between protocols and it could use the available transcoding component to send video in different formats.

  • Implement a video compositing component.

    Requirements: C++, JavaScript. Previous experiences handling video frames will be considered.
    Objective: There is a wide variety of devices that can be connected to the Internet nowadays. Lynckia supports connections from desktop, tablet and mobile phone with Android and Chrome Beta, so it will be desirable that Erizo could deal with different screen sizes and connection bandwidth. The group already implemented a similar component in Flash, but now, in Lynckia, it has to be refactored in C++ for WebRTC videos.

  • Implement a video processing component.

    Requirements: C++, JavaScript. Previous experiences handling video frames will be considered.
    Objective: This challenge includes the design and the implementation of a software module that receives a media stream from the Lynckia MCU (erizo), processes it modifying the audio samples and/or video frames and sends the result back to the MCU. It can be use for multiple tasks like augmented reality or adds management. The module can be implemented in any language.

  • Implement a Multiplex Data Channel component in Erizo.

    Requirements: C++, JavaScript. Knowledge on DataChannel API and its protocols.
    Objective: Lynckia now supports multiplex for audio and video streams. Now that WebRTC also supports Data the student could implement the DataChannel API in Lynckia. It will also be used to forward data between multiple participants, in a similar way it is currently done using WebSockets. The development will focused on the different protocols involved in this API.

  • Design and implementation of an administration/monitoring console.

    Requirements: C++, JavaScript.
    Objective: For features related with performance and scalability of Lynckia it is very useful the development of a monitoring console that analyze the state of the computers in which the MCUs are running (like CPU, memory or bandwidth usage). Also this console can include a module to manage the resources that Lynckia is using in a session, starting or stopping computers, managing the rooms, configuring parameters of the MCU, etc.

  • Improve scalability using OpenStack and similar Cloud providers.

    Requirements: JavaScript. Knowledge on Cloud platforms and typical scalability issues.
    Objective: Lynckia is now focused on Amazon EC2 API to increase/decrease the number of Erizo Controllers, but other Cloud platforms also offer scalability opportunities to Lynckia. For example, OpenStack also allows to increase the size of the virtual machines, and start and stop similar virtual machines. The student could implement different wrappers to different Cloud providers in order to scale the number of machines in a Hybrid Cloud scenario.

  • Develop a pool of cool examples using Lynckia.

    Requirements: JavaScript.
    Objective: Lynckia already provides a mechanism to develop brand new web applications where many users may get involved in interactive rooms by sharing their audio, video and data. There has been a lot of examples using Lynckia that provide interactive games, 3D videoconference scenarios, access to IP cameras, etc. During this development the student could improve Lynckia’s user API to provide advanced functionality for the web developers, such as video and audio management, video pattern recognition, etc.

  • Social network federation protocol.

    Requirements: Rails
    Objective: Social network federation is a promise that has gained much attention from the W3C . However, there is not a simple protocol that supports it yet. Proposals such as OStatus have several drawbacks: they repeat functionality and have not privacy support.
    The objective is designing and building a simple, straightforward protocol, probably based on Activity Streams that supports network federation of any kind of object between social networks.

  • Package Social Stream and customization interface.

    Requirements: Unix
    Objective: Though Social Stream is a ready to use framework, its deployment is hard and requires system administration skills. Building a package for Linux distributions or Mac OS X would lower the bar for new Social Stream’s users and developers. The packaging would include a way to easily select desired modules from Social Stream components and customize them through a user-friendly interface in order to get an fully customized social network easily and quickly.

  • Mobile framework for Social Stream

    Requirements: Java, Javascript, iOS
    Objective: Mobile access to social networks is rapidly increasing. A mobile framework for Social Stream would let developers to easily and rapidly build a native application for their customized social network.

  • Places API broker

    Requirements: JavaScript (Ruby on Rails will be a plus)
    Objective: Design and develop a JS library and maybe a Ruby gem that implements a broker where developers could query Places info from all major Places API providers at once: Google Places, Foursquare, Yahoo GeoPlanet, Twitter Places, Facebook Places... This would solve many problems to Location Based Services like Places support for Social Stream such as missing places, lack of some info fields or wrong information.