Shawn is a simulation framework for WSNs implemented in C++ with unique features for the development of algorithms, protocols and applications. It does not compete with traditional simulators in the area of network stack simulation. Instead, it focuses on an abstract, repeatable and expressive approach to WSN simulation. By replacing low-level effects with abstract and exchangeable models, the simulation can be used for huge networks in reasonable time while keeping the focus on the actual research problem. In the case of a MAC layer, for example, Shawn models the effects of a MAC layer for the application (e.g., packet loss, corruption and delay) instead of performing simulations including radio propagation properties such as attenuation, collision, fading and multi-path propagation. As a result, there is a performance gain since such a model can be implemented very efficiently. On the other hand, this means that Shawn is unable to provide the same detail level that, for example, COOJA or Ns-2 provide with regard to physical layer or packet level phenomena.
Shawn has been extended to support WISEBED APIs and standards. It can read and write WiseML files, provides an iWSN and Session Management implementation to be even connected to federated testbeds, and supports the Wiselib to run an algorithm in simulation before bringing it to a real testbed.
Documentation is available at http://shawn.sourceforge.net
Obtain the source code from the SVN at https://shawn.svn.sourceforge.net/svnroot/shawn