Rodrigo Holztrattner

ProfessionalProjects::

Eskimo Village (Unreal and C++)

The Eskimo project (codename), a game that is still being developed by Kobe, will be released as a VR experience for a snow-themed park on Porto Alegre, Brazil (Snowland). When playing it the user must complete some tasks and perform activities using the virtual reality hardware Vive.

I was the team leader for this project, my responsibilities were all related with the gameplay development, creation of the interaction system, construction of 4 from the 5 current user tasks and a lot of performance improvements around the VR system.

Points of interest:

    • Performance improvements on the base code of the engine were done to ensure a smooth experience and high framerates

    • The Unreal VR library had bugs everywhere, the library itself is new and it's not very optimized, we had crash problems daily and one of my activities was to detect and resolve those problems directly on the source code (until a newer version of the engine that resolved those problems was released)

    • The game has all the expected interaction functionalities like collision handling, physics, picking system, etc

    • All the current models are placeholders, the video below only reflect the current interaction and activities

M3DMIX (Java, C++ with OpenGL)

The M3DMIX app is a medical app that allows doctors and patients to visualize 3D models of exams (magnetic resonance imaging, computed tomography, Nuclear Medicine or Ultrasound). It was developed using Vuforia API both for IOS and Android.

I was responsible for the management and the development of the graphics for this application. Providing solutions to work with 3D model and Augmented Reality.

You can visit the official site here: http://m3dmix.com

Points of interest:

    • All 3D models were loaded using the tinyobjloader library.

    • Most of these models had around 300.000 or more faces, this is something problematic for mobile devices so I had to divide these models in smaller ones, keeping track of which one visible at any given time (using a mix of an aabb and some planes, besides also using the frustrum).

    • Transparency is a huge issue here, most of the models had multiple meshes inside each other (the worst case I found was a model with 14 meshes at the same position that were almost the same size), so I had to deal with z-fighting (glPolygonOffset with some math did the job). I had to decide the best rendering order based not only on the z position but on the mesh size, trying to estipulate which one contributes the least to the "model" and render it first.

    • About the render methods, I used a simple phong shader and instanced rendering whenever I could. There is a phase after loading the .obj model where I eliminate duplicated vertices and create all indexes, here I try to find and merge multiple triangles that share the same normal and are close to each other, reducing the polygon count.

MoveMe GPS (Objective-C)

A GPS based application focused on visually impaired people. It functions like a normal step-by-step navigation app would, giving instructions as the user follows the route, but it was made to be as accessible and simple to use as possible.

The app has an option to connect to 2 external bluetooth bracelets that vibrates according to the instructions. This accessory provides a more comfortable and non-intrusive way of communicating the user about the path without the need to use phones.

It was developed as the final project for the BEPiD course by me and 3 other members.

Points of interest:

    • GPS signal isn't always accurate, this is a problem for an app that relies on precision to inform any info to the user, most of the time we saw ourselves using interpolation methods, accumulating GPS position updates and discarding any possible wrong ones.

    • The bracelets were programed using an Arduino. I was responsible for coding it and making the communication with the app. It was entirely developed in C and had multiple "types of messages", each one indicating some instruction with a pre-stabilished vibration time (turn right/left, user left the sidewalk, wrong direction, etc).

    • We tried to create a social base around the app so any user could add shared information on the map, helping other users about places with easy access (for visually impaired people), dangerous locations and much more. Unfortunately we had to drop this part of the idea because in Brazil (where we developed the app) there isnt't a huge culture on helping others with those kind of apps.

Shape (Objective-C++ with OpenGL)

Shape is a musical game developed for IOS where the user must position their finger within geometric approaching objects that vary according to the characteristics of the chosen music.

Some details about it:

  • It was implemented using Objective-C++ with OpenGL

  • I did a small FFT interpreter to detect peaks on the music (and I discovered that is really hard to do that), the system isn't accurate but it suited our needs

  • The game speed and the geometric objects (squares, triangles and circles) changes according to how well you are playing

  • We use glowing effects extensively

The game fells like playing guitar hero mixed with audiosurf, It was developed while I was in BEPiD course by me and a colleague.

MoveSafe (Objective-C)

Move Safe is an app that shows the inhabitants of Porto Alegre places where car accidents happened. It can be used in GPS mode where it indicates, as the driver approaches, possibly dangerous locations and informs alternative routes in extreme cases.

It was developed while I was in BEPiD course by me and 3 other members as the initial project.

std::cout << "TODO: Need to update with new projects!" << std::endl;