David Nichol
Home
Blog
Resume
VictoryXR Projects
VXRLabs CSI
See MoreMore
Tags:
VR
C#
Unity
Featured by Meta
September 2024
VXRLabs CSI
is widely regarded as one of the most advanced virtual reality forensics simulations on the market. Built for higher-education criminal justice and forensic science programs, the experience places users inside detailed, fully interactive crime scenes where procedural accuracy and investigative judgment are essential.

This multiplayer experience is designed for collaboration between players as they investigate a crime scene together. Investigators are responsible for securing the scene, identifying and documenting evidence, and dusting for latent fingerprints before moving on to analyze their findings in a virtual lab. The experience mirrors real investigative teamwork, emphasizing communication, role division, and procedural accuracy throughout the process.

The project was developed in close collaboration with real forensic scientists and law enforcement, who are now teaching at UMGC and NMSU. All features are intended to replicate exactly how crime scene investigators operate for educational practice.

Featured by Meta Link
Meta Store Link
Duties:
  • Sole developer responsible for all core engineering, working in close collaboration with a small art team
  • Designed and built five complete playable environments, including four distinct crime scenes and a fully interactive police station, each with unique layouts, evidence types, and investigative flow
  • Designed and implemented core investigative systems, including fingerprint dusting and lifting, fluid-based evidence simulation, and a spawnable briefcase-style inventory system
  • Performed deep VR performance optimization, prioritizing draw-call reduction, memory budgeting, and performance consistency on standalone VR hardware
VXRLabs Particle Physics Playground
See MoreMore
Tags:
VR
C#
Unity
June 2025
Particle Physics Playground
is a multiplayer virtual reality laboratory built to help students engage with core concepts from modern particle physics through direct interaction. The experience allows users to work with particles from the Standard Model, examine their properties, and explore how fundamental forces and interactions behave beyond what can be easily conveyed through textbooks or equations.

Students can organize particles into their respective families, visualize force carriers, and run guided experiments that demonstrate concepts such as quantum fluctuations, the Casimir effect, superconductivity, and large scale cosmic expansion influenced by dark matter. Each experiment is designed to let students change variables, observe outcomes in real time, and collaborate with others inside a shared virtual space.

The lab focuses on making abstract physics concepts tangible and intuitive, using spatial reasoning and experimentation to support understanding in ways that are difficult or impossible to achieve in a traditional classroom.

Meta Store Link
Duties:
  • Owned the technical direction and implementation of the Particle Physics Lab, translating advanced physics concepts into interactive VR experiences
  • Worked closely with physics educators and subject-matter experts to ensure scientific accuracy while adapting complex ideas into hands-on interactions
  • Designed interactive representations of the Standard Model, allowing users to physically manipulate particles and explore their relationships
  • Developed virtual experiments demonstrating the Casimir effect, superconductivity, quantum fluctuations, and dark matter–driven cosmic expansion
  • Built custom tools and visual systems to help users reason about invisible or abstract phenomena through spatial interaction and real-time feedback
  • Implemented multiplayer functionality to support collaborative experimentation inside a shared virtual lab
Student Projects
Paper Flight
See on GithubGithub Logo
Tags:
VR
C#
Unity
Team
May 2022
Paper Flight
is a VR experience that was released onto the Meta store for Australian game studio LiminalVR. The user is set atop a paper airplane and watches a beautiful tundra environment unfold around them as they witness the power of perspective, scale and tranquility in virtual reality.

Steam Link
Meta Store Link
Duties:
  • Tech Lead
  • Integration of a custom spline editor for simulated flight pathSee Code Example
  • Smoothed movement along a spline to reduce sim sicknessSee Code Example
  • General optimization for VR
Project Nova
See on GithubGithub Logo
Tags:
C++
Unreal Engine
FPS
Team
May 2022
Project Nova
is a space horror FPS game made with a group of 5 students in Unreal Engine. Project Nova has a focus on narrative experience and exploration as you unravel the mysteries of a parasite infested space station.

