Just for fun with mathematics and stuff
External Input
- OBJ files (.obj) with vertices, normals, triangles and textures.
- Extended OBJ files (.objn) with vertices, normals and (n-1)-simplices in n-space.
- Text files with the coordinates of points in n-space, one point per line.
Internal Input
- Built-in objects.
- Rendered 2D images.
Algorithms
- A variety of mathematical algorithms (section “Algorithms”).
Output
- 2D images with the output of
- real-time rendering of 3-space objects,
- non-real-time rendering of n-space objects on the internal (n-1)-dimensional screen,
- algorithms in 2-space.
- OBJ files with the output of algorithms in 3-space.
- Extended OBJ files with the output of algorithms in n-space.
These are some of the implemented algorithms. There are various other algorithms.
| Subject | Algorithm | Implementation | Language |
|---|---|---|---|
| Discrete Fourier transform for arbitrary sizes | Bluestein's algorithm and radix-2 fast Fourier transform | Parallel | GLSL |
| Optical flow | Pyramidal Lucas-Kanade | Parallel | GLSL |
| Convex hull | Divide et impera | Parallel | GLSL |
| Subject | Algorithm | Implementation | Language |
|---|---|---|---|
| Convex hull | Randomized incremental | Partially parallel | C++ |
| Delaunay triangulation | Convex hull of paraboloid | Sequential | C++ |
| Voronoi diagram | The Delaunay triangulation | Sequential | C++ |
| Manifold reconstruction | Cocone | Sequential | C++ |
| Manifold reconstruction with boundary detection | BoundCocone | Sequential | C++ |
| Euclidean minimum spanning tree | Kruskal’s algorithm and the Delaunay triangulation | Sequential | C++ |
| Intersection of hyperplanes | Gaussian elimination | Sequential | C++ |
| Intersection of convex polytopes | The simplex algorithm | Sequential | C++ |
| Ray intersection acceleration | Spatial subdivision and 2d-trees | Parallel | C++ |
| Realistic visualization | Path tracing | Parallel | C++ |
| Property | Value |
|---|---|
| Programming languages | C++17, GLSL 4.50 |
| C++ compilers | GCC 8, Clang 7 |
| Platforms | Linux, Windows |
| Graphics APIs | Vulkan, OpenGL 4.5 |
| Compute APIs | OpenGL 4.5 |
| Frameworks | Qt 5 |
| Libraries | FreeType, GLFW, GMP, SFML, Xlib |
| Optional libraries | cuFFT (for DFT tests), FFTW (for DFT tests) |
| Build systems | CMake |
2D slices of a 4D image of the 4-manifold reconstructed from the points on the 4-sphere with a hollow.
- 6-space
- The convex hull.
- 5-simplex facets.
- 5-space
- 4-simplex mesh without boundary.
- 32-tree.
- 5-parallelotopes.
- Point light source.
- Parallel projection onto 4D screen.
2D slices of a 3D image of the 3-manifold reconstructed from the points on the 3-torus.
- 5-space
- The convex hull.
- 4-simplex facets.
- 4-space
- 3-simplex mesh without boundary.
- 16-tree.
- 4-parallelotopes.
- Point light source.
- Parallel projection onto 3D screen.
Points on the (2,3)-torus knot, the Euclidean minimum spanning tree of the points, and the 2-manifold reconstructed from the points.
- 4-space
- The convex hull.
- 3-simplex facets.
- 3-space
- 2-simplex mesh without boundary.
- 8-tree.
- 3-parallelotopes.
- Point light source.
- Parallel projection onto 2D screen.
Real-time computing on GPU.
Real-time rendering on GPU.
Path tracing on CPU.



























