Digital Twin Platform
A multiplayer VR/AR digital twin for industrial training, with live mode switching, a shared "toy mode" model and a local AI assistant.
- Role
- Main programmer
- Team
- Solo
I build real-time graphics, simulations and interactive 3D experiences — from GPU-driven snow and sand in Unreal Engine to VR digital twins used for training at LSU.
Shipped games, digital twins and training simulations — and the systems and plugins behind them.
Explore in WorkA multiplayer VR/AR digital twin for industrial training, with live mode switching, a shared "toy mode" model and a local AI assistant.
A multiplayer cyberpunk kart racer released on Steam — I built its race-ranking, minimap and slope-physics systems as reusable C++ plugins.
A VR digital twin of LSU's transmission electron microscope that shows trainees the electron beam inside the column as they work the controls.
A Niagara system for UE5 that dissolves 3D models into thousands of particles and morphs them into other shapes, sequenced on a timeline.
A VR training game for an ultrasound-guided neck procedure — segment-intersection hand tracking and nested stencil shaders that reveal targets.
A 48-hour jam game about finding gifts hidden "in plain sight" — visible only when you snap the camera to the right plane.
A frantic laundry-hanging game made in 48 hours at Chillennium 2024, with an artist-friendly hanger placement system.
Guide a fragile soap bubble across a kitchen counter to a sink of dirty dishes — a 48-hour game made at LSU Global Game Jam 2025.
A team-made Unity game. Cross three layered levels, collect gems and evade enemies driven by grid pathfinding, NavMesh and a state-based Observer.
An interactive Unity digital twin of a 110 m² house in Niavaran, Tehran, where visitors explore the rooms, sit in any chair and pick up objects.
A solo follow-up to my house digital twin that lets users recolour any material in the room through an adaptive radial UI and a custom colour picker.
A survival score-chaser where every click speeds you up and shrinks a green safe zone drawn by a compute shader that gameplay code re-dispatches.
LED-wall content, live interactive backgrounds, motion capture and studio work at LSU XR Studio.
Explore in Work
A background animation in Unreal Engine featuring more than 80 photogrammetry-based poses.

An interactive TouchDesigner background that moves with live music.

Feeds the camera's image back into the screen, producing an endless recursion of frames.

A short film shot on the LED wall. I played one of the lead roles — a doctor raised from the dead.

A puppet show for kids, performed in front of Unreal Engine backgrounds on the LED wall.

Installing and operating the studio's motion-capture system — OptiTrack cameras with Motive.
Connected the studio's lights to their controllers and built a DMX controller in Unreal Engine for the SkyPanels.

Videography for LSU sport marketing.

Lighting, camera and sound for studio interviews.
Currently cooking
What I'm building right now — GPU simulation in Unreal, engine-driven robotics and experiments still in progress.
Explore in WorkA UE 5.8 plugin that simulates a persistent, world-anchored snow height field on the GPU and presses real footprints into it.
GPU sand for UE 5.8 that slumps at its angle of repose, rings with wave-equation ripples on impact and throws grains when you land.
Rendering systems for the LSU Solar Farm twin — a compute-shader light-intensity heatmap and GPU PCG growth driven by sunlight.
Talk to a real ROS 2 robot from Unreal Engine — push-to-talk speech, a local LLM on a DGX Spark, and rosbridge commands in about 0.4 s.
Early-stage research into a platform for commanding physical robots by voice and text, mirrored live in a digital twin and trained in simulation first.
Seven runnable lessons in low-level GPU programming for UE 5.8 — global shaders, compute, RDG, buffers and ping-pong simulation — written to be read.
GPU clipping, isolation and ghosting for digital-twin buildings in UE 5.8, where the CPU cost scales with clip volumes, not building size.
Streams the Meta Quest 3 passthrough camera from Unity to Meta's SAM 3 on a GPU server and overlays text-prompted segmentation masks live.
Small studies in the vector maths and numerical methods behind real-time graphics.
Explore in WorkA reproducible Python study that estimates π by random sampling and shows the error shrinking as 1/√n with a normal estimator, as the CLT predicts.

Detects when the player is looking at something by comparing the view direction with the direction to the object.

A ray that bounces off multiple surfaces, with each bounce worked out using the dot product.

A full coordinate system built from cross products — each axis perpendicular to the other two.
Hand-written shaders — vertex displacement, distortion, stencils, foliage and snow.
Explore in Work
Multi-layer stencil transitions — an outer layer masks collectibles, an inner layer reveals them.

Radial cosine waves computed in the vertex shader.

A distortion wave expanding outwards from a centre point.

Alpha blending versus alpha clipping for foliage, side by side.

Upward-facing surfaces turn white, with an inverse-lerp blend band between two thresholds.
I'm a graphics programmer and technical artist working where rendering, simulation and interaction meet: GPU compute in Unreal Engine, VR/AR digital twins for training and industry, and engine-driven robotics.
Open to graphics, rendering, technical art and real-time simulation roles and collaborations.