Latest update?

This page collects some of the code I wrote long time ago and the contents will not be updated. For the recent development and the maintained code, please refer to my GitHub page.

 


Easy3D

Easy3D

GitHub stars

Easy3D is an open-source library for 3D modeling, geometry processing, and rendering. It is implemented in C++ and designed with an emphasis on simplicity and efficiency. Key features include:

Source code, executable files, and documentation can be found from the GitHub page.

News: Aug. 2022, Easy3D received the Excellent Graphics Open Source Software Award at CAD & CG 2022. Find more here.


PolyFit

PolyFit

GitHub stars

PolyFit implements the hypothesis and selection based surface reconstruction method described in the following paper:

Liangliang Nan, Peter Wonka. "PolyFit: Polygonal Surface Reconstruction from Point Clouds". ICCV 2017.

This method is dedicated for reconstructing simplified polygonal surfaces from point clouds.

Source code, executable files, and test data can be downloaded from PolyFit project page.

News: Since Aug.5, 2019, PolyFit is also officially part of CGAL. Find more here.


MVStudio

MVStudio

GitHub stars

MVStudio is intended to be a lightweight, easy to use, and integrated SfM (Structure from Motion) and MVS (Multi-View Stereo) solution. You can obtain MVStudio by building it from the  source code or downloading the prebuilt  binary files.

Source code, executable files, and more information can be found on the GitHub page.


Mapple

Mapple

Mapple is free software for processing and visualizing point clouds and polygonal models. Key features include:

An outdated Windows executable can be downloaded here.
A completely new design of Mapple is available as part of Easy3D. Prebuilt binaries for macOS, Linux, and Windows are provided here.


PcdViewer

PcdViewer

As requested by many students, I made public a simple prototype software PcdViewer for rendering point clouds. It also provides some interactive operations for processing point clouds, e.g, selection of points by sketching a rectangle, or by using a lasso tool. Of course, you can incorporate your own functionalities into it. The source code (with a prebuilt binary) can be downloaded here.

You can find more details about supported file formats in 'file_io.cpp'.
TaucsSolver

TaucsSolver

TaucsSolver is a wrapper class for TAUCS, a powerfull linear system solver. You can download the source code (with examples) here. It contains the following three functions:

How to use it? Quite easy! See the examples in "example/test.cpp" :-)


“Segmentation”

Segmentation

Segmentation is a program originally designed for segmenting STL models with sharp features (test data can be found here) . But finally we added 2D straight skeleton and offset (test polygon data can be found here) using CGAL to generate tool path for Rapid Prototyping when I was in SIA. The source code can be downloaded here.


NCSimu

NCSimu

NCSimu is a simulation program for Numerical Control manufacturing mystem. You can download the source code here and a test data here.


OpenGLView

OpenGL for MFC

This is a piece of very old code! Using OpenGL in MFC is quite troublesome (at least it bothered me a lot when I started using OpenGL with MFC). So I wrote an OpenGLView class for MFC. You can download the source code here.

Steps to use it:

  1. Inherite your own view class from it;
  2. Erase the OnDraw(CDC* pDC) function in the sub class and repalce all "CView" with "COpenGLView";
  3. Fill your own draw code by overriding the function RenderSceneScalable(), e.g., glutSolidSphere(0.7f, 20, 20);
  4. Now compile and run, a flat shaded solid sphere will appear in your screen.

Copyright @Liangliang Nan