I am a Unity3D-developer with various years of professional experience; with skills leaning toward graphics/shaders and XR (mainly VR), but not limited to those! I have a formal education in Computer Science (B.Sc.) where I had mainly focused on machine learning at the time (2015).

I created this page to showcase a relatively small sample of my previous professional and personal projects. Please note: a great deal of professional work I am proud of was not recorded, or is not public unfortunately.

Contents:

Please also check out my LinkedIn or GitHub if you are interested!

Company Projects

WIN Reality

My main contributions here involved: solving rendering issues, creating shader effects, reworking large parts of the core system, custom UI systems, improving plugin integrations, general performance analysis and optimizations, gameplay logic, and general maintenance.

Here's a video I found on YouTube with some example gameplay:

TTF - Super Nintendo World

My contributions here were broad: I created real-time visual effects, extended the art pipeline, created editor tools for artists, and set up local CI and cache servers.

I created many VFX for this project, for example: the wheel sparks, shell toss and explosion, Bowser lava skin, effects in other parts of the park like Toad ice cube scene (snow deep footprints, raymarched ice cubes), and many more effects.

I also worked on getting the custom AR headset to display correctly from Unity which involved writing a custom post processing and image transformation stack.

EMD Serono, Inc.

My role here was to prototype and explore AR/VR ideas that may be of benefit to the org. I developed various prototypes for marketing/trade shows, education, archvis, remote assistance, etc. The following two are a tiny selection of the many cool projects I built while I was there.

EMD - VR Equipment Training

A VR app for equipment training. I mainly worked on lighting, shaders, the gameplay logic and training objectives system, and a few other details.

EMD - AR Equipment Training

Proof-of-concept equipment training AR application I built to run on the original Microsoft HoloLens. It takes the user through several steps to operate a piece of equipment. Setting up the points to check was user configurable at runtime.

Personal Game Projects

Game in a Unity Editor Window

I did this as a personal challenge to push my Unity Editor scripting abilities / tool writing. Note that this is running in a Editor window not as a standard game. Complete with many features expected in the game (t-spin, slamming blocks, etc.). There's a great deal of actual editor tools I would like to show also from work at other companies.

Block Breaker VR

This was my entry for a game jam in San Antonio hosted by MergeVR. I wrote the code and set up the lighting and materials. The models and textures were created by two other teammates.

Ali Tale

First-place winning weekend game jam entry! At the event, I joined up with other attendees for a team size of about ten people. I wrote the full game code which entailed creating a simple custom scripting language that the writers could easily work with. My scripting language allowed defining character actions, scene changes, dialogue, user action options, etc. I also guided requirements for art assets and integrated those assets into the project. Futher, I had a large part in determining the general type/mechanics of the game and generally determining how we should approach it. The theme/topic was set by the game jam host. Here's a video of part of the gameplay:

Spaghet Game

A simple web game I made based on a meme at the time. Play the game here: https://gigableh.itch.io/spaghet-defender

Shaders and VFX

A random sample of shaders, materials, and VFX I've created.

Equirectangular-Sphere Texture-Rotation Shader

Given an equirectangular mapped sphere, if you were to simply shift the UVs in the V direction, the texture would get sucked into the poles. To properly rotate it like this requires projecting the UV coords to 3D space, doing the rotation, then projecting back.

You could also rotate the mesh itself, but there are some use cases for rotating it in a shader.

Real-time Rayracer in Unity

Halftone Effect Screen Shader

Car Paint / Glitter Material

A custom PBR car paint / glitter material using IBL that I created to simulate real pigments that change color over viewing angle.

Render Over Network Socket into Console Window from Unity

Blackhole Shader

I wrote a tutorial on how to create this blackhole shader that got somewhat popular: https://medium.com/@mariosubspace/blackhole-shader-in-unity-eb7d93af9577

Lately, I also updated it to support URP as tested on Unity 6.

Glass Refraction Shader

Glass refraction effects usually offset the rendered scene before transparent objects. This has an issue where opaque objects in the foreground are incorrectly refracted as if they were background objects. This was a custom shader I wrote to address this issue for a project I had at the time (2016).

Recursive Rendering Effects

Substance Detailed Cloth Material

Personal Projects

Experimental and/or non-Unity projects.

Servo Controller

Controlling a servo from a GameObject's rotation wirelessly over the network using a server I wrote in C. Note: the cable seen in the video is power only not data transfer, could be battery powered and completely wireless.

Custom Android VR Engine

I made this very small demo for several reasons: to learn OpenXR and OpenGL ES, to have a raw baseline to compare performance captures to whatever Unity is doing, to see how feasible it is these days to even make a VR app from scratch for Android/Quest 2-3, and a few other reasons. For this project I use C/C++, OpenXR, OpenGL ES; and a few minimal dependencies like Oboe (AAudio wrapper), tinygltf, etc... I didn't track time, but I estimate this took about 2 weeks of dev time.

The features I was able to add at this point are:

  • Multi-view rendering (aka Single Pass).
  • MSAA.
  • Higher FPS selection, runs at 90 on Quest 2.
  • Proper floor origin setup.
  • Hand tracking + binding it with my skeleton hand model.
  • Basic audio playback (extracting samples from OGG and feeding raw audio stream)
  • Basic texture loading (not shown in video)
  • Basic glTF support (scene hierarchy, meshes, and material colors)
Halloween-themed given the time this was developed.

Related blog post here.

Custom Game Engine(s) and UI Framework

Since 2018, I had started experimenting with building my own engines for practice at learning lower-level graphics APIs. I've made several starts off-and-on as I tested out different languages and APIs (OpenGL, Vulkan, D3D, C, C++, Rust, etc...) taking each one to the point of at least rendering average glTF models.

Snapshot from older iteration (2021) (this one uses ImGUI not my own UI). It was able to attach behavior components to objects and save/load scenes.

My latest exercise in this vein has been to use less dependencies than normal: without GLFW or ImGUI. It's an engine over OpenGL 4.6 and the Win32 API. Part of this is to create my own UI framework that's also fully DPI aware. Also this is written almost completely in pure C. I wanted to really understand how all this works without any magic, and see how far I can build it out in a language like C while preventing it from becoming unmanageable. Also to better learn memory management. The UI library is near complete, but I don't spend much time on this project so progress is slow.