Leider ist der Eintrag nur auf Amerikanisches Englisch verfügbar. Der Inhalt wird unten in einer verfügbaren Sprache angezeigt. Klicken Sie auf den Link, um die aktuelle Sprache zu ändern.

After my apparently successful presentation at the VisGap 2020 workshop, collocated to the EuroVis/Eurographics 2020, in May, I was now invited to give a short Application Spotlight presentation and the IEEE VIS 2020. I am honored. And, I am looking forward to this opportunity.

Ich hatte eine schöne Gelegenheit mal wieder die akademische Welt heimzusuchen. Kollegen aus meiner alten Universitätszeit haben bei der diesjährigen großen Konferenz EGEV 2020 einen Workshop ausgerichtet, die  VisGap 2020 — The Gap between Visualization Research and Visualization Software (Die Lücke zwischen Visualisierungsforschung und (industrieller) Visualisierungssoftware). Und, sie hatten mich eingeladen eine Cap-Stone-Präsentation zu geben. Ich war sehr geehrt, und glücklicherweise hat auch meine Firma meiner Teilnahme zugestimmt.

In unserer augenblicklichen Situation mit COVID-19 fanden die Konferenz und die Workshops nicht wie geplant in Norrköping in Schweden statt. Stattdessen wurden die komplette Konferenz und alle Workshops in virtuelle Events umgewandelt. Als Ergebnis davon war die Teilnahme kostenlos. Und die Aufzeichnungen aller Sessions sind frei auf YouTube verfügbar. Wenn ihr also meinen Talk euch ansehen möchtet, dann seit gerne meine Gäste:

Jedes Jahr wird im Rahmen der renommierten, internationalen Konferenz für Visualisierung, der IEEE VIS, der sogenannte „SciVis Contest“ abgehalten. Dieses Jahr haben die Mitarbeiter der Professur der Computergraphik und Visualisierung, unterstützt durch Mitarbeiter des Visualisierungsinstituts der Universität Stuttgart, den Contest gewonnen.

Bei dem „SciVis Contest“ kann sich die Community der wissenschaftlichen Visualisierung herausfordernden Aufgaben zur visuellen Analyse realer, anspruchsvoller Daten stellen. Der diesjährige Contest stellte Fragen zu umfangreichen Simulationsdaten von Effekten bei prozesschemischer Salzauflösung, genauer der Ausbildung sogenannter viskoser Finger. Die Dresdner Einreichung wurde als vollständigste und vielseitigste Lösung hervorgehoben, und konnte sich dadurch gegenüber der Konkurrenz durchsetzen.

https://youtu.be/2MkkETz3cVY

Ich hab zwar schon vorher mal darüber geschrieben, aber hier der offizielle News-Artikel von der SFB-716-Webseite.

Zur interaktiven GPU-basierte Visualisierung großer Partikeldaten

20151112_vis2015_tutorialEnde Oktober fand in Chicago die größte Konferenz zum Thema der wissenschaftlichen Visualisierung statt – die IEEE VIS 2015. Hier treffen sich jährlich Experten aus aller Welt, um neueste Forschungsergebnisse zu präsentieren und aktuelle Herausforderungen zu diskutieren. Die Konferenz gilt mit über 1.100 Teilnehmern als die größte und wichtigste internationale Plattform in diesem Bereich.

In diesem Jahr organisierten Michael Krone und Guido Reina aus der Forschergruppe von Prof. Thomas Ertl gemeinsam mit Sebastian Grottel (TU Dresden) und Martin Falk (Universität Linköping, Schweden) ein Tutorial zur interaktiven GPU-basierten Visualisierung großer Partikeldaten. Hier wurden die im SFB716 entwickelten technischen Aspekte zur Erhaltung von Qualität und Interaktivität der Partikelvisualisierung erläutert, die mittlerweile als Stand der Technik akzeptiert sind. Zusätzlich wurde auf die erforderlichen Abstraktionen, die durch ständig wachsende Datensatzgrößen unabdingbar werden, eingegangen, sowohl im Kontext von Biomolekülen und Materialoberflächen als auch in der Visualisierung ganzer Zellen.

Mit mehr als 50 Teilnehmern war das Tutorial sehr gut besucht. Die dort ausgehändigten Materialien, wie Folien, Programmcode und Beispieldatensätze können hier heruntergeladen werden.

WP_20151026_003_1000

