Jun Yan (嚴俊)

  • codedhead at gmail dot com


2012 - 2015

College of Computer Science and Technology, Zhejiang University, Hangzhou, China
M.Sc. in Computer Application Technology, focus on Computer Graphics

2008 - 2012

College of Software, Nankai University, Tianjin, China
B.Eng. in Software Engineering



Tracy Renderer [project page]
Physically based renderer on GPU
  • Full support for global illumination, depth of field, area light, caustics, glossy reflection, transparency and so on; implemented several rendering algorithms, such as Path Tracing, Bi-directional Path Tracing, Progressive Photon Mapping and PSSMLT
  • GPU-accelerated by NVIDIA's OptiX, the renderer runs interactively for moderately complex scenes and is over 5 times faster than PBRT and Mitsuba renderer.
  • Proposed a BDPT algorithm based on Multiple Importance Sampling's one sample model, which was very well suited for GPU implementation.
  • Proposed an importance sampling method for environment maps based on Metropolis-Hastings algorithm.
  • Develped a utility tool for converting PBRT's scenes to Mitsuba's.

November 2014

Local Binary Features Regression [project page]
Implemented the state-of-the-art face alignment algorithm

January 2013

ArchiveFS [project page]
A User Space File System mapping archive files in Windows

September 2012

Mesh Simplifier [project page]
Mesh simplification by edge contraction
  • Implemented a mesh simplification algorithm via edge contraction using quadric error metrics.
  • Proposed an algorithm for handling mesh boundaries in half-edge data structure via boundary-edge connection.

December 2011 -
May 2012

3dsMax Plugin for RenderAnts [project page]
Designed and implemented 3dsMax plugin for RenderAnts Renderer
  • Developed a graphical material editor that provided visualization and editing for material shading tree.
  • Designed a clean and unified inter-process communication interfaces between host software and plugin, which simplified development of renderer plugin for Maya, 3dsMax and Motionbuilder.

August 2011

ylex and yjacc [project page]
My implementations of lex and yacc
  • Lexer and parser generation tools using Finite Automata and LR(1) parsing technique.

August 2011

CMinus Compiler [project page]
Compiler front-end for CMinus language, based on ylex and yjacc
  • Implemented the syntax-directed translation method for compiling C-like programs into assembly code.

June 2011

YGL Graphics Library [project page]
Software implementation of OpenGL 1.1
  • Implemented the fixed-function pipeline of OpenGL 1.1, and provided identical programming interfaces so that OpenGL programs could be directly ported to this library.

May 2010 - April 2011

Virtual Mechanics Lab [project page]
Virtual system for designing and simulating high school mechanics experiments
  • Worked on physics simulation and rendering, using PhysX engine and OpenGL.

May 2010

Red Alert Tower Defense [project page]
Tower defense game based on Red Alert II
  • Developed a simple 2D game engine, which supported collision detection and sprite animation.


May 2013

Seam Carving [project page]
Implemented the Seam Carving technique
  • Employed a weighted combination of energy functions which better preserved edges and saliency information, so as to reduce cracks and block artifacts.
  • Developed a greedy algorithm with divide-and-conquer strategy for finding seams, achieving greater algorithmic parallelism and better visual quality.

May 2013

View Morphing [project page]
Implemented the View Morphing technique


Some GLSL shaders for fun
Clock MIS Path Tracing Interstellar Gargantua Black Hole
Apps for fun
Flappy Bird in VR
Last updated: 6/4/2017
Go to Top