|
Ng Chu Ming (黄祖铭)
(NUS) B.Eng (Computer Eng) Hons.
(NUS) M.Sc in Computer Science (by Research)
Email : pix at rendezvouswithdestiny dot net
We have no history but we have a rendezvous with destiny
- Maj. Gen. William C. Lee (101st Airborne)
|
|
|
Chu-Ming is a Singaporean born chinese and is currently Analytics / Pricing developer in Equity Technology with investment bank Merrill Lynch & Co., Inc.. Before joining Merrill, he has experience in large scale software development during his tenure as Software Development Engineer with Autodesk Inc working on the Vault-Addin, which is part of the flagship AutoCAD drafting software. He received his Bachelor's degree in Computer Engineering (2nd
Upper Hons) and M.Sc. (by Research) in Computer Science from the National University of Singapore. During his masters degree, he also held position as Research Staff with the School of Computing working on algorithms and data structures for automatic design generation of architectural forms.
Chu-Mings broad interests include Computer Graphics and Visualization, Computational Geometry, as well as data structures and theoretical aspects of computer science. He is also interested in algorithmic problem solving (see my competitive programming page below) and competitive programming for ACM ICPC. Specific areas of interests and expertise include out-of-core terrain visualization, surface reconstruction, geometric algorithms, spatial data structures as well as automatic design generation of building forms. He is also experienced in large scale C++ software development, design patterns, OOAD from his experience working with the 25 years, 9 million lines code base of AutoCAD.
With his venture into the finance he now takes an active interest Analytics and Quantitative methods in finance. This curiosity was partly kindled by the story of Long Term Capital Management.
During his younger days, he took a passionate interest in the art and lore of Demo Coding.
His other interests outside of academia includes wushu, inline skating, bike tricks.
He is also into long distance running and successfully completed a full distance marathon in the Standard Chartered Singapore Marathon 2006
In his past life, he also served as a paratrooper with the military.
|
|
Quick Links
' My Competitive Programming page
' My Demo Coding page
' My Q/KDB+ Financial Time Series page
' Computer Graphics
2.Autodesk's Graphics Folks
Jos Stam Academy Award Winner for Technical Achievement. See his Nice works on fluid and flows on surfaces of arbitrary topology
Dong Xu Author of Siggraph Paper related to Poisson Mesh Editing
Eric Haines Author of book "Real Time Rendering" and several siggraph publications. Kinda interesting knowing some guy in your company wrote the textbook that you were using back in graduate school. Yes, this doesn't only happen in Google =P
Sam Black Previously from Pixar and now with Autodesk. He's got movie credits in A Bug's Life, Toy Story 2, Monsters, Inc., Finding Nemo, The Incredibles. Also game credits in NASCAR Racing, IndyCar Racing II, Road Rash,NASCAR Racing 2
|
|
Publications
- Growing Non-Regular Architectural Forms. (Technical Report)
Chu-Ming Ng, Tiow-Seng Tan, Joseph Lim, Yenn-Jin Ho, Wai-Heng Lai
See the project website for some preliminary info.
- Analyzing Prefetching in Large-Scale Visual Simulation pdf
Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan
Proceedings of The Computer Graphics International 2005, 22-24 June, Stony Brook, New York, USA, pp. 100--107.
See project website for more information
- Analyzing Prefetching in Large-Scale Visual Simulation
Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan
ACM SIGGRAPH 2005 Symposium on Interactive 3D Graphics and Games, Washington D.C., USA
- Prefetching in Visual Simulation pdf
Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan
Proceedings of IEEE Visualization 2003, Seattle, Washington, USA
Interesting Fact : My Erdos Number is 4. (Paul Erdos->Aronov Boris->Herbert Edelsbrunner->Tiow-Seng Tan-> Chu-Ming Ng)
Talks
- "Demos and Realtime Computer Graphics" - Talk given to Computer Graphics Research Lab, School of Computing, NUS. (23 March '07)
Free feel to use the slides
|
|
Research Interests
Computational geometry, computer graphics, terrain visualization, architecture form generation.
I love computational geometry and in my free time I enjoy thinking about shapes and their application to graphics. My greatest fascination is with Dual space algorithms such as the Dual Space algorithm for solving the Stabbing line segment problem, as well as the lifting transformation for computing 2D Delaunay Triangulation via lifting it up to 3 dimensions. Taking things up one additional dimension sometimes provide a new dimension of insights, such as that for Moebius Transformations.
"There is some magic to geometric transformations which has to do with the way humans understand geometric problems. Even though it is fairly obvious that the transformation of one problem into another cannot lead to anything new(with respect to computational complexity), in particular if the transform realizes a one-to-one correspondence.
Nevertheless, there is an impressively large collection of geometrical problems whose tranformation into other problems play a crucial role in their resolution.
The intuitive explanation is perhaps that transformations shift the emphasis of the problem to other aspects that are not as readily apparent in the original problem, thus facilitating the study of the problem from a new angle.
A prime example that substantiates this interpretation is the dual transform that maps a point to a hyperplane. This is as simple as interpreting the coordinates of a point as coefficients of a plane equation. Interestingly, when applying this transformation to point sets in Rd, the angles determined by small subcollections of the set "materialize" into faces in the dual arrangement. Thus, duality help us in understanding the otherwise not very intuitive concept of angles..."
Herbert Edelsbrunner |
|
|
Terrain Visualization (dyanamic level of detail for terrain walkthrough, based on ROAM)
Screenshots of the level of detail terrain engine with multitexturing of terrain textures.
Illustration of dynamic tessellation of terrain geometry as the view point changes. Notice that the regions in-view (shown in yellow) are more highly tesselated. Similarly, flat regions are less tesellated to save triangle budget. The rectangular grid in the top left of each image shows a top down view of the terrain geometry from frame to frame.
|
|
|
Surface reconstruction from point clouds
The problem of surface reconstruction from point clouds is a central problem in computational geometry.The main challenge of the problem lies in the difficulty of inferring connectivity information from just a set of points sampled from a particular manifold surface.
The above screenshots shows the implementation of a modified version of the Crust algorithm by Amenta et. al which is based on the concept voronoi filtering. The left image show the input point cloud sampled from the bunny model. The middle image shows the 3D convex hull computed from the input point set and the red points are the voronoi vertices of the 3D voronoi diagram (corresponding to the 3D delaunay tetrahedralization). Using the 3D voronoi diagram and the convex hull, the individual triangles that forms the final reconstructed manifold (in right image) are filtered out from the 3D delaunay tetrahedralization, hence obtaining the reassembled bunny surface.
|
|
|
Misc Fun Stuff
- Spirographs.
Remember those circular disk-like gears you used to play with when you were young? Those that allow you to draw patterns such as below? Below are some screenshots of a pattern generator Ive coded up when I had too much time one my hands =P It allows the user to interactively create those similar patterns just by varying a few slider controls in the dialog window. Heres an animated version on google video
 
  
- Directory printing fun.
This is a quick hack to model directory tree and print it via modelling it as a set of associations. See attached source code for more information. A sample printout of the code run is provided below.
`- /home/pix/k +- db | +- d.kr | +- ds.kr | +- dt.kr | +- du.kr | +- dw.kr | +- kdb.txt | +- readme.txt | +- s.txt | `- t.txt +- db.kr +- html | `- go.gif +- kdb.zip +- klin.zip +- lin | +- aw3.k | +- k | `- k3.lic +- sp.s `- trade.t
- Dependency management plugin for Visual Studio 2005
This was developed in my free time as a dependency management tool addin using the Visual Studio Extensibility API that presents visually the various dependencies such as header, include files, library files, include paths, library paths and in which projects they were used. This is helpful due to the large number of projects (50 C++/ C#) in the solution module that we are working on. The plugin provide context menus for dynamically adding/removing/modifying the include paths, lib files directly etc. and the changes will be reflected in the vcproj files. See below for screen shot,
- C++ with Inline Assembly
The following C++/Inline assembly code reverse a byte value using inline assembly assuming 32-bit architecture. It is compilable and runnable in Visual Studio 2005
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
unsigned char b = 0x96; // this is 10010110
unsigned char outbyte = 0;
printf("hex of input byte: %X\n", b);
__asm {
xor eax, eax
xor ebx, ebx
mov al, [b]
mov ecx, 0x8
loop1:
shr al, 1
jnc nocarry
shl ebx, 1
or ebx, 1
jmp next
nocarry:
shl ebx, 1
next:
dec cx
jnz loop1
mov [outbyte], bl
};
printf("hex of output byte : %X\n", outbyte); // this is 01101001
return 0;
}
|
|