1.png
Planets and Orbs - a primitively simple CPU-only ray tracer written in C#
A simple ray tracing demo written in C#
Synthesizes cool 3D images with very few lines of code, has very simplistic light modelling.
Allows for synthesis of stereo images (Google Cardboard in mind).

Can serve an example of applying OOP in C# to a task of 3D ray tracing.
It nicely demos the basic OOP principles - encapsulation, inheritance and polymorphism.
All geometric objects are derived out of one class with polymorphic Methods used for calculations of
object intersection with light rays and definition of ray transformations / color filtering.

Main Form:
mainform.png

Possible further work:
- adding linear transformations to objects, to get ellipsoids out of spheres;
- adding convex polyhedrons;
- adding set operations (intersection, unification) to objects;
- adding all kinds of texture maps - bump, reflection, ...
- speed optimization using some 3D trees.