I will work for Adobe at San Jose as a research intern during the summer, with my wife, cat, the future newborn, and lots of love.

KAUST, Saudi Arabia


I visited GMSV at King Abdullah University of Science and Technology (KAUST), Saudi Arabia during the winter break to join my adviser for the Siggraph deadline.

Curriculum Vitae


Download PDF Version

I am a second year PhD student in Computer Science at Arizona State University. My research is about polygonal mesh processing and geometric modelling. In my first year I already published (as the first author) a Siggraph Asia paper “Connectivity Editing for Quadrilateral Meshes” in collaboration with some of the best professors including Prof. Peter Wonka at ASU and Prof. Eugene Zhang at Oregon State University, both are committees of the ACM Siggraph.


Prior to my PhD study I worked for CyberLink, the maker of PowerDVD video players, as a software engineer for four years. I am also the co-founder of an online taxi carpooling service (www.mytaxi.tw) serving the Taipei metropolitan area.


I am currently looking for internship in software engineering for the 2012 summer.


Contact Information:

Email: pchihan (at) asu.edu , pengchihan (at) hotmail.com

Education:

Arizona State University, Ph.D. Computer Science, 2010 Aug.-Present
  • Field of Interest: Computer Graphics, Mesh Processing, Differential Geometry, Real-Time Rendering
  • Advisor: Peter Wonka
  • GPA: 4.33 (Computer Graphics: A+, Linear Algebraic Data Exploration: A, Machine Learning: A, Graphics for Games: A+, Combinatorial Optimization: A+, Advanced Geometric Modeling: A+)
National Chiao Tung University (NCTU), M.S. Computer Science, 2005
  • Fields of Interest: Computer Graphics, Mesh Simplification, Level-of-Detail
  • Thesis: User-Assisted Mesh Simplification
  • Advisor: Jung Hong Chuang
  • Overall GPA: 3.83
National Chiao Tung University (NCTU), B.S. Computer Science, 2003
  • Fields of Interest: Computer Graphics
  • Undergraduate Project: 3D Facial Model Reconstruction from Photos
  • Overall GPA: 3.78 (Ranked 3rd among 56)
  • Junior / Senior GPA: 3.91
  • Academic Achievement Award (ranked 2nd among 56), Spring 2001
  • Academic Achievement Award (ranked 3rd among 56), Spring 2000
Paper:
Patent:
Expert Technical Reviewer:
Professional Experiences:
Co-Founder, Peace Network Co., Ltd. (www.mytaxi.tw), 2009-present
  • My wife and I co-founded an online taxi carpooling service targeting commuters in Taipei. The taxi drivers are provided by a local taxi fleet. I collaborated with a website design house to build the website using PHP framework Codeigniter and MySQL.
Software Engineer, Cyberlink Co., 2006-2010
  • Senior Engineer: In addition to HDDVD players, I was also in charge of the OEM customization of the navigator, content protection (BD+), and video protection protocols (COPP/OPM) of our Blu-ray software, which accumulated to more than 200,000 lines of codes. I also integrated the anti-reverse engineering technologies, such as AACS and code obfuscation, into our video playback software.
  • Engineer: I improved the quality of the navigator and scripting engine (HDi) components of our HDDVD software to shipping quality. I shipped components to OEM customers such as HP, Dell, Asus, and Acer.
Compulsory Military Training, Army of R.O.C, Oct-Dec. 2005
  • Training for Reserve Officer
Research Assistantship, National Center for High-Performance Computing (NCHC), 2002-2004
  • Remote Stereo-Image Display written in Java3D, 2004
  • Fluid Data Rendering, 2003
  • Virtual-Reality Development, 2002
Intern, Family-Owned Architects Firm, Aug 1999 
  • Operating office facilities. 
Skills:
Most proficient programming languages: C/C++, Java, C#, PHP
  • I am professional in C/C++ programming (at CyberLink we code in C/C++ with heavy use of Microsoft .NET and COM technologies). I have extensive experience coding Java during my job at NCHC and several undergraduate course projects. I have coded in C# for utilizing the XNA framework for GPU programming. My expertise of PHP programming is acquired during my entrepreneurial experience at www.mytaxi.tw.
GPU programming: XNA, GLSL, Cg
  • I did a very good job (A+) at the course “Graphics for Games” at ASU, which covers advanced topics of GPU programming such as environment mapping, shadow mapping and GPU-based particle system. The projects are developed in XNA framework.
Tools: Visual Studio, .NET, 3ds Max, Maya, Photoshop, MATLAB, Mathematica, Flash
  • My expertise can be categorized as: (1) Programming, such as Visual Studio and .NET; (2) 3D modeling, such as 3ds Max and Maya; (3) Website development, such as Photoshop and Flash; (4) Scientific computing, such as MATLAB and Mathematica.
I am experienced with UNIX-like systems.

I can speak English and Chinese (mother tongue).

Research Grants:
  • Investigator, National Science Council(NSC93-2213-E009-032), Research on 3D Mesh Parameterization and its Applications, 2004.08-2005.07
