## Video to Surface

Keywords:
{ SFM, CMVS, Poisson Reconstruction}

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 :)

• + Point Cloud    [PLY 15M]
• + Reconstructed Surface (low resolution)    [PLY 10M]
• + Reconstructed Surface (high resolution)    [PLY 30M]

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: May 8, 2015

## Go! Robot

Keywords:
{ Python, AI, A* search, ASCII art }

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.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Sep 18, 2014

SIX: A Volumetric Game
Keywords:
{ Volumetric game, Python, Geometry }

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.

(Note: executable files are not very stable, please check the video above for full levels.)

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Sep 18, 2014

Keywords:
{ Exact Set Cover, Algorithm X, Dancing Links, C++ }

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.

• + My implementation of Dancing Links in C++    [ZIP 3K]
• + Another interesting implementation in Python:    Webpage

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Sep 18, 2014

Quatus
Keywords:
{ OpenGL, Rendering Pipeline }

Duplicating my 25th birthday gift (Quatus) :)

Pipeline built from scratch, from description of a 3D scene, projection, transformation to rendering.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Sep 18, 2014

## Onion Girl

Keywords:
{ Modeling, Character }

My very first character: Onion Girl~ :)
A little green onion, with Chinese style pigtail.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Sep 18, 2014

## Teddy Bear

Keywords:
{ Blender, Modeling, Hair, Rendering }

Pink pink Teddy. :)
Try out the hair particle editting in Blender.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Jan 1, 2016

Cloth Simulation
Keywords:
{ Blender, Modeling, Cloth Simulation, Rendering }

A piece of cloth draps over a glass cup.
Try out the cloth simulation in Blender.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Jan 1, 2016

Water Simulation
Keywords:
{ Blender, Modeling, Water Simulation, Rendering }

A glass of red wine.
Try out the water simulation and volumetric rendering in Blender.

© Ming Zou | Department of Computer Science and Engineering | Washington University in St. Louis | Last update: Jan 1, 2016