Gate that proves AI-made robots, motion, and 3D scenes before they ship
I built NIUA as an AI fullstack product: agents (or people) submit a file, NIUA checks it against a typed contract, replays it in physics on CPU, and returns a signed pass/fail receipt. Live tracks cover robot URDFs/MJCFs, Unitree G1 motion clips, and Gaussian splat scenes. Simulation only; no hardware tested. Connects over HTTP MCP and a playground at ohao.tech.
I wrote it in C++ as a Vulkan renderer. Now I'm turning it into an agentic 3D engine.
I wrote Ohao in C++ as a Vulkan renderer, with fast deferred lighting and slower path tracing. Now I'm upgrading it into an agentic 3D engine, so they can train interesting stuff natively in it. The rendering core is public on GitHub.
CamMatrixCapture: 12-camera sync, turntable automation, and a public dataset, 209 GB, 14 objects, MIT. On reflective surfaces, 3D Gaussian Splatting measured about 11 dB PSNR above NeRF.
Series of fluid–structure sims on Taichi (Hu et al. 2018 MLS-MPM). Showcase clip: Phase 9 3D Rising Flood, 128³ grid, up to 4M water particles, GLB building → SDF slip boundaries, two-phase injection, PLY → SplashSurf isosurface → Blender Cycles water. Also: 2D dam break, 3D bridge pillars, water wheel, city flood, building fracture (Phase 8).
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.
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.
Compute-shader playground for procedural material decay on a PBR sphere, noise-driven rust progression (0/25/50/75/100%), paint cracking and peel, and a dynamic puddle / weather system that wets and dries the ground in real time. Built around an OpenGL compute pipeline with full BRDF response so albedo and roughness shift together as the surface ages. Coursework for Linköping's TNM084 Procedural Methods.
Reinforcement-learning agent for Chinese Chess, full Xiàngqí rules engine in C++/Qt, a Deep Q-Network with experience replay and a target network, and CUDA-accelerated training driven by self-play in the spirit of AlphaZero. Win-rate sweeps against random and self-play opponents, plus a playable GUI to face the agent. TNM114 group project at Linköping with Oskar Tengvall.
Two global-illumination renderers written from scratch for TNCG15. Monte Carlo path tracer with a CUDA backend for per-pixel parallel ray generation and progressive accumulation, real-time-feasible against the CPU baseline. Photon-mapping pass scatters photons from light sources, then estimates radiance via KD-tree nearest-neighbour lookup for sharp caustics and indirect lighting. Comparative study of where each technique wins.
Pipeline for classifying skiing techniques from video, OpenPose extracts 2D body keypoints, a Python preprocessor stitches per-frame skeletons into spatial-temporal graphs, and an ST-GCN trains on those graphs to label actions like big-bend carving. Best model (epoch 39, lr 0.1, batch 32) hits 50% Top-1 / 90.9% Top-5. Co-authored, published in Intelligent Computer and Applications Vol. 12 No. 4, April 2022.
GPU physics runtime coupling an MLS-MPM solver to 3D Gaussian Splatting on a multi-GPU A100 server, a scanned scene can deform, fracture, and flow. ~2.25× end-to-end speedup via CUDA-graph capture and mass-conserving particle reduction.
Pipeline in Taichi, NVIDIA Warp, and CUDA, with a FastAPI + React workbench for streaming splat playback.
Beijing Guoyao Xintiandi Information Technology
C++ Development Engineer Intern · Beijing
Aug 2022 to Sep 2022
Moved a Qt 3D medical viewer from legacy OpenGL to modern OpenGL, shader programs, VBOs, current state management.
I want an agent to finish a job I can check: a tool result, a screenshot assert, a generation that actually landed in the queue. One server with a real contract is worth more than a chat window that only sounds capable. The graphics years were practice in measuring whether a result was actually right. I still work that way.
Education
Linköping University
MSc Computer Science, Graphics & Visualization
2023-2025
Graduated February 2026.
Top grades (5/5) in Advanced Global Illumination, Modelling & Animation, Computer Games Design, Large Distributed Projects.
Thesis: Neural Rendering Dataset Collection, filed with the earlier graphics records. PDF ↗ · DiVA ↗
Beijing Information Science and Technology University
BEng Computer Science
2018-2023
GPA 3.53 · Advanced Mathematics 97 · CPU Design 91.