Back to my home page

mgpm - a multicast-enabled mgp

mgpm is a multicast-enabled version of the MagicPoint presentation tool. A techreport describing the application is available as

Snapshots of the basic version of MagicPoint are available at

mgpm is designed as a one-to-many application, where a master node can unidirectionally transmit a presentation to a potentially large number of receivers.

The application uses a FEC-based reliable multicast protocol to distribute the presentation data to the receivers, and a special-purpose protocol to deliver commands (e.g. page changes, annotations, etc.) from the master sender to the receivers. In order to achieve scalability, the protocol is fully unidirectional and uses no feedback whatsoever from the receivers.

Transmission is done using RTP-encapsulated packets over a number of multicast groups. The application uses a congestion-controlled version of our Reliable Multicast Data delivery Protocol (RMDP) which is based on the RLC congestion control scheme. More info on RMDP and RLC is available at my research page

RLC and RMDP are joint works with Lorenzo Vicisano and Jon Crowcroft.

Download and install info

You can choose between a binary (currently for FreeBSD, Windows and Linux) and a source distribution.


mgpm behaves essentially as mgp, with only a few extensions. To use it for multicast presentations, the sender node needs to start it as follows:
   mgpm [options] -M group/port/ttl filename
whereas receivers can start the program as
   mgpm [options] -S rmdp://group:port/
With the above command, the sender runs an RMDP session on the specified multicast group addresses, and a command session on the group address immediately before. The receiver will in turn launch an RMDP receiver to download the presentation, then starts displaying the current slide and execute any command coming from the sender.

Other combinations are possible, e.g. the receiver can load the presentation from a local file or using http, just replacing the URL of the file with a local filename or a generic URL (e.g. /tmp/a.mgp or http://host/file).

In this case the address to be used for the control stream can then be specified with the option -r group/port on the receiver, and -s group/port on the sender. Unicast addresses can be used, in which case they should reflect the receiver's IP.

Security alert

Be warned, an mgp presentation can request the execution of commands on the host. The "-S" flag on the client is there to prevent a nasty sender to be able to run things on your machine. Remove it only if you know what you are doing.


mgpm is still in being actively developed. We are working on various aspects of the application: From my experience, the annotation ("rakugaki") mode in mgp is not very useful unless you have a graphic tablet and a pen. With that, and a tiny little bit of training, you can really use mgp as a {black|white}board, and do real-time drawings with the same ease. I have had good success with a Wacom PenPartner, which is a low cost (about 100US$) tablet with a passive pen using a button and an eraser. XFree86 fully support the tablet through the XIE interface, by simply adding the following lines to /etc/XF86Config:
    Section "Files"
      ModulePath  "/usr/X11R6/lib/modules"

    Section "Module" 
      Load ""

    Section "Xinput" 
      SubSection "WacomStylus"
	Port "/dev/cuaa1"
	DeviceName "Wacom" 
	Mode Absolute 
	Suppress 6 
In this way you can have both the mouse and the pen active at all times.
NOTE: The XFree86 3.3.3 version of has a bug in that it reports the eraser side of the pen as Button1, instead of Button3 as the previous version (3.3.2) did. The problem has been reported to the xf86Wacom developers and will be hopefully fixed in future releases. In the meantime i will try to provide a patch and possibly modified binaries.
Luigi Rizzo
Dipartimento di Ingegneria dell'Informazione -- Univ. di Pisa
via Diotisalvi 2 -- 56126 PISA
tel. +39-050-568533 Fax +39-050-568522