Hasso-Plattner-InstitutSDG am HPI
Hasso-Plattner-InstitutDSG am HPI

Programmieren in Virtual Reality (Wintersemester 2022/2023)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Tom Beckmann (Software-Architekturen) , Dr. Jens Lincke (Software-Architekturen) , Stefan Ramson (Software-Architekturen)

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 01.10.2022 - 31.10.2022
  • Prüfungszeitpunkt §9 (4) BAMA-O: 24.01.2023
  • Lehrform: Projekt / Seminar
  • Belegungsart: Wahlpflichtmodul
  • Lehrsprache: Deutsch
  • Maximale Teilnehmerzahl: 15

Studiengänge, Modulgruppen & Module

IT-Systems Engineering MA
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-K Konzepte und Methoden
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-S Spezialisierung
  • OSIS: Operating Systems & Information Systems Technology
    • HPI-OSIS-T Techniken und Werkzeuge
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-K Konzepte und Methoden
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-S Spezialisierung
  • SAMT: Software Architecture & Modeling Technology
    • HPI-SAMT-T Techniken und Werkzeuge
Data Engineering MA


First meeting: Tuesday, 18th October 2022, 15:15, in A-1.1 or via Zoom uni-potsdam.zoom.us/j/64662196000, Passcode: 43467510

Slides (later on available only in Materials folder of the internal part of the HPI page): https://www.hpi.uni-potsdam.de/swa/cloud/s/3gDYpgJFyQoy4rb

In this seminar, we want to design interactions and systems to allow programmers to work with general-purpose programming languages in VR. We aim to explore two outcomes:

  • First, how can the additional dimension help us to communicate runtime state and integrate programming tools with our VR IDE?
  • Second, can we reach a programming loop where modifications to VR apps or even the VR programming environment itself can be done from within the VR IDE, such that programmers no longer have to exit VR to perform changes?

Screenshot of an early prototype of our VR IDE Screenshot of an early prototype of our VR IDE.

We will base our work on an existing framework (https://github.com/hpi-swa/sandblocks and its VR frontend https://github.com/hpi-swa-lab/godot-squeak) that provides a basis for both editing and execution of many programming languages (e.g., Python, Javascript, Clojure, Smalltalk, ...), as well as some facilities for interactions so that you can get started quickly. Students will be working either in teams or alone. We will integrate changes continuously into the main branch of our repository and do weekly meetings where students will try out, receive and give feedback on each others’ prototypes. Access to the required hardware will be provided at HPI.

Combined expression of some of the languages Sandblocks supports Combined expression of some of the languages Sandblocks supports.

Topics that students will be working on include:

  • Debugging tools in VR, for example placing a “watch” to show live values for an expression
  • Browsing code bases
  • Facilities to inspect and directly manipulate objects in VR for debugging purposes (compare to Morphic in Squeak), directing attention of users to changes in the 3D world
  • Textual input using VR controllers (e.g., via gestures, voice input, keyboards, …)
  • Integration of tools of the Language Server Protocol (e.g., how to show linting information and autocompletion)


The framework builds on top of Godot/GDScript and Squeak/Smalltalk. Prior knowledge in either is recommended but not required.


20% of the grade will be derived from the weekly progress reports each team is giving. 30% are derived from a final summary presentation. 50% are derived from the project code.