Ready to brush up on your dental knowledge in a whole new way? This time we dig deeper into the project STAI Health. Our trainees, Sonja Sillanpää and Tino Behnen, will share with you abou the development process of a VR training tool designed to help dental health care students to learn more about tooth anatomy and get hands-on with dental calculus instruments, all in a virtual environment.
Text by Sonja Sillanpää and Tino Behnen

Get to know the development of project STAI, a VR training tool where the user can practice teeth naming and the use of dental calculus instruments, in a fun and interactive way. In this blog post our two trainees, Sonja and Tino, will be explaining the creative process, workflow, and their experience with working on VR for the first time. The team also included Emmi Isokirmo (Art Lead) and Alicia Sudlerd (Code Lead), and this project was made in collaboration with Metropolia University of Applied Sciences, HUS and City of Helsinki. Have a read and learn about teeth together with us!
Trainee introduction: Sonja Sillanpää
Hello, I’m Sonja Sillanpää, a student here at the Metropolia UAS, studying 3D animation and visualization and soon to graduate. I started my internship with this project at Helsinki XR Center, and it allowed me to do art from 2D to 3D, as well as start a completely new project from scratch, and figure it out together with the team.
I worked with creating a simple but recognizable dentist office, made the needed dental instruments for cleaning dental calculus and worked with optimizing realistic teeth models for better performance in the game engine. I had the opportunity to get out of my comfort zone with making UI art and working with new tools, such as Unity. Working with VR was also new to me, but nevertheless something that I was keen on learning.


Trainee introduction: Tino Behnen
Hi! I’m Tino Behnen, a programming trainee here at Helsinki XR Center as well as a last year student at Metropolia UAS specializing in game development.
This project was my introduction to my internship as well as my first larger scale VR project that I’ve worked on as a developer. I had the privilege of designing most of the code architecture quite freely which ended up teaching me a lot about good and bad ways of implementation. On top of making essentials like game and audio managers for the project, I also got to tackle some more challenging problems, which I will cover more in one of the coming chapters. Overall I’m very pleased with the result and what I’ve learned from this experience.
Introducing the project
The goal for this project was to create something for dental health care students, and to show an example of what kind of application can be created for learning with VR tools. The initial idea was to focus more on the maintenance and sterilization of the instruments or cleaning a dentist office, but we quickly learned that the dental hygienist students already have good resources for doing these things. With planning and ideation, and asking questions to a professional from Myllypuro Campus, we decided to make an interactive learning tool for studying about teeth, their numbering and surfaces, as well as cleaning dental calculus with the correct instruments.
The dental instruments and their correct use became the main point of focus. The idea was not to teach the user the proper way to hold or move the instrument, but rather to be able to recognize the correct instrument tip and to know which one to use on each tooth. Practicing teeth numbering was also something that we wanted to include, since some students might have trouble remembering those.
A lot of research went into learning about teeth and the instruments, and it was necessary to be sure about these things, since we wanted to do everything as correctly as we could. At some point of the development, we weren’t able to get answers to everything, so we were left with some uncertainties and questions. However, we didn’t let that stop the development and wanted to focus on improving the features of the application.

Reference materials from Myllypuro Campus.
The application includes three modes: Study, Quiz, and Clean. Study mode allows the user to learn about teeth numbering, types, surfaces and instrument usage areas. In quiz mode the point is to name as many teeth as you can until the timer goes down. And in clean mode the user has to choose the correct tooth presented by a teacher, to pick the correct instrument and tip, and to clean the dental calculus from that tooth. All modes allow the user to choose between primary and permanent teeth models.


The menu screen with the game mode selection panels & study mode screen.
Cleaning the visuals – Artist’s perspective
As an artist, I had the opportunity to work on many creative aspects. First main thing and challenge was the teeth models: they had to be realistic and as accurate as possible. Since the project itself wasn’t very long, optimizing time was important. So, instead of creating the teeth models from scratch, I utilized teeth models made by University of Dundee, School of Dentistry, which were free to use with credits. The models being very dense in geometry, I retopologized them to be lighter models, while at the same time keeping enough detail in them. Teeth models included both primary and permanent teeth, which we wanted to have in the application.


First image: Permanent teeth model before and after retopologizing. Second image: Primary and permanent mouth models.
We thought that a dentist room in the background would be nice. While creating the room, I wanted to keep in mind the most recognizable aspects of a dentist’s office, without making it too interesting for the user to want to interact with, since that wasn’t the main focus. The user can disable the room and use passthrough mode, which was another reason not to make the room too distracting. For a fun extra, we included a doctor model as a teacher (made by Alisa Mäntynen, Art Trainee), who instructs the user what to do in Quiz and Clean modes. For the teacher, I added animations that the teacher does after certain actions the user makes, such as answering wrong or correctly.