Die IEEE VIS 2015 ist vorbei, und sie war wieder mal toll. Gute Paper, gute Ideen und gute Leute getroffen. Es hat sich wirklich gelohnt.

Mein eigenes Tutorial war auch ein voller Erfolg. Wir hatten weit mehr Publikum als gehofft und haben durchweg sehr positives Feedback erhalten. Ich bin sehr zu frieden.

Und müde. Anstrengend ist so eine Konferenz halt auch immer. Und wirklich viel Luft um wieder in die Spur zu kommen hab ich jetzt halt auch nicht, weil die nächsten Arbeiten auch wieder anstehen.

Ich als Visualisierer wissenschaftlicher Datensätze kriege diese häufig in Form von beliebig strukturierten Textdateien. An sich nicht schlimm. Der erste Schritt ist dann eben eine initiale Konvertierung in ein schnelles Binärformat für die visuelle Analyse. Doch damit stehe ich immer wieder vor dem Problem eine 11 Gigabyte Textdatei verstehen zu müssen (Ich übertreibe nicht!). Da die Datei ja doch recht konsistent ist, geht es im Endeffekt immer nur um die ersten paar Zeilen und die letzten paar Zeilen. Dazwischen sieht ja doch meist alles gleich aus. Was ich also brauch sind die üblichen Linux-Befehle „head“ und „tail“. Nun bin ich aber ein Windows-Benutzer. Was nun also? Die Powershell hat die Antwort:

gc log.txt | select -first 10 # head
gc log.txt | select -last 10 # tail

Gefunden hab ich das auf: http://stackoverflow.com/a/9682594 (wo auch sonst)

Zumindest diese Variante von „head“ ist ausreichend schnell für meine Dateien. Ich bin zufrieden.

Leider ist der Eintrag nur auf Amerikanisches Englisch verfügbar. Der Inhalt wird unten in einer verfügbaren Sprache angezeigt. Klicken Sie auf den Link, um die aktuelle Sprache zu ändern.

We updated MegaMol to use cmake to build on Linux OS. This greatly improved the build process on Linux. But this also makes some more uncommon scenarios difficult to realize. For example, cmake usually automatically detects required dependencies. But, in some scenarios you need to override this magic.

In this article I show how to compile a second MegaMol on a system on which a MegaMol already has been compiled and installed. This is useful when working with experimental versions.

VISlib and visglut

First off you build the visglut the usual way. I assume here, that the installed MegaMol uses a different visglut as the one you want to build now:

mkdir megamol_x2
cd megamol_x2
svn co https://svn.vis.uni-stuttgart.de/utilities/visglut/tags/forMegaMol11 visglut
cd visglut/build_linux_make
make

If everything worked you can find the following files:

in megamol_x1/visglut/include:

GL/freeglut_ext.h
GL/freeglut.h
GL/freeglut_std.h
GL/glut.h
visglut.h
visglutversion.h

and in megamol_x2/visglut/lib:

libvisglut64.a
libvisglut64d.a

If so, let’s continue with the VISlib:

cd megamol_x2
svn co https://svn.vis.uni-stuttgart.de/utilities/vislib/tags/release_2_0 vislib
cd vislib

Now, there is the first action which is different from the default build process. As usual we will use the script cmake_build.sh. This script, however, per default registers the build directories in the cmake package registry. This enables cmake to find this package in its build trees. In this scenario, however, we do not want this special build to be automatically found, because we do not want to get in the way of our system-installed MegaMol. We thus deactivate the package registry.

This command configures and builds the VISlib, both for debug and release version:

./cmake_build.sh -dcmn

As always, if you encounter build problems due to the multi-job make, reduce the number of compile jobs:

./cmake_build.she -dcmnj 1

Note that I do not specify an install directory. I do not plan to install this special MegaMol. I just want to build, for example for a bug hunt.

MegaMolCore

It’s now time for the core.

cd megamol_x2
svn co https://svn.vis.uni-stuttgart.de/projects/megamol/core/branches/v1.1rc core
cd core

We first test the configuration by only configuring release and not building anything:

./cmake_build.sh -cv ../vislib -C -DCMAKE_DISABLE_FIND_PACKAGE_MPI=TRUE

Note that I also disabled MPI-Support here. The system I am building on has MPI installed, but I don’t want this MegaMol to use it.

The output should contain this line:

-- Found vislib: /home/sgrottel/megamol20150726/vislib/build.release/libvislib.a

