HimmeliA general graph constitutes a multi-dimensional object so to draw it on a flat surface involves a coarse simplification of its nature. An equivalent would be to describe a human life by just two words. Sometimes this can be quite effective, sometimes there really is no hope of a meaningful description. In any case, a drawing of an interesting network – be it accurate or not – gives a researcher a glimpse into the abstract mathematical world of complex graphs.Himmeli is designed for the most difficult cases of weighted and densely connected graphs were no regularities can be exploited. Consequently, large graphs take a long time to process and the textbook examples of exact combinatorial constructs might not be visualized optimally. The core algorithm is a mix of simulated annealing and molecular dynamics and employs a cell grid memory structure to reduce unnecessary computing.

This work started out as a student project, but it has since taken a life of its own. “Himmeli” is a Finnish word for a decorative handicraft made of straws that are tied together to form a regular lattice. The structure is visually striking, yet very light and portable, a perfect model for a drawing software. Himmeli is an effort to make a scientist’s life easier, not harder. Thus special care has been taken to reduce the number of unnecessary formatting of input files and to ensure consistent and reliable behavior. There is no graphical user interface, but an online facility is provided for those who are not familiar with the command prompt. Finally, the source code is available under the GNU license so any enthusiastic mind can create his or her own version on any platform.

FinnDiane Study Group
Folkhälsan Research Center

Source code

Network of clinical and biochemical characteristics in a set of 4,197 patients with type 1 diabetes. Cardiovasc Diabetol 8:54

Version history
Current code is compatible with gcc 4.3.3 compiler (tested on Ubuntu 9.04).

2009-06-21 Himmeli v3.3
Edges and vertices were incorrectly normalized, which produced too thick or too thin automatic line decorations. Also, a bug in the simulated annealing algorithm caused unfinished layouts. Both problems are fixed in v3.3.7.

2009-01-29 Himmeli v3.3
The non-standard random number generator drand48() is no longer used. The code should therefore be portable to e.g. Windows systems.

2008-12-12 Himmeli v3.3
Compilation problem with the sort() call is now fixed, along with a few other runtime problems that caused segmentation faults. Tree mode was replaced with a more general chassis mode.

2008-10-10 Himmeli v3.2
Migration from PostScript to Scalable Vector Graphics has been completed. The new output format provides better visual quality and is easier to modify. Also, some of the problems with non-ASCII characters are now solved.

2008-10-10 Himmeli v3.2
Some changes were made to the way vertex shapes and patterns are defined in the configuration file. See the online tutorial for details.

2008-10-10 Himmeli v3.2
The old user’s guide is now replaced with a web based tutorial and reference guide.

2008-07-14 Himmeli SVG
Himmeli now uses Scalable Vector Graphics for storing figures! However, due to issues relating to a wider update of the web site and online service software, the “official” release will be made later. But for now, the undocumented source code is available for download.

2007-06-29 Himmeli v3
The complete source code is now available for download. The software is under the GNU General Public License so you are free to redistribute and modify the code.

2006-12-12 Himmeli v3.0.1
Some new features and bugfixes, and a new user’s guide.

2006-04-11 Himmeli v3.beta
The first version of the third generation (really the second generation but with respect to CraneFoot this is more consistent). Some changes were made in the interface, but the most important updates concern the node positioning core, which is now faster and smarter. In addition, the text output files are now specifically designed to ease quick layout reconstruction.

2005-09-18 Himmeli v1.6
Much of the code outside the simulation kernel was rewritten along the migration from C to C++. Furthermore, the configuration interface has been updated from v1.3 by adding a few new features and making the parameter names more consistent. Other major improvements include the introduction of fixed paper sizes, a comprehensive topology listing, 3D mode, and user-defined background and foreground colors.