# Project Proposal: Skeleton-based Nonphotorealistic Sculpting

## Background

Surface skeletons are powerful descriptors for 3D shapes. They record the locus of maximally inscribed balls in the surface, and can be used for many types of shape processing.

Recently, we showed how to reconstruct high-fidelity renderings of 3D shapes using only a skeleton point cloud: We splat depth-and-shading textures centered at the skeleton points and scaled with the points' distance to surface. The result is a highly realistic rendering of the initial shape, as shown below.

## Nonphotorealistic Modeling

We could refine the simple ball splatting idea described above in several directions, in order to obtain different types of *nonphotorealistic rendering* of a 3D model. The image below shows such a result from early experiments. Here, we used a polyhedron instead of a ball, with some fancy high-contrast shading applied atop of it. The result looks like a pop-art version of the cow:

Besides changing the shape and shading of the ball, we could also change its orientation, size and transparency. This would allow us to cover a wide range of nonphotorealistic rendering as well as *modeling* of 3D shapes. By analogy, we could parameterize the splats to effectively program 3D sculpting of our models.

## Goals

In this project, we want to explore the potential for nonphotorealistic rendering and modeling of skeletons based on depth-transparency-shading splats. Challenges include the following:

- shading: design suitable shading profiles for the splats so as to simulate a range of artistic effects (silhouettes, faceted look, rough surfaces, enhanced edges, etc)
- blending: design suitable blending mechanisms for a seamless construction of the final image from a set of unorganized splats
- shapes: design suitable 3D shapes which, when scaled/oriented at their skeleton points, create a wide range of
*sculpture-like*effects from a given input shape - implement all above so the result is intuitive to control by the end user and executes fast

## Requirements

The candidate should have the following skills:

- good mastery of C/C++
- (good) knowledge of OpenGL and shaders

## Contact

If you are interested in this project, contact Alex Telea. This project is a cooperation with dr. Andrei Jalba, Univ. of Eindhoven.

## References

For inspiration, see some NPR examples (done with different approaches) from Tobias Isenberg's work.