A library for building cross-device applications
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Examples small changes in examplesà Mar 2, 2016
Framework made deviceID persistence optional. now supports multiple tabs Mar 1, 2016
.gitignore updated ignore, removed unused attribute in d2d Oct 12, 2015
LICENSE.txt added license file Nov 26, 2015
icon.png added project icon Mar 17, 2015
readme.md Update readme.md Mar 3, 2018



XD-MVC brings cross-device capabilities to MVC frameworks. It can be used as a plain JavaScript library. In addition, we provide an integration with Polymer. XD-MVC consists of a server-side and a client-side part. For communication among devices, both a peer-to-peer (based on PeerJS) and a client-server (based on Socket.io) version exist. In addition, a hybrid version is enabled by default, which will use PeerJS for clients that support it and fall back to Socket.io for those that do not. The hybrid version is used by default, however, you are free to choose another version that suits your needs best. You can also choose to only use the device-to-device communication library (d2d.js) that is part of this project. This is a research prototype, use in production is not recommended.


Note that the structure of this project has changed. The project has been split over multiple repositories. The code in this one will no longer be maintained and will be removed in the future.

  • The server-side part is located at XD-MVC-Server.
  • The client-side part is located at XD-MVC-Client.
  • A gallery example built with Polymer is located at XD-Gallery.
  • A maps example built with JavaScript is located at XD-Maps.
  • A maps example built with Polymer is located at XD-MapsPolymer.
  • A webcam viewer example built with Polymer is located at xd-webcam.
  • An interactive drawing board example built with Polymer is located at xd-graffiti.
  • A Chat example using d2d is located at D2D-Chat.

Supported Browsers

The framework uses some experimental JavaScript features, hence it may not work equally well in all browsers. The best support is reached for Chrome. If peer-to-peer communication is used, that is the only browser that is fully supported due to issues of PeerJS with other browsers. If client-server or hybrid communication is used, also Firefox and Safari should work. For applications built with Polymer we have seen best results with Chrome, however, thanks to polyfills all modern browsers should be suppported. Internet Explorer support has not been tested.

About this Project

XD-MVC is under development at the Globis Group at ETH Zürich. The project is coordinated by Maria Husmann. Fabian Stutz, Silvan Egli, and Marko Zivkovic have contributed to XD-MVC.