This points to the right vislib, the one we specified. So all is well. We can build MegaMol, again without registering it’s build trees in the cmake package repository:

./cmake_build.sh -dcmnv ../vislib -C -DCMAKE_DISABLE_FIND_PACKAGE_MPI=TRUE

When all worked you got yourself the binaries:

megamol_x2/core/build.debug/libMegaMolCored.so
megamol_x2/core/build.release/libMegaMolCore.so

MegaMolConsole

Get yourself a working copy of the console:

cd megamol_x2
svn co https://svn.vis.uni-stuttgart.de/projects/megamol/frontends/console/branches/v1.1rc console
cd console

Again, we test if everything works by only configuring release and not building:

./cmake_build.sh -c -f ../core

The Console does not register its build tree per default, since no other project depends on the console. So we are fine here.

The output should contain these lines:

-- Looking for MegaMolCore with hints: ../core;../core/build.release;../core/share/cmake/MegaMolCore
-- Found MegaMolCore: /home/sgrottel/megamol20150726/core/build.release/libMegaMolCore.so
-- MegaMolCore suggests vislib at: /home/sgrottel/megamol20150726/vislib/build.release
-- MegaMolCore suggests install prefix: /usr/local
-- Using MegaMolCore install prefix
-- Found vislib: /home/sgrottel/megamol20150726/vislib/build.release/libvislib.a
-- Found AntTweakBar: /home/sgrottel/AntTweakBar/lib/libAntTweakBar.so
-- Found visglut: /home/sgrottel/megamol20150726/visglut/lib/libvisglut64.a

If the directories for other libraries are wrong, for example the AntTweakBar or the visglut use the cmake-typical DIR variable to give a search hint. Remember, relative paths might be confusion. Better use absolute paths. I don’t:

./cmake_build.sh -c -f ../core -C -Dvisglut_DIR=~/megamol20150709/visglut -C -DAntTweakBar_DIR=../../AntTweakBar

But in my case the cmake-magic worked fine in the first place. So, I configure both build types again:

./cmake_build.sh -dc -f ../core

Double check the output. Make sure the core, the vislib and the visglut are found in all the right places. If they are, built it:

./cmake_build.sh -dm

At this point you can quickly test your MegaMol. First open the megamol.cfg configuration file in a text editor and adjust the paths in there to yours. Then run MegaMol:

cd build.release
./MegaMolCon

If this seems ok, and if you have a local graphics card you can run the demo renderer:

./MegaMolCon -i demospheres s

Some MegaMol Plugin

Finally we need a plugin. I go for the mmstd_moldyn:

cd megamol_x2
svn co https://svn.vis.uni-stuttgart.de/projects/megamol/plugins/mmstd_moldyn/branches/v1.1rc mmstd_moldyn
cd mmstd_moldyn

The process is now exactly the same as with the console:

./cmake_build.sh -dcf ../core

The double check the directories for the core and the VISlib. If they are good, build the plugin:

./cmake_build.sh -dm

To test this plugin we go back to the console, and adjust the config file to load the plugin:

cd megamol_x2/console/build.release

Include the following lines in the config file. Obviously adjust the paths to what you need:

<plugin path="/home/dude/megamol_x2/mmstd_moldyn/build.release" name="mmstd_moldyn.mmplg" action="include" />
<shaderdir path="/home/dude/megamol_x2/mmstd_moldyn/Shaders" />

If you now run MegaMol it will try to load your plugin and will report it. The output console should contain something like:

200|Plugin mmstd_moldyn loaded: 11 Modules, 0 Calls
200|Plugin "mmstd_moldyn" (/home/sgrottel/megamol20150726/mmstd_moldyn/build.release/mmstd_moldyn.mmplg) loaded: 11 Modules, 0 Calls registered

And that’s it.

Kommenden Montag und Dienstag ist die VII. Jahrestagung der Boltzmann-Zuse-Gesellschaft für Computational Molecular Engineering, dieses Jahr turnusgemäß mal wieder in Kaiserslautern, organisiert bei Martin Horsch. Im Großen Treffen Sich die Gruppen aus Stuttgart (VISUS, HLRS), Paderborn, Kaiserslautern und Dresden um über Simulation, Analyse und Visualisierung von Molekulardynamik-Daten zu sprechen und die gemeinsamen Forschungs- und Entwicklungsprojekte zu diskutieren. Natürlich werden Joachim und ich über die aktuellen Arbeiten mit und an MegaMol berichten. Übrigens: http://megamol.org