Projects and works
A collection of my pet-projects.
Airfoil simulation
This is a DEM-based simulation designed to test the Newtonian lift concept.
The simulation process 2M particles on the GPU using a highly parallel approach to construct a BVH-acceleration structure. This BVH-tree is necessary for doing potential collision tests quickly. The collision response is a simple Hooke’s law.
The software provides both CPU and CUDA implementations.
More demos on Youtube
Check Medium / Habr to know more about technical details.
Github page / Windows binaries
Software rasterizer
An exercise to consolidate knowledge of homogeneous coordinates and rasterization algorithms. I’ve developed a CPU-based software rasterizer using Parallel STL – a standard C++17 feature.
Supported features
- Basic obj file support (enough to load the Stanford Bunny).
- Clipping in the homogeneous clip space (before perspective division).
- Parallel tiled rasterization.
- Perspective-correct interpolation of vertex attributes.
- Per-pixel lighting via Lambertian BRDF.
- Gamma correction.
- Screen space shadows
More details: Github page.
Demo: Windows/Linux binaries.
CUDA-based physics simulations
The project is inspired by the Intro to parallel programming course by Udacity and some of GPU Gems 3 articles.
Fast N-Body simulation
Even being of O(N2) complexity the simulation manages to work in real-time processing 16384 particles. It utilizes the superpowers of Nvidia GPUs such as ultimate parallelism and on-chip shared memory.

Based on a GPU Gems 3 article.
Static electrict field simulation
This simulation is based on an electric potential field reconstruction.

The field is simply a 2D matrix of vector values. The matrix is stored in a very specific type of 2D array – a Texture memory. This type of memory provides a better spatial location for euclidian space than a regular C-like 2D array.
Other particle-based simulations
Other demos are available on Youtube.
Constrained dynamics simulation
“Constrained dynamics simulation” is inspired by the “Physically Based Modeling: Principles and Practice” course by Carnegie Mellon University.
The key feature of the simulation is that it’s using ideal constraints as joints between material points, not springs. The simulation uses the explicit fourth-order Runge-Kutta method in order to solve the ordinary differential equation of the simulation state in the phase space.
If you want to know more about the math model the simulation is based on, please take a look at the Constrained Dynamics lecture.
Pure WebGL
This is just a simple WebGL app supporting asynchronous loading of the model, vertex, and fragment shaders.

Project R-7 game
This game was made back in 2010-2011 for “Sozvezdie” (“Constellation”) competition among schoolchildren. One of the rules of the competition was, that competitors were not allowed to use a third-party game engine. So I made it by myself using only C++ and OpenGL. Plus some additional libraries such as GLUT and Audiere.
The physics was simplified because making a detailed simulation was a big deal for me back in school. But it was good enough to win the first prize.
I should mention that the game uses some of the assets from Orbiter Space Flight Simulator and Space Shuttle Mission 2007. I couldn’t have finished my competition project without these amazing simulators.
The code was way too messy. There won’t be a link to it.