Lab Course - Web-based Virtual Reality Lab

Lehrveranstaltungsnummer:12.00007
Room: bitstars Offices, Hanbrucher Str. 40, 52064 Aachen

Begin: TBA

Lecturer: Prof. Dr. Bernhard Rumpe
Supervising Assistants:
  • Simon Heinen
  • Marx Bievor
  • Florian Klingner
  • Jens Böttcher
Course Type: Laboratory

The Lab will be done in collaboration with HoloBuilder, Inc., which is a start-up and spin-off of the computer science department at RWTH Aachen. This allows students to gain insights into the professional start-up and software engineering worlds by working on industry-relevant projects that will be integrated into real-world software products.

Topic/Description

In this lab the content and educational objectives of the module handbook will be worked out using an exemplary software project in the area of Virtual Reality (VR) with focus on browser-based rendering and related technologies.

Similar to existing products like HoloBuilder (https://www.holobuilder.com/app/index.html), software components in the fields of 3D rendering and virtual reality will be developed, which run completely standalone in the browser without the requirement of plug-ins. Three.js and similar existing libraries will be our foundation for working with completely browser-based 3D. Hence, the primary requirements for you will be to bring some initial experience in JavaScript as well as an interest in 3D technologies and the future of virtual reality.

Virtual reality and products like HoloBuilder do not only have exciting use cases in the gaming and movie industries, but are already successfully used in areas like construction, real estate, tourism, marketing and many more. For instance, creating virtual tours of construction sites makes it easy for project managers to inspect these at any time, leaving remarks and tasks for workers directly in the virtual rooms, which saves them huge amounts of time and money. Thus, making the authoring process (the creation of VR content) for everyday users as simple as possible is the primary aim of HoloBuilder. Enabling the user to embed and combine 360° imagery and 3D models right in their browser are the first steps to making this possible. As a participant in the Virtual Reality Lab, you can be a part of this exciting development.

Related Links

Registration and Initial briefing

For your registration, please provide information about your qualification, current experience and study situation (known programming languages, projects related to JavaScript & Web development, ..). If you have special interest in the topic of this lab you can send us an email or fill out the related field in the registration process. You will be informed about the first meeting in the weeks after the registration closes.

Technologies you will work with:

  • Solid knowledge of JavaScript (& HTML+CSS), the model-view-controller pattern as well as the basic principles of web development are required.
  • Based on WebGL and Javascript, you will work with the Three.js (http://threejs.org/) and Backbone.js (http://backbonejs.org/) libraries to develop components of a 3D web application.
  • Emscripten (http://kripken.github.io/emscripten-site/) and asm.js (http://asmjs.org/) will become relevant depending on the components you are working on.
  • The coding standards used in the lab will include ES2015 (https://en.wikipedia.org/wiki/ECMAScript#6th_Edition_-_ECMAScript_2015).
  • Having attended the lectures Software Engineering, Web Technologies and/or Computer Graphics is a plus.
  • Knowledge of BIM and/or CAD technology is a plus.
  • While most of this can be learned hands-on, please make yourself familiar with the above mentioned technologies at an early stage in order to be optimally prepared for the lab.

Contents and learning targets from the handbook of modules (B.Sc.)

  • Colloquial phrases of the requirements
  • Profound knowledge in a programming language
  • Design of a software architecture
  • Implementation according to the coding guidelines
  • Generation and implementation of software tests
  • Review of the results by inspections
  • systematic and structured documentation of the code as well as the previous requirements e.g. architecture
  • Working with a modern development environment and frameworks
  • Presentation of the developed results
  • Group dynamic effects by collaborative working

Contents and learning targets from the handbook of modules (M.Sc.)

During the internship, the students should apply specialist knowledge and methods in regard of the conception, implementation and tests of software and hardware systems, as well as the conduct of experiments and measurements. Usually the tasks will be processed in small-group work and/or pair-programming sessions.
  • Ability to independently apply knowledge and methods from hardware and software development.
  • Ability to work together in teams

Learning goals:

On the one hand the focus of this software project is to provide participants with profound development knowledge. This is done by creating a large software system that consists of several components. The participants will have to learn about the used programming language - if this is new - and more important the used technologies, libraries and frameworks. They also learn how to use modern development tools, create proper documentation and how to present the achieved results. To check the results systematically, the participants will do code reviews and write tests when possible (test-driven development). In short, the participants learn that a solution can be achieved only if interfaces carefully are planned, formulated and adhered to. Participants will learn in particular the group dynamic effects associated with the division of labor (delayed results, participants come late and have to be "motivated" to collaborate). The occurrence of these effects is so far guaranteed, as each group has to manage its work themselves. In addition to the group-dynamic problems votes and presentations will be practiced. The presentation of results will be carried out in the meetings each week.