Ioannis Chatzigiannakis edited this page Feb 23, 2015 · 17 revisions

+++ Applying for Google Summer of Code 2015 +++

The Wiselib project is applying for Google Summer of Code 2015!

We hope that we will have the support of Google to give talented students the opportunity to solve interesting problems in algorithms and protocols for networked embedded systems, such as wireless sensor nodes, or smartphones. Projects around the Wiselib involve working with embedded devices, solving diverse challenges w.r.t. communication protocols and standards, embedded platforms, and embedded applications. Depending on the problem at hand this includes programming on PCs, testbeds of sensor nodes, and Android or iOS smartphones. We are looking forward to get to know students that want to work on the Wiselib during GSoC, if you are interested be sure to check out our Wiselib GSoC Page for project ideas and further information and visit our freenode IRC channel #wiselib!

What is the Wiselib?

The Wiselib is an algorithms library for networked embedded devices. It contains various algorithm classes (for instance, localization or routing) that can be compiled for several platforms such as iSense or Contiki, or the sensor network simulator Shawn. It is completely written in C++, and uses templates in the same way as Boost and CGAL. This makes it possible to write generic and platform independent code that is very efficiently compiled for the various platforms.

We provide easy-to-use interfaces to the OS, which simplifies the development process and decreases the need for dealing with low-level functionality of specific hardware platforms. Algorithms can even be run in a simulation environment first (for debugging purposes, for example), and then compiled for real hardware platforms without changing a single line of algorithm code.

Algorithms can be directly integrated in your application. For example, when developing an application for iSense that collects sensor data values, a Wiselib routing algorithm can be used to route the data to a sink. Another scenario are pure Wiselib applications: We provide an own application_main that is called by Wiselib code, and you can integrate algorithm implementations there. The advantage is that these applications can be compiled for any supported platform, without changing a single line of code (instead, just makefile targets).

Wiselib Download & Support

  • Anonymous github Access:

    • git://
  • Download zipped archive: (probably outdated - use the git!)

  • Mailinglist Subscription:

    • Write an empty mail to, and confirm as described in the received mail.
    • If sth doesn't work properly, or you have any not-public questions just write a mail to
  • Virtual Machine (contains compilers for all supported systems - Ubuntu, 6.5GB, ~2GB packed)

  • Anonymous SVN Access (outdated!):

    • (tag made directly before moving to github)

Wiselib Papers and Presentations

Wiselib Design

  • Wiselib: A Generic Algorithm Library for Heterogeneous Sensor Networks (EWSN2010) paper, slides.

Algorithm Implementations in Wiselib

  • Topology control algorithms in WISELIB (ICSE2010) paper,
  • A Protocol for Self-Synchronized Duty-Cycling in Sensor Networks: Generic Implementation in Wiselib (MSN10) paper,
  • Distributed Game-Theoretic Vertex Coloring (OPODIS'10) paper,
  • Bridging the Gap between Simulated Sensor Nodes and the Real World (REALWSN10) paper.

Wiselib as Development Framework for Experimentation

  • Distributed algorithm engineering for networks of tiny artifacts (Computer Science Review) paper,
  • Distributed Self-organized Societies of Tiny Artefacts book.

Wiselib Development


First Steps



Advanced Topics

Wiselib Design

Concepts and Models

Wiselib Design (concepts and models) is documented as Doxygen documentation. Follow the link for details:

Message ID Allocation

Background Information

GSoC results

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.