Teaching Assistantship:
Invited Talk:
References:

User-Assisted Mesh Simplification

Download Page:
http://cggmwww.csie.nctu.edu.tw/research/index.php?research=mesh

Presentation Slides( for my Master Defense):

Highlight:

A novel approach for user to precisely increase the vertex resolution of desired regions on the simplified mesh, while preserving the global vertex count:

Algorithm Summary:
  1. Generate a Progressive Mesh (PM) for the model: a continuous sequence of edge collages that will gradually reduce the model to only 1 vertices.
  2. In the PM, locate all edge collapse pairs on the target region to be refined, denoted as eg.
  3. Specify the desired global vertex count after simplification, denoted as g.
  4. Specify the desired vertex count for the target region after simplification, denoted as x.
  5. Identify ecX, which is the marginal edge collapse that will immediately reduce the target region to x vertices.
  6. Exchange the order of ecX with the (g+1)-th edge collapse of PM, making it the new (g+1)-th edge collapse of PM.
  7. Linearly reallocate the execution order of all other edge collapses of eg to preserve the original order of eg.
  8. As a result, the target region will have x vertices after simplification.

Result:
User can precisely allocate more vertices to regions of interest on a simplified mesh.


Note:
This paper is primarily based on my Master thesis paper. Mr. Ho, a senior PhD. student of my lab, helped re-organized and submitting this paper.

The Joy of an Entrepreneurial Venture



MyTaxi (http://www.mytaxi.tw/) , the startup company co-founded by my wife and me, have just officially launched in early January. The primary goal of our company is to offer an enjoyable and economic alternative for commuters in Taipei: taxi-sharing. Within just one month, our website have accumulated hundreds of registered users and tens of effective routes. We also plan to promote our services to companies, schools and organizations as monthly packages, similar to what Zimride did.

To my wife, this endeavor is her entrepreneurial dream came true, and it is critical in building the prerequisite of pursuing MBA in entrepreneurship: she have already got an offer from Babson (ranked #1 in entrepreneurship), with a scholarship.

To me, it is an truly exciting challenge.

As a software engineer with 10+ years of experience of C/C++/Java programming, mainly for Windows-based 3D, video navigation and cryptography applications, it is very interesting and rewarding to engage myself in something quite different: website developments.

Our website is developed in PHP with MySQL, Java Script (JQuery) and some CSS. It is deployed under the CodeIgniter framework, an open source, elegant, compact and well-documented web framework that I totally acclaims.

In my opinion, PHP programming is quite different to the "traditional" C/C++ counterpart: no compiling, no type-castings, no memory managements, no crashes (at least I haven't encountered...), no multi-threading, no printf/ostream/CString/OutputDebugStringW mess. The learning curve is almost non-existent. I love it! But it will be more beautiful if there exists an orthodox IDE for PHP (like VisualStudio to C/C++ and Ellipse to Java).

I had experience in Java Script programming while developing the HDi scripting engine for HD DVD Advanced Content players, so developing user-side features for our website (ex: hovering text) by Java Script isn't a challenge to me. In addition, I love the JQuery library! It makes programming Java Script like talking with an intelligent alien, instead of a stupid one.

In conclusion, I just feel lucky in choosing the career of a software engineer. The shinny new things never stop to show up (I am experiencing with Maya's Pymel, and Blender's Python scripting languages, and I will deploy our website into hand-held device friendly formats after the current one is stable enough).

Finally, thank you for your reading!

Current Studying Activities

This page organize my current studying activities. Comments welcome!

*. Mesh Parameterization and Optimization. Currently I am collaborating with my (previous) advisor Prof. Jung Hong Chuang at NCTU on projects related to shape correspondence. I am responsible for solving problems related to mesh parameterization and hence, using packages to solve optimization problems.
  • CirclePatterns, http://www.multires.caltech.edu/software/CircleParam/html/index.html. The source code demonstrates Circle Pattern, an algorithm for finding discrete conformal (angle-preserving) parameterization. Wonderfully, it also demonstrate how to use MOSEK, a powerful optimization software that is capable of solving linear, quadratic (convex), conic and even general non-linear convex problems.
  • Following the author's instructions, I have implemented the spherical parameterization part. The task requires solving a general non-linear problem (minimizing the energy term). I have implemented C++ codes to use MOSEK to solve the problem, which involves providing functional, gradient and Hessian evaluations to MOSEK's interior-point solver. While the problem is solved for some simple models, unfortunately the problem seems to become non-convex for some complex models; MOSEK simply halts when it detects the Hessian to become not positive semidefinite, ending up with suboptimal solution.

1. Techniques on generating/extruding architectural drawings (e.g. floor plans) into 3D models.

2. Crowd / traffic simulation techniques. Exploit their applications into urban model synthesis.
3. Computational Geometry for Architecture

4. Global Illumination (hopefully it can be applied in solving lighting analysis problems in architecture)
5. Cool Architecture Stuff