Nicholas Vining

Ph.D Candidate, Department of Computer Science, University of British Columbia
M.Sc (Computer Science), University of Victoria, 2011
B.Sc (Mathematics, Honors), University of Victoria, 2009
e-mail: first letter of first name and entire last name - all one word, all lower case - at cs dot ubc dot ca

Research Interests

I work with Dr. Alla Sheffer and the DGP Research Group at the University of British Columbia, studying geometric mesh processing. I have two major areas of interest: hexahedral mesh construction and optimization, and applications of geometric meshing algorithms to problems in video game development. These include cloth and garment editing, automatic level generation, procedural content modeling, and better authoring tools for video game content. I am currently working for Google as a Senior Software Engineer, out of the Kitchener-Waterloo office. Most recently, I did a lot of work on Google's new Stadia gaming platform, which brings games to the cloud by streaming. (I worked on the graphics side of this, working on tools for Vulkan and leading the driver stack team.) We are hiring if you want to work with me.

I also have dabbled in everything from parallelism research to theoretical computer science, and am also interested in (and have strong opinions on!) how we teach computer science and computer programming. I strongly believe in the benefits of collaborative research, and enjoy learning new techniques, tricks, and styles of research from a variety of collaborators. If you are interested in working on a paper together, or are doing something you think I might be interested in, why not drop me a line?

New! Try our PolyCube based hex mesh generator and optimizer here.



  • J. Yang, C. Araujo, N. Vining, Z. Ferguson, E. Rosales, D. Panozzo, S. Lefevbre, P. Cignoni, A. Sheffer, DHFSlicer: Double Height-Field Slicing for Milling Fixed- Height Materials, ACM Transactions on Graphics (Proc. SIGGRAPH Asia 2020), to appear.
  • 2019

  • C. Araujo*, D. Cabiddu*, M. Attene, M. Livesu, N. Vining, A. Sheffer. Surface2Volume: Surface Segmentation Conforming Assemblable Volumetric Partition. ACM Transactions on Graphics (SIGGRAPH 2019, Los Angeles, USA) (* - joint first authors)
  • D. Rebain, B. Angles, J. Vlanentin, J. Peethambaran, S. Izadi, N. Vining, A. Tagliasacchi. LSMAT: Least Squares Medial Axis Transform. Computer Graphics Forum, to appear.
  • 2018

  • M. Limper, N. Vining, A. Sheffer, Box Cutter: Atlas Refinement for Efficient Packing via Void Elimination, ACM Transactions on Graphics (Proc SIGGRAPH), 2018.
  • M. Li, A. Sheffer, E. Grinspun, N. Vining. FoldSketch: Enriching Garments with Physically Reproducible Folds, ACM Transactions on Graphics (Proc SIGGRAPH), 2018
  • 2017

  • G. Gori, A. Sheffer, N. Vining, E. Rosales, N. Carr, T. Ju. FlowRep: Descriptive Curve Networks for Freeform Designer Shapes. ACM Transaction on Graphics (Proc. SIGGRAPH 2017)
  • 2016

  • M. Bessmeltsev, N. Vining, A. Sheffer. Gesture3D: Posing 3D Characters via Gesture Drawings. ACM Transactions on Graphics (Proc. SIGGRAPH Asia 2016)
  • A. Bartle, A. Sheffer, V. Kim, D. Kaufman, N. Vining, F. Berthouzoz. Physics-Driven Pattern Adjustment for Direct 3D Garment Editing. ACM Transactions on Graphics (Proc. SIGGRAPH 2016)
  • 2015

  • M. Bessmeltsev, W. Chang, N. Vining, A. Sheffer, K. Singh. Modeling Character Canvases from Cartoon Drawings. ACM Transactions on Graphics 2015, to appear.
  • R. Gillette, C. Peters, N. Vining, E. Edwards, A. Sheffer. Real-time Dynamic Wrinkling of Coarse Animated Cloth. Proc. Symposium on Computer Animation (SCA) , 2015, to appear.
  • M. Livesu, A. Sheffer, N. Vining, M. Tarini. Practical Hex-Mesh Optimization via Edge-Cone Rectification. ACM Transactions on Graphics (Proc. SIGGRAPH), Vol.34, No 4, 2015.
  • P. Hao, Y. Liu, A. Sheffer, N. Vining, C.-J. Li, W. Wang. Flow Aligned Surfacing of Curve Networks. ACM Transactions on Graphics (Proc. SIGGRAPH), Vol.34, No 4, 2015.
  • 2014

  • C. Ma, N. Vining, S. Lefebvre, A. Sheffer. Game Level Layout from Design Specification. Computer Graphics Forum (Proc. Eurographics), Apr., 2014.
  • 2013

  • M. Livesu, N. Vining, A. Sheffer, J. Gregson, R. Scateni. PolyCut: Monotone Graph-Cuts for PolyCube Base-Complex Construction. ACM Trans. on Graphics (Proc. SIGGRAPH Asia), Vol 32, No. 6, 2013.
  • M. Best, N. Vining, D. Jacobsen, A. Fedorova. Collection-Focused Parallelism. 5th USENIX Workshop on Hot Topics in Parallelism (HotPAR), 2013.
  • 2010

  • M. Cheng, E. Delisle, A. Erickson, S. Ganti, F. Mason, N. Vining, S. Whitesides. Collaborative problem solving: integrating theory and practice in the classroom. Proc. 15th West Canadian Conference on Computing Education, 2010.
  • Invited Talks, Interviews, Game Development Miscellanea

  • Two talks at GDC (2016, 2017) on discrete mesh processing, as part of the Mathematics for Game Developers Tutorial run by Squirrel Eiserloh
  • Congratulations, You Have Died! Humorous Writing and Dungeons of Dredmor. Casual Connect Seattle, 2012.
  • Gaslamp Games on its Indie Roguelike Dungeons of Dredmor. Game Career Guide, 2011.
  • The Threads That Bind Us. Game Developer Magazine, 2010.
  • The OpenGL 3.2 Specification, where I am listed as a contributor due to my involvement writing several OpenGL extensions.
  • Video Games I've Worked On

  • Clockwork Empires (2014 - 2016): Technical Director and Lead Programmer
  • Dungeons of Dredmor: Conquest of the Wizard Lands (2012): Technical Director
  • Dungeons of Dredmor: You Have To Name The Expansion Pack (2012): Technical Director
  • Dungeons of Dredmor: Realm of the Diggle Gods (2011): Technical Director
  • Dungeons of Dredmor (2011): Technical Director and Lead Programmer
  • Unreal Tournament 3 (2008): Abortive OS X and Linux Port, OpenGL Renderer (which I believe was incorporated into the iOS tree powering Infinity Blade, amongst other things)
  • Various Derek Smart Gigs: Programming, Additional Programming, General Grease Monkey
  • Die Hard: Nakatomi Plaza (2001): Programmer. Penny Arcade had some choice words about our game and the engine which was forced on us.
  • Things

    I have been putting small, useful single-header libraries here. So far I have only written one, but I am hoping to put more up later.

    Useful Libraries

  • Sean Barrett's STB libraries.
  • Clipper, an open source 2D polygon clipping library.
  • Friends don't let Friends use GLUT. You may also get some use out of SDL, which is a little more designed for games.