-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvisualization.qmd
More file actions
661 lines (653 loc) · 36.3 KB
/
Copy pathvisualization.qmd
File metadata and controls
661 lines (653 loc) · 36.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
---
title: "Visualization resources"
aliases:
- /tools/visualization
toc: false
---
For full documentation, please check the <a href="https://docs.alliancecan.ca/wiki/Visualization"
target="_blank">Visualization section</a> in Alliance’s technical wiki.
## Workshops
* ParaView full-day workshop slides (last updated October 2025):
- <a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/paraviewWorkshop1.pdf"
target="_blank">Part 1</a> (62 pages)
- <a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/paraviewWorkshop2.pdf"
target="_blank">Part 2</a> (59 pages)
* <a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/visitWorkshop.pdf"
target="_blank">VisIt full-day workshop slides</a> (129 pages, last updated May 2017)
* <a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/dhsi.pdf"
target="_blank">"3D visualization for the humanities" slides</a> (82 pages, last updated June 2023)
* <a href="https://acenet-arc.github.io/paraview-introduction/" target="_blank">ACENET's Paraview
Introduction</a> by Angus Creech
<!-- repo https://github.com/acenet-arc/paraview-introduction/tree/master/_episodes -->
## Webinars
<!-- <details style="margin: 0; padding: 0;"> -->
<!-- <summary style="line-height: 1.2; margin: 0; padding: 2px 0;"> -->
<!-- <span style="font-size: 1.2em;">title</span> (date) -->
<!-- </summary> -->
<!-- <br> -->
<!-- <p> -->
<!-- paragraph 1 -->
<!-- </p><p> -->
<!-- paragraph 2 -->
<!-- </p> -->
<!-- <ul> -->
<!-- <li>Speaker: </li> -->
<!-- <li><a href="" target="_blank">PDF slides</a></li> -->
<!-- </ul> -->
<!-- <div class="video-container" data-url="https://www.youtube.com/embed/videoIDstring"></div> -->
<!-- <br> -->
<!-- </details> -->
Click on each webinar for its recording and materials.
<div style="display: flex; flex-direction: column; gap: 6px;">
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Two paths to Python dashboards: Shiny vs Dash</span> (2026-May-19)
</summary>
<br>
<p>
Interactive dashboards are a powerful way to explore data, communicate results, and build web applications
directly from Python. Two popular frameworks for this purpose are Python Shiny and Plotly Dash, each offering
different approaches to building reactive interfaces and interactive visualizations.
</p><p>
In this webinar, we compare these two frameworks through a small set of practical examples. Rather than
providing a comprehensive feature-by-feature review, we implement the same simple dashboards in both
frameworks and examine how their design philosophies translate into code structure and reactivity models, and
how similar functionality can be implemented in each framework.
</p>
<ul>
<li>Speakers: Marie-Hélène Burle and Alex Razoumov</li>
<li><a href="https://folio.vastcloud.org/winterseries" target="_blank">Winter visualization series</a></li>
<li>Part 1: <a href="https://folio.vastcloud.org/plotly1/plotly-04-dash.html" target="_blank">Interactive apps with Dash</a></li>
<li>Part 2: <a href="https://mint.westdri.ca/python/wb_shiny" target="_blank">Shiny dashboards</a></li>
<li>Shinylive examples (Python code running inside the browser via WebAssembly):</li>
<ul>
<li><a href="https://lasso-dashboard.netlify.app" target="_blank">Lasso selection</a></li>
<li><a href="https://3d-contour-dashboard.netlify.app" target="_blank">3D contours through a NetCDF dataset</a></li>
<li><a href="https://data-collection-dashboard.netlify.app" target="_blank">data collection dashboard</a> (will freeze when you try to save results: no local file)</li>
<li>and the <a href="https://github.com/WestDRI/dashboards" target="_blank">source code</a> for these examples</li>
</ul>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=exp1b6HQjlI width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/exp1b6HQjlI"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Creating interactive online visualizations with Trame</span> (2025-Nov-18)
</summary>
<br>
<p>
Trame is an open-source framework that lets researchers build interactive web applications and dashboards for
data visualization, leveraging Python and popular visualization frameworks like VTK and ParaView. In this
webinar, we introduce the core concepts of Trame, demonstrate how to create interactive visualizations,
and show how to put them online for easy sharing. This session is ideal for researchers and data scientists
who want to transform their static visualizations into interactive, shareable experiences without needing
extensive web development expertise.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/trame20251118.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=0yfzutsNnjI width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/0yfzutsNnjI"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<a name="imagemagick"></a>
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Command-line image processing with ImageMagick</span> (2024-Jan-09)
</summary>
<br>
<p>
ImageMagick is an open-source tool for manipulating images. You can use it to convert images between different
formats, including JPEG, PNG, PDF, AVIF, TIFF and many others. ImageMagick can also resize, rotate, crop, and
transform images, adjust colours, apply special effects, and draw basic shapes. First released in 1990,
ImageMagick has grown to include hundreds of features. It runs on Linux, Mac, Windows, and is also available
on the Alliance clusters. In this webinar I will try to help you navigate ImageMagick's myriad of functions by
showing some command-line workflows most common in scientific research.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://wgpages.netlify.app/imagemagick" target="_blank">Online notes</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=8n16CuJZJ4c width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/8n16CuJZJ4c"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Text analysis in 3D</span> (2023-Nov-28)
</summary>
<br>
<p>
3D visualization is used surprisingly little to visualize data and connections in digital humanities, despite
the fact that the 3rd dimension can provide many benefits, from decluttering your plot to encoding one of the
variables. In this webinar I present a workflow to analyze a text corpus consisting of works from multiple
authors, and visualize the differences between their vocabularies in 3D. I complement this visualization with
3D graphs to link similar texts. Throughout this webinar I am using only open-source tools -- Python and
several 3rd-party Python libraries, ParaView, and VTK, and show 3D visualizations that can easily scale to
millions of texts and can work for any input language.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/texts20231128.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/texts20231128.zip" target="_blank">All scripts</a>from the presentation (ZIP file)</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=8kZaCbDvzcU width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/8kZaCbDvzcU"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<a name="cinema"></a>
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Image-based approach to large-scale visualization</span> (2023-Oct-17)
</summary>
<br>
<p>
Cinema is an interactive image-based approach to data analysis and visualization targeting very large datasets
that are difficult to visualize interactively due to their size. In Cinema you can store your visualization as
a prerecorded database of images created, for instance, by a script that you run as a batch job on an HPC
cluster. Once this database is built, you can import it into a Cinema-enabled environment to explore the
visualization interactively as if you were rendering it live. The technique works equally well for simulation
and experimental data. It potentially reduces data movement and storage since you don't store the original
multidimensional datasets, but only the 2D images that you want to see. Optionally, you can use Cinema with
ParaView Catalyst to render the images in-situ, right in your simulation software.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/cinema20231017.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=m9f7fUBAoPk width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/m9f7fUBAoPk"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Launching 2023 <i>Visualize This</i> contest</span> (2023-Sep-19)
</summary>
<br>
<p>
This fall we are running a Canada-wide
<a href="https://visualizethis.netlify.app" target="_blank">scientific visualization Contest</a>. The contest is
targeting early-career researchers from Canadian universities, but anyone can participate irrespective of
their affiliation or career stage. Participants can work on one of two geospatial datasets, one from a
simulation of a storm in Eastern Canada, and the other from a compilation of the normalized difference
vegetation index (NDVI) data over BC throughout 2022.
</p><p>
In this webinar I go through both datasets, show how to load them into standalone Python and into ParaView and
several possible techniques for visualizing these data, including manipulating variables via the Programmable
Filter.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://visualizethis.netlify.app/webinar" target="_blank">Online notes</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=MIlMQ3mcVW4 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/MIlMQ3mcVW4"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Data visualization in Julia with the Makie ecosystem</span> (2022-Oct-26)
</summary>
<br>
<p>
There are several popular data visualization libraries for the Julia programming language, e.g. Plots, Gadfly,
VegaLite, Makie. They vary in their precompilation time, time to first plot, layout capabilities, ability to
handle 3D data, ease of use, and syntax style. In this landscape, Makie focuses on high performance, fancy
layouts, and extensibility. Makie comes with multiple backends. In this workshop, we cover GLMakie (ideal for
interactive 2D and 3D plotting), WGLMakie (an equivalent that runs within browsers), and CairoMakie (best for
high-quality vector graphics). We also show how to run Makie in the Alliance clusters.
</p>
<ul>
<li>Speaker: Marie-Hélène Burle</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/makie20221026.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://julia.westdri.ca/webinars/makie" target="_blank">Online slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=nmAv2bW9Y2I width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/nmAv2bW9Y2I"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">In-situ visualization with ParaView Catalyst2</span> (2022-Sep-28)
</summary>
<br>
<p>
Catalyst lets you perform analysis and visualization of your simulation data while your simulation is running,
using familiar ParaView visualization pipelines. In this webinar I focus on Catalyst2 which is a significant
rewrite of the original Catalyst framework. Catalyst2 provides an API for describing and passing data arrays —
computational meshes and fields — from your simulation to the Catalyst2 library which in turn converts these
arrays into appropriate VTK data objects, without you having to know the VTK data model (unlike with the
original Catalyst), and without duplicating these data arrays in memory. Catalyst2 framework can scale to very
large datasets and thousands of CPU cores via MPI.
</p><p>
I show examples of instrumenting a C simulation code with Catalyst2 and applying various Catalyst Python
scripts to generate data and images on the fly while the simulation is running. These Catalyst Python scripts
in turn can be easily generated with Extractors which have been part of ParaView since version 5.9. I also
demo ParaView Live connecting from the ParaView GUI to a live simulation to modify an existing visualization
pipeline while the simulation is running. This lets you interactively explore large datasets in memory without
having to write them to disk. Even though I demo Catalyst2 with C codes, it can be used from C, C++, Fortran,
Python, and has also been demonstrated to work well with Julia simulation codes.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/catalyst20220928.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/catalyst20220928.zip" target="_blank">ZIP file with scripts and instructions</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=g3cvXeKbt1o width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/g3cvXeKbt1o"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Highlights from the 2021 SciVis Contest</span> (2021-Nov-10)
</summary>
<br>
<p>
The 2021 SciVis Contest organized jointly by IEEE and Compute Canada wrapped up on October 28th, with the official
announcement of awards at the IEEE Vis conference. This Contest dataset was a numerical simulation of convection in the
Earth's mantle containing 251 timesteps covering 500 Myr of geological time, data courtesy of the Pysklywec Lab (Russell
Pysklywec and Hosein Shahnas) at the University of Toronto. The simulation was conducted using Compute Canada’s Niagara
cluster. The Contest challenge was to identify various flow features and visualize them clearly as they evolve in
time. We saw many good submissions and a ton of innovative visualization ideas. In this webinar we talked about some of
the ideas suggested in the submissions.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/scivis21.pdf" target="_blank">PDF slides</a></li>
</ul>
<p>
Please note that the short clips shared in the webinar were not recorded smoothly by Zoom, so it is best to watch these
animations inside the presentations linked from the <a href="https://scivis2021.netlify.app/results"
target="_blank">Contest website</a>.
</p>
<!-- {{< video https://www.youtube.com/watch?v=FmVOdcOoajM width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/FmVOdcOoajM"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Remote visualization on Compute Canada clusters</span> (2021-Sep-29)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/remote20210929.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/remote20210929.zip" target="_blank">ZIP file with scripts</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=VtAfV6V6Ob4 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/VtAfV6V6Ob4"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<a name="nvidia"></a>
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Scientific visualization on NVIDIA GPUs</span> (2021-Apr-28)
</summary>
<br>
<ul>
<li>Speaker: Nick Leaf (NVIDIA)</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/Nick_Leaf-Scientific_Visualization_on_NVIDIA_GPUs-April_2021.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=t9L8Q9jjGzo width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/t9L8Q9jjGzo"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<a name="programmable"></a>
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Workflows with Programmable Filter / Source in ParaView</span> (2021-Jan-20)
</summary>
<br>
<p>
For many years, one of the most underappreciated features in ParaView has been the ability to define custom
objects using Programmable Filter or Source. These tools could be useful for defining new spatial
discretizations (e.g. grids), for creating custom objects in 3D, or even for reading non-standard data from
files. In this webinar I demonstrate some of these workflows.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/programmable20210120.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/programmable20210120.zip" target="_blank">ZIP file with scripts</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=MBXP7hmYatc width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/MBXP7hmYatc"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">The Topology ToolKit (TTK)</span> (2020-Nov-25)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/ttk20201125.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/states20201125.tar.gz" target="_blank">gzipped tar file with ParaView state files</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=M9T04jj6HD4 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/M9T04jj6HD4"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Intermediate VMD topics: trajectories, movies, scripting</span> (2020-Oct-28)
</summary>
<br>
<ul>
<li>Speaker: Olivier Fisette</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/vmd20201028.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://nextcloud.computecanada.ca/index.php/s/kcHgbbEgwS3GkHM/download" target="_blank">tar file</a> with data and scripts</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=Jce5JN2fLuo width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/Jce5JN2fLuo"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Web-based 3D scientific visualization</span> (2020-Apr-29)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/webvis20200429.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=7aOF8BYll5A width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/7aOF8BYll5A"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Scientific graphics with gnuplot</span> (2020-Apr-01)
</summary>
<br>
<ul>
<li>Speaker: Dmitri Rozmanov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/gnuplotSlides20200401.pdf" target="_blank">PDF slides</a></li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/gnuplotExamples20200401.tar.gz" target="_blank">gzipped tar file with examples</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=js4KgC_Jucs width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/js4KgC_Jucs"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Photorealistic rendering with ParaView and OSPRay</span> (2020-Jan-15)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/pathtracer20200115.zip" target="_blank">ZIP file</a> with slides and other materials</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=oK35O03RSTw width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/oK35O03RSTw"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Batch visualization on Compute Canada clusters</span> (2019-Sep-18)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/batch20190918.zip" target="_blank">ZIP file</a> with slides and scripts</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=VCUAObVUKj8 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/VCUAObVUKj8"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Molecular visualization with VMD</span> (2019-Mar-06)
</summary>
<br>
<ul>
<li>Speaker: Dmitri Rozmanov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/vmd20190306.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=_skmrS6X4Ys width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/_skmrS6X4Ys"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<a name="yt2"></a>
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Working with data objects in YT</span> (YT Part 2, 2019-Jan-23)
</summary>
<br>
<p>
In Part 2 we learn how to use <a href="https://yt-project.org" target="_blank">YT</a> for data analysis
and manipulation, including creating isosurfaces and streamlines, exporting 3D scenes to interactive
viewers such as ParaView and MeshLab, and subsetting data in many different ways.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/yt20190123.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=enu7FcFmf6c width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/enu7FcFmf6c"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Using YT for analysis and visualization of volumetric data</span> (YT Part 1, 2018-Nov-21)
</summary>
<br>
<p>
In this webinar we take a look at <a href="https://yt-project.org" target="_blank">YT</a>, a python
package for analyzing multi-resolution volumetric and particle data. Initially written for working with
astrophysical simulation data, YT is now widely used across many disciplines dealing with 3D simulation
or observational/experimental data.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/yt20181121.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=gkUbVjImv20 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/gkUbVjImv20"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Scientific visualization with Plotly</span> (2018-Mar-28)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://github.com/WestGrid/trainingMaterials/blob/gh-pages/materials/plotly.md" target="_blank">Webinar notes</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=to3u6g9XORM width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/to3u6g9XORM"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Novel sci-vis techniques from the 2017 <i>Visualize This</i> Challenge</span> (2018-Jan-31)
</summary>
<br>
<p>
In this webinar we review the visualization techniques found in 2017 WestGrid's <i>Visualize This!</i>
contest submissions:
<ul>
<li> toy conceptual animation created entirely in ParaView, along with the use of programmable sources,</li>
<li> using Stream Tracer With Custom Source filter to animate streamlines in a stationary flow,</li>
<li> using integration time contours to animate the grids of dots moving along streamlines,</li>
<li> animating many properties simultaneously in a single Animation View timeline,</li>
<li> colour selection for volumetric and semi-transparent plots to highlight specific regions,</li>
<li> camera animations,</li>
<li> using Blender game engine to let a user walk through the ParaView-created scene and toggle the visibility of the various physical components, and</li>
<li> coupling visualization with the SuperCollider server to produce on-the-fly audio from selected Q-criterion.</li>
</ul>
</p>
<ul>
<li>Speakers: Alex Razoumov et al.</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/novel20180131.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=LAeiWHb3c70 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/LAeiWHb3c70"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Data Visualization on Compute Canada's Supercomputers</span> (2017-Oct-03)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/remote20171003.zip" target="_blank">ZIP file</a> with slides and other files</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=vXamgZWTs0g width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/vXamgZWTs0g"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">ParaViewWeb for 3D vis. and data analysis in a web browser</span> (2017-Mar-29)
</summary>
<br>
<p>
ParaViewWeb is a lightweight API for writing HTML5 web applications that utilize a remote ParaView server
for running a visualization in a web browser. This talk gave an introduction to ParaViewWeb, shared an
overview ofJavaScript Web Visualizer's main features, and explained how to build simple ParaViewWeb apps
from scratch.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/pvweb20170529.zip" target="_blank">ZIP file</a> with slides and other files</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=IUN5ln_XnA8 width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/IUN5ln_XnA8"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Scripting and other advanced topics in VisIt visualization</span> (2016-Nov-02)
</summary>
<br>
<p>
This webinar looks at the Python interface in VisIt, one of several popular open-source, general-purpose
visualization packages. We demonstrate the different ways to launch scripts and use them for a number of
rendering tasks including processing time-dependent datasets and creating animations. We also take a look
at several other interesting topics in VisIt workflows such as visualizing the terrain in 3D and
rendering molecules.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/visitScripting.zip" target="_blank">ZIP file</a> with slides and other files</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=REJEmgmz7xw width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/REJEmgmz7xw"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">CPU-based rendering with OSPRay</span> (2016-Sep-28)
</summary>
<br>
<p>
OSPRay, Intel's scalable open-source library, can provide very fast rendering on systems that don't have
GPUs, making it possible to produce high-fidelity visualizations on the same general CPU nodes you use
for running your simulations. In this session, we take a look at OSPRay inside ParaView both on a laptop
and on a GPU-less cluster node, discuss benchmarks and compare the resulting images built with and
without the OSPRay engine.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/ospray.pdf" target="_blank">PDF slides</a></li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=23kOj1UkQ-o width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/23kOj1UkQ-o"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">3D graphs with NetworkX, VTK, and ParaView</span> (2016-May-24)
</summary>
<br>
<p>
Options for 3D graph visualization and analysis are very limited, confined primarily to short-lived
research projects or legacy tools that can still be downloaded but are no longer maintained and
updated. The reason for this is the popularity of 2D tools such as Gephi and Cytoscape and the
expectation that in 3D complex networks will look messy, with some structures occluding others. On the
other hand, in 3D layouts we can encode three independent attributes and visualize some unique connection
topologies that will be lost in 2D.
</p>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://raw.githubusercontent.com/WestGrid/trainingMaterials/gh-pages/materials/3dgraphs.zip" target="_blank">ZIP file</a> with PDF slides and Python scripts</li>
</ul>
<!-- {{< video https://www.youtube.com/watch?v=BsK_WwoSKDM width="100%" height="500px" >}} -->
<div class="video-container" data-url="https://www.youtube.com/embed/BsK_WwoSKDM"></div>
<br>
</details>
<!-- ========================================================================================== -->
<details style="margin: 0; padding: 0;">
<summary style="line-height: 1.2; margin: 0; padding: 2px 0;">
<span style="font-size: 1.2em;">Graph visualization with Gephi</span> (2016-Mar-22)
</summary>
<br>
<ul>
<li>Speaker: Alex Razoumov</li>
<li><a href="https://github.com/WestGrid/trainingMaterials/blob/gh-pages/materials/gephi.md" target="_blank">Online notes</a></li>
</ul>
<br>
</details>
<!-- ========================================================================================== -->
</div>
<br>
```{=html}
{{< video https://www.youtube.com/watch?v=videoIDstring width="100%" height="500px" >}}
<div class="d-flex justify-content-end my-4">
<button class="btn btn-outline-secondary btn-sm" onclick="collapseAllDetails()">
<i class="bi bi-arrows-collapse"></i> Collapse All Sections
</button>
</div>
<!-- button to collapse all sections in this page -->
<script>
function collapseAllDetails() {
document.querySelectorAll('details').forEach(d => d.open = false);
}
</script>
<!-- embed a video forcing a high-resolution thumbnail preview -->
<script>
document.querySelectorAll('details').forEach(details => {
details.addEventListener('toggle', () => {
if (details.open) {
const container = details.querySelector('.video-container');
if (container && !container.querySelector('iframe')) {
const url = container.getAttribute('data-url');
container.innerHTML = `<iframe src="${url}" width="100%" height="500px" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`;
}
}
});
});
</script>
```