Itch.io Link
Duties:
ECS Fractals
See on GithubGithub Logo
Tags:
Unity
ECS
Multithreading
C#
3D
Solo
December 2020
ECS Fractals
is a 3D Fractal generation tech demo in Unity's early access D.O.T.S. framework. utilizing the lightweight GameObjects of the ECS system and the multithreading of the Jobs systems, I was able to render 390,625 rotating GameObjects in one scene at a steady 30 FPS. (2396% more efficient on frames compared to regular GameObjects)
Ultra Fall
See on GithubGithub Logo
Tags:
Unity
Platformer
C#
2D
Solo
December 2020
Ultrafall
Is a 2D Unity clone of the game 'Downwell' by Devolver Digital made in a 3 week solo jam. It's a vertical platformer but the aim is to fall rather than climb. Art assets created by Jay Draper.
See on GithubGithub Logo
Tags:
C#
Unity
Navmesh
A* Pathfinding
Solo
February 2020
3D C# agent AI stealth demo using Unity's Navmesh system. Based on a decision tree that encompasses interactions triggered by proximity and sound.
Agent behaviors include seeing, smelling and hearing. Hearing is done with a large box collision radius, but has a lower chance of detection than hearing. Detection is based on a random chance of alerting the agent every second the player is colliding with that box.
Smelling detection has a shorter radius but larger chance of detection. Sight is a raycast from the eyes of the agent and has a 100% chance of alerting the agent. Once the agents have been in chasing mode for too long, they go into a resting mode, where they run to a particular area to replenish their energy.
Breakout
See on GithubGithub Logo
Tags:
Unity
C#
Monogame
2D
Solo
November 2020
Tasked with the challenge of recreating the Atari game 'Breakout' with two new mechanics, I went for a slingshot and time slow to spice things up. Created first in Monogame's C# engine, then in Unity. The playable version is the Unity one.
Fun fact: each ball reflection has a random amount of entropy between 0 and .1 positive or negative Unity units added to its direction when colliding with an object to keep each bounce slightly unpredictable.
College Student Simulator
See on GithubGithub Logo
Tags:
Unity
Serious Games
Simulation Games
3D
C#
Team
December 2019
Made with three other peers for a class project. The game needed to be a simulator and convey some real purpose to talk about important issues. We chose student mental health. We polled students across campus to understand what makes life difficult for students, and used that data to create a "choose your own adventure" to get you through the semester.
Each choice affects your grades, enjoyment and stress, and if you aren't able to keep those scores in check by the end of 15 weeks you lose. All programming done by me.
CSV Parser
See on GithubGithub Logo
Tags:
C++
CSV
File IO
Linux
May 2021
A CSV Parser created to parse and find unique string instances in a CSV with 3.7M entries, the City of Chicago Food Inspections Dataset. Made with CMake in Linux.
Euchre
See on GithubGithub Logo
Tags:
C++
Shuffle Algorithms
Card Game AI
Linux
April 2021
Card game 'Euchre' made in C++ using CMake in Linux. Each round is a shuffle, then cards are dealt either two per player then three, or three per player then two. Each computer uses a hand ranking algorithm to determine which card is the most valuable for that turn, then plays it. The computer who wins the most turns wins the game.
Blackjack
See on GithubGithub Logo
Tags:
Shuffle Algorithms
May 2020
Card game Blackjack made in C++. Cards are shuffled and dealt between a computer dealer and the player. The player then may hit or stand, and once the player decides to stand the dealer's face down card is revealed and the winner is determined.
WPF Sports App
See on GithubGithub Logo
Tags:
WPF
C#
Data Binding
MVVM
File Serialization
May 2021
A WPF app that works as a sports match scheduler. Create players, add them to a created team, set up match details, and display randomized results of that match and team stats. Entirely savable and loadable.