Example of using the passthrough.
For the instruments, I had to be sure to make them look as correct as possible, since the instrument tips are very specific, and for specific uses. We got three main instruments from Myllypuro as a reference for this project: micro sickle, mesial curette and distal curette. Later in the project we decided to add a fourth instrument, buccal-lingual curette, according to some information we had learned. Creating that instrument only from online materials was definitely a challenge, since I wasn’t able to find a way to see it from every angle.

From top to bottom the four dental instruments: distal curette, mesial curette, micro sickle and buccal-lingual curette

A closeup of the instrument tip shapes.
Workflow and challenges – Code’s perspective
Although the main goal of the project was established early on, additional features were added in a more iterative manner over time. We had these weekly meetings and playtests in which we discussed new ideas and additions to the project. The three different game modes (Quiz, Clean and Learn) were only suggested at a later stage of the project. These kinds of additions had their own challenges for me as the main code developer.
In this case, I got to rewrite our game manager for the project as the original wasn’t as modular to support different game modes. I ended up designing a more modular version which supported game states with the guidance of our Code Lead.
As mentioned before this was my first real VR project that I’ve been a part of which introduced its own learning curve. The project was developed for Meta Quest 3 which allowed us to use the Meta SDK package in Unity. With the package there were many ready made components or “building blocks” that helped the workflow as a new VR developer quite a bit. However, some of our ideas required a more custom solution.
One of the trickiest parts was designing how the user would interact with the dental instrument during the tartar-cleaning. We explored several options, such as using hand tracking versus controllers and whether the instrument should be directly held or remotely operated. Hand tracking, while interesting, lacked responsiveness. Controllers proved more intuitive and reliable, but even then, direct interaction posed problems like the instrument potentially clipping through the teeth.

A video demonstration of the finished instrument movement.
We eventually settled on a remote-control mechanism where the instrument itself wasn’t directly controlled but instead followed a separate visual target object controlled by the user. The instrument used a lerp (linear interpolation) to follow this target in a fluid motion and was programmed to continuously rotate to face the selected tooth target. This allowed for smoother interaction. While not as immediately intuitive as direct control, this approach offered a more “spacious” feeling where the user could better see the mouth while cleaning. Getting this system right required a lot of iteration, but it was rewarding to see it evolve into something functional and satisfying to use.
Another interesting and new feature that I got to work on was the localization for the project. We wanted the program to be usable for both Finnish and English speakers, which required us to implement localization for both text and audio. For this purpose, we used Unity’s own localization package which made this task a lot simpler. Implementing text localization was pretty much plug and play by using the provided localization table. The audio required a bit more of a custom design. I ended up making an audio manager which supported both conventional and localized audio clips where either could be called with a simple associated enum.

Unity’s localization package’s localization table.
Project highlights
It was nice and rewarding to see the game modes finalized and added. It really made the whole application come together. We especially enjoyed the feature in the study mode, where you could display the visuals of teeth numbers, types, surfaces and instrument usage areas at the same time. Switching between primary and permanent teeth models was fun and it ended up working well, also from the coding part.
Implementing the passthrough feature was a great idea, allowing the user to choose between seeing the virtual environment or the real life background. Also being able to switch between Finnish and English language options, and how well it worked, was one of our favourite aspects. Hearing the teacher give introductions to the user in both languages was a playful and fun addition.
Conclusion
This project was a great introduction to working as an intern, as it allowed us to do and try different things, and getting out of our comfort zone is something we find important for our professional growth. In the beginning we had many ideas that would have been a nice addition to the project, but due to limited time, we had to eliminate some of them. However, what we put together was already nice as is, and this ended up being a great project to be a part of. And next time when I go to the dentist, I can say I have discovered their secret language!
And finally, take a look at the finished game — we’re thrilled to share it with you. Happy watching!
Key Stakeholders and Collaboration
STAI Health is part of the Simulation, Testbed and AI Services for companies in Uusimaa –project. It is operated by Metropolia University of Applied Sciences with support from HUS Group and City of Helsinki. The project aims to establish a strong innovation network in the capital region’s health technology sector.
STAI Health is a collaboration of:





To see previous news about our trainees’ projects, head over to the Trainee news section.
Follow us on social media for more posts: Facebook | LinkedIn | Twitter | Instagram