My main research area is reconstruction from curves,
but my interest is not limited to curves!
Recently, I am playing with reconstruction from points.
It can be large scale, like indoor/outdoor scenes,
or small scale, like this: my running shoe.
This 3D model is generated AUTOMATICALLY from a video
which I captured with my phone!
Isn't that amazing?
You can simply hold your phone and take a video of something you like,
then convert that to 3D automatically!
I use visualSFM (together with Yasutaka Furukawa's PMVS/CMVS)
to estimate the camera poses and generate the point cloud.
Then, I apply Poisson Surface Reconstruction method to build the surface.
There are several parameters that can be tuned in Poisson Reconstruction.
Here is one, resolution. The left one uses higher resolution.
More details (like the mesh in the front) start to emerge, but so as noises.
Some other models I tried.
There are other methods/pipelines that can give better results.
This is fun.
Output a 3D model directly from a video captured with your phone :)
One of my favorite puzzle adventure games: Machinarium!
First released in 2009, Machinarium is a point-and-click role-play adventure game developed by Amanita Design.
In this game, player navigates the little robot Josef and explores a world made with machines and robots.
The goal is to free the city taken by the bad guys and rescue Josef's beloved girlfriend robot Berta.
There are tones of puzzles and brain teasers ahead of the rescuing road. Sometimes, they can be difficult to solve.
The designers hide their nice sketches as hints in the cities, which are revealed after solving a little puzzle.
As a programer, however, there is always another way :)
Most of the problems have finite number of states, thus can be turned in to a search problem and solved with code.
Here is a selection of my solutions for the problems in the game. They are solved optimally by A* algorithm in no time.
SIX : a volumetric game!
This game is inspired by QIX, an arcade game released by Taito America Corporation in 1981.
In QIX, the objective is to fence off a supermajority of the play-field (a 2D rectangle) in a limited time,
while avoiding the attacks from the enimies.
SIX is our 3D extension of QIX. Instead of claiming the 2D field, the objective in SIX is to take over the volume of a 3D cube.
The aborigines of the cube (Vertex, Line, Face, Box) are the new enemies. Be careful, they are powerful when recruited together!
Aaron, Ethan, Matheus and I made this game together. It is based on Panda3D and written in Python.
Standalone programs are provided bellow.
To solve the Exact Set Cover problem, Donald Knuth proposed an algorithm called "Algorithm X" (cool name!),
a recursive, nondeterministic, depth-first, backtracking algorithm that finds all solutions to the exact cover problem.
Dancing Links, also known as DLX, is the technique suggested by Donald Knuth to efficiently implement the Algorithm X.
Algorithm X is the basis for automatically solving several types of puzzles,
like finding Pentomino tilings and solving Sudoku.
Here are some interesting results of applying Algorithm X on Hexiamonds, in Knuth's paper.
Duplicating my 25th birthday gift (Quatus) :)
Pipeline built from scratch, from description of a 3D scene, projection, transformation to rendering.
My very first character: Onion Girl~ :)
A little green onion, with Chinese style pigtail.
Pink pink Teddy. :)
Try out the hair particle editting in Blender.
A piece of cloth draps over a glass cup.
Try out the cloth simulation in Blender.
A glass of red wine.
Try out the water simulation and volumetric rendering in Blender.