Modeling and Simulation Group Meeting

Some tools for scientific computer graphics

Speaker: Sophie Marbach, Georg Stadler, Aleks Donev and Brennan Sprinkle

Location: Warren Weaver Hall 1314

Date: Thursday, February 18, 2021, 12:30 p.m.

Synopsis:

1. Sophie Marbach: Enhancing the quality of your figures in papers and presentations

 
Basic tools
 
Most of us use powerpoint, keynote, or fancy coding in our favorite figure generating software (TeX, python, etc), to create figures for papers. There's a bunch of drawbacks to that, such as figures either not being easily editable a posteriori, or figures not being in high resolution/vector format.
 
Adobe Illustrator (https://www.adobe.com/products/illustrator.html -- available as part of NYU, on Windows and iOS) and Inkscape (https://inkscape.org/fr/ -- free, available on all platforms) are two of the most used softwares in the scientific community to design vectorized figures for papers. The learning curve is not so steep (self teaching works if you're prepared to try a lot of buttons, and youtube has many tutorials https://www.youtube.com/watch?v=-kGJWzRKQoA). Possibilities are endless. I use it mainly to
- have figures in the right format for papers and looking good with well aligned plots
- extract curves from a plot so I can show them appearing 1 at a time in presentations
- change the position/color of labels to meet exactly my needs
- add indicators on graphs such as slopes in loglog plots etc.
- take the elements I want and copy/paste in my presentations
- add shaded areas on plots to show different regimes
 
Other simple tools worth knowing
 
The noun project (https://thenounproject.com/) contains a huge library of background free (black designs are free) .svg or .png icons to enhance the quality and vivacity of your presentations.
 
Biorender (trial is free, then there's a not too expensive ~50$ fee/year) is widely used for bio related sketches. It contains a ton of very good looking shapes (DNA, cells, neurones, capsides) that allows to easily create very pedagogical sketches (https://biorender.com/)
 
Adobe Fresco (https://www.adobe.com/fr/products/fresco.html# -- available on iPad, iOS and Windows, recommended on iPad) allows to draw vector sketches (https://helpx.adobe.com/fresco/using/vector-brushes.html). They can be saved in vector format and later edited using your favorite figure editor software (changing the color, sizes, and so on). I use it for high quality sketches in papers and talks, it's very convenient because you can really just draw the sketch on your iPad and it ends up looking good even if you don't have specific drawing skills.
 
3D illustrations
 
Blender (https://www.blender.org/ -- free, available on all platforms) allows to design 3D graphics; it can be used for 3D representations/sketches of the systems you study, or taking the 3D data points constituting your domain boundaries and having them assembled in a nice movie. As this is an advanced software, there is a steep learning curve, but it's quite easy (though time consuming, consider at least 2 days) to follow this online class (https://www.youtube.com/channel/UCOKHwx1VCdgnxwbjyb9Iu1g). The cool thing about blender, is that once you know how to make things look good, you can easily interface it with Python (https://www.youtube.com/watch?v=Xrixs_XuDQo).

==================

2. Georg Stadler: Plots in LaTex

TikZ and PGF (https://en.wikipedia.org/wiki/PGF/TikZ, https://texample.net/tikz/) are standard LaTeX package that allow to make clean plots and graphics directly in LaTeX. There’re many examples to start with (https://texample.net/tikz/examples/all/). It’s powerful and well documented (overview slides: https://www.math.uni-leipzig.de/~hellmund/LaTeX/pgf-tut.pdf). I mainly use it for high-quality line graphics in papers and talks. All journals and the arXiv allows submissions that include TikZ/PGF.

==================

3. Aleks Donev: Hardware rendering for OpenGL

I will explain briefly what OpenGL is (including the Mesa implementation), and demo some tools for testing the speed of your graphics hardware, which is crucial for efficient 3D real-time graphics (on ubuntu, install the package glmark2). You are unlikely to call OpenGL directly yourself (and if you do, you will need at least a window manager tool like freeglut or GLFW), and instead you are more likely to use it indirectly via other software (see next two demos) or via a library like VTK, which "adds a rendering abstraction layer over the underlying graphics library (OpenGL for the most part). This higher level simplifies the task of creating compelling visualizations...In VTK, 3D widgets, interactors, and interfaces to 2D widget libraries like Qt enable you to add comprehensive user interaction to your programs."

==================

4. Brennan Sprinkle: Raytracing for high-quality 3D rendering with Plotoptix, a simple to use python package for high fidelity data visualization. It uses a lighting algorithm called 'ray-tracing' which is computationally expensive but produces very realistic looking results. It's typically best suited for visualizations involving simple geometric objects like spheres, quadrilaterals, space-curves, or surfaces of the form z = F(x,y). In these contexts Plotoptix provides easy presets to make plots look great with minimal effort.

For molecular-type models involving particles, see the tool ovito.

==================

3. Aleks Donev (if there is time left): Scientific dataset visualization

I will very briefly demo the scientific dataset visualization software VisIt, but also see Paraview (which is based on VTK).