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

Check / to know more about technical details.

/

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: .

Demo: .

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.

N-body simulation on CUDA
N-body simulation (clickable)

Based on a GPU Gems 3 article.

Static electrict field simulation

This simulation is based on an electric potential field reconstruction.

Static Electric Field
Static electrict field (clickable)

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 .

.

Constrained dynamics simulation

“Constrained dynamics simulation” is inspired by the “Physically Based Modeling: Principles and Practice” course by Carnegie Mellon University.

Click to run the demo

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.

Click to run the demo. Use mouse and LMB to navigate.

.

.

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.