Use half-edge data structure to implement mesh subdivision algorithms: Loop, Catmull-Clark, Butterfly etc.

Implement classic shading models (Blinn-Phong) .

Evaluate the position of points on curves / surfaces: De Casteljau’s and De Boor’s algorithm.
Tessellate and manipulate Bezier and B-spline curves / surfaces.

Implement a simple mass-spring physics-based model. The procedural is accelerated by CPU multi-thread (OpenMP) or GPU (OpenGL Compute Shader).

Follow Ray Tracing in One Weekend to implement the ray tracing of spheres. Several materials are included: Lambertian, Metal and dielectrics.

02 June 2019