Ohao Engine — PBR helmet render with image-based lighting
Shaoxuan · Frank · Yin Ohao Engine — PBR · IBL · ray tracing

Graphics &
Engine Engineer

Vulkan · CUDA · Neural Rendering · Simulation

I build renderers, physics engines, and the pipelines that feed them — from hybrid deferred-plus-ray-traced Vulkan to CUDA path tracers with ReSTIR and OIDN, down to the capture and reconstruction infrastructure that turns photons into assets.

MSc Computer Science, Linköping University — Graphics & Visualization. Ships hardware RT pipelines (Vulkan KHR, CUDA), SOTA sampling (ReSTIR, MIS), production denoising (Intel OIDN), differentiable rendering (nvdiffrast + Disney BRDF), and synchronized multi-camera capture systems. Currently physics simulation & rendering intern at Freedo Technology. Open to graphics / engine / GPU-systems roles — available full-time.

61K Lines · Vulkan Engine Standalone C++ (50K+) + GLSL (11K) renderer — deferred PBR path and hardware ray-tracing path sharing one scene representation.
11 dB PSNR · Thesis Result 3D Gaussian Splatting gain over NeRF on reflective surfaces — measured on a 209 GB dataset I captured and released.
12 cams Capture Pipeline Synchronized multi-camera rig with staggered triggers + Bluetooth turntable — built end-to-end in C++ / C# (~8K lines).
40 FPS CUDA Path Tracer Monte Carlo with BVH on RTX 4060 at 1280×720 — Russian roulette termination, OIDN denoising, consumer-GPU throughput.
sx-engine hero render: ray-traced glass sphere over desert with cloud-reflecting environment

sx-engine — CUDA Path Tracer + Physics

CUDA · Taichi · C++ · OIDN · ~3K LOC

CUDA path tracer with BVH, Schlick-Fresnel refraction, and optional Intel OIDN denoising. 16 parameterized liquid presets (ocean · honey · lava · milk · blood · crystal …) each with their own IOR and depth-absorption. Paired with a Taichi-GPU Position-Based Dynamics cloth solver — stretch + bend constraints, material-specific stiffness — exporting per-frame OBJ meshes back to the CUDA renderer. 58 production stills shipped.

Repo ↗
Glossy reflective pot from the thesis capture — the kind of object this inverse-rendering pipeline is designed to preprocess

Turntable Inverse Rendering · in progress

Python · PyTorch · nvdiffrast · GGX/Disney BRDF

Foundation for a differentiable rendering pipeline that will learn per-point BRDF from turntable captures, then relight glossy objects uniformly so Structure-from-Motion actually converges. Full GGX stack shipped — D (GGX / Beckmann / anisotropic), G (Smith / Schlick-GGX), F (Schlick / roughness-aware) — plus nvdiffrast backend, turntable camera / mesh / lighting layers. Neural decomposition + training loop next. Built on NVIDIA nvdiffrast.

Repo ↗
SPH particle fluid simulation with velocity-coded color visualization, confined in a tiled pool

SPH Water Simulation

C++ · CUDA · OpenGL · BSc thesis

GPU-accelerated Smoothed Particle Hydrodynamics solver with Marching Cubes surface extraction and CUDA ↔ OpenGL interop for real-time visualization. Uniform-grid spatial hashing for neighbor search, cubic-spline density kernel with gradient / Laplacian variants for pressure and viscosity forces, plus surface-tension kernel. Bachelor thesis — the foundation my current fluid work builds on.

Repo ↗ Demo video ↗
Freedo Technology
Physics Simulation & Rendering Intern · Remote
Feb 2026 — Present
  • Fluid simulation and differentiable rendering systems using Taichi, NVIDIA Warp, and nvdiffrast across graphics- and simulation-related workflows.
Independent AI Creative Platform (NDA)
Founding Engineer · Part-time
2025 — Present
  • Generative-media platform for creative tooling — GPU-backed image / video generation jobs orchestrated through an async queue with retry, prioritization, and tenant-isolated quotas.
  • Built the full vertical: TypeScript frontend, Python / Node backend, Postgres data layer, object storage, OAuth, billing integration, and a deployment / monitoring story. Reads as full-stack — anchored in the GPU work that pays the bills.
Beijing Guoyao Xintiandi Information Technology
C++ Development Engineer Intern · Beijing
Aug 2022 — Sep 2022
  • Rewrote rendering pipeline from legacy OpenGL to modern OpenGL for a Qt-based 3D medical visualization tool — shader programs, VBOs, modern state management.
  • Built a custom C++ network protocol layer for data transmission between client and backend.
LanguagesC++20, CUDA, Python, C#, TypeScript, Rust, GLSL, HLSL
Graphics APIsVulkan (incl. KHR ray tracing), OpenGL 4.3, DirectX 12
RenderingDeferred rendering, hardware RT, path tracing, PBR (Cook-Torrance GGX), global illumination, TAA, SSAO, SSR, CSM
GPU ComputeCUDA kernels, compute shaders, CUDA-OpenGL interop, Nsight / RenderDoc / PIX profiling
Simulation & MathSPH fluids, Marching Cubes, GJK/EPA collision, BVH, differentiable rendering
Neural RenderingNeRF, 3D Gaussian Splatting, synchronized multi-camera capture pipelines
Engines & ToolsCustom C++/Vulkan, Godot (GDExtension), Unreal Engine, Blender
SystemsCMake, Git, Linux, Docker, PostgreSQL, low-level performance profiling

I care about infrastructure, not app surface area. The systems I find interesting are the ones other engineers build on top of: a renderer, a capture pipeline, a physics engine, a GPU scheduler. I profile before optimizing, I read the paper before reimplementing, and I'd rather ship one well-understood 37K-line engine than three shallow demos.

Linköping University
MSc Computer Science — Graphics & Visualization
2023 — 2025
  • Graduated December 2025.
  • Top grades (5/5) in Advanced Global Illumination, Modelling & Animation, Computer Games Design, Large Distributed Projects.
  • Thesis: Neural Rendering Dataset Collection (see Featured Work above).
Beijing Information Science and Technology University
BEng Computer Science
2018 — 2023
  • GPA 3.53 · Advanced Mathematics 97 · CPU Design 91.