Precise and Complete Requirements? An Elusive Goal
Design and implementation of a Virtual Reality application for Computational Fluid Dynamics
1. Virtual Reality for Computational Fluid Dynamics
Design and implementation of a Virtual Reality application for
Computational Fluid Dynamics
Studente: Dr. Lorenzo D’Eri
Relatore: Prof. Francesco Fabris
4 Dicembre 2017
Laurea Magistrale in Ingegneria Informatica
Dipartimento di Ingegneria e Architettura
Universit`a degli Studi di Trieste
1/14
3. Why Virtual Reality for CFD?
• CFD datasets are usually large, complex, three-dimensional and
time-dependent
2/14
4. Why Virtual Reality for CFD?
• CFD datasets are usually large, complex, three-dimensional and
time-dependent
• Visualization on a 2D screen in not optimal
2/14
5. Why Virtual Reality for CFD?
• CFD datasets are usually large, complex, three-dimensional and
time-dependent
• Visualization on a 2D screen in not optimal
• VR technologies offer immersive and intuitive interactions
2/14
6. Why Virtual Reality for CFD?
• CFD datasets are usually large, complex, three-dimensional and
time-dependent
• Visualization on a 2D screen in not optimal
• VR technologies offer immersive and intuitive interactions
• Suitable for CFD visualization
2/14
7. VTK and ParaView
• VTK
• Open-source software for 3D image processing and visualization
3/14
8. VTK and ParaView
• VTK
• Open-source software for 3D image processing and visualization
• Consists of a C++ library with Java and Python wrappers
3/14
9. VTK and ParaView
• VTK
• Open-source software for 3D image processing and visualization
• Consists of a C++ library with Java and Python wrappers
• ParaView
• Open-source data analysis and visualization application
3/14
10. VTK and ParaView
• VTK
• Open-source software for 3D image processing and visualization
• Consists of a C++ library with Java and Python wrappers
• ParaView
• Open-source data analysis and visualization application
• Built on top of VTK as a C++ application with a Qt GUI
3/14
11. VTK and ParaView: Architecture
Figure 1: ParaView and VTK architecture
4/14
12. Objectives of the development
Provide a VR environment for ParaView data that allows:
5/14
13. Objectives of the development
Provide a VR environment for ParaView data that allows:
• Visualization of the data
5/14
14. Objectives of the development
Provide a VR environment for ParaView data that allows:
• Visualization of the data
• Interaction with the data
5/14
15. Objectives of the development
Provide a VR environment for ParaView data that allows:
• Visualization of the data
• Interaction with the data
• Basic manipulation of the data (slicing, etc.)
5/14
17. What is Unity?
• Cross-platform all-purpose graphics and physics engine for sim-
ulations, video games and animations
6/14
18. What is Unity?
• Cross-platform all-purpose graphics and physics engine for sim-
ulations, video games and animations
• Hybrid approach to application development: object-oriented
and scripting-oriented
6/14
20. Why Unity?
• Allows prototyping and exploratory programming
• suitable for more open-ended projects
7/14
21. Why Unity?
• Allows prototyping and exploratory programming
• suitable for more open-ended projects
• Official and community-built libraries for VR
7/14
22. Why Unity?
• Allows prototyping and exploratory programming
• suitable for more open-ended projects
• Official and community-built libraries for VR
• Ability to develop independently from ParaView
7/14
23. Why Unity?
• Allows prototyping and exploratory programming
• suitable for more open-ended projects
• Official and community-built libraries for VR
• Ability to develop independently from ParaView
• Existence of ParaView integrations
7/14
33. What is ParaUnity?
Open-source plugin for ParaView that exports to Unity
• Objects converted to X3D format
• Communication through disk I/O and TCP sockets
8/14
36. ParaUnity: limitations
• Disk I/O is slow
• Compatible only with Oculus Rift
• Materials (colors) not being imported
9/14
37. ParaUnity: limitations
• Disk I/O is slow
• Compatible only with Oculus Rift
• Materials (colors) not being imported
• No object interaction allowed
9/14
41. ParaUnity: development
• Communication moved to RAM (named shared memory)
• Import/export are now asynchronous
• Added HTC Vive support
• Developed shaders for material import
10/14
42. ParaUnity: development
• Communication moved to RAM (named shared memory)
• Import/export are now asynchronous
• Added HTC Vive support
• Developed shaders for material import
• Implemented object interaction
10/14
45. Project Objectives
Let us review the project objectives
! Visualization of the data
! Interaction with the data
! Basic manipulation of the data (slicing, etc.)
12/14
46. Future development
Open-ended project leaves space for further development.
Some ideas include:
• Move more ParaView features (e.g. contouring) to Unity
13/14
47. Future development
Open-ended project leaves space for further development.
Some ideas include:
• Move more ParaView features (e.g. contouring) to Unity
• Ability to chose displayed variable in Unity
13/14
48. Future development
Open-ended project leaves space for further development.
Some ideas include:
• Move more ParaView features (e.g. contouring) to Unity
• Ability to chose displayed variable in Unity
• Develop X3D alternative for better performance
13/14