cod. 1008731

Academic year 2023/24
2° year of course - First semester
- Jacopo ALEOTTI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ingegneria informatica
Type of training activity
48 hours
of face-to-face activities
6 credits
hub: PARMA
course unit

Learning objectives

The objectives are to provide students with skills in the field of virtual and augmented reality systems, in particular:
- Knowledge of the main input and output devices
- Knowledge of algorithms and data structures for 3D collision detection
- Knowledge of algorithms and sensors for motion analysis.
Ability to apply knowledge and understanding:
- Design and development of virtual and augmented reality systems
- Ability to develop applications in Unity3D
- Ability to program physics-based applications


Basic knowledge of C/C++ language is required.
It is advisable, but not essential, to have taken a basic computer graphics exam (for example "Informatica Grafica" at the first level degree).

Course unit content

The course presents modern virtual and augmented reality technologies for the development of 3D simulated environments with real-time user interaction.
The course includes an extensive laboratory activity in which students will have the opportunity to experiment with the use of software applications, hardware devices, and motion tracking sensors.

Full programme

Course topics:

1) Devices for virtual and augmented reality (18 hours)
Introduction to virtual reality and augmented reality.
Interaction paradigms (navigation in 3D environments, selection and manipulation of objects).
Input devices (gloves, haptic devices with force feedback, devices based on depth cameras).
Head mounted displays and stereoscopy.
Algorithms and sensors for motion analysis.

2) Introduction to Unity3D development environment (10 hours)
Introduction to C# language.
Development of demo applications in Unity3D.

3) 3D collision detection algorithms (10 hours)
Algorithms for the intersection test between 3D primitives.
3D data structures for collision detection (Bounding Volumes, Bounding Volumes Hierarchies, Octree, K-d tree, BSP-tree).

4) Physics-based programming (10 hours)
Rigid body dynamics.
Introduction to the C++ Bullet Physics library.


Steven LaValle, Virtual Reality, Cambridge University Press, Eprint:

Christer Ericson, Real-Time Collision Detection, CRC Press, 2004

Grigore C. Burdea, Philippe Coiffet, Virtual Reality Technology, Wiley-IEEE Press, 2nd edition, 2008

Teaching methods

Classroom lessons (28 hours).
Laboratory lessons (20 hours).

Lecture material is available on the Elly platform.
To access the material it is necessary to register for the online course.

Assessment methods and criteria

An oral test for each official round on all the topics of the course and a project to be carried out individually or in a group.

The final grade is calculated as a weighted average of the evaluation of the written test and the project.
The evaluation of the project takes into account the quality of the work and its complexity.

Other information